Skip to main content
Subscription Billing & Mandates for ERPNext — A recurring-revenue engine for ERPNext that adds mandate-backed collections, sm — 1/1Illustrative preview

A recurring-revenue engine for ERPNext that adds mandate-backed collections,

smart dunning, proration, and gateway retry logic on top of your existing Sales Invoice and payment flows.

ECOSIRE builds it to your plans and pricing model, then installs and supports it.

What is Subscription Billing & Mandates for ERPNext?

A recurring-revenue engine for ERPNext that adds mandate-backed collections, smart dunning, proration, and gateway retry logic on top of your existing Sales Invoice and payment flows. ECOSIRE builds it to your plans and pricing model, then installs and supports it. Built to order by ECOSIRE for ERPNext v15, v16 — indicative price from $999.00 USD; request a quote for a scoped proposal.

Key Features

Dedicated Frappe app with its own module, installed via `bench get-app`/`bench install-app` — no core fork, upgrade-safe on v15/v16
`Billing Plan` DocType modeling interval, unit price, trial length, currency, and per-plan proration rule
`Subscription Mandate` DocType storing gateway mandate reference, tokenized instrument, scheme (card/UPI eMandate/SEPA), and lifecycle status
Mandate-backed auto-capture: scheduled collection against stored mandates without re-prompting the customer
`Dunning Cascade` DocType — ordered retry steps with configurable backoff, reminder emails, and terminal suspend/cancel actions
Scheduler events (hourly/daily) that raise due invoices, attempt capture, and advance dunning state machines
Mid-cycle proration computed server-side, auto-raising the correct Sales Invoice adjustment or credit note on upgrade/downgrade
Metered usage via `Usage Record` DocType aggregated into invoice lines at period close
Coupons and trial handling with automatic transition from trial to first paid cycle
Signature-validated gateway webhook endpoint reconciling inbound payment status back to Subscription and Payment Entry
`hooks.py` doc events on `Sales Invoice` and `Payment Entry` so every collection posts through standard ERPNext accounting (GL, AR aging, tax intact)
Whitelisted server-side methods (`@frappe.whitelist()`) for capture, retry, and mandate revocation, callable from the Frappe REST API
Client Scripts adding a subscription/mandate cockpit to Customer and Subscription forms
Role profiles and permission rules scoping billing operator, finance, and read-only support access
Retry cascade routes across multiple gateways with per-scheme rules (e.g., UPI eMandate vs SEPA vs card)

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

ERPNext ships a basic Subscription DocType, but SaaS and membership businesses quickly hit its ceiling. Native subscriptions generate invoices on a schedule and stop there: there is no mandate capture, no automatic payment collection, no dunning cascade when a card fails, no mid-cycle proration when a customer upgrades, and no metered usage. Teams end up chasing failed payments in spreadsheets, manually raising credit notes for plan changes, and watching involuntary churn eat into MRR. The moment you need eMandate, SEPA, or stored-card collections with retries, ERPNext core runs out of road.

We build a proper Frappe app (its own module, installed via bench get-app and bench install-app) that layers a real billing engine onto ERPNext without forking core. New DocTypes model the domain cleanly: Billing Plan (interval, price, trial, proration rule), Subscription Mandate (gateway token, mandate reference, status, scheme — card/UPI eMandate/SEPA), Dunning Cascade (ordered retry steps with delays and actions), and Usage Record for metered lines. hooks.py doc events on Sales Invoice and Payment Entry keep ERPNext ledgers authoritative — every collection still posts through standard accounting, so your GL, AR aging, and tax reports stay correct.

Collection and retries run on Frappe's scheduler. Scheduler events (hourly and daily) walk due subscriptions, capture against the stored mandate through your gateway, and on failure advance the Dunning Cascade — retry with backoff, send templated reminders, then suspend or cancel per policy. Proration is computed server-side when a plan changes mid-cycle, raising the correct debit/credit adjustment automatically. Gateway calls go through whitelisted server-side methods (@frappe.whitelist()) and a webhook endpoint that validates signatures, so payment status is reconciled inbound as well as outbound. Client Scripts add the subscription cockpit to the customer and Subscription forms; role profiles and permission rules keep billing operators, finance, and read-only support scoped correctly. Everything is reachable over the Frappe REST API for your app or portal, and the build targets Frappe/ERPNext v15 and v16.

Because this is build-to-order, nothing is pre-listed for instant download. We start from your actual plans, gateways, and dunning policy, agree the scope, then build against it. Typical delivery is one working week from confirmed scope. You get the installable source for your version, a staging UAT pass with a rollback plan, installation and configuration on your bench, technical and user documentation, a training session, and a post-go-live support window — plus the git repository handed over so your team owns the code.

What you get

  • Installable Frappe app source code for your ERPNext version (v15 or v16), pinned to your bench
  • Installation and configuration on your bench, including scheduler and gateway credentials setup
  • Technical documentation: DocType schemas, hooks, whitelisted methods, webhook contract, and scheduler jobs
  • User guide plus a live training session for your billing and finance operators
  • UAT on a staging bench with sign-off, and a documented rollback plan before production install
  • Post-go-live support window for defect fixes and configuration adjustments
  • Git repository handover so your team fully owns and can extend the code
  • Gateway and mandate configuration worksheet mapping your plans, schemes, and dunning policy

