A build-to-order Frappe app that turns a submitted ERPNext Sales Invoice into a Peppol BIS Billing 3.0 document and sends it over your certified access point. ECOSIRE builds, installs and supports it on your ERPNext v15 or v16 instance. Built to order by ECOSIRE for ERPNext v15, v16 — indicative price from $499.00 USD; request a quote for a scoped proposal.
Illustrative previewA build-to-order Frappe app that turns a submitted ERPNext Sales Invoice into a Peppol BIS Billing 3.0 document
and sends it over your certified access point.
ECOSIRE builds, installs and supports it on your ERPNext v15 or v16 instance.
No DIY setup — a working app, built, installed and supported by ECOSIRE.
Start with a one-time build price. We scope it with you at kickoff.
ECOSIRE builds, configures and installs it on your ERPNext.
You go live in about 2–4 weeks, with a post-launch support window.
Belgium's structured B2B e-invoicing mandate changes what "issuing an invoice" means. A PDF emailed to your customer is no longer the invoice for transactions in scope — the legal document is a structured UBL file exchanged over the Peppol network, addressed to the buyer's registered participant identifier, and matched against a schema plus the EN 16931 business rules and the Belgian CIUS. Finance teams running ERPNext today submit a Sales Invoice, print the standard format and email it. Nothing in that flow produces a Peppol BIS Billing 3.0 payload, resolves the customer's Peppol ID, talks to an access point, or records the transport acknowledgement that proves you delivered on time.
ERPNext core gives you an excellent accounting spine — Sales Invoice, Item Tax Templates, Tax Categories, Company and Customer address masters, the GL — but it stops at the network boundary. There is no Peppol participant lookup, no UBL serialisation of your tax lines, no place to hold a message-level rejection from the receiver so an AR clerk can act on it, and no immutable archive of the exact bytes that were transmitted. Teams fill that gap with a spreadsheet and a provider portal, which means the ERP and the legal record drift apart within a month, and month-end reconciliation becomes an exercise in trusting two systems that disagree.
What ECOSIRE builds is a proper Frappe app — its own module, DocTypes, hooks and fixtures — installed onto your bench alongside ERPNext, never a pile of patches inside erpnext. A Peppol Settings single DocType holds your access point endpoint, credentials (stored as password fields, not plain text), your own participant identifier scheme and value, and the switch between test and production. A Peppol Document DocType is created on Sales Invoice on_submit via a hooks.py doc event; it carries a link back to the invoice, the generated UBL as a file attachment, transmission state, the access point message id, and a child table of validation findings. Serialisation maps ERPNext master data onto EN 16931 semantics: Company and Customer addresses become AccountingSupplierParty and AccountingCustomerParty with the correct endpoint IDs, Item Tax Templates and Tax Categories resolve to Belgian VAT category codes and exemption reason texts, payment terms become PaymentMeans and PaymentTerms, and UOMs map to UN/ECE Rec 20. The same posting drives both outputs — the machine-readable UBL and the human-readable Print Format — so the copy your customer reads and the file the authority sees can never disagree.
Transport and recovery are where a build-to-order app earns its cost. A scheduler event polls your access point for message-level and business-level responses and writes each one back onto the Peppol Document, moving it through queued, sent, acknowledged or rejected. A rejection is not a dead end: the app records the reported rule id and message, blocks silent re-sends, and drives a correction workflow that guides the AR user to a Credit Note or an amended invoice, then links the replacement to the original so the audit chain stays intact. Whitelisted methods expose the same actions over the Frappe REST API for your own automation, permissions run through a dedicated role and role profile so only authorised finance users can transmit or retry, and every transmitted payload plus every response is retained as an attachment on the submitted invoice — the archive and audit trail an inspection actually asks for.
This is a build-to-order engagement, not a download. We start with a scoping call to confirm your ERPNext version (v15 or v16), your bench and hosting model, your chosen access point provider, the invoice types in scope, and your VAT edge cases — intra-community supplies, reverse charge, exemptions. We then build against your configuration, deliver onto a staging site for UAT with your real invoice shapes, and go live behind a documented rollback plan. Typical delivery is 2-4 weeks from confirmed scope. You receive the full source repository, so you own the code and can maintain it yourself if you ever choose to.
Owns invoicing compliance for the Belgian entity and needs every in-scope B2B invoice to leave ERPNext as a valid Peppol document, with visible proof of delivery and a clear path to correct a rejection before it becomes a late-filing problem.
Runs several EU entities on one ERPNext instance and needs Belgium handled inside the same system and chart of accounts as the rest, with a documented archive and audit trail that survives an inspection rather than a spreadsheet kept beside the ERP.
Maintains the Frappe bench and refuses patches inside `erpnext`. Wants a clean app with its own module, migration-safe fixtures, whitelisted API methods, and source in a repository the team can read, upgrade and take over.
Prepares VAT returns for the client and needs the ERPNext record, the transmitted UBL and the access point response to reconcile to one another with no manual re-keying between a provider portal and the ledger.
| Criterion | ECOSIRE | Custom Build | Competitor | ERPNext Native |
|---|---|---|---|---|
| Peppol BIS 3.0 UBL generation | Generated from the submitted Sales Invoice, mapped from your real master data and Belgian CIUS rules | Achievable, but the EN 16931 and CIUS mapping is the bulk of the effort and is routinely underestimated | Often a generic EU template with Belgian specifics left to the buyer to configure | Not present — ERPNext produces a Print Format, not a structured UBL document |
| Tax mapping from ERP master data | Item Tax Templates and Tax Categories mapped to VAT category codes and exemption texts, validated against your own invoices | Hand-coded per edge case; intra-community supply and reverse charge are where in-house builds stall | Usually a fixed mapping table you must bend your chart of accounts to fit | Tax masters exist but carry no EN 16931 category semantics |
| Rejection handling | Rule id and message captured, re-sends guarded, correction workflow links the replacement to the original | Commonly deferred to phase two and never built; rejections end up in an inbox | Status flag shown, remediation left to the user in the provider portal | No concept of a transport response at all |
| Archiving and audit trail | Transmitted payload and every response retained on the submitted document with the Frappe version trail | Depends entirely on the developer's discipline and rarely survives handover | Often kept in the provider's portal — outside ERPNext and outside your backups | Standard document versioning only; there is no payload or response to archive |
| Fit to your ERPNext instance | Built and pinned to your version, bench and customisations after a scoping call | Perfect fit by definition, at full in-house cost and timeline | Fits the vendor's assumed configuration; customised instances need workarounds | Nothing to fit — the capability does not exist |
| Upgrade safety | Separate app, Custom Fields as fixtures, no core edits, so `bench update` stays routine | Risk depends on whether the team resisted patching core under deadline | Varies by vendor; some ship overrides that collide with other installed apps | Not applicable |
| Source code ownership | Full git repository handed over — maintain it yourself or with us | You own it, along with the entire maintenance burden | Typically licensed and closed; you depend on the vendor's roadmap | Open source, but does not include this functionality |
| Time to production | Typically 2-4 weeks from confirmed scope, including UAT on staging and a rollback plan | Months once discovery, EN 16931 rules, transport and correction flows are all counted | Fast when your setup matches the vendor's assumptions; slow when it does not | Never — the mandate cannot be met with core alone |
This is a build-to-order app, not an instant download. Typical delivery is 2-4 weeks from confirmed scope — that clock starts once we have agreed the invoice types in scope, your ERPNext version, your access point provider and your VAT edge cases on the scoping call. Complex multi-entity or heavily customised instances can run longer, and we tell you that before you commit, not after.
No. Transmission onto the Peppol network goes through a certified access point provider, and you hold that contract directly. The app integrates with your chosen provider's API: we configure the endpoint and credentials in Peppol Settings, run test transmissions in their sandbox, and handle the responses they return. We are happy to help you shortlist providers during scoping.
Frappe/ERPNext v15 and v16. We pin the build to the exact version and bench layout of your instance at scoping, because DocType and API details differ between majors. If you are mid-upgrade, say so at scoping and we will target the version you will be on at go-live.
You get a post-go-live support window, agreed in writing at scoping, covering defects in the delivered scope. Beyond that we offer an optional maintenance arrangement for regulatory change — Peppol BIS releases, CIUS revisions and ERPNext major upgrades. Because you receive the full git repository, your own team can also maintain the code independently; you are never locked to us.
No. It ships as a separate Frappe app with its own module, installed alongside ERPNext on your bench. Extensions to Sales Invoice and Customer are Custom Fields delivered as fixtures, and behaviour attaches through `hooks.py` doc events, scheduler events and client scripts. Your `erpnext` app stays untouched, so a standard `bench update` remains a normal operation.
The rejection is recorded on the Peppol Document with the reported rule id and message, the state moves to rejected, and blind re-sends are blocked. The correction workflow then guides the AR user to the right remedy — a Credit Note or an amended invoice — and links the replacement back to the rejected original so the audit chain stays complete and reconcilable.
Yes. Generate, transmit, poll status and fetch payload are exposed as whitelisted methods over the Frappe REST API, so an external system or a scheduled job can drive the flow with the same permission checks and the same duplicate-send guards as the desk UI.

