Skip to main content
PayU Gateway for ERPNext — A build-to-order PayU integration for ERPNext that unifies cards, UPI, netbanking, EMI and local m — 1/1Illustrative preview

A build-to-order PayU integration for ERPNext that unifies cards,

UPI, netbanking, EMI and local methods across India, LATAM and EMEA.

ECOSIRE builds it as a proper Frappe app, installs it on your bench, and supports it after go-live.

What is PayU Gateway for ERPNext?

A build-to-order PayU integration for ERPNext that unifies cards, UPI, netbanking, EMI and local methods across India, LATAM and EMEA. ECOSIRE builds it as a proper Frappe app, installs it on your bench, and supports it after go-live. Built to order by ECOSIRE for ERPNext v15, v16 — indicative price from $999.00 USD; request a quote for a scoped proposal.

Key Features

Registers as a native ERPNext Payment Gateway so Payment Request, web checkout and Sales Invoice payment entries all route through PayU
Server-side PayU request-hash generation and response-hash verification inside whitelisted methods — the salt/secret never reaches the browser
Region-aware routing across PayU India, LATAM and EMEA via data-driven child tables (distinct API hosts, credential formats and hashing per region)
Supports cards, UPI (intent and collect), netbanking with live bank lists, and EMI tenure selection
PayU Settings (Single) DocType with sandbox/live toggle and salt stored as an encrypted Password field
Hosted-checkout redirect flow plus Server SDK payload for an embedded on-site checkout
Guest-safe webhook and return handlers (allow_guest whitelisted endpoints) that re-verify status before updating any document
Tokenization DocType storing PayU token references (never raw PAN) for one-click and saved-card payments
Recurring/subscription debits against stored tokens for retainer and subscription billing
scheduler_events reconciliation job that polls pending UPI collect and delayed netbanking transactions and closes them out
hooks.py doc_events on Sales Invoice and Payment Request to drive payment state transitions and auto-create Payment Entries
Idempotent transaction handling and multi-currency settlement mapping to the correct ERPNext company and account
Dedicated Role Profile and permission rules gating PayU settings and an auditable request/response log DocType
Refund initiation from ERPNext with status write-back, and Client Scripts driving the checkout UX on the web form
Built and tested for Frappe/ERPNext v15 and v16, delivered as a versioned, installable Frappe app

Built to order, done for you

No DIY setup — a working app, built, installed and supported by ECOSIRE.

  1. 1

    You order

    Start with a one-time build price. We scope it with you at kickoff.

  2. 2

    We build & install

    ECOSIRE builds, configures and installs it on your ERPNext.

  3. 3

    Go live + support

    You go live in about one working week, with two weeks of go-live support. Defects in the code we deliver are fixed free of charge.

Technical Specifications

ERPNext Compatibility
—
License
Licence confirmation required
Python Requirement
Python 3.10+
Database
MariaDB 10.6+

About this Product

Multi-region ERPNext merchants hit a wall quickly with payments. ERPNext ships a generic Payment Gateway framework and a few first-party integrations, but PayU is not one of them — and PayU itself is really three different acquiring stacks (PayU India, PayU LATAM/EBANX-adjacent flows, and PayU EMEA) with distinct API hosts, credential formats, hashing schemes and supported instruments. Bolting one region's flow onto a Payment Request with a custom server script gets a demo working, but it breaks the moment you need UPI intent alongside saved cards, EMI tenures, netbanking bank lists, or a webhook that reconciles an asynchronous UPI collect request hours later. Reconciliation, refunds, idempotency and multi-currency settlement are exactly where the native path runs out of road.

We build a proper Frappe app (for example payu_erpnext) with its own module, not a pile of loose server scripts. It registers as a first-class ERPNext Payment Gateway so Payment Request, the web checkout, and Sales Invoice payment entries all route through it. A PayU Settings (Single) DocType holds per-region credentials (merchant key, salt/secret, client credentials) with the salt stored as a Password field, plus a sandbox/live toggle and a chosen instrument set. Region and instrument routing is data-driven through child tables, so one install can serve an India entity on UPI/netbanking/EMI and an EMEA entity on cards from the same codebase.

Technically, the checkout server flow is a whitelisted method (@frappe.whitelist()) that builds and signs the PayU request hash server-side, so the salt never reaches the browser, and returns either a hosted-checkout redirect or a Server SDK payload for an embedded flow. Return and webhook handlers are whitelisted, allow_guest endpoints that re-verify the response hash before trusting any status, then update the linked Payment Request/Payment Entry and create the payment against the invoice. hooks.py wires doc_events on Sales Invoice and Payment Request for state transitions, and scheduler_events run a reconciliation job that polls PayU for pending/async transactions (UPI collect, delayed netbanking) and closes them out — so a customer who completes payment after the browser closes still gets reconciled. Tokenization and recurring are modeled as their own DocTypes storing the PayU token reference (never raw PAN), enabling one-click and saved-card charges and subscription debits. Client Scripts drive the checkout UX on the web form, a dedicated Role Profile and permission rules gate the settings and transaction logs, and every request/response is written to an auditable log DocType. The whole thing targets Frappe/ERPNext v15 and v16 and is delivered against your bench, respecting your existing site_config.json and app structure.

Because this is build-to-order, nothing ships until we agree on scope. We start with a short scoping call to confirm your PayU regions and MID setup, the instruments you actually need, your ERPNext version, and how checkout should behave (hosted redirect vs. embedded, guest vs. logged-in). From there ECOSIRE builds the app against a staging copy of your site, runs UAT with real sandbox transactions, then installs on production with a rollback plan and hands over the git repository. Typical delivery is one working week from confirmed scope, followed by a post-go-live support window. No instant download, no shortcuts, no fabricated benchmarks — a maintained Frappe app built for your acquiring setup.

