CRATEAPI

UBL 2.1 / Peppol BIS 3.0

Pan-EU · cross-border & public sector

UBL (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

EndpointNotes
POST /v1/generate/ubl?profile=peppolPre-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=peppolfreeOfficial Peppol BIS 3.0 + EN 16931 rules, every finding with its rule ID.
POST /v1/convert/cii-to-ubl?profile=peppolFrom CII, lossless-or-rejected — a 422 lists exactly what didn't survive.
POST /v1/render/{html,pdf}?lang=en|deHuman-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.