The quickest way to shorten the time between "invoice sent" and "money received" is to put a payment link on the invoice. In India, Razorpay is the gateway most ERPNext users ask about. ERPNext supports it through the Frappe Payments app, and the setup takes an afternoon. The harder part is getting the accounting right afterwards, because settlements arrive net of fees and in batches.
This guide covers the whole path: installing the app, entering keys, creating the gateway account, sending payment requests, what changed in ERPNext v16, and reconciling Razorpay settlements with your bank statement. It is written for ERPNext administrators and accounts teams in India. If you are connecting other systems as well, our post on API integrations in ERPNext gives the wider picture.
Note: gateway fees, settlement timing and GST on fees depend on your Razorpay agreement. Check them in your Razorpay dashboard and with your accountant, since we do not quote any here.
Key takeaways
- Razorpay lives in the Payments app. Install it, open Razorpay Settings and save your API key and secret.
- It works only for a company whose currency is INR. The ERPNext documentation states this explicitly.
- Saving the settings creates three things: a Payment Gateway record, a bank-type account in the chart of accounts and a Payment Gateway Account.
- Reconcile settlements, not just payments. The bank receives a net amount, so fees and taxes need their own journal entry.
Chasing customers for payments by phone?
Book a free 30-minute walkthrough. We will send a test payment link from an ERPNext invoice and show the payment entry it creates.
Show me payment links → WhatsApp us: +91 8089051848
Or email info@nexeves.com
What you get with the standard integration
- A payment link on a Sales Order or Sales Invoice, sent by email through a Payment Request.
- Automatic recording of the payment in ERPNext once the gateway confirms it, so the receivable is settled.
- Payments on web forms and portal pages that use the same gateway account.
It does not give you a full reconciliation of bank settlements, GST invoices for gateway fees or automatic refunds. Those are handled as accounting steps, described below.
Before you start
- A Razorpay account with test and live API keys. Start with test mode so you can run payments without real money.
- Your ERPNext company's default currency must be INR. Razorpay will not work for a company in another currency.
- A public HTTPS site URL that Razorpay can redirect customers back to, with the correct site URL set in ERPNext.
- Working outgoing email, because the payment link is sent through email. Test the email account first.
Step 1: Install the Payments app
Razorpay support is in the open-source Frappe Payments app, which also holds settings for Stripe, PayPal, Braintree, GoCardless, Paymob, Paytm and M-Pesa. If you cannot find Razorpay Settings in your site, the app is probably missing. On a self-hosted bench the commands are:
bench get-app payments
bench --site yoursite.com install-app payments
On Frappe Cloud, add the app from the marketplace instead. Check that the app version matches your Frappe version, especially if you are planning the move described in our ERPNext v16 upgrade guide.
Step 2: Configure Razorpay Settings
- Search for Razorpay Settings in the awesome bar.
- Enter the API Key and API Secret from your Razorpay dashboard. Test keys begin with rzp_test and live keys with rzp_live.
- The current source of the Payments app also provides a Webhook Secret field and a Redirect To field, which sets where customers land after paying.
- Save.
On saving, ERPNext creates the Payment Gateway record, an account head of type Bank in your chart of accounts, and a Payment Gateway Account. The API secret is stored as a password field, so limit who can open this document and rotate the keys if a staff member leaves.
Step 3: Check the Payment Gateway Account
The Payment Gateway Account is the configuration hub. Open it and confirm:
| Field | What to check |
|---|---|
| Payment Gateway | Razorpay |
| Company and currency | Your INR company and INR |
| Payment Account | A clearing account (a bank-type account) that will hold money until the settlement reaches your bank. Do not point it straight at the main bank account |
| Default Payment Request message | The email text customers receive. Edit it to match your brand and add your support contact |
Step 4: Send a payment link from an invoice
- Submit the Sales Invoice (or Sales Order for an advance).
- Choose Create, then Payment Request.
- Confirm the amount, currency and recipient, and select the Razorpay Payment Gateway Account.
- Save and send. The customer receives an email with a payment link.
- When the customer pays, ERPNext verifies the payment and the accounting impact follows: the payment is recorded and the invoice's outstanding amount is reduced.
A Payment Request on its own does not post to the ledger. It only asks for money. Nothing is posted until the gateway completes the payment or you record a Payment Entry. Run the whole flow in test mode first with a small invoice and check the Payment Entry it creates.
What changes in ERPNext v16
From version 16, when a Payment Request is made from an order or invoice, its Amount is read-only. It comes from the outstanding amount, or from the selected payment term when Fetch Payment Schedule in Payment Request is on in Accounts Settings. To request part of an invoice, use a Payment Terms Template with several terms, for example 50% advance and 50% on delivery, and send one request per term. The ERPNext documentation also notes that some payment request errors were fixed in 2026 releases, so keep the site updated. If a request does not save, the documentation suggests turning on Create payment requests in Draft status in Accounts Settings.
Tell us how you collect today
Send us your invoice flow and gateway account type. On a free call we will tell you what the standard integration covers and what needs custom work.
Review my payment flow → WhatsApp us: +91 8089051848
Or email info@nexeves.com
Step 5: Reconcile Razorpay settlements
This is where most teams struggle. A customer pays Rs 11,800, but your bank receives a settlement later that is net of Razorpay's fee and the tax on that fee, often combining several payments. To keep the books right:
- At payment time, ERPNext debits the Razorpay clearing account and credits the customer. This is automatic.
- At settlement time, download the settlement report from the Razorpay dashboard and enter a Journal Entry: debit the bank account for the amount received, debit a "Payment gateway charges" expense account (and the tax on the fee where you claim it) for the fee, and credit the Razorpay clearing account for the gross amount.
- Check the clearing account. It should move towards zero as settlements arrive. A growing balance means unsettled payments or a missed entry.
- Match to the bank statement using Bank Reconciliation, the way you do for any other receipt.
Ask your accountant how to treat the gateway fee and its tax. For the wider bank workflow, our post on how ERPNext simplifies daily accounting covers bank entries.
Refunds and failed payments
- Refunds: issue the refund in Razorpay, then mirror it in ERPNext with a Sales Return (credit note) and a matching payment entry. Check your version for any built-in refund action before relying on one.
- Failed payments: a failed attempt should not create a Payment Entry, so the invoice stays outstanding. Check the Payment Request status and confirm in the Razorpay dashboard before sending a fresh request.
- Customer paid but the request shows Initiated: first confirm the payment in the Razorpay dashboard. Then check the Payment Gateway Account, the callback and redirect settings, the site URL and the Error Log. Do not mark the request as paid by hand until the money and the accounting entry are verified.
Troubleshooting checklist
| Symptom | Likely cause and fix |
|---|---|
| Razorpay Settings is missing | Payments app not installed. Install it and migrate |
| Message that Razorpay does not support the currency | The company or invoice is not in INR. Use a company with INR as its currency |
| Link opens the wrong gateway | The selected Payment Gateway Account is wrong or disabled. Create a fresh request after fixing it |
| Customer does not get the email | Outgoing email account not working or the customer contact has no email. Test SMTP and check the Email Queue |
| Request amount is wrong | A payment was recorded without being linked to the request, or a return reduced the invoice. Reconcile first, then request again |
| Duplicate payment entries | The same receipt was entered by hand and by the gateway. Allocate carefully and review Payment Entries daily at first |
Security and good practice
- Keep test and live keys apart and switch only after a successful end-to-end test.
- Give access to Razorpay Settings and the clearing account to a small group of roles. See our guide to ERPNext security settings.
- Never send API secrets over chat or email. If one leaks, regenerate it in Razorpay and update ERPNext the same day.
- Review the clearing account weekly until the process is stable.
If you sell online as well, our posts on Shopify with ERPNext and building an e-commerce platform with ERPNext show how online orders and payments reach the books.
What about GCC payment gateways?
Razorpay serves Indian companies and INR. For UAE, Saudi and other GCC businesses, the same Payments app includes settings for Stripe, PayPal and Paymob, among others. Which gateway fits depends on your bank, your customers and your licence. We can confirm the setup for your country during a short call.
How Nexeves helps
We install and test the Payments app, set up gateway accounts and payment terms, build the settlement journal template and train the accounts team on reconciliation. See our ERPNext implementation services and our customisation work for extra steps such as reminders.
Frequently asked questions
Does ERPNext support Razorpay?
Yes, through the Frappe Payments app. You install the app, enter your Razorpay API key and secret in Razorpay Settings, and ERPNext creates the payment gateway and gateway account.
Can I use Razorpay if my company currency is not INR?
No. The ERPNext documentation says Razorpay works only for a company that has INR as its currency.
How do I send a payment link from an invoice?
Submit the Sales Invoice, choose Create then Payment Request, select the Razorpay Payment Gateway Account, and send it. The customer gets an email with the link.
Why can I not edit the Payment Request amount in v16?
From version 16 the amount is read-only when the request comes from an order or invoice. Use a Payment Terms Template with several terms to request part of the amount.
How do I reconcile Razorpay settlements?
Enter a journal entry for each settlement: debit the bank for the amount received, debit gateway charges for the fee, and credit the Razorpay clearing account for the gross amount. Then match the bank line in Bank Reconciliation.
Which other payment gateways does the Payments app support?
The app contains settings for Stripe, PayPal, Braintree, GoCardless, Paymob, Paytm and M-Pesa in addition to Razorpay. Availability for your country depends on the gateway itself.
Get paid faster, with entries that reconcile
Nexeves sets up payment gateways, payment terms and bank reconciliation in ERPNext for Indian and GCC businesses.
Book my free payments review → WhatsApp us: +91 8089051848
Or email info@nexeves.com
Nexeves serves India & the GCC: UAE (Dubai, Abu Dhabi), Saudi Arabia (Riyadh, Jeddah), Qatar (Doha), Kuwait, Bahrain and Oman (Muscat).
No comments yet. Login to start a new discussion Start a new discussion