Available now · Pro plan or above

Convert UBL 2.1 to Factur-X (PDF/A-3)

France’s phased B2B e-invoicing mandate accepts Factur-X as one of its three permitted formats (alongside UBL and CII).

Deadline: September 2026 (large/mid-size companies begin receiving); September 2027 (all companies must issue).

Factur-X (France) and ZUGFeRD (Germany, same underlying format) are hybrid invoices: a normal, human-readable PDF with a complete EN 16931 CII XML embedded as an attachment, so one file works for a person opening it and a system parsing it.

InvoiceHub generates a genuinely PDF/A-3b conformant container — verified with veraPDF, the reference open-source PDF/A conformance checker, not eyeballed — with the correct output intent, XMP metadata (including the Factur-X extension schema most generators get subtly wrong), and the embedded XML validated against the same official EN 16931 CII Schematron used everywhere else. You can also embed into your own existing invoice PDF rather than use the generated default rendering.

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": "UBL_2.1", "to": "Factur-X", "document": "<source document>"}'

Real Factur-X output

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

%PDF-1.7
... (PDF/A-3 container; embedded attachment) ...
  factur-x.xml  (AFRelationship: Alternative)
    <rsm:CrossIndustryInvoice ...>
      <rsm:ExchangedDocumentContext>
        <ram:GuidelineSpecifiedDocumentContextParameter>
          <ram:ID>urn:cen.eu:en16931:2017</ram:ID>
        </ram:GuidelineSpecifiedDocumentContextParameter>
      </rsm:ExchangedDocumentContext>
      ...
    </rsm:CrossIndustryInvoice>
XMP: pdfaid:part=3, pdfaid:conformance=B, fx:ConformanceLevel=EN 16931

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