Automation MCP Server Features Blog Pricing Contact
ZUGFeRD 2.x · hybrid PDF + CII · reception mandatory since 2025

ZUGFeRD API for compliant hybrid invoices

Germany's B2B mandate made ZUGFeRD a workhorse: reception has been mandatory since January 2025, issuance follows in 2027 and 2028. But not every ZUGFeRD file is an e-invoice in the legal sense. MINIMUM and BASIC WL are booking aids, and most validators pass them without a word. InvoiceXML validates every profile against the official 1.0.8 artifacts and attaches a PROFILE-SCOPE warning when a document does not qualify. Your AP team learns it from the API, not from an auditor.

POST /v1/validate/zugferd · the supplier's PDF
curl -X POST https://api.invoicexml.com/v1/validate/zugferd \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -F "[email protected]"
200 OK · valid, with the legal fine print
{
  "valid": true,
  "data": {
    "profile": "minimum",
    "customizationId": "urn:factur-x.eu:1p0:minimum"
  },
  "warnings": [
    {
      "rule": "PROFILE-SCOPE",
      "layer": "cius",
      "message": "Factur-X/ZUGFeRD MINIMUM is a
        header-only profile and not a full
        EN 16931 e-invoice. Under the German
        B2B e-invoicing rules it does not
        qualify as an e-invoice."
    }
  ]
}
The profile ladder, honestly

Technically valid and legally counting are two columns

Every profile validates against its own schema and rule set from the official 1.0.8 package. But technical validity and legal standing are different questions, and a validator that answers only one of them is setting you up. We answer both.

Profile Technically valid? An e-invoice in German B2B? What you get from us
MINIMUM Yes, against its own 1.0.8 rule set No. A booking aid, per the BMF A pass plus a PROFILE-SCOPE warning, never silence
BASIC WL Yes, against its own rule set No. Header-only, same BMF carve-out The same honest advisory
BASIC Yes, schema and rules Yes, from here on up The BASIC-restricted XSD plus the BASIC rules
EN 16931 Yes, schema and rules Yes CEN artifacts 1.3.16; the profile our created hybrids declare
EXTENDED Yes, schema and rules Yes The EXTENDED XSD and rules; extra fields are never failed
ZUGFeRD 1.0 No. Retired No Reported clearly as schema-invalid, with the advice to re-issue as 2.x
The legal line is drawn by the BMF's e-invoicing FAQ: ZUGFeRD from version 2.0.1 qualifies, except MINIMUM and BASIC WL. Legacy zugferd.de (2p0) identifiers are accepted exactly as the official rules specify, and the XRechnung reference profile (an xrechnung.xml attachment) routes to the KoSIT rules. Technically, ZUGFeRD 2.x and Factur-X are one standard: the French half of the family lives on the Factur-X hub.
Mandate autopilot

2027 is Germany's deadline. It doesn't have to be yours.

Reception has been law since January 2025; the issuance phases land in 2027 and 2028. The format itself is stewarded by FeRD, and we vendor its official 1.0.8 validation package unmodified, per-profile XSD plus Schematron, regression-tested against FeRD's own sample sets. When artifacts or legal interpretations move, the engine here moves with them, server-side, on the effective date. You keep posting the same JSON.

See which artifact versions are live right now
Issuance phases
2027 → 2028

From 2027, businesses above EUR 800k turnover must issue e-invoices; from 2028, everyone. Hybrids created here already qualify: they declare the EN 16931 profile.

zugferd en16931 On track
Audit trail

A BT-by-BT report your auditors can keep

Validations return more than a verdict: a compliance report walks the document business term by business term, with the extracted value and a per-field result. AP triage, archive evidence, and import debugging all read from the same array.

report[]Each EN 16931 business term with its value and verdict.
PROFILE-SCOPEThe legal-standing advisory, attached to the verdict instead of buried in documentation.
layerEvery finding names its rulebook: xsd, en16931, or cius.

DATEV and SAP still run their own container-level import checks. What we certify is the XML business layer they consume.

200 OK · report included
{
  "valid": true,
  "data": {
    "profile": "en16931",
    "customizationId": "urn:cen.eu:en16931:2017"
  },
  "report": [
    { "code": "BT-1", "name": "Invoice number",
      "value": "RE-2026-0107", "isValid": true },
    { "code": "BT-31", "name": "Seller VAT identifier",
      "value": "DE811234567", "isValid": true },
    { "code": "BT-115", "name": "Amount due for payment",
      "value": "11900.00", "isValid": true }
  ]
  // one row per business term, the whole document
}
Coverage

Germany's mandate, phase by phase

ZUGFeRD's home turf is the German B2B mandate: the PDF keeps working for people while the law starts speaking XML.

Reception · since 2025
Every German business must accept e-invoices; hybrids included
zugferd
Issuance · from 2027
Mandatory above EUR 800k annual turnover
zugferd
Issuance · from 2028
No thresholds left: everyone issues
zugferd
France
The identical technology, named Factur-X, carries the 2026 reform
facturx

The qualifying formats are defined in the BMF FAQ, on the European floor of Directive 2014/55/EU. German B2G is XRechnung territory, and the wider rollout is mapped on the Mandate Map.

FAQ

What German AP and AR teams ask us

01What is the difference between ZUGFeRD and XRechnung?
Two German answers to different questions. XRechnung is pure XML for public-sector portals; ZUGFeRD is a hybrid PDF for B2B workflows where humans still open invoices. Both qualify under the German B2B rules (ZUGFeRD from BASIC upward), both come out of this API, and there is even a ZUGFeRD profile that carries XRechnung XML. The B2G side has its own hub.
02Why does my valid MINIMUM invoice carry a warning?
Because both statements are true: the file passes its own MINIMUM rules, and under the German B2B e-invoicing rules it does not qualify as an e-invoice, per the BMF. Most validators only tell you the first part. The PROFILE-SCOPE warning rides along with valid: true, so nothing breaks and nobody is misled.
03Do you still accept ZUGFeRD 1.0?
ZUGFeRD 1.0 (the CrossIndustryDocument root) is retired and reported as schema-invalid with a clear finding recommending a re-issue as 2.x. ZUGFeRD 2.x documents carrying legacy zugferd.de identifiers are a different matter: the official rules accept those, and so do we.
04Can I keep my own invoice layout?
Yes. Hand us your PDF via options.pdfUrl (an absolute URL, up to 20 MB) and we embed the validated XML into it. Otherwise we render our template in German, English, or French, with options.brandColor applied to headings and accents.
05Will DATEV or SAP import the hybrids you create?
We cannot speak for another product's import pipeline, and we do not pretend to: DATEV and SAP run their own container-level checks. What we certify is the layer they consume, validated XML with the EN 16931 profile declared, plus a BT-by-BT report that makes import problems quick to triage.
06What do I need to be ready for 2027 and 2028?
From 2027 businesses above EUR 800k turnover must issue e-invoices; from 2028 everyone must. Hybrids created here declare the EN 16931 profile, which qualifies, and validation flags supplier files that do not. The spec tracking is our job, not a line on your roadmap.
Start free today

Ready to automate your invoices?

Validate, convert and embed compliant e-invoices through one API. Start your 30-day free trial. No credit card required.

GDPR Compliant No credit card required Setup in minutes
Peppol UBL
Factur-X
EN 16931
142 / 142 passed
Compliant
PDF/A-3 embedded