UBL 2.1 / Peppol BIS 3.0
Pan-EU · cross-border & public sectorUBL (Universal Business Language) 2.1 is the XML syntax behind Peppol BIS Billing 3.0 — the closest thing the EU has to a single e-invoicing standard: one network, one rule set, used for cross-border trade and public-sector billing in most member states. CrateAPI generates, validates and converts UBL invoices on the official Peppol/EN 16931 rules — the same artefacts your Access Point checks against.
What it is
Peppol BIS Billing 3.0 is a CIUS (Core Invoice Usage Specification) built on EN 16931 UBL syntax and maintained by OpenPeppol. It defines the electronic address scheme, mandatory fields and business rules that let an invoice move through any Peppol Access Point without a bilateral agreement between sender and receiver.
Where it's mandatory
Public-sector (B2G) e-invoicing on Peppol is already live across most EU member states — many governments accept only Peppol BIS or an equivalent profile. Private-sector adoption is voluntary today but growing fast as it becomes the default cross-border option while individual countries roll out their own domestic mandates through 2030 (ViDA).
What we don't do. CrateAPI is not a Peppol Access Point — we don't operate on the network or transmit invoices through it. We generate and validate the document; getting it onto the network stays your Access Point's job (yours, or a provider's).
Try it
curl -X POST "$BASE/v1/generate/ubl?profile=peppol" \ -H "X-API-Key: $KEY" -H "Content-Type: application/json" \ -d @invoice.json -o invoice.xml
Relevant endpoints
| Endpoint | Notes |
|---|---|
POST /v1/generate/ubl?profile=peppol | Pre-validated against the Peppol BIS 3.0 rules before it's returned — an invalid invoice never leaves as a 200. |
POST /v1/validate/ubl?profile=peppolfree | Official Peppol BIS 3.0 + EN 16931 rules, every finding with its rule ID. |
POST /v1/convert/cii-to-ubl?profile=peppol | From CII, lossless-or-rejected — a 422 lists exactly what didn't survive. |
POST /v1/render/{html,pdf}?lang=en|de | Human-readable HTML or PDF of the invoice, official KoSIT stylesheets. |
Samples & docs
Download a validated UBL/Peppol sample invoice from our sample library, or read the full API reference.
FAQ
Is UBL the same thing as Peppol?
No — UBL is the XML syntax; Peppol BIS Billing 3.0 is a specific rule set (CIUS) built on it. CrateAPI's peppol profile generates UBL that already conforms to Peppol BIS.
Do you transmit my invoice through the Peppol network?
No. We produce a Peppol-conformant document; getting it onto the network is your Access Point's job.
Can I get the same invoice as CII instead?
Yes — POST /v1/convert/ubl-to-cii converts losslessly or tells you exactly what's unsupported. See our CII page.