How It Works Automation Blog Contact
EN FR DE
UBL Invoice Preview

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.

invoice-ubl.xml
<?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>
InvoiceXML
INVOICE PEP-2024-09182
SellerNordic Supply AB
Date10.06.2024
Net€ 6,720.00
VAT 25%€ 1,680.00
Total€ 8,400.00
PDF Preview
Supports UBL 2.1 and 2.2 Peppol BIS 3.0 compatible XRechnung UBL syntax supported No data retained
Try it now

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.

Background

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.

When to use this

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.

Under the hood

Three steps. One readable invoice.

1

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.

2

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.

3

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.

For developers

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
Terminal
$ curl -X POST https://api.invoicexml.com/v1/render/ubl/to/pdf \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -F "[email protected]"

# Returns: application/pdf

Frequently 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.

Ready to automate your invoices?

Start your 30-day free trial. No credit card required.

Get Started