Every document entering the Peppol network is checked at the gate: access points run the BIS Billing 3.0 rule set, and one missing electronic address sends an invoice straight back. InvoiceXML runs the same published checks, BIS 3.0.20, before the file ever leaves your stack. Invoices come out network-ready by default, received documents are matched to their rule set automatically, and new releases go live here on their mandatory dates.
curl -X POST https://api.invoicexml.com/v1/create/ubl \ -H "Authorization: Bearer YOUR_API_KEY" \ -d '{ "invoice": { ... } }'
{
"valid": true,
"data": {
"profile": "peppol-bis-3",
"customizationId": "urn:cen.eu:en16931:2017#compliant#
urn:fdc:peppol.eu:2017:poacc:billing:3.0"
}
}
BIS Billing 3.0 is the gate, but it is not alone: national siblings and the international PINT family ride the same rails. Create with options.profile, or send nothing and get BIS. On validation, the document's own CustomizationID decides which rulebook runs.
| Rule set | Slug | Where it applies | What we run |
|---|---|---|---|
| Peppol BIS Billing 3.0 | peppol-bis-3Default | The gate every access point enforces, EU-wide | BIS 3.0.20, the November 2025 release with the 2025-Q4 hotfix, enforced network-wide since 23 February 2026 |
| EHF Billing 3.0 | ehf | Norway's national flavor of BIS | The BIS artifact including the Norwegian NO-R rules, which trigger on Norwegian suppliers |
| NLCIUS | nlcius | Peppol NL and the Dutch public sector | SI-UBL 2.0.3.12, the Dutch Peppol Authority's own artifact |
| Peppol PINT | pint | The network beyond Europe: Australia, New Zealand, Singapore, Japan, Malaysia | PINT Billing 1.1.2, mandatory since 9 March 2026 |
| EN 16931 core | en16931 | The exit ramp: invoices that never touch the network | CEN artifacts 1.3.16 with no network overlay, so the electronic-address rules don't apply |
PROFILE-DETECTION warning, never a false rejection. The syntax underneath all of this is UBL 2.1, covered in depth on the UBL hub.
Each endpoint has a free in-browser companion. One key, one validation engine, the same BIS rules at every step of the pipeline.
Post your invoice JSON; what comes back is a validated Peppol BIS Billing 3.0 document.
Open toolRun the access-point checks before you send, or audit what suppliers send you.
Open toolLift CII documents into the UBL syntax the network speaks.
Open toolA readable PDF preview of any BIS document, for approvals and archives.
Open toolBT-mapped JSON out of every received network invoice, ready for your ERP.
Open toolLet AI agents draft, validate, and fix Peppol invoices over MCP.
Open toolEvery spring and fall OpenPeppol publishes a new BIS release, and each one carries the date the network starts enforcing it (tracked in the official release notes). Miss that date and invoices that were compliant yesterday start bouncing. We vendor the artifacts unmodified, regression-test them against OpenPeppol's own examples, and flip the switch server-side on the mandatory day. Your integration stays untouched.
See the versioning policy and the exact artifacts live right nowThe Peppol May 2026 release becomes mandatory across the network and goes live here the same day, alongside SI-UBL 2.0.3.13 for NLCIUS.
A raw network rejection is a rule ID with no bedside manner. Our findings translate it: a plain-language message, the business terms involved, and the JSON field path to highlight in your UI. The layer field names the rulebook that objected.
Fix what the layer names, or switch to the en16931 profile if the document was never meant for the network.
{
"valid": false,
"data": {
"profile": "peppol-bis-3",
"customizationId": "urn:cen.eu:en16931:2017#compliant#
urn:fdc:peppol.eu:2017:poacc:billing:3.0"
},
"errors": [
{
"rule": "PEPPOL-EN16931-R020",
"layer": "cius",
"message": "Peppol BIS requires a seller
electronic address. Add the seller's
electronic address (a seller contact
email is used as a fallback), or use
the plain en16931 profile if the
invoice is not meant for Peppol.",
"btCodes": ["BT-34"],
"fields": ["seller.electronicAddress"]
}
]
}
Country mandates increasingly name the network itself. Same endpoint, same default; the national rules ride along automatically.
Directive 2014/55/EU made EN 16931 the European baseline; the Peppol network is how a growing list of countries delivers on it. The Mandate Map tracks every timeline.
layer: cius when it is the overlay objecting.pint. Jurisdiction variants exist (AU and NZ share one; Singapore, Japan, and Malaysia have their own); the base PINT rules are what we run today.options.profile to en16931 and the network-only requirements drop away while the European core still applies. The CustomizationID stamped into the document then matches exactly what was validated.data.profile. Unknown identifiers get the EN 16931 base check plus a PROFILE-DETECTION warning instead of a hard fail.Validate, convert and embed compliant e-invoices through one API. Start your 30-day free trial. No credit card required.