Guides › Create a UBL invoice in 5 steps
Create a UBL invoice in 5 steps
Updated: 1 November 2026 · Klik&Shop
A UBL invoice is an XML file that accounting software can read automatically. A Peppol invoice must also pass the rules of EN 16931 and Peppol BIS Billing 3.0. Follow these steps to create one that passes first time.
1. Collect the mandatory data
- Invoice number and issue date (format YYYY-MM-DD).
- Buyer reference or order number: Peppol requires one of the two (rule PEPPOL-EN16931-R003). If your customer gave you none, ask for a reference or use, for example, a project name.
- Seller: name, address with country code, VAT number and, for Dutch suppliers, the KvK (or OIN) number.
- Buyer: name, address with country code and, for business customers, the VAT number. Check it first with the free VAT number check.
- Payment details: for a credit transfer your IBAN, plus a due date or payment terms.
2. Choose the electronic addresses (Peppol ID)
Both seller and buyer get an EndpointID with a scheme, for example 0106 + KvK number for the Netherlands or 0208 + enterprise number for Belgium. See What is Peppol?
3. Get lines and VAT right
Each invoice line has a description, quantity, unit (UN/ECE code, e.g. C62 for pieces or HUR for hours), price and VAT category:
S: standard rate (e.g. 21% or 9%)AE: reverse charge; with both parties' VAT numbers and an exemption reasonK: intra-community supplyE: exempt, with a reasonO: outside the scope of VAT
Unsure about reverse charge? Read EU B2B reverse charge.
4. Make the amounts add up
Almost all rejections are about arithmetic: line amount = quantity × price, the VAT breakdown per rate, and the totals. Round to 2 decimals and let software do the sums. Our web form and API calculate all totals and the VAT breakdown according to the EN 16931 rules.
5. Validate before sending
Check the XML file against the official rules (UBL schema, EN 16931 and Peppol BIS 3). You can do this for free in the validator, which runs entirely in your browser. Got an error code? Look it up in Peppol validation errors explained.
Manual or automated?
For a one-off invoice the web form is fastest: you get a validated UBL file straight away. If you create invoices from your own software or web shop, use the API: send simple JSON and get valid UBL back. Then send the file via your accounting software or Peppol Access Point, or upload it to your customer's portal.
FAQ
Can I create a UBL invoice in Word or Excel?
No, UBL is XML with a fixed structure and many calculation rules. Use software that exports UBL, or a generator such as our web form or API.
What is the difference between UBL and Peppol BIS 3?
UBL is the XML format. Peppol BIS Billing 3.0 is the rule set on top of UBL that defines which fields are mandatory and how to fill them.
Do I also need to send a PDF?
No; the UBL invoice contains all the data. A PDF can be embedded in the UBL as an attachment if your customer likes that.
Can I create a credit note in UBL?
Yes. A credit note is a separate UBL document type. For Dutch suppliers it must reference the original invoice (rule NL-R-001).
Create or check a Peppol e-invoice yourself
Create 2 invoices for free with the web form, validate without limits in your browser, or automate with the API (5 free a month).
Not tax or legal advice. This article gives general information based on public sources (as of 1 November 2026). Rules can change; check your own situation with the tax authority (Belastingdienst, Belgian FPS Finance at efactuur.belgium.be) or your accountant.