- Home
- Apps
- SaaS Tools
- Stripe Billing & Subscriptions Plus
Illustrative previewA build-to-order Frappe app that connects ERPNext to Stripe for checkout,
recurring subscription sync, card-present Terminal payments, and webhook-driven reconciliation.
ECOSIRE scopes, builds, installs and supports it on your bench.
What is Stripe Billing & Subscriptions Plus?
A build-to-order Frappe app that connects ERPNext to Stripe for checkout, recurring subscription sync, card-present Terminal payments, and webhook-driven reconciliation. ECOSIRE scopes, builds, installs and supports it on your bench. Built to order by ECOSIRE for ERPNext v15, v16 — indicative price from $999.00 USD; request a quote for a scoped proposal.
Key Features
Built to order, done for you
No DIY setup — a working app, built, installed and supported by ECOSIRE.
- 1
You order
Start with a one-time build price. We scope it with you at kickoff.
- 2
We build & install
ECOSIRE builds, configures and installs it on your ERPNext.
- 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
SaaS and subscription businesses running on ERPNext quickly hit the ceiling of the native Stripe payment gateway. Core ERPNext treats Stripe as a one-shot checkout button on a Payment Request: it can collect a single card payment against a Sales Invoice, but it has no concept of a Stripe Subscription object, no MRR-aware recurring sync, no card-present hardware, and no reconciliation loop beyond the immediate redirect. When a subscription renews inside Stripe, when a card fails and Stripe's Smart Retries fire, or when a customer upgrades mid-cycle with proration, none of that flows back into ERPNext. Finance teams end up exporting CSVs from the Stripe Dashboard and hand-keying journal entries, and the ERPNext Subscription doctype drifts out of sync with the real source of truth in Stripe.
Stripe Billing & Subscriptions Plus is a proper Frappe app (its own module, doctypes, hooks.py doc events, and scheduler events) that we build to your billing model and install on your bench. On the checkout side we generate Stripe Checkout Sessions and Payment Links from a whitelisted server method, attach the Stripe payment_intent / checkout_session id back onto the ERPNext Payment Entry, and reconcile the captured amount, fees and currency automatically. On the recurring side we map Stripe Price / Product objects to ERPNext items and keep a bi-directional link so that customer.subscription.created/updated/deleted and invoice.paid events keep the ERPNext Subscription and its generated Sales Invoices in lockstep — including proration, plan changes, quantity-based seats and coupon/discount handling.
Technically, the reliability core is a signature-verified webhook endpoint. We expose a whitelisted method (via the Frappe REST API layer) that verifies the Stripe-Signature header against your endpoint secret, writes each event into a Stripe Event Log doctype for idempotency and replay, and dispatches handlers through frappe.enqueue so a slow downstream never times out Stripe's delivery. hooks.py doc events keep ERPNext-initiated actions (a new Sales Invoice, a cancelled Subscription) pushing outward to Stripe, while scheduler events run dunning sweeps, retry orphaned reconciliations, and re-poll any events Stripe couldn't deliver. For retail and hybrid businesses we add card-present support: registering Stripe Terminal readers as a doctype, minting connection tokens server-side, and settling PaymentIntents captured at the reader (or through the ERPNext POS) straight into a Payment Entry. Role profiles and doctype permissions keep the API keys and event logs restricted to Billing and System Manager roles, and client scripts surface Stripe status inline on the Customer, Subscription and Sales Invoice forms.
Because this is build-to-order, nothing ships as a blind download. We start with a scoping call to confirm your billing model — plans, seats, trials, tax handling, single vs. multi-company, and which Stripe features (Billing, Terminal, Connect) are in play — then build against your ERPNext v15 or v16 bench. You get the installable app source for your version, a staging install for UAT, and a documented go-live with reconciliation verified against real Stripe test-mode events before we touch production. Typical delivery is one working week from confirmed scope.
What you get
- Installable Frappe app source code, pinned to your ERPNext v15 or v16 version, delivered as a git repository
- On-bench installation and configuration (API keys, webhook endpoint registration, account and currency mapping)
- Technical documentation: doctype schema, webhook event map, hooks and scheduler reference, and API key/secret handling
- End-user guide plus a live training session for your billing and finance team
- UAT on a staging bench with reconciliation validated against Stripe test-mode events, and a documented rollback plan
- A post-go-live support window for defect fixes and reconciliation tuning
- Git repository handover with full commit history and deployment notes
- Stripe Dashboard configuration guide (webhook endpoints, Terminal locations, retry settings) tailored to your account
Who this is for
SaaS Finance Lead on ERPNext
Runs recurring plans and seat-based billing in Stripe but needs MRR, renewals, proration and failed-payment recovery to land in ERPNext automatically instead of via monthly CSV reconciliation.
Subscription Operations Manager
Owns the plan catalog, trials, coupons and dunning policy; needs Stripe subscription state and retry sequences reflected on ERPNext Customer and Subscription records without manual updates.
ERPNext Systems Administrator
Responsible for the bench, upgrades and permissions; wants a clean Frappe app with proper doctypes, scheduler events, role profiles and a signature-verified, idempotent webhook rather than ad-hoc scripts.
Omnichannel Retail Controller
Sells both online and in-store and needs Stripe Terminal card-present payments to settle into the same ERPNext Payment Entry and reconciliation flow as online checkout.
How Stripe Billing & Subscriptions Plus Compares
| Criterion | ECOSIRE | Custom Build | Competitor | ERPNext Native |
|---|---|---|---|---|
| Recurring subscription sync | Bi-directional Stripe Subscription ↔ ERPNext Subscription with proration | Possible but you design and maintain the sync logic | Often checkout-only, subscriptions partial or absent | No Stripe Subscription concept — single payments only |
| Webhook reconciliation | Signature-verified, idempotent event log, enqueued handlers | Build signature check, idempotency and retries yourself | Basic handler, idempotency/replay usually missing | Redirect-based confirmation, no event loop |
| Card-present (Terminal/POS) | Reader doctype, server-side tokens, PaymentIntent capture | Significant extra build against Terminal SDK | Rarely offered | Not supported |
| Dunning & failed-payment retries | Scheduler-driven, Smart-Retry aware, configurable sequences | Hand-rolled scheduler and state tracking | Limited or manual | None |
| Version fit (v15/v16) | Pinned and tested to your exact bench | Yours to keep current | Generic build, drift on upgrades | Ships with core, feature-limited |
| Ownership & source | Full git repo handover, your version | You own it (and the cost of building it) | Vendor-locked, closed or licensed | Frappe core, not customizable to your model |
| Delivery & support | Scoped build, UAT, training, post-go-live window | Depends on internal capacity | Download + forum/ticket support | Community support only |
| Fees & multi-currency posting | Fees to configured account, captured at Stripe FX | Implement fee/FX posting yourself | Often gross-only, no fee accounting | Not handled |
Frequently Asked Questions about Stripe Billing & Subscriptions Plus
How long does delivery take?
This is a build-to-order app, not an instant download. After a scoping call to confirm your billing model, typical delivery is one working week from confirmed scope, including a staging UAT before go-live. Complex multi-company or Stripe Connect setups may extend that, and we confirm the timeline in writing before we start.
Which ERPNext versions are supported?
We build against Frappe/ERPNext v15 and v16. Because we build to order, the app is pinned and tested against your exact bench version, so you avoid the compatibility drift common with generic marketplace apps.
How does support and updates work after go-live?
Every build includes a post-go-live support window for defect fixes and reconciliation tuning. Beyond that we offer ongoing maintenance to track ERPNext version upgrades and Stripe API changes. You also receive the full git repository, so your own team can maintain it if you prefer.
Does it handle failed payments and dunning?
Yes. A scheduler event tracks failed invoices, respects Stripe Smart Retries, and drives configurable email/notification retry sequences. Subscription state (past_due, canceled) is reflected on the ERPNext Customer and Subscription records so your team acts on real Stripe status.
How is reconciliation kept accurate and non-duplicated?
The webhook receiver verifies Stripe's signature and writes every event to a `Stripe Event Log` doctype keyed for idempotency, so Stripe's at-least-once delivery never causes double-posting. Processing fees and net settlement are posted to configurable accounts, and a scheduler sweep re-polls any events Stripe could not deliver.
Do you support in-store card-present payments?
Yes. We support Stripe Terminal: readers are registered as a doctype, connection tokens are minted server-side, and PaymentIntents captured at the reader or through ERPNext POS settle into a Payment Entry in the same reconciliation flow as online checkout.
Do we need to share our Stripe secret keys with ECOSIRE?
No. We build and test against your Stripe test-mode keys or a sandbox you control. Live keys are entered by your team into a permission-restricted settings doctype, readable only by Billing and System Manager roles, and are never committed to the repository.
Related Modules

