Automation MCP Server Features Blog Pricing Contact
UBL 2.1 · Invoice + CreditNote · EN 16931 syntax binding

UBL 2.1 Invoice API:
six CIUS profiles,
one endpoint

UBL 2.1 is one syntax wearing many uniforms: Peppol BIS in Belgium and the Nordics, NLCIUS in the Netherlands, EHF in Norway, XRechnung in German procurement, PINT beyond Europe. InvoiceXML speaks all of them through one endpoint: you pick the profile when creating, we detect it when validating, and the rules applied are always the ones legally in force.

POST /v1/create/ubl
curl -X POST https://api.invoicexml.com/v1/create/ubl \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -d '{ "invoice": { ... }, "options": { "profile": "nlcius" } }'
200 OK · validated before delivery
{
  "valid": true,
  "data": {
    "profile": "nlcius",
    "customizationId": "urn:cen.eu:en16931:2017#compliant#
      urn:fdc:nen.nl:nlcius:v1.0"
  }
}
Profile matrix

Six profiles. One endpoint. Zero guesswork.

Set options.profile when creating; validation reads the CustomizationID and picks the rule set itself. The identifier stamped into the XML is always exactly the rule set the document survived.

Profile Slug Where it rules What we run
Peppol BIS Billing 3.0 peppol-bis-3Default The Peppol network: Belgium B2B, Nordics, cross-border EU EN 16931 + Peppol BIS 3.0.20, the same checks your access point runs
EN 16931 en16931 Plain European core, no network overlay CEN artifacts 1.3.16
NLCIUS nlcius Netherlands, public sector and Peppol NL SI-UBL 2.0.3.12 from the Dutch Peppol Authority
EHF Billing 3.0 ehf Norway Peppol rules incl. the Norwegian NO-R set, as EHF specifies
XRechnung 3.0 xrechnung German B2G in UBL syntax EN 16931 + KoSIT Schematron 2.5.0, Leitweg-ID included
Peppol PINT pint Peppol International: AU/NZ, Singapore, Japan, Malaysia Official PINT Billing 1.1.2 rules
Invoice and CreditNote document types supported across all profiles, per the OASIS UBL 2.1 standard. Unknown CustomizationIDs never hard-fail: they validate against the EN 16931 base rules with an explicit PROFILE-DETECTION notice.
Always current

The rules change twice a year. Your integration doesn't.

OpenPeppol ships rule releases every spring and autumn, each with a mandatory date (see the official Peppol BIS release notes). The Dutch Peppol Authority refreshes SI-UBL on the same calendar, CEN patches the EN 16931 artifacts, and KoSIT revs XRechnung annually. Every one of those updates lands here on its legal effective date, server-side.

Read the versioning policy and the exact artifact versions running now
Next scheduled update
17 August 2026

The Peppol May 2026 release and SI-UBL 2.0.3.13 both become mandatory on this date, and will be live that day.

peppol-bis-3 nlcius Scheduled
Validation response

Findings that say which rulebook

Every finding carries a layer field, plus the EN 16931 BT codes, the JSON field path to highlight in your form, and the raw Schematron rule for your logs.

layer: xsdStructure. The document is well-formed UBL.
layer: en16931The European semantic core every profile shares.
layer: ciusThe profile overlay: Peppol, NLCIUS, XRechnung and the rest.

"Passes EN 16931 but dies at the access point" is a debugging genre we retired.

422 · 1 finding
{
  "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-R010",
      "layer": "cius",
      "message": "Peppol BIS requires a buyer
        electronic address. Add the buyer's
        electronic address (a buyer VAT
        identifier is used as a fallback), or
        use the plain en16931 profile if the
        invoice is not meant for Peppol.",
      "btCodes": ["BT-49"],
      "fields": ["buyer.electronicAddress"]
    }
  ]
}
Coverage

Where UBL is mandatory

The same EN 16931 core, enforced country by country. Pick the profile; the local rule set comes with it.

Belgium
B2B over Peppol since January 2026
peppol-bis-3
Netherlands
NLCIUS for the public sector
nlcius
Norway
EHF Billing 3.0
ehf
Denmark · Finland · Sweden
Peppol BIS across the Nordics
peppol-bis-3
Germany
XRechnung accepts UBL syntax
xrechnung
Australia & New Zealand
Peppol PINT billing
pint
Singapore · Malaysia
Peppol PINT billing
pint
Japan
Peppol PINT billing
pint

European public-sector e-invoicing runs on Directive 2014/55/EU; the B2B mandates now arriving country by country build on the same EN 16931 core. See the Mandate Map for the full timeline.

FAQ

Questions teams ask before they build

01Which UBL version does the API use?
UBL 2.1, the version EN 16931 binds to and every European CIUS builds on, covering both Invoice and CreditNote document types.
02What's the difference between UBL and Peppol?
UBL is the XML syntax; Peppol is a delivery network with its own rule overlay (BIS Billing 3.0) on top of EN 16931 and UBL. We create network-ready BIS documents by default, and the dedicated Peppol page covers the network side in depth.
03Do I need different endpoints for NLCIUS or EHF?
No. One create endpoint with options.profile, one validate endpoint with automatic detection. Each profile gets its authority's official rule set.
04What happens if I omit the profile?
You get Peppol BIS Billing 3.0, the broadest interoperable choice: stamped and validated. If your invoice never touches Peppol, set profile en16931 and the network-only requirements (like electronic addresses) don't apply.
05Can you validate UBL files we receive from suppliers?
Yes, that's what detection is for: whatever profile the sender declared, the matching rules run and the response names them in data.profile. Unknown profiles fall back to the EN 16931 core with an explicit notice instead of a false rejection.
06How current are the validation rules?
Current as of their legal effective dates: Peppol BIS 3.0.20, EN 16931 artifacts 1.3.16, SI-UBL 2.0.3.12, PINT 1.1.2, KoSIT XRechnung Schematron 2.5.0. The versioning page lists them publicly.
Start free today

Ready to automate your invoices?

Validate, convert and embed compliant e-invoices through one API. Start your 30-day free trial. No credit card required.

GDPR Compliant No credit card required Setup in minutes
Peppol UBL
Factur-X
EN 16931
142 / 142 passed
Compliant
PDF/A-3 embedded