Extract UBL 2.1 from a Factur-X PDF
Peppol-network delivery expects UBL; a Factur-X PDF received from a French supplier needs its embedded data extracted and re-syntaxed to reach a Peppol-only receiver.
Deadline: Ongoing.
A Factur-X PDF already contains a full EN 16931 CII invoice as an attachment — extraction is a read operation, not a lossy re-derivation from the visual PDF layout (no OCR involved). InvoiceHub reads the embedded factur-x.xml attachment directly and converts it through the same canonical model as any other CII source.
If the uploaded PDF has no embedded invoice XML at all — a scanned paper invoice saved as PDF, for instance — there is nothing to extract, and InvoiceHub reports that clearly (DOC-06) rather than guessing from the rendered page.
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": "Factur-X", "to": "UBL_2.1", "document": "<source document>"}'Real UBL 2.1 output
Excerpt from actual, verified conversion output — not a mocked example.
<Invoice ...>
<cbc:ID>INV-2026-0142</cbc:ID>
<cbc:DocumentCurrencyCode>EUR</cbc:DocumentCurrencyCode>
<!-- extracted from factur-x.xml embedded in the source PDF -->
</Invoice>Common validation errors
- DOC-06 — No embedded XML found — the PDF isn’t a genuine Factur-X/ZUGFeRD hybrid (a plain scanned invoice PDF has no machine-readable data to extract).
Get an API key
Free tier includes unlimited validation and UBL 2.1 generation. This conversion requires the Pro plan or above.