A build-to-order ERPNext app that generates compliant German B2B e-invoices in XRechnung (UBL/CII) and ZUGFeRD PDF/A-3 hybrid formats, with optional Peppol Access Point delivery. ECOSIRE scopes, builds, installs, and supports it for your v15/v16 instance. 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 ERPNext app that generates compliant German B2B e-invoices in XRechnung (UBL/CII) and ZUGFeRD PDF/A-3 hybrid formats, with optional Peppol Access Point delivery. ECOSIRE scopes, builds, installs, and supports it for your v15/v16 instance.
अभी कोई भुगतान नहीं। यह हमारी टीम को एक कोटेशन अनुरोध भेजता है — हम कीमत और अगले चरणों के साथ ईमेल द्वारा संपर्क करेंगे।
German B2B e-invoicing is moving from optional to mandatory. Since January 2025 every domestic B2B recipient must be able to receive structured e-invoices, and issuing obligations phase in through 2027-2028 based on company turnover. ERPNext core prints a clean PDF and can email it, but a human-readable PDF is not a structured e-invoice — it carries no embedded XML, no EN 16931 semantic model, no BT/BG business terms, and nothing a Leitweg-ID-driven public buyer or a Peppol Access Point can machine-read. Teams running ERPNext in Germany hit this wall the moment a customer asks for XRechnung or a ZUGFeRD-compliant document, and the standard Sales Invoice print format simply cannot satisfy it.
EN 16931-conformant mapping of ERPNext `Sales Invoice` fields to standard BT/BG business terms
XRechnung generation in both UBL 2.1 and UN/CEFACT CII syntaxes, selectable per customer or profile
ZUGFeRD PDF/A-3 hybrid output with the CII XML embedded as a compliant file attachment
Dedicated `E-Invoice` DocType tracking format, profile, validation status, Leitweg-ID, and transmission log
`hooks.py` doc events on `Sales Invoice` submit that trigger generation without changing your posting flow
Leitweg-ID handling and routing metadata for public-sector (B2G) recipients
We build a proper Frappe app that plugs directly into your existing Sales Invoice flow. On submit, a hooks.py doc event (on_submit / on_update_after_submit) invokes a server-side generator that maps ERPNext fields — company tax IDs, customer address, Sales Taxes and Charges, item lines, UoM, and payment terms — into an EN 16931-conformant document. The app produces both target formats from one data model: XRechnung as pure structured XML in either UBL 2.1 or UN/CEFACT CII syntax, and ZUGFeRD as a PDF/A-3 file with the CII XML embedded as an attachment for hybrid human-plus-machine consumption. A dedicated E-Invoice DocType tracks each generated document, its profile (XRechnung / ZUGFeRD / EN 16931 comfort level), validation status, Leitweg-ID for public-sector buyers, and the transmission log.
Delivery is built to your channel. We wire optional Peppol dispatch through your chosen Access Point (or a certified partner), record the transmission ID and acknowledgements back onto the E-Invoice record, and expose whitelisted REST methods (@frappe.whitelist()) so upstream systems or the Frappe REST API can trigger generation and pull document status. Client scripts add validate/preview/download actions to the Sales Invoice form; role profiles and permission rules keep issuance and re-transmission scoped to finance roles; and a scheduler event handles ret/backoff on failed Peppol sends and can batch-validate open documents. We support ERPNext / Frappe v15 and v16 and pin the exact framework version at scoping.
Because this is build-to-order, nothing ships until we agree on scope. We start with a short scoping call, confirm your formats (XRechnung UBL vs CII, ZUGFeRD profile), your Peppol path, and your edge cases (reverse-charge, intra-community supply, credit notes), then build on a staging bench. Typical delivery is 2-4 weeks from confirmed scope. You receive the installable source, install and configuration on your environment, UAT on staging with a rollback plan, documentation, a training session, and a post-go-live support window. This is not an instant marketplace download — it is a scoped app we build, install, and stand behind.
Owns the German B2B mandate deadlines and needs ERPNext to issue and receive structured XRechnung/ZUGFeRD documents that pass KoSIT validation, with an audit trail per invoice.
Runs the v15/v16 instance and wants a clean Frappe app that hooks the existing Sales Invoice flow, not brittle print-format hacks, with permissions and a git repo they control.
Issues invoices daily and needs one-click generate, validate, and Peppol-send actions on the Sales Invoice form, plus clear status so failed transmissions are visible and retryable.
Oversees a German entity within a wider group and needs mandate-ready e-invoicing that fits reverse-charge and intra-community edge cases without leaving ERPNext.
Buy the license on ecosire.com and download the ERPNext Germany E-Invoicing (XRechnung / ZUGFeRD) 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 Germany E-Invoicing (XRechnung / ZUGFeRD) 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 |
|---|---|---|---|---|
| Fit to your ERPNext | Scoped to your v15/v16 instance, DocTypes, and tax rules | Fully bespoke but you carry all the design risk | Generic app, limited to how its author modeled it | |
| XRechnung + ZUGFeRD output | Both — UBL/CII XML and PDF/A-3 hybrid from one model | Whatever you have time to build and validate | Often one format or partial EN 16931 coverage | |
| EN 16931 / KoSIT validation | Built-in schema/Schematron validation with status writeback | You must source and wire the rulesets yourself | Varies; may lag rule updates | |
| Peppol delivery | Optional Access Point wiring with transmission logging | Build and maintain the integration alone | Sometimes bundled, often extra or absent | |
| Delivery model | Built, installed, and supported in 2-4 weeks from scope | Depends on your internal team's availability | Instant install but self-serve configuration | |
| Ownership | You get the git repo and installable source | You own it fully | Vendor-controlled, closed or licensed | |
| Mandate-change updates | Handled under support / update agreement | Your team tracks and implements every change | Depends on vendor roadmap and pricing | |
| Support | Post-go-live window plus optional ongoing support | Internal only | Ticket queue, quality varies |
This is build-to-order. After a scoping call to confirm formats, Peppol path, and edge cases, typical delivery is 2-4 weeks from confirmed scope. We build on a staging bench, run UAT with you, then cut over to production.
No. We build the app specifically for your ERPNext instance and business rules, install it, and support it. There is no instant-download package — you receive scoped source code and a git repository handover once your version is built.
Yes. From one EN 16931 data model we produce XRechnung as structured XML in UBL 2.1 or CII syntax, and ZUGFeRD as a PDF/A-3 hybrid with the CII XML embedded. You choose formats per customer or profile.
We support and test against Frappe / ERPNext v15 and v16, and pin the exact framework version at scoping. If you are on an older version we will advise on the upgrade path during the scoping call.
Peppol dispatch is optional and routed through your chosen Access Point (or a certified partner). The app records the transmission ID and acknowledgements back onto the `E-Invoice` record; a scheduler event retries failed sends with backoff.
Every engagement includes a post-go-live support window for defect fixes and configuration questions. Because you receive the git repository and installable source, your team can maintain it, and we offer ongoing support or mandate-change updates as a separate agreement.
No. Generation is triggered by a `hooks.py` doc event on `Sales Invoice` submit, so your posting and accounting flow is unchanged. The app adds an `E-Invoice` record, validation status, and form actions alongside your existing process.
A build-to-order ERPNext app that generates compliant German B2B e-invoices in XRechnung (UBL/CII) and ZUGFeRD PDF/A-3 hybrid formats, with optional Peppol Access Point delivery. ECOSIRE scopes, builds, installs, and supports it for your v15/v16 instance.