Peppol
European network for standardised, cross-border exchange of business documents — primarily e-invoices — via accredited Access Points.
Also known as: Peppol BIS, Peppol BIS Billing 3.0, Peppol network, OpenPeppol
Short definition
Peppol (Pan-European Public Procurement OnLine) is a standardised, decentralised network for exchanging electronic business documents — primarily invoices, increasingly also orders and dispatch advice. It is governed by the non-profit association OpenPeppol AISBL in Brussels.
Participants send and receive documents through certified Access Points — similar to email, only far more rigorously standardised: a Peppol recipient knows in advance exactly which format is accepted and which fields must be populated.
The 4-corner model
Peppol operates on the 4-corner model:
Sender (Corner 1) → Sender Access Point (Corner 2)
→ Receiver Access Point (Corner 3)
→ Recipient (Corner 4)
The two Access Points (C2 and C3) negotiate format and routing. Sender and receiver don’t need to share the same provider — every Access Point can communicate with every other. The central SML/SMP (Service Metadata Locator / Publisher) registry resolves where a specific Peppol recipient can be reached.
Peppol BIS Billing 3.0
The binding invoice specification in the Peppol network is Peppol BIS Billing 3.0:
- XML syntax is UBL (almost exclusively — CII is theoretically possible, practically unused)
- Semantically a CIUS of EN 16931 — compatible with XRechnung and ZUGFeRD at the data level
- Additional business rules on top via the PEPPOL Schematron
A Peppol BIS 3.0 invoice is also a valid EN 16931 invoice; the reverse is not always true: Peppol requires extra fields like EndpointID with a Peppol scheme.
Peppol ID
Every Peppol participant has a Peppol ID (Participant Identifier) that makes routing unambiguous. Format: scheme:identifier, e.g. 0088:7300010000001 (GLN) or 9930:DE123456789 (German VAT ID).
For German B2G invoices, the Leitweg-ID comes in addition — the Peppol ID addresses the Access Point; the Leitweg-ID addresses the authority’s internal intake system.
Peppol in Germany
- The federal portal ZRE has been connected to Peppol since 2020 — B2G invoices can be submitted via that route
- The state-level OZG intake portals vary: some accept Peppol, others require direct ZRE/OZG-RE submission
- In B2B, Peppol is not mandatory — but an increasingly common transport channel, especially for cross-border invoices
Peppol with the Dokmatiq API
A Peppol BIS-compliant invoice is produced just like an XRechnung, using profile PEPPOL:
curl -X POST https://api.dokmatiq.com/v1/einvoice/peppol \
-H "Authorization: Bearer $DOKMATIQ_KEY" \
-H "Content-Type: application/json" \
-d '{
"customizationId": "urn:fdc:peppol.eu:2017:poacc:billing:3.0",
"profileId": "urn:fdc:peppol.eu:2017:poacc:billing:01:1.0",
"senderEndpoint": { "scheme": "9930", "id": "DE123456789" },
"receiverEndpoint": { "scheme": "9930", "id": "DE987654321" },
"invoice": { ... }
}'
The response is Peppol BIS 3.0-compliant UBL, validated against the Peppol Schematron. Actual delivery into the Peppol network still requires a certified Access Point — Dokmatiq produces the document; the Access Point transports it.
Common pitfalls
- Missing
EndpointID— Peppol strictly requires both sender and recipient to be identified with a Peppol scheme - CustomizationID / ProfileID swapped — both are mandatory but carry different values
- XRechnung instead of Peppol BIS — related but not identical; Peppol recipients often reject XRechnung-specific values
- No Access Point — without a certified delivery channel, even a perfect Peppol invoice remains an ordinary XML file
Ready to use it via API?
Get started for free. No credit card. 100 documents per month included.