Skip to content
All work

Zugflow

Your billing stack knows the invoice. German law needs the XML.

Category
EU E-Invoicing Compliance
Status
Live
Platforms
Web, API
Stack
Next.js, React, Prisma, PostgreSQL, node-zugferd, pdf-lib, Stripe, Tailwind CSS

Zugflow is a headless e-invoicing engine that listens to Stripe and Shopify webhooks and compiles each paid invoice or order into a hybrid Factur-X/ZUGFeRD e-invoice: a human-readable PDF/A-3 with an EN 16931-conformant Cross Industry Invoice XML payload embedded inside it. It is built for SaaS and e-commerce businesses billing into Germany or France under the EU's e-invoicing mandates.

EU e-invoicing mandates require a machine-readable XML payload alongside the human-readable invoice, and most billing stacks only produce the latter. Zugflow listens for Stripe invoice.finalized and Shopify orders/paid webhooks, maps each payload to the UN/CEFACT Cross Industry Invoice model, and renders both halves of a hybrid Factur-X/ZUGFeRD document from one computed-totals source, so the PDF and the embedded XML can't disagree.

Money is computed in scaled integers rather than floats, so a thousand one-cent lines sum to exactly the expected total, and VAT is rounded per category per EN 16931. Every generated document is validated against the official Factur-X 1.07.3 XSD, and the PDF output is checked for veraPDF PDF/A-3b conformance.

A free, unmetered validation endpoint checks a payload against EN 16931 independently of document generation, so it can run safely on every CI build. Inbound webhook events are keyed on the provider's event ID, so a retried delivery returns the original document instead of minting a duplicate.

4 capabilities
Webhook-driven compilation
Point a Stripe or Shopify webhook at Zugflow; signatures are verified against the raw body before the payload is mapped to Cross Industry Invoice.
Hybrid PDF/A-3 output
Delivers a single file: a PDF/A-3 container with the Factur-X XML embedded as an alternative attachment, fetchable via API.
Free EN 16931 validator
A POST endpoint checks a payload against EN 16931 and returns exact errors, unmetered and independent of document-generation quota.
Conformance profile support
Supports MINIMUM, BASIC WL, BASIC, EN 16931 and EXTENDED profiles, with the legal caveats of each stated on the docs.

Tell us what is broken or what should exist.

Send the shape of the problem and any constraints you already know — budget, deadline, the stack you are stuck with. You will get a written reply from the engineer who would do the work, not a sales sequence.