> ## Documentation Index
> Fetch the complete documentation index at: https://www.cashfree.com/docs/llms.txt
> Use this file to discover all available pages before exploring further.

# Payment Forms

> Find answers to payment forms FAQs covering form creation, custom fields, branding, sharing options, supported payment modes, and submission tracking workflows.

export const posthog_0 = undefined

<AccordionGroup>
  <Accordion title="What is a Payment Form and how does it work?" onClick={() => posthog_0.capture('Accordion Clicked', { title: "What is a Payment Form and how does it work?" })}>
    Payment Forms let you collect online payments via 120+ methods like UPI and net banking—no payment gateway needed! Customise the form, accept domestic and international payments, and collect customer details. Set a fixed or flexible amount and share the form via SMS, email, WhatsApp, or your website to start receiving payments instantly.
    See [Creating a payment form](/docs/payments/no-code/payment-forms/overview#creating-a-payment-form) to see how

    <iframe src="https://www.cashfree.com/devstudio/preview/pg/embed/faqFeedback?section=payment-forms%2Ffaqs%23what-is-a-payment-form-and-how-does-it-work" style={{ width: "100%", height: "65px", border: "none" }} title="FAQs feedback component" />
  </Accordion>

  <Accordion title="How do I create a Payment Form?" onClick={() => posthog_0.capture('Accordion Clicked', { title: "How do I create a Payment Form?" })}>
    To create a payment form:

    1. Go to **Payment Gateway Dashboard** > **Payment Forms** > click **Create Payment Form**.
    2. In the **Payment For** field, explain the purpose of payment to the customer. Keep this text short and precise. This information is necessary for customers to understand the purpose of payment.
    3. Configure amount fields. You can specify a single or multiple amounts.
    4. Personalise the URL to include your brand name for easy identification.
    5. Specify the payment form validity time. (Validity time supported: 1, 2, 7, 14, 30 days, or set as No Expiry to keep it active always).

    **Add Payment Details**
    **Add Customer Details**
    **Add Business Details**

    Save and create the payment form. The payment form created will be active to collect payments. Share the payment form URL with your customers and start collecting payments instantly.

    All the payment forms created will be visible in the **Payment Forms** screen. You can edit, cancel, activate a cancelled payment form, and also share the payment form details with your customers after you create it. You can see and track the payment statuses in the **Orders** section.

    <iframe src="https://www.cashfree.com/devstudio/preview/pg/embed/faqFeedback?section=payment-forms%2Ffaqs%23how-do-i-create-a-payment-form" style={{ width: "100%", height: "65px", border: "none" }} title="FAQs feedback component" />
  </Accordion>

  <Accordion title="Can I generate a report for all payment form transactions?" onClick={() => posthog_0.capture('Accordion Clicked', { title: "Can I generate a report for all payment form transactions?" })}>
    Yes, you can generate a report for all Payment Form transactions.

    The payment form report has the list and details of orders and payments made against the payment forms in the period selected. Order details, customer details, transaction amount, payment method, card details, and more are available in this report.

    To generate the payment form report,‌

    1. Go to Payment Gateway Dashboard > Reports.
    2. In the Search & Filter field, select Payment Form, and click Generate.
    3. Select the date range for which you want to view the report, and click Generate.
    4. The report will be generated based on the criteria you have filtered. You can download the report after it has been generated.

           <iframe src="https://www.cashfree.com/devstudio/preview/pg/embed/faqFeedback?section=payment-forms%2Ffaqs%23can-i-generate-a-report-for-all-payment-form-transactions" style={{ width: "100%", height: "65px", border: "none" }} title="FAQs feedback component" />
  </Accordion>

  <Accordion title="How do I know when a payment is made via a Payment Form?" onClick={() => posthog_0.capture('Accordion Clicked', { title: "How do I know when a payment is made via a Payment Form?" })}>
    You will be notified about the payments made using the payment form via webhooks.

    The Payment Form webhook will be triggered when your customers make a complete payment using the payment form you shared.

    To start receiving webhook event notifications:

    1. Go to **Payment Gateway Dashboard** > click **Developers** in the left navigation.
    2. Select **Webhooks** in the **Payment Gateway** section.
    3. Click **Add Webhook URL** and select the event you want to be notified about.
    4. Enter the URL where you want to receive the webhook notifications, and click **Add**.

    You will start to receive webhook event notifications on the URLs you have specified. You can use one URL to handle several different event types at once or specify individual URLs for specific events.

    <iframe src="https://www.cashfree.com/devstudio/preview/pg/embed/faqFeedback?section=payment-forms%2Ffaqs%23how-do-i-know-when-a-payment-is-made-via-a-payment-form" style={{ width: "100%", height: "65px", border: "none" }} title="FAQs feedback component" />
  </Accordion>

  <Accordion title="Can I use the same Payment Form for multiple products or services?" onClick={() => posthog_0.capture('Accordion Clicked', { title: "Can I use the same Payment Form for multiple products or services?" })}>
    Yes, the same form can be set up to take in different product information and pricing. The customer can select and pay for the product/service he/she is interested in.

    <iframe src="https://www.cashfree.com/devstudio/preview/pg/embed/faqFeedback?section=payment-forms%2Ffaqs%23can-i-use-the-same-payment-form-for-multiple-products-or-services" style={{ width: "100%", height: "65px", border: "none" }} title="FAQs feedback component" />
  </Accordion>

  <Accordion title="What is a Subscription Payment Form?" onClick={() => posthog_0.capture('Accordion Clicked', { title: "What is a Subscription Payment Form?" })}>
    A Subscription Payment Form collects recurring payments through a hosted checkout. You can publish the form with a single plan, or add multiple plans to the same form. On a single-plan form, customers complete mandate registration for that plan. On a multi-plan form, they choose one plan at checkout. Cashfree creates a mandate and a subscription only for the plan used at checkout. See [Subscription Payment Form](/docs/payments/no-code/payment-forms/subscription-payment-form).

    <iframe src="https://www.cashfree.com/devstudio/preview/pg/embed/faqFeedback?section=payment-forms%2Ffaqs%23what-is-a-subscription-payment-form" style={{ width: "100%", height: "65px", border: "none" }} title="FAQs feedback component" />
  </Accordion>

  <Accordion title="Can I add more than one subscription plan to a Payment Form?" onClick={() => posthog_0.capture('Accordion Clicked', { title: "Can I add more than one subscription plan to a Payment Form?" })}>
    Yes. A Subscription Payment Form needs at least one plan. Click **Add Plan** to include more plans on the same form. Customers then see every available plan and select one at checkout. Cashfree creates a mandate and a subscription only for the selected plan. For setup steps, see [Subscription Payment Form](/docs/payments/no-code/payment-forms/subscription-payment-form).

    <iframe src="https://www.cashfree.com/devstudio/preview/pg/embed/faqFeedback?section=payment-forms%2Ffaqs%23can-i-add-more-than-one-subscription-plan-to-a-payment-form" style={{ width: "100%", height: "65px", border: "none" }} title="FAQs feedback component" />
  </Accordion>

  <Accordion title="Can a customer subscribe to more than one plan from the same Payment Form?" onClick={() => posthog_0.capture('Accordion Clicked', { title: "Can a customer subscribe to more than one plan from the same Payment Form?" })}>
    No. The customer selects one plan and completes mandate registration for that plan only. Customers cannot switch plans after the subscription is created. Create a new subscription if the customer needs a different plan.

    <iframe src="https://www.cashfree.com/devstudio/preview/pg/embed/faqFeedback?section=payment-forms%2Ffaqs%23can-a-customer-subscribe-to-more-than-one-plan-from-the-same-payment-form" style={{ width: "100%", height: "65px", border: "none" }} title="FAQs feedback component" />
  </Accordion>

  <Accordion title="Do all subscription plans on a Payment Form need the same currency?" onClick={() => posthog_0.capture('Accordion Clicked', { title: "Do all subscription plans on a Payment Form need the same currency?" })}>
    Yes. Every plan on a Payment Form must use the same currency. Use a separate Payment Form if you need to collect in another currency.

    <iframe src="https://www.cashfree.com/devstudio/preview/pg/embed/faqFeedback?section=payment-forms%2Ffaqs%23do-all-subscription-plans-on-a-payment-form-need-the-same-currency" style={{ width: "100%", height: "65px", border: "none" }} title="FAQs feedback component" />
  </Accordion>

  <Accordion title="I am using a hosted payment form and cannot call the Create Order API directly. How do I pass custom fields for reconciliation?" onClick={() => posthog_0.capture('Accordion Clicked', { title: "I am using a hosted payment form and cannot call the Create Order API directly. How do I pass custom fields for reconciliation?" })}>
    Collect the custom fields your reconciliation needs on your own page before the customer reaches the hosted payment form—for example institute code, roll number, or division for education and multi-institute fees, or other identifiers such as branch, campaign, or invoice reference. Submit those values to your backend, create the order server-side using the [Create Order API](/docs/api-reference/payments/latest/orders/create) with the fields mapped into `order_tags`, and then redirect the customer to the Cashfree payment session using the returned `payment_session_id`. This ensures the tags are always set correctly and will appear in the Settlement Recon Report.

    <iframe src="https://www.cashfree.com/devstudio/preview/pg/embed/faqFeedback?section=payment-forms%2Ffaqs%23i-am-using-a-hosted-payment-form-and-cannot-call-the-create-order-api-directly-how-do-i-pass-custom-fields-for-reconciliation" style={{ width: "100%", height: "65px", border: "none" }} title="FAQs feedback component" />
  </Accordion>
</AccordionGroup>
