Peppol — Pan-European Public Procurement Online — started life in 2008 as a B2G procurement standard. Today it's the dominant cross-border B2B invoicing network in Europe, and BIS Billing 3.0 is its current invoice profile, built on UBL 2.1 and conforming to the EU's mandatory European Standard EN 16931.
The 4-corner model
- Corner 1 — the seller's accounting system creates an invoice and hands it to their Access Point.
- Corner 2 — the seller's Access Point validates the invoice, signs it, and routes it through the Peppol network.
- Corner 3 — the buyer's Access Point receives, verifies, and forwards the invoice.
- Corner 4 — the buyer's accounting system imports the invoice and replies with a Message Level Response.
The architectural beauty is that corners 1 and 4 — the parties — never need to know about each other's IT systems. Both sides only need a relationship with their own AP.
What's in a BIS Billing 3.0 document
An EN 16931-conformant invoice is a UBL 2.1 XML file with a strict subset of allowed elements. Mandatory fields include the Customization ID (urn:cen.eu:en16931:2017), the Profile ID (urn:fdc:peppol.eu:2017:poacc:billing:3.0), Document Currency, supplier and customer parties with VAT scheme, line items with allowance/charge breakdowns, and tax subtotals per rate.
The hidden gotchas
- Endpoint IDs must use the right scheme. Use 0088 for GLN, 0184 for Danish CVR, 0192 for Norwegian organization numbers, 9930 for German VAT — picking the wrong scheme means invisible invoice routing.
- Decimal precision is enforced. UBL allows up to 4 decimals on amounts but EN 16931 caps it at 2 in many fields; APs reject invoices with overly precise totals.
- Time zones are silent killers. Issue dates are dates only (no time component). Use the seller's local calendar date, not UTC.
If you're picking an Access Point, three things matter: regulatory authorization in your home country, throughput SLAs (the network is asynchronous, but slow APs become hot spots during quarter-end), and the quality of their schematron-level validation. Cheap APs skip the latter and pass costs back to you in the form of returned invoices.