Skip to main content
Stripe Billing & Subscriptions Plus — A build-to-order Frappe app that connects ERPNext to Stripe for checkout, recurring sub — 1/1Illustrative preview

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.

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

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
`invoice.paid` / `invoice.payment_failed` / `customer.subscription.updated` handlers that reconcile renewals, proration and plan changes into ERPNext automatically
Stripe Terminal / card-present support: reader registration doctype, server-side connection-token minting, and PaymentIntent capture into Payment Entries
Dunning engine — a scheduler event that tracks failed payments, honors Stripe Smart Retries, and drives configurable email/notification retry sequences
Automatic fee and net-settlement reconciliation: Stripe processing fees posted to a configurable expense account, multi-currency captured at Stripe's exchange rate
`hooks.py` doc events that push ERPNext-side actions (invoice creation, subscription cancellation, refunds) outward to Stripe
Scheduler events for reconciliation retries, orphaned-payment sweeps, and re-polling undelivered webhook events via the Stripe API
Refund and credit-note flow: partial/full refunds from ERPNext create Stripe refunds and post the matching Credit Note
Client scripts that surface live Stripe status, subscription state and last-payment result inline on Customer, Subscription and Sales Invoice forms
Role-profile and doctype-level permissions restricting API keys, secrets and event logs to Billing / System Manager roles
Configurable single-doctype settings for API keys, webhook secret, default accounts, currency mapping and feature toggles (Billing / Terminal / Connect)

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

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

CriterionECOSIRECustom BuildCompetitorERPNext Native
Recurring subscription syncBi-directional Stripe Subscription ↔ ERPNext Subscription with prorationPossible but you design and maintain the sync logicOften checkout-only, subscriptions partial or absentNo Stripe Subscription concept — single payments only
Webhook reconciliationSignature-verified, idempotent event log, enqueued handlersBuild signature check, idempotency and retries yourselfBasic handler, idempotency/replay usually missingRedirect-based confirmation, no event loop
Card-present (Terminal/POS)Reader doctype, server-side tokens, PaymentIntent captureSignificant extra build against Terminal SDKRarely offeredNot supported
Dunning & failed-payment retriesScheduler-driven, Smart-Retry aware, configurable sequencesHand-rolled scheduler and state trackingLimited or manualNone
Version fit (v15/v16)Pinned and tested to your exact benchYours to keep currentGeneric build, drift on upgradesShips with core, feature-limited
Ownership & sourceFull git repo handover, your versionYou own it (and the cost of building it)Vendor-locked, closed or licensedFrappe core, not customizable to your model
Delivery & supportScoped build, UAT, training, post-go-live windowDepends on internal capacityDownload + forum/ticket supportCommunity support only
Fees & multi-currency postingFees to configured account, captured at Stripe FXImplement fee/FX posting yourselfOften gross-only, no fee accountingNot 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.

Request a quote

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

Request a Quotation

Tell us about your Stripe Billing & Subscriptions Plus 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.