A build-to-order 2Checkout (Verifone) payment integration for ERPNext, giving global digital-goods sellers card acceptance, 45+ local payment methods, multi-currency checkout, and reconciled invoices. ECOSIRE scopes, builds, installs, and supports it on your ERPNext v15/v16 instance.

A build-to-order ERPNext application for anonymous 360-degree reviews — configurable peer, manager, report and self rater groups, weighted competency scoring, and aggregated gap-analysis and heatmap reports. ECOSIRE scopes, builds, installs and supports it on your Frappe/ERPNext v15/v16 instance.

A build-to-order ERPNext app that detects abandoned webshop and POS carts, then runs multi-channel WhatsApp, email, and SMS recovery and win-back sequences with dynamic cart content and coupon injection. ECOSIRE scopes, builds, installs, and supports it for your v15/v16 instance.

A build-to-order ERPNext app for running B2B account-based campaigns: define target-account lists, sequence outreach calls, auto-distribute them to agents, and score account engagement across every contact. ECOSIRE designs, builds, installs and supports it after you confirm scope.
A build-to-order Frappe app that turns a submitted ERPNext Sales Invoice into a Peppol BIS Billing 3.0 document and sends it over your certified access point. ECOSIRE builds, installs and supports it on your ERPNext v15 or v16 instance.