Skip to main content
Razorpay & RazorpayX Payments + Payouts — A build-to-order ERPNext app that unifies Razorpay collections and RazorpayX vendor — 1/1Illustrative preview

A build-to-order ERPNext app that unifies Razorpay collections and RazorpayX vendor payouts,

with webhook-driven reconciliation straight into Payment Entry.

ECOSIRE scopes, builds, installs, and supports it on your Frappe/ERPNext v15/v16 site.

What is Razorpay & RazorpayX Payments + Payouts?

A build-to-order ERPNext app that unifies Razorpay collections and RazorpayX vendor payouts, with webhook-driven reconciliation straight into Payment Entry. ECOSIRE scopes, builds, installs, and supports it on your Frappe/ERPNext v15/v16 site. Built to order by ECOSIRE for ERPNext v15, v16 — indicative price from $999.00 USD; request a quote for a scoped proposal.

Key Features

Razorpay Order and Payment Link generation against ERPNext Sales Invoices, with UPI, card, and netbanking payment methods
RazorpayX vendor payout initiation directly from a Payment Entry or a dedicated `RazorpayX Payout` DocType, reading fund-account details from Supplier and Employee masters
Signed webhook endpoint verifying the `X-Razorpay-Signature` HMAC on every event before any ledger action, exposed via `frappe.whitelist(allow_guest=True)`
Automatic creation and submission of `Payment Entry` on `payment.captured` and `payment_link.paid`, mapped to the correct party, mode of payment, and bank clearance reference
Bulk payout processing via a Payout Batch parent DocType with per-row validation, so vendor and salary runs go out in one approved batch
RazorpayX payout status sync (`queued`, `processing`, `processed`, `reversed`, `failed`) that posts or reverses the matching Payment Entry
Scheduler event that polls for pending or stuck transactions and self-heals dropped webhooks on the next tick
`hooks.py` doc events and server scripts that keep gateway transaction ids stamped on both the invoice and the Payment Entry for a clean audit trail
Role profiles and permission rules that gate payout initiation and approval to finance roles, with an optional maker-checker approval step
Idempotent event handling keyed on Razorpay entity id so retried webhooks never double-post a Payment Entry
Client scripts adding contextual Pay / Initiate Payout / Approve actions to Sales Invoice, Purchase Invoice, and Payout forms
Fund-account and beneficiary validation (VPA / account+IFSC) with contact-mode selection for IMPS, NEFT, RTGS, or UPI payouts
Frappe REST API and whitelisted methods for headless collection and payout flows from a portal, app, or external system
Reconciliation report and dashboard linking Razorpay settlements and RazorpayX debits to their ERPNext ledger entries
Compatibility with Frappe/ERPNext v15 and v16, packaged 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

Indian businesses that run collections and supplier payments through Razorpay and RazorpayX end up doing two reconciliations by hand: matching Razorpay settlements to customer invoices, and matching RazorpayX payout debits to Purchase Invoices and expense claims. ERPNext core has no native Razorpay or RazorpayX connector on the payables side — you can wire Razorpay as a website payment gateway for the portal, but there is no automated capture of vendor payouts, no UPI/IMPS/NEFT payout initiation from a Payment Entry, and no signed-webhook pipeline that turns a Razorpay event into a submitted Payment Entry against the right party. Finance teams bridge the gap with spreadsheets and the Razorpay dashboard, and the general ledger drifts out of sync with what actually cleared the bank.

ECOSIRE builds a proper Frappe app — a namespaced module with its own DocTypes — that closes both loops inside ERPNext. On the collections side we generate Razorpay Orders and Payment Links against Sales Invoices, support UPI, cards, and netbanking, and capture the payment.captured and payment_link.paid webhook events. On the payables side we integrate RazorpayX: a RazorpayX Payout DocType (with a Payout Batch parent for bulk runs) that reads bank details from Supplier and Employee records, validates the fund account, and fires the payout via the RazorpayX API. Every inbound webhook lands on a whitelisted frappe.whitelist(allow_guest=True) endpoint that verifies the X-Razorpay-Signature HMAC before doing anything, so no unauthenticated event can create ledger entries.

Technically, the reconciliation is driven by hooks.py doc events and server scripts. When a captured or paid event verifies, the app resolves the linked invoice, creates and submits a Payment Entry with the correct party, mode of payment, and bank clearance reference, and stamps the gateway transaction id back onto both documents for audit. RazorpayX payout status transitions (processing, processed, reversed, failed) update the payout DocType and post or reverse the corresponding Payment Entry. A scheduler event polls for pending/stuck transactions so a dropped webhook self-heals on the next tick. Role profiles and permission rules restrict payout initiation and approval to finance roles, client scripts add the pay/approve actions to the invoice and payout forms, and the whole thing is exposed over the standard Frappe REST API and whitelisted methods for any headless or portal flow you need.

Because this is build-to-order, we start from your actual chart of accounts, GST setup, supplier and employee master data, and approval policy — not a generic template. After a short scoping call we confirm exact scope and payout limits, build the app against Frappe/ERPNext v15 or v16, and hand you installable source plus a git repository. Typical delivery is one working week from confirmed scope. There is no instant download: this is a bespoke integration that we install, test on your staging site, and support after go-live.

What you get

  • Installable source code for your version of the app, packaged as a standard Frappe app (bench get-app / pip installable)
  • Installation and configuration on your ERPNext site, including Razorpay and RazorpayX API keys, webhook registration, and account mappings
  • Technical documentation: DocType reference, hooks and server-script logic, webhook flow, and scheduler jobs
  • End-user guide plus a live training session for your finance and AP team
  • UAT on a staging site with a signed-off test plan, and a documented rollback plan
  • Post-go-live support window for bug fixes and adjustments after launch
  • Handover of the private git repository with full commit history
  • Configuration runbook covering key rotation, webhook re-registration, and v15-to-v16 upgrade notes

