Germany e-invoicing mandate (2025–2028): the XRechnung & ZUGFeRD API for the document itself

Germany's B2B E-Rechnung obligation, introduced by the Wachstumschancengesetz, is already in force: since January 1, 2025 every business established in Germany must be able to receive a structured e-invoice, and the issuing obligation phases in through 2027–2028. The format behind it — EN 16931, carried as XRechnung or ZUGFeRD/Factur-X — is a semantic standard with hundreds of business rules. Slipstack turns that document into the same JSON call you already use for PDF invoices, and validates it against the official core rules before it leaves your system.

What Slipstack is — and is not. Slipstack generates and validates the e-invoice document (XRechnung CII/UBL or ZUGFeRD/Factur-X). Unlike France or Italy, Germany has no central platform or clearance step — invoices move directly between trading partners (by email, Peppol, EDI, or portal), and there is no government platform to register with. Slipstack does not transmit invoices or operate your inbox; it produces and checks the compliant file that you (or your ERP/Peppol access point) send and receive.

The timeline, plainly

  • January 1, 2025 — every business established in Germany must be able to receive and process structured EN 16931 e-invoices for domestic B2B transactions. There is no transition period for the receiving capability.
  • Through December 31, 2026 — a transition window for issuing: paper and other electronic formats (e.g. a plain PDF) may still be sent, with the recipient's agreement for non-structured formats.
  • January 1, 2027 — businesses with prior-year turnover above €800,000 must issue structured e-invoices for domestic B2B.
  • January 1, 2028 — the issuing obligation extends to all remaining domestic B2B businesses, and EDI procedures must conform to EN 16931.
  • Germany's model is decentralized — there is no PPF/SDI-style hub. Always confirm the live obligations with your tax advisor and the Bundesministerium der Finanzen — Slipstack tracks the document format, not your filing status.

Generate: one endpoint, the German formats

  • facturx-pdf — your invoice PDF with the CII XML embedded as factur-x.xml (Factur-X BASIC profile guideline). This is the same hybrid container as ZUGFeRD 2.x — human-readable and machine-readable in one file, the approach Germany and France share.
  • xrechnung-cii — standalone UN/CEFACT Cross-Industry Invoice XML, when your buyer or public-sector recipient wants pure structured XML (XRechnung) rather than the hybrid PDF.
// ZUGFeRD / Factur-X hybrid PDF (PDF + embedded CII XML) from plain JSON
const res = await fetch("https://slipstack.dev/api/v1/einvoice", {
  method: "POST",
  headers: {
    Authorization: `Bearer ${process.env.SLIPSTACK_KEY}`, // Pro plan
    "Content-Type": "application/json",
  },
  body: JSON.stringify({
    options: { format: "facturx-pdf" }, // or "xrechnung-cii" for standalone XML
    data: {
      from: {
        name: "Werkstatt Brandt GmbH",
        countryCode: "DE",              // required for e-invoices
        vatId: "DE123456789",           // required when taxRate > 0
        address: "Friedrichstraße 12",
        city: "Berlin", postalCode: "10117",
      },
      to: { name: "Nordlicht Handels AG", countryCode: "DE", vatId: "DE811569869" },
      number: "RE-2027-0042",
      date: "2027-01-04",
      dueDate: "2027-02-03",
      currency: "EUR",
      items: [{ description: "Beratungsleistung", quantity: 8, unitPrice: 120 }],
      taxRate: 19,
      paymentIban: "DE89370400440532013000",
      paymentReference: "RE-2027-0042",
    },
  }),
});

Validate before you send — free, no account

Whether you build the XML with Slipstack or with your own code, you can check it against the official EN 16931 core schematron (ConnectingEurope release v1.3.16) with the free EN 16931 / XRechnung core validator — paste or upload CII or UBL, up to 20 checks a day, no signup.

Scope, stated plainly: the validator checks the EN 16931 core rules (schematron v1.3.16). It does not check the KoSIT XRechnung CIUS or Peppol BIS rules — stricter supersets that German public-sector recipients may require — and it does not validate XSD structure. The ZUGFeRD/Factur-X hybrid PDF is labeled facturx-hybrid (beta): the embedded XML, attachment wiring and XMP are spec-correct, but the container is not a certified PDF/A-3 file. For strict conformance, use xrechnung-cii XML today.

Parse inbound invoices back to JSON

The 2025 receiving obligation means structured invoices will arrive whether or not you issue them yet. Slipstack's parse endpoint turns inbound XRechnung CII or UBL XML back into clean JSON on any paid plan — so your accounting code reads one shape regardless of which format a supplier sent. (Accepting the file into your system is your ERP's job; Slipstack reads the document once you have it.)

For agents: it's on the MCP server too

The Slipstack MCP server exposes create_einvoice_xml and parse_einvoice — try both without an account on the demo quota.

Selling into France too? See the France e-invoicing mandate guide — same formats, different timeline and a PDP transmission model.

Get the document right before the deadline

Generation on Pro and Scale. Parsing on every paid plan. Validation is free. Same key as your PDF API.