Skip to main content
You can use the Cashfree Payment Gateway Dashboard to create orders and accept payments using payment link. These links can be sent to your customers via email or SMS, without the need to integrate Cashfree to your website.
Cashfree provides you with the flexibility to create Payment Forms, a no-code solution that your customers can use to pay any amount of their choice to your account.Here’s how you can set up a Payment Form to help receive donations for a cause:
  1. Log in to the Merchant Dashboard and go to Payment Gateway > Payment Forms > All.
  2. Select Create a Payment Form and complete the following details:
    • Payment For: Enter the campaign title. (Example: India Needs Oxygen and Vaccines!).
    • Personalised URL: Enter the URL identifier that will be shared with customers. (Example: covid-relief-fund).
    • Description: Add details about the donation cause — mention how the donated funds will be used and whether you have partnered with any other agency. (Example: Our hospitals are going through dire situations; we urgently need more oxygen concentrators and vaccine doses to save as many lives as possible.)
    • Amount configuration: Select Multiple amounts to let donors choose their contribution.
  3. Set up customer data collection:
    • Enable Name, Phone number, and Email address.
    • Enable Address field to collect the donor’s residential address.
  4. Under Terms and conditions, add your donation terms:
    • If your organisation is eligible to give 80G certificates, clearly mention your registration number and PAN details. (Example: Your contribution has an exemption of 50% under Section 80G of the IT Act. An 80G certificate will be provided within a few days if a valid PAN and residential address are provided by the payer. Compulsory for donations above Rs. 50,000. <br>Registration No: XX <br>PAN: XX.)
    • Add any applicable terms for donors. (Example: Donations using this link can be made by Indian citizens only (residents and non-residents). We accept cards issued outside India.)
  5. Under Business contact information, add your contact details so donors can reach you. (Example: youremailid@yourdomain.com<br>+9199999xxxxx<br>Your Registered Address.)
  6. Select Create to publish the payment form and share the URL with your donors.
You can view a sample donation form to see what the final result looks like.If you follow all the above-mentioned steps correctly, the final output would be similar to the image below:
Yes, you can use Cashfree to accept international payments in other currencies. Here are the key points:Cashfree offers a Global Collections feature that allows you to accept international payments from customers. You can accept payments in more than 17 currencies from over 180 countries. See the list of supported currencies.
If your business deals with customers who want to pay using PayPal, you can link your existing PayPal account to your Payment Gateway and accept payments from those customers. You can accept payments from international customers using this account.
USD will be the default currency. You must complete your KYC to receive payments in INR.
Yes, if you already have an account with PayPal, you need to authorise Cashfree to collect payments.
For every transaction that your customers make through Cashfree, TDR will be deducted from the total amount and the remaining amount will be settled to your bank account. However, we have a postpaid model as well. See billing configuration to know more.
An order ID must be unique per merchant account and can only be used once. If a Create Order API request uses an order_id that already exists, the API returns a 409 error (order_already_exists), regardless of whether the prior order is ACTIVE, PAID, or EXPIRED.Generate a new, unique order ID for each payment attempt. Multiple payment attempts (transaction IDs) can exist against the same order, but you cannot recreate the order itself with the same ID.
You can initiate refunds either using our APIs or from within the Merchant Dashboard. Steps: Navigate to Payment Gateway Dashboard → Transactions → Payments. Search for the transaction you want to initiate a refund for, and select Initiate Refund.By default, the entire amount is refunded. If you issue a partial refund, ensure the partial refund option is selected and enter the desired value in INR.
Yes, use the Batch Refunds feature to initiate refunds for a large number of payments at a time. Log in to the Merchant Dashboard and go to Payment Gateway > Transactions > Refunds > Batch Refunds > Upload File. Add all the required refund details in a single file as per the required format and upload the file.
You can check the status of an initiated refund for a transaction from the Merchant Dashboard and go to Payment Gateway > Transactions > Refunds > Initiated Refunds, and enter the corresponding Order ID. The refund processing time depends on the payment mode:
  • UPI: Up to 5 working days.
  • Cards: Up to 7 working days.
  • Net Banking and others: 7 to 10 working days.
Before you update or display the status of a transaction or order to the customer, complete the following steps to ensure that the status is accurate:
  1. Check the status manually in the Merchant Dashboard.
Sign in to the Cashfree Merchant Dashboard to view the current status of the transaction or order. Use this method for one-time checks or if API or webhook integration isn’t set up.
  1. Use the return URL flow to confirm the final status.
After the payment reaches a final state (such as SUCCESS or FAILED), Cashfree redirects the customer to the return URL you provided. At this point, call the Get Order/Transaction Status API to confirm and display the transaction status to the customer.
  1. Handle redirection failures and delayed status changes with webhooks.
If the return URL redirection fails or if the transaction moves from an intermediate state (such as PENDING) to a final state later, use webhook notifications to receive real-time updates. This helps ensure your system remains accurate even without redirection.
  1. Use the API to retrieve the latest status.
To programmatically check the current status of an order, call the Get Payment Status for an Order API. Use this method to confirm the status before updating it on your system or displaying it to the customer.