A build-to-order Frappe app that wires Stripe Tax rate calculation and Stripe hosted invoices directly into ERPNext, with tax registration tracking and automated payment reconciliation. ECOSIRE builds, installs, and supports it on your bench. Built to order by ECOSIRE for ERPNext v15, v16 — indicative price from $299.00 USD; request a quote for a scoped proposal.

A build-to-order Frappe app that wires Stripe Tax rate calculation and Stripe hosted invoices directly into ERPNext, with tax registration tracking and automated payment reconciliation. ECOSIRE builds, installs, and supports it on your bench.
No payment now. This sends a quote request to our team — we'll follow up by email with pricing and next steps.
Teams running ERPNext on Stripe usually hit the same wall: ERPNext calculates tax from static Sales Taxes and Charges Templates and Item Tax Templates, while your real tax liability depends on the customer's ship-to jurisdiction, product tax code, and whether you have a registration in that state or country. Keeping those templates aligned with US economic-nexus thresholds, EU/UK VAT, and Canadian GST/HST by hand is error-prone, and the tax Stripe actually charges at the payment layer can silently diverge from what the Sales Invoice recorded. The result is under- or over-collection, painful period-end true-ups, and reconciliation done in spreadsheets.
Server-side Stripe Tax API call on Sales Order and Sales Invoice `validate` doc events, writing calculated tax lines back into the document's Taxes and Charges table so ERPNext totals match Stripe
`Stripe Tax Settings` single DocType with environment toggle and API keys stored via Frappe's encrypted `Password` fieldtype (never in plaintext)
`Stripe Tax Registration` DocType tracking each registered jurisdiction, its Stripe registration id, and active flag so tax is applied only where you have an obligation
Item-to-Stripe-tax-code mapping (product tax codes) driven off ERPNext Item / Item Group, with a configurable default fallback
Address-based sourcing using the customer ship-to Address DocType (country, state, postal code) passed to the Stripe Tax calculation
Generate Stripe hosted invoices from submitted ERPNext Sales Invoices, storing `hosted_invoice_url` and PDF link back on the document
We build a proper Frappe app (its own module, DocTypes, and hooks.py) that makes Stripe Tax the source of truth for rates and pushes Stripe hosted invoicing into ERPNext's document flow. On Sales Order and Sales Invoice validate doc events, a server-side hook calls the Stripe Tax API with the customer's address, your registrations, and the mapped product tax code, then writes the returned tax lines back onto the document's tax table so the ERPNext total matches what Stripe will collect. A Stripe Tax Settings single DocType holds API keys (stored encrypted via Frappe's password fieldtype), environment toggle, and the Item-to-tax-code mapping; a Stripe Tax Registration DocType tracks each jurisdiction where you're registered, its Stripe registration id, and active status so calculations only apply tax where you have an obligation.
For invoicing, the app can generate a Stripe hosted invoice from a submitted ERPNext Sales Invoice, store the returned hosted_invoice_url and PDF link on the document, and expose them to the customer. Incoming Stripe webhooks (invoice.paid, invoice.payment_failed, charge.refunded) are received on a whitelisted, signature-verified endpoint (frappe.whitelist(allow_guest=True) with Stripe signature validation), which creates or matches the Payment Entry, reconciles it against the outstanding invoice, and updates status. A scheduler event (hooks.py scheduler_events) runs a daily backfill to catch any webhook that was missed and to flag Stripe-vs-ERPNext tax deltas for review. Client Scripts add the action buttons and status indicators on the ERPNext form; role-based permissions and a dedicated role profile keep tax settings and API keys restricted to finance administrators.
Because this is build-to-order, nothing is a black box. We start with a short scoping call to confirm your Stripe account structure, tax jurisdictions, ERPNext version (v15 or v16), and how your Items map to Stripe tax codes. We then build against your requirements, ship to a staging bench for UAT, and hand over the full Git repository, install and configuration steps, and documentation. Typical delivery is 2 to 4 weeks from confirmed scope, and you own the source code outright.
Owns period-end close and tax filing. Needs the tax ERPNext records to match what Stripe actually collected, with an audit trail per jurisdiction instead of manual template maintenance and spreadsheet true-ups.
Sells across US states and EU/UK with real nexus in several. Needs address-based automatic rates and Stripe hosted invoices tied to ERPNext Sales Invoices, without a developer touching core files for every rule change.
Wants a clean, hook-based Frappe app with its own DocTypes, whitelisted endpoints, and a Git repo they can read, extend, and maintain across v15/v16 upgrades — not a patched core or an opaque marketplace binary.
Cares that failed payments, refunds, and paid invoices reconcile automatically into Payment Entries so AR is accurate in real time and dunning is driven by trustworthy status.
Buy the license on ecosire.com and download the ERPNext Stripe Tax & Invoicing Suite app ZIP from your account dashboard.
Extract the ZIP into your bench's apps folder, or run `bench get-app` with the path to the extracted app.
Run `bench --site SITE_NAME install-app APP_NAME` followed by `bench migrate` to install ERPNext Stripe Tax & Invoicing Suite and apply its schema.
Open the ECOSIRE License settings on your site and activate your license key. Requires the free ecosire_connect and ecosire_license_client apps.
| Criterion | ECOSIRE | Custom Build | Competitor | Odoo Native |
|---|---|---|---|---|
| Tax rate source | Live Stripe Tax auto-rates by address and product code | Whatever you build, from scratch | Often fixed rate tables you maintain | |
| Registration / nexus awareness | `Stripe Tax Registration` DocType per jurisdiction | Must design and build the model yourself | Rarely models registrations | |
| Hosted invoicing | Stripe hosted invoice + PDF linked on the Sales Invoice | Build the integration yourself | Payment link only, if any | |
| Reconciliation | Auto Payment Entry match via signed webhooks | Hand-rolled webhook handling | Basic or manual matching | |
| Fit to your setup | Built to your jurisdictions, Items, and version | Fully bespoke but you carry all risk | Generic, configure around its assumptions | |
| Source & ownership | Full Git repo handover, you own it | You own it, but build the whole thing | Often closed or license-locked | |
| Upgrade safety (v15/v16) | Separate app via hooks, no core patches | Depends on discipline of your build | Varies; may lag versions | |
| Delivery & support | 2-4 weeks, UAT + training + support window | Your team's timeline and support burden | Self-serve docs, ticket support |
No. This is build-to-order. ECOSIRE builds the app against your confirmed scope, ERPNext version, and Stripe/tax setup, then installs it on your bench and supports it. There is no instant download — you receive the actual source and Git repo on handover.
Typically 2 to 4 weeks from confirmed scope. Timing depends on the number of jurisdictions, how your Items map to Stripe tax codes, and any custom invoicing rules. We agree the scope on the initial call before build starts.
Frappe/ERPNext v15 and v16. The app is packaged as a standard Frappe app installed via `bench get-app` and `bench install-app`, and we build against your specific version so hooks and DocTypes line up cleanly.
On Sales Order and Sales Invoice `validate`, a server-side hook calls Stripe Tax with the customer address, your registrations, and the Item tax code, then writes the returned tax lines into the document's tax table. A daily scheduler job also flags any Stripe-vs-ERPNext deltas for review.
In a `Stripe Tax Settings` single DocType using Frappe's encrypted password fieldtype, so keys are never held in plaintext. Access to settings, keys, and registrations is limited to a finance-admin role profile via DocType permissions.
You get a post-go-live support window for defect fixes and configuration changes. Because you receive the full Git repository, your team can also extend it. Ongoing support or version-upgrade retainers can be arranged separately.
No. It is a separate Frappe app using `hooks.py` doc events, scheduler events, whitelisted methods, and Client Scripts. It does not edit core files, which keeps your ERPNext upgrades clean.
A build-to-order Frappe app that wires Stripe Tax rate calculation and Stripe hosted invoices directly into ERPNext, with tax registration tracking and automated payment reconciliation. ECOSIRE builds, installs, and supports it on your bench.