What you get

  • Installable Frappe app source code for your ERPNext version (v15 or v16), pinned to your bench
  • Installation and configuration on your staging then production site, including PayU credential and region setup
  • Technical documentation: app architecture, DocTypes, hooks, whitelisted endpoints and webhook contract
  • End-user guide plus a live training session for your finance/ops team
  • UAT on a staging copy with real PayU sandbox transactions, plus a documented production rollback plan
  • Post-go-live support window for defect fixes and configuration help
  • Git repository handover with full commit history and tagged release
  • PayU sandbox-to-live cutover checklist and reconciliation runbook

Who this is for

Multi-region ERPNext merchant

Runs one ERPNext instance across India, LATAM and/or EMEA entities and needs a single PayU integration that handles each region's instruments, currencies and settlement without three separate hacks.

Indian D2C / retail operator on ERPNext

Needs UPI, netbanking and EMI live at checkout with reliable async reconciliation, so payments made after the browser closes still post correctly against the Sales Invoice.

Finance / accounts lead

Wants every PayU payment, refund and token action auditable inside ERPNext, mapped to the right company and account, with permissions restricting who can touch gateway settings.

ERPNext delivery partner or in-house Frappe team

Wants a clean, maintainable Frappe app with proper DocTypes, hooks and tests they can own and extend, not undocumented server scripts glued to a Payment Request.

How PayU Gateway for ERPNext Compares

CriterionECOSIRECustom BuildCompetitorERPNext Native
PayU multi-region support (India/LATAM/EMEA)Data-driven region routing built to your MIDsWhatever you scope and code yourselfUsually single-region, often India-onlyNo PayU support at all
Instruments (UPI, netbanking, EMI, cards)Full set, per-region, as scopedAdd each one by handCards plus a subset, varies by appGeneric gateway framework, no PayU instruments
Async reconciliation (UPI collect, delayed)scheduler_events polling + webhook re-verifyYou must build the polling jobOften webhook-only, gaps on asyncManual matching
Tokenization & recurringToken DocTypes, one-click and subscription debitsDesign and store tokens yourselfSometimes, rarely full recurringNot available
Security of gateway secretsEncrypted Password field, server-side hashingDepends on your disciplineVaries; some leak keys client-sideN/A
Fit to your ERPNext & benchBuilt for your v15/v16 site and structureFully bespoke by definitionGeneric, may not match your versionCore only
Ownership & maintainabilityClean Frappe app + git repo handoverYou own it, and all the maintenanceVendor-controlled, black-box updatesN/A
Support & delivery modelBuild-to-order, UAT, post-go-live windowYour team's time and riskBest-effort marketplace supportCommunity support only

Frequently Asked Questions about PayU Gateway

How long does delivery take?

This is a build-to-order product, so typical delivery is one working week from confirmed scope. The clock starts once we've agreed on your PayU regions, the instruments you need, your ERPNext version and the checkout behaviour on the scoping call. Complex multi-region or multi-entity setups sit at the longer end; a single-region India card/UPI build is faster.

Is this a download I can install myself right now?

No. It is not an existing Frappe Cloud Marketplace app you download instantly. ECOSIRE builds the Frappe app for your specific PayU and ERPNext setup, installs it on your bench, and supports it after go-live. You receive the full source and git repository at handover.

Which ERPNext versions are supported?

We build and test against Frappe/ERPNext v15 and v16. Tell us your exact version and bench setup on the scoping call and we target that; if you're on an older version we'll advise whether an upgrade or a backport is the better path.

How does support and updates work after go-live?

Every build includes a post-go-live support window for defect fixes and configuration help. Because you own the git repository, your own Frappe team can also maintain it. For ongoing changes — new PayU regions, added instruments, or a version upgrade — we offer a maintenance arrangement scoped separately.

Does it handle all three PayU regions (India, LATAM, EMEA)?

It can. PayU India, LATAM and EMEA use different API hosts, credential formats and hashing schemes, so region routing is data-driven through child tables and per-region PayU Settings. We build the regions and instruments you actually need — confirm those on the scoping call so we don't over-build.

Is card and PCI data handled safely?

Yes. The PayU salt/secret is stored as an encrypted Password field and request hashing happens server-side, so it never reaches the browser. Saved cards and recurring use PayU tokenization — we store the PayU token reference, never the raw PAN — keeping card data out of your ERPNext database.

How do asynchronous payments like UPI collect get reconciled?

A scheduler_events job polls PayU for pending and delayed transactions (UPI collect, some netbanking) and closes them out, and the webhook handler re-verifies status before updating documents. So a customer who completes payment after the browser closes still gets reconciled and posted against the correct Sales Invoice.

Request a quote

PayU Gateway

A build-to-order PayU integration for ERPNext that unifies cards, UPI, netbanking, EMI and local methods across India, LATAM and EMEA. ECOSIRE builds it as a proper Frappe app, installs it on your bench, and supports it after go-live.

  • Registers as a native ERPNext Payment Gateway so Payment Request, web checkout and Sales Invoice payment entries all route through PayU
  • Server-side PayU request-hash generation and response-hash verification inside whitelisted methods — the salt/secret never reaches the browser
  • Region-aware routing across PayU India, LATAM and EMEA via data-driven child tables (distinct API hosts, credential formats and hashing per region)
  • Supports cards, UPI (intent and collect), netbanking with live bank lists, and EMI tenure selection

Request a Quotation

Tell us about your PayU Gateway requirements and we'll send pricing, licensing options and a tailored proposal — usually within one business day.

No payment now. This sends a quote request to our team — we'll follow up by email with pricing and next steps.