Who this is for

Finance / AP Manager

Runs both customer collections and vendor payments in one team and wants Razorpay settlements and RazorpayX debits reconciled into ERPNext automatically instead of matching them by hand against the gateway dashboard.

ERPNext System Owner / Admin

Owns the Frappe/ERPNext v15/v16 site and needs a clean, namespaced app with proper DocTypes, permissions, and hooks.py events rather than brittle custom scripts, plus a git repo and upgrade path they can maintain.

Founder / CFO of an Indian SME

Wants supplier and salary payouts approved and released from ERPNext with a maker-checker control, and wants the GL to always reflect what actually cleared the bank via RazorpayX.

Operations Lead scaling payouts

Processes high volumes of vendor or partner payouts and needs bulk batch runs, beneficiary validation, and automatic status sync so failed or reversed payouts are caught and re-posted correctly.

How Razorpay & RazorpayX Payments + Payouts Compares

CriterionECOSIRECustom BuildCompetitorERPNext Native
Vendor payouts (RazorpayX)Native payout DocType, bulk batches, status sync to Payment EntryPossible but you design and maintain the whole flowMostly collections-only; payouts rarely coveredNot supported at all
Webhook reconciliationSigned HMAC verify, idempotent, auto Payment EntryHand-rolled; signature and idempotency easy to get wrongBasic capture, often no dedupe or payout eventsManual matching against the gateway dashboard
Fit to your ERP setupBuilt to your COA, GST, masters, and approval policyFully bespoke, at full build cost and timelineGeneric mapping, limited configurationPortal gateway only, no payables logic
Delivery modelBuild-to-order, one working week from confirmed scopeLonger; depends on your dev capacityInstant install but generic and often unmaintainedAlready in ERPNext, but the feature does not exist
Source and ownershipFull source plus private git repo handoverYou own it, but you built itOften closed or licence-lockedN/A
Version supportFrappe/ERPNext v15 and v16, versioned appWhatever you target and testVaries; may lag current versionsShips with core, but no payout feature
Support and updatesPost-go-live window plus optional retainerYour team maintains itCommunity or best-effortCore updates only, no connector
Permissions and approvalRole profiles, maker-checker, gated payout releaseBuild it yourselfUsually minimal role controlStandard doc permissions, no payout concept

Frequently Asked Questions about Razorpay & RazorpayX Payments + Payouts

Is this an existing app I can download and install today?

No. This is a build-to-order ERPNext app that ECOSIRE scopes, builds, installs, and supports specifically for your site. It is not a Frappe Cloud Marketplace download. You receive installable source code and a git repository as part of delivery.

How long does delivery take?

Typical delivery is one working week from confirmed scope. After the initial scoping call we lock down the exact requirements — payment methods, payout policy, approval flow, and account mappings — and that confirmed scope starts the build clock. Complex approval or multi-entity setups can extend the timeline, which we flag before you commit.

Which ERPNext versions are supported?

We build against Frappe/ERPNext v15 and v16, packaged as a standard versioned Frappe app. We confirm your exact bench version during scoping and target that, and the handover documentation includes v15-to-v16 upgrade notes.

How does the RazorpayX payout side actually work?

Payouts are initiated from a Payment Entry or a dedicated `RazorpayX Payout` DocType that reads fund-account details from your Supplier and Employee masters, validates the beneficiary (account+IFSC or UPI VPA), and fires the RazorpayX API. Bulk runs go through a Payout Batch DocType. Status webhooks (`processing`, `processed`, `reversed`, `failed`) sync back and post or reverse the matching Payment Entry.

How is the webhook reconciliation kept secure and accurate?

Every inbound event hits a whitelisted endpoint that verifies the Razorpay `X-Razorpay-Signature` HMAC before doing anything. Handling is idempotent — keyed on the Razorpay entity id — so retried events never double-post a Payment Entry. A scheduler job also polls for pending transactions so a dropped webhook self-heals on the next tick.

What about support and updates after go-live?

Delivery includes a post-go-live support window for bug fixes and adjustments. Because you get the full source and git repository, you can maintain it yourself afterward, or engage ECOSIRE for an ongoing support and enhancement retainer, including keeping it current with Razorpay/RazorpayX API changes and future ERPNext versions.

Can it drive collections or payouts from outside ERPNext?

Yes. The app exposes Frappe REST API endpoints and whitelisted methods, so a customer portal, mobile app, or external system can create Payment Links or trigger payouts programmatically while the reconciliation and ledger posting still happen inside ERPNext.

Request a quote

Razorpay & RazorpayX Payments + Payouts

A build-to-order ERPNext app that unifies Razorpay collections and RazorpayX vendor payouts, with webhook-driven reconciliation straight into Payment Entry. ECOSIRE scopes, builds, installs, and supports it on your Frappe/ERPNext v15/v16 site.

  • Razorpay Order and Payment Link generation against ERPNext Sales Invoices, with UPI, card, and netbanking payment methods
  • RazorpayX vendor payout initiation directly from a Payment Entry or a dedicated `RazorpayX Payout` DocType, reading fund-account details from Supplier and Employee masters
  • Signed webhook endpoint verifying the `X-Razorpay-Signature` HMAC on every event before any ledger action, exposed via `frappe.whitelist(allow_guest=True)`
  • Automatic creation and submission of `Payment Entry` on `payment.captured` and `payment_link.paid`, mapped to the correct party, mode of payment, and bank clearance reference

Request a Quotation

Tell us about your Razorpay & RazorpayX Payments + Payouts 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.