When you create an e-invoice in Latvia, it is “Peppol BIS Billing 3.0.” Behind that name are three layers that work together. Here is what each one means — without the jargon.
Three layers
- EN 16931 — the European semantic standard. It defines what each piece of data means: every value has a business-term id (BT-) and group (BG-) — for example BT-1 is the invoice number, BG-23 is the VAT breakdown.
- UBL 2.1 — the syntax: the actual XML format that writes those values down. UBL 2.1 is the international standard ISO/IEC 19845. (The UN/CEFACT CII syntax is also supported, but UBL is the primary one.)
- Peppol BIS Billing 3.0 — a “usage specification” (CIUS) of EN 16931. It adds no new fields; it tightens the rules — making some fields mandatory and adding validation checks.
An important consequence: Peppol BIS Billing 3.0 is a subset of EN 16931, so any valid Peppol invoice is automatically EN 16931-compliant. The reverse guarantees nothing — a generic EN 16931 invoice may fail Peppol's stricter checks.
The invoice's “fingerprint”: CustomizationID
Every BIS Billing 3.0 invoice carries one fixed identifier that tells the receiving system which rules to read it by:
urn:cen.eu:en16931:2017#compliant#urn:fdc:peppol.eu:2017:poacc:billing:3.0 This value is mandatory (Peppol rule PEPPOL-EN16931-R004) and, as you can see, it encodes
the reference to EN 16931:2017 right in the string. A separate ProfileID identifies the business process (for example, an invoice that allows a response).
What's inside
Simplified, a valid BIS Billing 3.0 invoice needs at least:
- the invoice number and issue date;
- seller and buyer, with name, address and an identifier (e.g. registration or VAT no.);
- lines with description, quantity, unit price and VAT rate;
- a VAT breakdown by rate, and totals (with and without VAT);
- payment details (due date, account).
Why it matters to you
Because the format is checked by a machine, a wrong or missing mandatory value means the invoice is rejected by the system itself — not by a person at the other end. So correctly filled fields are not a formality; they are the precondition for the invoice to be delivered at all.
fakts builds exactly this valid BIS Billing 3.0 XML: the right CustomizationID, every mandatory EN 16931 field, and a correct VAT breakdown, all filled in automatically from the data you already enter on the invoice.