User guide
Multi Payment Gateway for ERPNext: Webshop Checkout User Guide
A practical guide to Multi Payment Gateway for ERPNext 16. It covers installation, gateway setup, letting Webshop customers choose how to pay, offline options, retries, the payment log and known limits.
KalvyAI Engineering · · 7 min read

Multi Payment Gateway for ERPNext lets Webshop customers choose how to pay, using any payment gateway installed on your site. This guide covers what the app does, how to install and set it up, and how to use each feature. It also lists the app's limits and answers common questions.
You can get the app from the store page: Multi Payment Gateway for ERPNext.
What the app is for
The standard ERPNext Webshop sends every order to one gateway, the one set in Webshop Settings. If you want to offer two or more gateways, or a Cash on Delivery option, the standard checkout can't do it.
This app adds a payment choice page between the order and the gateway. The page lists every gateway you enable, in the order you choose. The customer picks one, the gateway app takes the payment, and ERPNext records it automatically.
The app works with the gateway apps you already use. It finds any gateway that follows the ERPNext Payment Gateway interface, including gateways you install later. Your credentials stay in each gateway's own settings, and each gateway still verifies its own payments.
The app is free and open source under the MIT licence. The source code is in a public GitHub repository.
Who it helps
- Business owners who sell through the ERPNext Webshop and want to offer more than one way to pay, such as a card gateway plus Cash on Delivery.
- ERP admins who need payments recorded once and correctly, with a clear log to check against.
- Developers who maintain gateway apps and don't want to change them to support a choice of gateways.
Requirements
- ERPNext 16 (Frappe 16)
- The Frappe Payments and Webshop apps
- At least one payment gateway app, set up with a Payment Gateway Account
- An HTTPS address for the site, so gateways can send webhooks
Versions 15 and older are not supported.
Installation
Run these commands from your bench directory. Replace <site> with your site name.
bench get-app https://github.com/Kalvyai-erpnext/ki_erp_multi_payment --branch version-16
bench --site <site> install-app ki_erp_multi_payment
bench build --app ki_erp_multi_payment[CHECK: whether a bench restart or migrate step is recommended after install on production setups]
The technical name of the app is ki_erp_multi_payment.
Setup
1. Set up your gateways
- Set up each gateway app as you normally would, for example in Cashfree Settings or Razorpay Settings.
- Check that each gateway has created its Payment Gateway Account.
- Open Webshop Settings and tick Enable Checkout.
2. Choose what customers see
- Open Multi Payment Settings. [CHECK: menu path or workspace link for Multi Payment Settings]
- Tick Let Customers Choose the Payment Provider.
- Click Refresh Providers. The app lists every gateway it finds on your site.
- Enable the gateways you want to offer.
- For each gateway, set its label, description and logo. Customers see these on the payment choice page.
- Drag the gateways into the order you want customers to see.
- If you offer Cash on Delivery, set it to Offline. [CHECK: exact field name for the Offline setting]
- Save.
3. Hand over the Pay button
Some gateway apps, such as Cashfree and PayU, have their own Webshop Pay button option. If one of your gateway apps has this option, turn it off so the app's payment choice page handles the Pay button. Multi Payment Settings lists the installed apps that have such an option.
[CHECK: where each gateway app's Webshop Pay button option is located]
Using the main features
Customers choose the gateway
Customers reach the payment choice page in two ways:
- After clicking Place Order in the Webshop checkout.
- From the Pay button on an existing order or invoice.
The page shows every enabled gateway with its name, description and logo, in the order you set. The customer picks one and goes to that gateway's checkout. When the payment succeeds, ERPNext records it.
Automatic status check
In Multi Payment Settings, each gateway shows one of these statuses:
- Ready
- Not Configured
- Not Compatible
- Currency Not Supported
When a gateway is not ready, the status tells you what to fix. Only gateways marked Ready are shown to customers. You can enable a gateway that isn't ready yet, and it will stay hidden until the problem is fixed.
To check your gateways:
- Open Multi Payment Settings.
- Click Refresh Providers.
- Read the status next to each gateway.
- Fix anything not marked Ready in that gateway's own settings, then refresh again.
Cash on Delivery and offline options
You can offer payments made outside the website, such as Cash on Delivery or bank transfer. When a customer picks an offline option, the order stays unpaid until you enter the payment in ERPNext.
The attempt is logged with the status Offline in Multi Payment Attempt, so you can find orders still waiting for payment.
[CHECK: how to add a bank transfer option and what instructions the customer sees]
Retry or switch gateway safely
A customer who leaves a gateway's checkout can come back and try again, or pick another gateway. When they do, the app cancels the unpaid request, so the order can't be paid twice by mistake.
Unpaid orders stay in My Orders. The Pay button there leads back to the payment choice page.
One Payment Entry per payment
Gateways often report the same payment more than once. The return page and one or more webhooks can arrive at the same time. The app makes sure each Payment Request creates only one Payment Entry, no matter how many reports arrive.
Payments are also recorded when the gateway reports them only through a webhook, for example when the customer closes the browser before the return page loads.
If a payment arrives for a request that was already cancelled, the app flags it Needs Review instead of recording it silently.
Payment log
Every choice a customer makes is saved in Multi Payment Attempt, with links to its Payment Request and Payment Entry. Each attempt has one of these statuses:
- Initiated
- Paid
- Failed
- Cancelled
- Abandoned
- Offline
- Needs Review
To work through payments that need attention:
- Open the Multi Payment Attempt list.
- Filter by status Needs Review.
- Open each attempt and check the linked Payment Request and the gateway's own dashboard.
- Refund the payment through the gateway, or record it in ERPNext, depending on what the customer intended.
Tips
- Put your preferred gateway first. Customers often pick the first option, so order the list with that in mind.
- Write short, useful descriptions. For example: Pay by card or UPI, or Pay in cash when your order arrives.
- Refresh providers after installing a new gateway app. New gateways are found automatically, but you still need to enable them and set their label and logo.
- Check the HTTPS address before going live. Gateways need it to send webhooks, and webhooks are what record payments when the customer doesn't return to your site.
- Review offline orders regularly. Filter Multi Payment Attempt by Offline and enter payments as they come in.
- Check Needs Review often. These are real payments that need a refund or a manual record.
- Test with each gateway's test mode first, if the gateway offers one, before you enable it for customers.
Limitations
- ERPNext 16 only. Versions 15 and older are not supported.
- Webshop orders and invoices only. Payment Requests sent by email from ERPNext work as before.
- Placing the order empties the cart, as in the standard Webshop. Unpaid orders stay in My Orders, where customers can pay later.
- Offline options leave the order unpaid until you enter the payment.
- Phone-only gateways can't be offered. Gateways such as M-Pesa have no checkout page, so they can't appear on the payment choice page.
FAQ
Is it free?
Yes. The app is free and open source under the MIT licence. Each gateway charges its own transaction fees.
Which gateways does it support?
It supports any gateway that follows the ERPNext Payment Gateway interface. This includes Razorpay, Stripe, PayPal, Braintree, Paytm and GoCardless from the Payments app, and most third-party gateway apps. It has been tested with Cashfree, PayU and Cash on Delivery. Other gateways can be connected with a small adapter, without changing either app.
Do I have to enter my gateway keys again?
No. Keys stay in each gateway's own settings. This app only lets customers choose a gateway and then sends them to it.
What if a customer pays twice, or the gateway reports the payment twice?
Only one Payment Entry is created per Payment Request. A payment that arrives for a cancelled request is flagged Needs Review in Multi Payment Attempt, so you can refund or record it.
Can customers still pay later?
Yes. Unpaid orders stay in My Orders, and the Pay button leads back to the payment choice page.
Do I need to change my gateway apps?
No. The app works with gateway apps as they are. The only change is to turn off a gateway's own Webshop Pay button option, if it has one.
Where do I get it?
From the store page: Multi Payment Gateway for ERPNext.
How KalvyAI can help
We are a team of 8 developers with 5+ years of experience building and connecting Odoo, ERPNext and Shopify systems. We can help you:
- Install and set up Multi Payment Gateway on your ERPNext 16 site.
- Write an adapter for a gateway that isn't connected yet.
- Upgrade to ERPNext 16 so you can use the app.
- Add AI agents that work inside ERPNext with human approvals, budgets and an audit trail, for example to help sort payments marked Needs Review.
Contact us to talk about your setup.
- User guide
- ERPNext
- ERPNext 16
- Webshop
- Payment Gateway
- Frappe
- User Guide
KalvyAI Engineering · Engineering team
The engineers who build, connect and fix business systems at KalvyAI: Odoo, ERPNext, Shopify and AI agents that work inside them with approvals, budgets and an audit trail.



Comments
No comments yet. Questions and corrections are welcome.
Rate this post or leave a comment