Who this is for

SaaS Founder / RevOps Lead

Runs a subscription product on ERPNext and needs reliable MRR: mandate-backed auto-collection, low involuntary churn from smart retries, and clean proration on upgrades — without exporting to a separate billing SaaS.

Finance Controller

Owns the ledger and wants every recurring collection to post through standard ERPNext accounting so GL, AR aging, and tax filings stay correct, with dunning and credit notes handled inside the system of record.

Membership / Association Manager

Bills recurring memberships via SEPA or UPI eMandate, needs automated renewals, grace periods, and reminder cascades, and wants members' payment status visible on the Customer record.

ERPNext Implementation Partner

Delivering ERPNext to a subscription client and needs a maintainable, upgrade-safe billing app with documented DocTypes and hooks they can hand off, rather than a pile of ad-hoc server scripts.

How Subscription Billing & Mandates for ERPNext Compares

CriterionECOSIRECustom BuildCompetitorERPNext Native
Delivery modelBuild-to-order, one working week from confirmed scopeIn-house sprint, weeks to monthsInstant download, generic fitAlready in ERPNext core
Mandate capture (card/UPI/SEPA)Built per scheme with tokenized mandatesYou design and build each schemeUsually single gateway or noneNot supported
Auto-collection & retriesScheduler-driven capture with dunning cascadeMust build scheduler + retry logicBasic retry, limited configurabilityInvoice raised, no auto-collection
Mid-cycle prorationServer-side, auto credit/debit adjustmentHand-rolled proration mathOften manual or absentManual credit notes
Metered usage billing`Usage Record` aggregated at period closeCustom DocType + rollup to buildRarely includedNot supported
Accounting integrityPosts through standard Sales Invoice/Payment EntryDepends on your implementationVaries, may bypass ledgersNative, but no billing engine
Upgrade safety (v15/v16)Separate Frappe app, no core forkRisk of core patches breaking on upgradeDepends on maintainer's version supportMaintained by Frappe
Ownership & supportGit handover + post-go-live support windowYou own and maintain everythingVendor-locked, subscription supportCommunity/partner support

Frequently Asked Questions about Subscription Billing & Mandates

Is this a ready-made app I can download and install today?

No. This is build-to-order. ECOSIRE builds the app against your actual plans, gateways, and dunning policy, then installs and supports it. There is no instant download — you receive source code built for your ERPNext version once scope is confirmed.

How long does delivery take?

Typical delivery is one working week from confirmed scope. The timeline depends on how many gateways and mandate schemes (card, UPI eMandate, SEPA) you need and the complexity of your proration and dunning rules. We agree the scope on the scoping call before any build starts.

Which ERPNext and Frappe versions are supported?

We target Frappe/ERPNext v15 and v16. The app is delivered as a proper Frappe app installed via `bench get-app` and `bench install-app`, pinned to your bench version, and built to survive standard ERPNext upgrades since it does not fork core.

Does it interfere with ERPNext's accounting?

No. All collections post through standard `Sales Invoice` and `Payment Entry` via `hooks.py` doc events, so your general ledger, AR aging, and tax reports stay authoritative. The billing engine orchestrates collection and dunning; ERPNext remains the system of record for accounting.

Which payment gateways and mandate types are supported?

We integrate the gateways you use and build mandate capture per scheme — card tokenization, UPI eMandate, and SEPA direct debit are common. Retry cascades can route across multiple gateways with per-scheme rules. The exact gateway list is confirmed during scoping.

What about support and updates after go-live?

Every engagement includes a post-go-live support window for defect fixes and configuration adjustments. Because you receive the full git repository, your team can extend the app independently, and we offer ongoing support or enhancement retainers if you prefer we maintain it.

How is failed-payment (dunning) handled?

A configurable `Dunning Cascade` DocType defines ordered retry steps with backoff delays, templated reminder emails, and terminal actions (suspend or cancel). Frappe scheduler events advance each subscription through the cascade automatically, and inbound webhook events reconcile any late successful payments.

Request a quote

Subscription Billing & Mandates

A recurring-revenue engine for ERPNext that adds mandate-backed collections, smart dunning, proration, and gateway retry logic on top of your existing Sales Invoice and payment flows. ECOSIRE builds it to your plans and pricing model, then installs and supports it.

  • Dedicated Frappe app with its own module, installed via `bench get-app`/`bench install-app` — no core fork, upgrade-safe on v15/v16
  • `Billing Plan` DocType modeling interval, unit price, trial length, currency, and per-plan proration rule
  • `Subscription Mandate` DocType storing gateway mandate reference, tokenized instrument, scheme (card/UPI eMandate/SEPA), and lifecycle status
  • Mandate-backed auto-capture: scheduled collection against stored mandates without re-prompting the customer

Request a Quotation

Tell us about your Subscription Billing & Mandates 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.