Dokmatiq DOKMATIQ

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

  1. Missing EndpointID — Peppol strictly requires both sender and recipient to be identified with a Peppol scheme
  2. CustomizationID / ProfileID swapped — both are mandatory but carry different values
  3. XRechnung instead of Peppol BIS — related but not identical; Peppol recipients often reject XRechnung-specific values
  4. 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.