What is a UBL invoice, and why can you not read it?
UBL, the Universal Business Language, is an OASIS standard that expresses business documents as XML. When the European Union adopted EN 16931 as the semantic model for electronic invoices, UBL became one of its two permitted syntaxes. It is what the Peppol network carries, what Germany's XRechnung uses in its UBL flavour, and what the national systems of Denmark, Norway and the Netherlands are built on.
Open one in a text editor and you get several hundred lines of cac: and cbc: markup. The data is complete and precise, but it was written for an ERP, not for the person who has to approve the payment. This tool closes that gap: it takes the same file your Access Point delivered and prints it back as the invoice it describes.
What ends up on the PDF
Every business term the UBL document carries is placed where you would expect to find it on a paper invoice.
| UBL element | Where it appears |
|---|---|
cac:AccountingSupplierParty | Supplier name, address, VAT number and registration details |
cac:AccountingCustomerParty | Buyer name, address and VAT identifiers |
cbc:ID, cbc:IssueDate, cbc:DueDate | Invoice number and dates, in the document header |
cac:InvoiceLine, cac:CreditNoteLine | The line table: description, quantity, unit price and line total |
cac:TaxTotal, cac:TaxSubtotal | VAT summary, broken down by rate and category |
cac:AllowanceCharge | Discounts and charges, at document and line level |
cac:LegalMonetaryTotal | Net, VAT, gross, prepaid amount and amount due |
cac:PaymentMeans, cac:PaymentTerms | IBAN, payment reference and payment terms |
cac:Delivery | Delivery address and date, when the document carries them |
UBL profiles you can drop in
- Peppol BIS Billing 3.0, the profile exchanged across the Peppol network in Europe, Australia, New Zealand and Singapore
- XRechnung in its UBL syntax, the specification German public buyers require
- OIOUBL, the Danish national format, whose current release aligns with Peppol BIS
- EHF Billing, the Norwegian profile built on Peppol BIS
- NLCIUS and SI-UBL, used in the Netherlands
- Any other CIUS or extension of EN 16931 expressed as UBL 2.1
UBL to PDF, or UBL to Factur-X?
Two different needs both get called converting UBL to PDF, and only one of them is this page.
- You need to read the invoice. That is this tool: a plain PDF rendering of the UBL data, for checking, approving, printing and filing.
- You need a compliant hybrid invoice. Factur-X and ZUGFeRD are PDF/A-3 files with the invoice XML embedded, and that embedded XML is CII, not UBL. Convert the file with UBL to CII first, then package the result with CII to Factur-X.
Going the other way, from a CII invoice into the Peppol world, is what CII to UBL is for.
The XML stays the invoice
Under EN 16931 and the national mandates built on it, the structured file is the invoice. The PDF produced here is a faithful visualisation, not the legal original, so keep the UBL XML in your archive and treat the PDF as the copy you circulate. When you only need to check a figure, the in-browser invoice viewer shows the same data without downloading anything.