Skip to main content
Peppol EU E-Invoicing (BIS 3.0 / EN16931) — A build-to-order ERPNext app that generates, sends and receives Peppol BIS Billin — 1/1Illustrative preview

A build-to-order ERPNext app that generates, sends and receives Peppol BIS Billing 3.0 (UBL 2.1,

EN16931) e-invoices through your EU Access Point provider.

ECOSIRE scopes, builds, installs and supports it — this is not a one-click marketplace download.

What is Peppol EU E-Invoicing (BIS 3.0 / EN16931)?

A build-to-order ERPNext app that generates, sends and receives Peppol BIS Billing 3.0 (UBL 2.1, EN16931) e-invoices through your EU Access Point provider. ECOSIRE scopes, builds, installs and supports it — this is not a one-click marketplace download. Built to order by ECOSIRE for ERPNext v15, v16 — indicative price from $999.00 USD; request a quote for a scoped proposal.

Key Features

UBL 2.1 XML generation mapping the ERPNext `Sales Invoice` and credit notes to Peppol BIS Billing 3.0, compliant with the EN16931 semantic model
EN16931 / BIS 3.0 schematron validation runs before dispatch — malformed documents are blocked at source with human-readable error messages on the invoice form
Correct Peppol `Party` identification: participant IDs and scheme codes (0088 GLN, 0192 org number, VAT-based schemes) for seller and buyer
Outbound transmission through your existing or selected Peppol Access Point service provider's API — no lock-in to a single provider
Inbound e-document lane: scheduled polling parses received UBL back into ERPNext as draft `Purchase Invoice` records
Automatic matching of inbound documents against open `Purchase Order` / `Purchase Invoice` with exception queue for uncertain matches
Dedicated `Peppol Document` DocType storing generated XML, transmission ID, participant details and status for a full audit trail
Participant lookup and reachability validation exposed as a whitelisted Frappe REST method — verify a counterparty before you send
`hooks.py` doc events on `Sales Invoice` (`on_submit`, `on_cancel`) drive UBL build, dispatch and cancellation handling
`scheduler_events` cron jobs for inbound polling, retry of failed transmissions and status reconciliation
Document status tracking (queued, sent, delivered, rejected, error) with retry/resend action via client script on the invoice form
EN16931 tax-category, allowance/charge, rounding and mandated code-list handling built into the line-item mapping
Role profiles and permission rules scoping e-invoicing actions to finance staff, with document-level audit logging
Country-specific CIUS profile support (national extensions to BIS 3.0) configured for the member states in your scope, on Frappe/ERPNext v15 and v16

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

Most EU finance teams running ERPNext hit the same wall as ViDA and national e-invoicing mandates approach: ERPNext core produces a PDF Sales Invoice and a print format, but nothing that speaks Peppol. There is no native UBL 2.1 generation, no EN16931 semantic validation, no Access Point transport, and no inbound e-document lane. That leaves teams re-keying invoices into a government or provider portal, or running a spreadsheet-to-portal shuffle that breaks the moment volume, entity count or cross-border traffic grows. Once a tax authority or a large customer requires structured e-invoicing, a PDF is no longer a legal invoice — and ERPNext, out of the box, cannot produce the structured document the network expects.

ECOSIRE builds a proper Frappe app — its own module, DocTypes, roles and permissions — that lives inside your ERPNext bench rather than beside it. The core is a UBL 2.1 generator that maps the ERPNext Sales Invoice and credit notes to a compliant Peppol BIS Billing 3.0 document: seller and buyer Party blocks with the correct Peppol participant IDs and scheme identifiers (0088 GLN, 0192 org number, VAT-based schemes), InvoiceLine rows carrying EN16931 tax categories, allowances and charges, rounding and the mandated code lists. Every document is run through EN16931 / BIS 3.0 schematron validation before it is allowed to leave the system, so malformed documents are caught at source instead of being rejected days later by the receiver's Access Point.

Technically, generation and dispatch hook into the ERPNext document lifecycle. hooks.py doc events on Sales Invoice (on_submit, on_cancel) trigger UBL build and transmission; a dedicated Peppol Document DocType stores the generated XML, the transmission ID, participant details and a status field, giving finance a clean audit trail. Outbound transmission calls your chosen Peppol Access Point service provider's API — we integrate with the provider you already use or help you select one; ECOSIRE does not become the Access Point itself. Inbound documents are polled on a scheduler_events cron, parsed from UBL back into ERPNext, and matched against open Purchase Order / Purchase Invoice records with clear exception handling when a match is uncertain. Participant lookup and validation (SML/SMP-style resolution via the provider) is exposed as a whitelisted method so users can verify a counterparty is Peppol-reachable before sending. A client script surfaces send status, validation errors and a "resend" action directly on the invoice form, and role profiles keep e-invoicing actions scoped to finance staff.

Because this is build-to-order, nothing is a black box. After a short scoping call we confirm your legal entities, VAT scheme identifiers, Access Point provider, the document types in scope (invoice, credit note, self-billing) and any country-specific CIUS profiles you need. ECOSIRE then builds against your Frappe/ERPNext v15 or v16 bench, validates on a staging copy of your data through real UAT with your finance team, and installs to production with a rollback plan. You receive the full source, a git repository handover, technical and user documentation, a training session and a post-go-live support window — so the app is yours to run, extend and audit, not a subscription you rent.

What you get

  • Installable source code for your version of the app — a proper Frappe app (module, DocTypes, server scripts, client scripts, hooks)
  • Installation and configuration on your ERPNext v15/v16 bench, including Access Point provider credentials and participant setup
  • Technical documentation: DocType and field reference, hook and scheduler map, whitelisted API methods, and the UBL field mapping
  • End-user guide plus a live training session for your finance team on send, receive, matching and error handling
  • UAT on a staging copy of your data with a documented test plan, plus a production rollback plan
  • Post-go-live support window for defect fixes and questions after cutover
  • Git repository handover with full commit history so the code is yours to audit and extend
  • Configuration record of legal entities, VAT scheme identifiers and in-scope document types and CIUS profiles

