> ## 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

<AccordionGroup>
  <Accordion title="What is a Payment Form and how does it work?" onClick={() => posthog.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! Customize 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](/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.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.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.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.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="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.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](/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>
