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.