Who this is for

EU Finance / Accounting Manager

Owns AR/AP in ERPNext and is accountable for meeting ViDA and national e-invoicing mandates. Needs outbound Peppol invoices and inbound receipt to work without manual portal re-keying, with a clear audit trail per document.

Group Controller (multi-entity)

Runs several EU legal entities on one ERPNext instance and needs each entity's correct Peppol participant ID, VAT scheme and country CIUS profile handled automatically, with consolidated status visibility across all entities.

ERPNext System Administrator / Frappe Developer

Maintains the bench and wants a real Frappe app — clean DocTypes, hooks and whitelisted methods — installed with source and git handover, not an opaque connector they cannot audit or extend on v15/v16.

Finance Operations / AP Clerk

Processes incoming invoices daily and needs received Peppol documents to land as matched draft Purchase Invoices, with a clear exception queue when a document does not match an open order.

How Peppol EU E-Invoicing (BIS 3.0 / EN16931) Compares

CriterionECOSIRECustom BuildCompetitorERPNext Native
Peppol / EN16931 outputPurpose-built UBL 2.1 BIS 3.0 with pre-dispatch schematron validationWhatever your team builds and validates itselfGeneric UBL export, validation depth variesNone — PDF and print format only
Access Point transportIntegrated with your chosen provider's API, no lock-inYou wire and maintain the integrationOften tied to one bundled providerNot available
Inbound receive + matchingScheduled poll, parse to draft Purchase Invoice, match with exception queueBuild the whole inbound lane yourselfFrequently send-only or basic importNot available
ERPNext integrationNative Frappe app: DocTypes, hooks, scheduler, whitelisted methodsDepends on your developers' patternsVaries; some patch core or bolt on looselyN/A
Code ownershipFull source + git repo handover, yours to extendYou own it but carry the full build costUsually closed / subscriptionN/A
Multi-entity / country CIUSPer-entity participant, VAT scheme and CIUS configured for youYou design and test the logicLimited or single-country focusNot available
Delivery modelBuild-to-order, one working week, UAT on staging + rollback planMonths of in-house build and QAInstant install but generic fitImmediate but does the job partially or not at all
Support & upgradesPost-go-live window + optional retainer, v15/v16 trackedYour team maintains it indefinitelyVendor SLA, roadmap not yours to steerCore support only, no Peppol

Frequently Asked Questions about Peppol EU E-Invoicing

How long does delivery take?

This is a build-to-order app, so there is no instant download. Typical delivery is one working week from confirmed scope. The timeline starts once we have agreed your legal entities, VAT scheme identifiers, Access Point provider, in-scope document types and any country CIUS profiles on a short scoping call. Complex multi-entity or multi-country setups sit at the longer end of that range.

Do you become our Peppol Access Point?

No. ECOSIRE builds the ERPNext-side app that generates, validates and exchanges UBL documents, and integrates with your Peppol Access Point service provider's API. You keep (or we help you choose) a certified Access Point — we do not run the network transport ourselves, which keeps you free to change provider later.

How does support and updates work after go-live?

Every build includes a post-go-live support window for defect fixes and questions. Because you receive the full source and a git repository, your own team can also maintain and extend the app. Beyond the initial window, we offer ongoing support and update retainers — including keeping the app aligned with new BIS 3.0 code-list releases and Frappe/ERPNext v15/v16 upgrades — quoted separately.

Which ERPNext versions are supported?

We build against Frappe/ERPNext v15 and v16. The app is a standard Frappe app installed on your bench, using supported extension points (DocTypes, `hooks.py` doc events, `scheduler_events`, whitelisted methods and client scripts) rather than core patches, so it survives ERPNext upgrades within the supported range.

Can it handle inbound invoices, not just sending?

Yes. A scheduled job polls your Access Point for received Peppol documents, parses the UBL back into ERPNext as draft `Purchase Invoice` records, and matches them against open `Purchase Order` / `Purchase Invoice` entries. Documents that cannot be matched confidently drop into an exception queue for a clerk to review, rather than being auto-posted.

Will it work for multiple legal entities and countries?

Yes. The app resolves the correct Peppol participant ID, VAT scheme identifier and country-specific CIUS profile per entity, so a single ERPNext instance can send compliant documents from several EU companies. The entities and countries in scope are agreed during scoping and configured during the build.

Do we own the code?

Yes. You receive installable source for your version and a git repository handover with full commit history. The app is yours to audit, run and extend — it is not a hosted subscription that stops working if you stop paying.

Request a quote

Peppol EU E-Invoicing

A build-to-order ERPNext app that generates, sends and receives Peppol BIS Billing 3.0 (UBL 2.1, EN16931) e-invoices through your EU Access Point provider. ECOSIRE scopes, builds, installs and supports it — this is not a one-click marketplace download.

  • UBL 2.1 XML generation mapping the ERPNext `Sales Invoice` and credit notes to Peppol BIS Billing 3.0, compliant with the EN16931 semantic model
  • EN16931 / BIS 3.0 schematron validation runs before dispatch — malformed documents are blocked at source with human-readable error messages on the invoice form
  • Correct Peppol `Party` identification: participant IDs and scheme codes (0088 GLN, 0192 org number, VAT-based schemes) for seller and buyer
  • Outbound transmission through your existing or selected Peppol Access Point service provider's API — no lock-in to a single provider

Request a Quotation

Tell us about your Peppol EU E-Invoicing 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.