South Korea e-Tax Invoice (Hometax)
A build-to-order Frappe app that turns an ERPNext Sales Invoice into a compliant South Korean electronic tax invoice, transmitted through your Hometax or ASP channel with full correction and archiving workflow. ECOSIRE scopes, builds, installs and supports it for your ERPNext v15/v16 site.

Square Payments for ERPNext
A build-to-order Frappe app that connects Square to ERPNext, so online Web Payments checkout and in-person card-reader sales settle against the same Sales Invoices and Payment Entries. ECOSIRE scopes, builds, installs, and supports it — this is not an off-the-shelf marketplace download.

Stripe Payments Pro for ERPNext
A production-grade Stripe payment gateway for ERPNext with Payment Intents, SCA/3-D Secure 2, Apple Pay and Google Pay, subscription billing, and webhook-driven auto-reconciliation. ECOSIRE builds, installs, and supports it for your specific ERPNext deployment after a quotation.

Stripe Payments & Subscriptions for ERPNext
A build-to-order Frappe app that connects ERPNext to Stripe for hosted Checkout, Payment Links, recurring subscription billing, and webhook-driven reconciliation. ECOSIRE builds, installs, and supports it on your ERPNext v15/v16 site.
Stripe Billing & Subscriptions Plus
A build-to-order Frappe app that connects ERPNext to Stripe for checkout, recurring subscription sync, card-present Terminal payments, and webhook-driven reconciliation. ECOSIRE scopes, builds, installs and supports it on your bench.
- Whitelisted server method that creates Stripe Checkout Sessions and Payment Links, storing the returned session/payment_intent id on the ERPNext Payment Entry
- Signature-verified webhook receiver (validates the `Stripe-Signature` header against the endpoint secret) exposed through the Frappe REST layer
- `Stripe Event Log` doctype for idempotent event storage, replay, and audit — no double-posting on Stripe's at-least-once delivery
- Bi-directional Subscription sync: Stripe `Price`/`Product` objects mapped to ERPNext items, keeping the `Subscription` doctype and generated Sales Invoices aligned