Your Peppol invoice arrived as XML. See what it actually says.
UBL (Universal Business Language) is the XML format used by Peppol — Europe's cross-border e-invoicing network — and by national standards including XRechnung and the Nordic PINT profile. It's designed for machines, not people. Upload your UBL invoice file and get a clean, readable PDF in seconds.
<?xml version="1.0" encoding="UTF-8"?>
<Invoice xmlns="urn:oasis:names:specification:ubl:schema:xsd:Invoice-2"
xmlns:cac="urn:oasis:names:specification:ubl:schema:xsd:CommonAggregateComponents-2"
xmlns:cbc="urn:oasis:names:specification:ubl:schema:xsd:CommonBasicComponents-2">
<cbc:ID>PEP-2024-09182</cbc:ID>
<cbc:IssueDate>2024-06-10</cbc:IssueDate>
<cbc:InvoiceTypeCode>380</cbc:InvoiceTypeCode>
<cbc:DocumentCurrencyCode>EUR</cbc:DocumentCurrencyCode>
<cac:AccountingSupplierParty>
<cac:Party>
<cac:PartyName>
<cbc:Name>Nordic Supply AB</cbc:Name>
</cac:PartyName>
</cac:Party>
</cac:AccountingSupplierParty>
Drop your UBL XML file below
Drag your UBL invoice .xml file here, or click to browse
.xml files only · Max 20 MB
Your file is processed in memory and deleted immediately. Nothing is stored.
What is UBL, and why is it everywhere in European e-invoicing?
The standard
UBL (Universal Business Language) is an open XML standard maintained by OASIS. UBL 2.1 is the version adopted by EN 16931 as one of two official syntax bindings for European e-invoicing. It uses a flat, element-based XML structure with extensive use of cac: (common aggregate component) and cbc: (common basic component) namespaces — readable in structure but verbose and dense in practice.
Where you encounter it
UBL is the dominant format for Peppol — the pan-European e-invoicing and procurement network used for cross-border B2B and B2G invoicing across the EU, UK, Norway, Singapore, Australia, and New Zealand. XRechnung also supports UBL as one of its two allowed syntax bindings. If you're receiving invoices via a Peppol access point, you are receiving UBL.
Why it's hard to read
UBL XML is verbose by design. A simple invoice can run to several hundred lines of XML. The namespace prefixes (cac:AccountingSupplierParty, cbc:StreetName) are machine-optimised, not human-readable. Finance teams receiving UBL invoices via Peppol frequently have no way to inspect the content without ERP software that renders it automatically.
Who needs to preview UBL invoice files
Peppol network participants
You receive supplier invoices via your Peppol access point as UBL XML files. Your accounts payable system processes them automatically, but occasionally you need to manually inspect a specific invoice — to resolve a dispute, verify a line item, or check payment terms. Preview it as PDF instantly.
Public sector buyers and suppliers
Government entities receiving invoices via Peppol, and suppliers submitting to public sector buyers in the Nordics, Netherlands, Belgium, or other Peppol-mandate countries, frequently need to verify invoice contents without specialist software. UBL preview fills that gap.
XRechnung recipients (UBL syntax)
XRechnung supports both CII and UBL syntax bindings. If your German public sector invoice was generated in UBL syntax, this tool renders it identically to the CII syntax variant — you don't need to know which syntax was used.
Developers building Peppol integrations
You're building or testing a Peppol access point integration, a Peppol-ready invoicing module, or a UBL generation pipeline. Visual verification of your UBL output is faster and more reliable than reading raw XML or running a command-line validator.
Three steps. One readable invoice.
Parse
Your UBL XML file is parsed against the OASIS UBL 2.1 schema. The root element is detected automatically — <Invoice> or <CreditNote> — and all cac: and cbc: elements are resolved. The Peppol BIS profile or national CIUS declaration is identified from the CustomizationID element.
Map
UBL's flat component structure is mapped to a standardised invoice layout. All EN 16931 Business Terms are identified regardless of which UBL profile or customisation was used — Peppol BIS 3.0, XRechnung UBL, PINT, or plain EN 16931 UBL. Credit notes are mapped to a clearly labelled credit note layout.
Render
A clean, professionally formatted PDF is generated. All standard invoice fields are rendered — party details, line items with descriptions and quantities, tax summary, payment instructions, and all reference fields (purchase order, buyer reference, project reference). The layout is consistent regardless of source profile.
The rendered PDF is for visual preview only and carries no legal standing. The original UBL XML file remains the authoritative invoice document for compliance, tax, and Peppol network purposes.
Render UBL invoices as PDF via REST API
The same rendering engine is available via API. Submit any UBL 2.1 invoice or credit note and receive a rendered PDF preview. Integrate into your Peppol access point, ERP, or document management system to give users a human-readable view of every invoice received.
API Documentation$ curl -X POST https://api.invoicexml.com/v1/render/ubl/to/pdf \ -H "Authorization: Bearer YOUR_API_KEY" \ -F "[email protected]" # Returns: application/pdf
More ways to work with UBL
Create UBL
Generate a valid UBL invoice from scratch using our online form.
Learn moreConvert PDF to UBL
Transform any PDF invoice into a UBL XML file ready for Peppol submission, generated by AI.
Learn moreValidate UBL
Check your UBL invoice against Peppol BIS 3.0 or EN 16931 Schematron rules before sending.
Learn moreExtract Invoice JSON
Parse any UBL file and extract all invoice fields as structured JSON for system integration.
Learn moreFrequently Asked Questions
What Peppol profiles are supported?
InvoiceXML supports Peppol BIS Billing 3.0, PINT (Peppol International), and national Peppol profiles including NLCIUS (Netherlands) and EHF (Norway). The profile is detected automatically from the CustomizationID field in the UBL file.
Does this work for UBL credit notes as well as invoices?
Yes. UBL defines both <Invoice> and <CreditNote> document types. Both are supported and rendered with appropriate labelling — credit note amounts are clearly indicated as such.
What is the difference between UBL and CII?
Both are XML syntax bindings for the EN 16931 semantic data model — meaning they express the same invoice data, just in different XML grammar. UBL uses a flat cac:/cbc: component structure and is dominant in Peppol and Nordic markets. CII uses a nested trade agreement/transaction structure and is dominant in ZUGFeRD and Factur-X. InvoiceXML supports both.
Can I preview XRechnung files encoded in UBL syntax?
Yes. XRechnung allows both UBL and CII syntax. If your XRechnung file uses UBL syntax (identifiable by <Invoice> as the root element and a urn:cen.eu:en16931:2017#compliant#urn:xoev-de:kosit:standard:xrechnung_3.0 CustomizationID), this tool renders it correctly.
My Peppol access point delivers UBL files automatically. Can I integrate this into my workflow?
Yes — use the API endpoint. You can pipe every incoming UBL file through the render endpoint and store the PDF alongside the XML in your document management system, giving users a readable copy without any manual steps.
Is there a file size limit?
20 MB maximum. UBL files in practice are typically 5–50 KB, so this limit is never a constraint in normal usage.