Available now · Pro plan or above

Convert XRechnung 3.0 to plain UBL 2.1

Peppol-network delivery outside Germany’s public sector typically only requires core EN 16931, not the XRechnung profile.

Deadline: Ongoing.

Since XRechnung is EN 16931 core plus additional mandatory fields, going the other direction only ever removes constraints — a document that passed the stricter XRechnung ruleset always passes the plain EN 16931 UBL Schematron too.

This is useful when an invoice was generated for a German public-sector buyer but also needs to go out over the general Peppol network, where the receiver may not expect (or want) XRechnung-specific fields like the Leitweg-ID in BuyerReference.

Try it

curl -X POST https://api.invoicehub.dev/api/v1/convert \
  -H "Authorization: Bearer ih_live_xxx" \
  -H "Content-Type: application/json" \
  -d '{"from": "XRechnung_UBL", "to": "UBL_2.1", "document": "<source document>"}'

Real UBL 2.1 output

Excerpt from actual, verified conversion output — not a mocked example.

<Invoice ...>
  <cbc:CustomizationID>urn:cen.eu:en16931:2017</cbc:CustomizationID>
  <cbc:ID>INV-2026-0142</cbc:ID>
  <!-- BuyerReference, EndpointID, and Contact carry through if present on the source -->
</Invoice>

Common validation errors

Get an API key

Free tier includes unlimited validation and UBL 2.1 generation. This conversion requires the Pro plan or above.

Other conversions