How to Create a UBL Invoice Online
UBL (Universal Business Language) is the OASIS XML syntax the Peppol network runs on, and one of the two syntaxes the EN 16931 European standard accepts. The generator above builds a standalone UBL 2.1 invoice for you: fill in the form once, download valid XML, and send it to the customer who asked for UBL. Nothing to install, no PDF wrapper, and no account needed to start.
What is a UBL invoice?
A UBL invoice is a structured XML file with no visible page: an accounting system, an ERP or a Peppol access point reads it directly. It carries the same EN 16931 business terms as any compliant European invoice (seller and buyer, line items, VAT breakdown, totals, payment details), written in the UBL 2.1 syntax instead of UN/CEFACT CII.
Who asks for a UBL invoice?
- Customers on Peppol. Businesses and public buyers across Europe receive invoices through Peppol access points, and the Peppol BIS Billing 3.0 invoices they expect are almost always written in UBL.
- Belgian customers. Since 1 January 2026, invoices between Belgian VAT-registered businesses must be structured e-invoices, with Peppol as the default channel. A Belgian customer will usually ask for UBL.
- French customers, sometimes. UBL is one of the three formats of the French reform, alongside Factur-X and CII, so a UBL invoice is valid in France. Most French customers still expect Factur-X; UBL answers the partners who ask for it.
Peppol electronic addresses (Endpoint IDs)
To travel over Peppol, an invoice needs the electronic address of both parties: an identifier, plus the ISO 6523 scheme code that says what kind of identifier it is. The form has a field for each. The schemes you will meet most often:
| Scheme | Identifier | Country |
|---|---|---|
| 0208 | Enterprise number (KBO/BCE) | Belgium |
| 9925 | VAT number | Belgium |
| 0002 | SIREN | France |
| 0009 | SIRET | France |
| 0225 | Address on the French e-invoicing network (usually the SIREN) | France |
| 0106 | Chamber of Commerce number (KvK) | Netherlands |
| 0204 | Leitweg-ID | Germany |
| 0088 | GLN (Global Location Number) | International |
Not sure which one applies? Ask your customer for their Peppol ID. It is written as scheme:identifier, for example 0208:0123456789, and goes straight into the two fields.
Mandatory fields for an EN 16931 UBL invoice
The form checks each field as you type, but it helps to have these ready:
- Seller name, postal address, and VAT number or company registration number
- Buyer name and full postal address
- A unique invoice number, the issue date and the currency
- At least one line with quantity, net unit price, VAT category and rate
- The VAT breakdown and the invoice totals, which the form computes for you
- Payment terms, and the IBAN for a credit transfer
- For Peppol delivery, the Endpoint IDs of both parties
UBL, CII or Factur-X: which one should you create?
All three carry the same EN 16931 invoice data; only the packaging changes.
- Factur-X: a PDF anyone can read, with the CII XML inside. The default for French customers.
- CII: the raw XML behind Factur-X, for systems that ingest UN/CEFACT CII.
- UBL: the Peppol syntax, for Belgian, Dutch, Nordic and other Peppol customers. This page.
Because the data model is the same, you can move between syntaxes without losing anything: UBL to CII, CII to UBL.
Already have the invoice as a PDF?
There is no need to type it again. The PDF to UBL converter reads your PDF with AI extraction and opens this same form already filled in, so you only check and correct before downloading. Convert a PDF invoice to UBL →
Check it before you send it
Every file is checked against the EN 16931 business rules before download. Then, if you want to go further:
- Open the UBL in the viewer and read it like a paper invoice
- Render a PDF copy of the UBL for your records
- Run any UBL file through the validator
Want a reference first? The example library has a complete UBL invoice and a deliberately invalid twin to compare with. Download the UBL example →
Free to start, an account to go further
Creating and downloading a UBL invoice is free within the free allowance, with no signup. A Get Factur-X account raises the limits and adds the rest of the chain for businesses in France: send your invoices to your customers' Plateforme Agréée, receive your suppliers' invoices, and handle e-reporting, all from the browser and without an ERP. Create your free account →