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
- (none expected) — Plain EN 16931 has strictly fewer mandatory fields than XRechnung, so a valid XRechnung source always converts cleanly to core UBL.
Get an API key
Free tier includes unlimited validation and UBL 2.1 generation. This conversion requires the Pro plan or above.