A build-to-order Shopify app that auto-generates EN 16931 compliant hybrid e-invoices — ZUGFeRD for German orders and Factur-X for French orders — with machine-readable XML embedded inside every PDF. Designed, installed and supported by ECOSIRE. One-time license from $199.00 USD for Shopify (build-to-order) — includes 12 months of updates and support.

A build-to-order Shopify app that auto-generates EN 16931 compliant hybrid e-invoices — ZUGFeRD for German orders and Factur-X for French orders — with machine-readable XML embedded inside every PDF. Designed, installed and supported by ECOSIRE.
No payment now. This sends a quote request to our team — we'll follow up by email with pricing and next steps.
German and French merchants are moving into an era of mandatory structured e-invoicing. Germany's B2B mandate (built on ZUGFeRD / XRechnung) and France's Factur-X reform both require invoices that carry machine-readable XML, not just a human-readable PDF. Shopify's native order printer and most generic invoice apps emit a flat PDF — which does not satisfy EN 16931.
Listens to `orders/create` and `orders/paid` webhooks to generate an invoice automatically the moment an order is placed or paid
Produces a true **hybrid PDF/A-3** document with EN 16931 XML embedded inside the PDF (not a separate attachment)
**ZUGFeRD** profile for German billing addresses and **Factur-X** profile for French billing addresses, selected by country detection
Maps Shopify tax lines to correct EN 16931 VAT categories — standard, reduced, zero-rated, reverse-charge and intra-community supply
Reads full order context via the **Admin GraphQL API**: line items, discounts, shipping, tax breakdown, billing/shipping country and currency
Writes invoice number, XML hash and profile used to **order metafields** for audit trail and safe re-issue
This app is custom-built and installed for your store by ECOSIRE. It is not an instant App Store download — we build it against your exact tax setup, branding and fulfilment flow, then deploy it to your Shopify admin and support it after launch.
What it does. It listens to the orders/create and orders/paid webhooks, reads the order through the Admin GraphQL API (line items, tax lines, customer billing country, currency), and generates a hybrid PDF/A-3 invoice with EN 16931 XML embedded inside it. The billing country drives profile selection: German orders get a ZUGFeRD profile, French orders get a Factur-X profile. VAT rates and tax categories from Shopify's tax lines are mapped to the correct EN 16931 codes (standard, reduced, zero, reverse-charge, intra-community).
Where it stores state. Generated invoice numbers, the XML hash and the profile used are written to order metafields, so every invoice is auditable and re-issuable without duplicating numbers. The app authenticates via standard Shopify OAuth and respects your multi-location and multi-currency setup.
We deliver the working app, walk you through a real test order, and hand over documentation. Honest, specialist, and built for the mandate you actually face — not a one-size-fits-all template.
Sells to German business customers and needs ZUGFeRD-compliant structured invoices as the national B2B e-invoicing mandate phases in. Wants invoices generated automatically without changing their existing checkout or fulfilment.
Operates a Shopify store with French customers and must issue Factur-X hybrid invoices under France's e-invoicing reform. Needs correct VAT-category mapping and a reliable audit trail, not a generic PDF.
Ships to both Germany and France from one Shopify store and needs the right profile chosen automatically per order, with intra-community and reverse-charge VAT handled correctly in the structured XML.
Buy the license on ecosire.com and download the Germany ZUGFeRD / France Factur-X E-Invoicing module ZIP from your account dashboard.
Extract the ZIP into your Odoo custom addons folder on the server (or upload via Apps > Install from file on Odoo.sh / runbot).
Activate Developer Mode, open Apps, click Update Apps List, search for Germany ZUGFeRD / France Factur-X E-Invoicing, and press Install.
Open the new menu, paste your ECOSIRE license key, connect any external credentials (Shopify, Amazon, Stripe, etc.), and save.
Run the built-in connection test, sync your first 10 records, and schedule the recurring cron. Contact support if anything fails.
| Criterion | ECOSIRE | Custom Build | Competitor | Odoo Native |
|---|---|---|---|---|
| EN 16931 hybrid PDF/A-3 with embedded XML | ||||
| Automatic ZUGFeRD (DE) + Factur-X (FR) profile selection by country | ||||
| Built, installed and configured for your store (no DIY setup) | ||||
| VAT / tax-category mapping to EN 16931 codes from your Shopify tax lines | ||||
| Audit trail via order metafields and gap-free numbering | ||||
| Schematron validation before invoice is finalized | ||||
| Tailored to your exact seller identity and numbering scheme | ||||
| Instant self-service install from the App Store |
This is a build-to-order app, not an instant download. After purchase we schedule a short scoping call to confirm your VAT setup, seller identity and numbering scheme. Typical delivery is around 10–15 business days, depending on the complexity of your tax configuration. We then install the app to your Shopify admin, run validated test orders for a German and a French order, and hand over documentation.
Yes. Every build includes a defined post-launch support window for fixes and configuration adjustments. Because the EN 16931, ZUGFeRD and Factur-X specifications evolve as the mandates roll out, we offer a maintenance arrangement to keep your profiles aligned with the current schema and validation rules. We confirm the exact terms in writing before we begin.
It is a true hybrid document: a PDF/A-3 with EN 16931 structured XML embedded inside it. The XML is what tax authorities and B2B receivers parse; the PDF is the human-readable view. We validate the generated XML against the EN 16931 schematron rules before the invoice is finalized, so you get a conformant ZUGFeRD or Factur-X file, not a flat PDF.
The app reads the order's billing country via the Admin GraphQL API. German billing addresses are issued under a ZUGFeRD profile and French addresses under a Factur-X profile. Both are EN 16931 based, so the underlying structured data is consistent — the profile controls the country-specific presentation and identifiers. The selected profile is recorded in an order metafield for audit.
No. The app is read-only on orders and only writes to its own order metafields. It does not change your checkout, your Shopify tax settings, your multi-location inventory or your fulfilment flow. It uses your existing Shopify tax lines as the source of truth and maps them to EN 16931 categories — it never recalculates your taxes for you.
A build-to-order Shopify app that auto-generates EN 16931 compliant hybrid e-invoices — ZUGFeRD for German orders and Factur-X for French orders — with machine-readable XML embedded inside every PDF. Designed, installed and supported by ECOSIRE.