Document Automation Made Simple

How to Convert ZUGFeRD and Factur-X to Peppol BIS Billing 3.0 (UBL XML)

Generate ZUGFeRD or Factur-X but need to send over Peppol? Convert the embedded CII XML to Peppol BIS Billing 3.0 UBL - from a PDF or raw XML - with one API call.

Paulius, Developer

If you generate ZUGFeRD or Factur-X invoices, you already have EN 16931-compliant e-invoice data. But the moment you need to send that invoice over the Peppol network - to a Belgian, Dutch, or French B2B client - you hit a wall: Peppol does not want your PDF, and most Peppol Access Points do not accept the CII XML that ZUGFeRD and Factur-X carry. They expect Peppol BIS Billing 3.0 in UBL syntax.

The new ZUGFeRD to Peppol and Factur-X to Peppol converters close that gap. Send a PDF or the raw XML, get back ready-to-transmit Peppol BIS Billing 3.0 UBL.

ZUGFeRD, Factur-X and Peppol: the format-vs-network problem

These terms get mixed up constantly, so it is worth being precise - because the difference is exactly why a conversion is needed.

  • ZUGFeRD and Factur-X are formats. They are the same technical specification: a PDF/A-3 file with an EN 16931-compliant CII (Cross Industry Invoice) XML embedded inside it. ZUGFeRD is the German name, Factur-X is the French name. If you produce one, you produce the other.
  • Peppol is a network. It is how a structured invoice gets delivered from sender to receiver. The document that travels over it is Peppol BIS Billing 3.0, and in practice it is UBL (Universal Business Language) XML.

There is a third term you will see alongside these: XRechnung, Germany's pure-UBL e-invoice format with no PDF wrapper. So the lineup is ZUGFeRD/Factur-X (hybrid PDF + CII), XRechnung (standalone UBL), and Peppol (the network that carries UBL).

So a ZUGFeRD invoice and a Peppol BIS invoice can describe the exact same transaction under the same EN 16931 model - but in two different XML syntaxes (CII vs UBL) and two different containers (embedded in a PDF vs standalone). To put a ZUGFeRD or Factur-X invoice on Peppol, the embedded CII payload has to be mapped to UBL. In short, this is a CII to UBL conversion - and that is exactly what this tool performs.

What the converter does

The converter takes a ZUGFeRD 2.x or Factur-X invoice and outputs Peppol BIS Billing 3.0 UBL XML, ready to hand to your Peppol Access Point.

Two input options - PDF or XML:

  • PDF/A-3 file - the embedded invoice XML is extracted from the PDF attachment automatically, then converted. You do not need to unpack the PDF yourself.
  • Raw CII XML - if you already have the bare XML, send it directly.

Full EN 16931 mapping. Every field of the semantic model is carried over: invoice header, seller and buyer parties, delivery, payment means and terms, document- and line-level allowances and charges, VAT breakdown, monetary totals, and all invoice lines.

Credit notes supported. Documents with type code 381 are emitted as a UBL CreditNote, not an Invoice.

Because ZUGFeRD and Factur-X share one specification, both converters do the same mapping - pick the endpoint that matches the file you are sending.

Why this matters now: the 2026 e-invoicing mandates

E-invoicing rules across Europe are what is driving demand for this conversion right now:

  • Belgium - mandatory B2B e-invoicing via Peppol went live on 1 January 2026. Peppol BIS 3.0 UBL is the expected format. A German supplier sending ZUGFeRD to a Belgian client needs to convert.
  • France - the B2B mandate begins September 2026, built around Peppol-aligned platforms (PDPs). Factur-X is accepted on the French side, but cross-border and network delivery lean on Peppol BIS.
  • Germany - reception of structured e-invoices (ZUGFeRD or XRechnung) has been mandatory since January 2025, with sending obligations phasing in through 2027. Germany accepts Peppol delivery but does not require it - so converting to Peppol BIS is what you need when the receiver is on the network.
  • Netherlands - Peppol is used widely across public and private sector invoicing.

If you have a German or French invoicing pipeline producing ZUGFeRD or Factur-X, converting to Peppol BIS lets you reach these markets without rebuilding your invoice generation from scratch. Same EN 16931 data, correct syntax for the receiver.

How to convert

A single API call does it. Replace the endpoint with facturx/to/peppol for Factur-X input.

cURL

curl -X POST https://v2.convertapi.com/convert/zugferd/to/peppol \
  -H "Authorization: Bearer YOUR_API_TOKEN" \
  -F "File=@/path/to/invoice.pdf" \
  -F "StoreFile=true"

The File parameter accepts either a ZUGFeRD PDF/A-3 or the raw CII XML - the converter detects the input and extracts the embedded XML when a PDF is supplied. StoreFile=true returns a secure, time-limited download URL for the result.

C#

using ConvertApiDotNet;

var convertApi = new ConvertApi("YOUR_API_TOKEN");

var result = await convertApi.ConvertAsync("zugferd", "peppol",
    new ConvertApiFileParam("File", @"C:\invoices\invoice-12345.pdf")
);

await result.SaveFilesAsync(@"C:\invoices\peppol");

For Factur-X, change the conversion to ConvertAsync("facturx", "peppol", ...). Everything else stays the same.

Try it with example files

The converter takes either a PDF or the raw XML - you only need one. A real ZUGFeRD/Factur-X invoice usually arrives as a PDF/A-3 (the matching code sample above uses one), so that is the typical input. If you already have the bare CII XML, send that instead and skip the PDF.

Download the sample files to see what goes in and what comes out:

Drop either input into the ZUGFeRD to Peppol online sandbox - or the Factur-X to Peppol sandbox if that is your format - and compare the UBL output against the result file above.

Common use cases

  • Cross-border invoicing. Produce ZUGFeRD for German clients and Factur-X for French clients from one pipeline, then convert to Peppol BIS for Belgian and Dutch partners.
  • Connecting to a Peppol Access Point. Most Access Points expect UBL. Convert your existing CII-based invoices instead of re-implementing output in UBL.
  • ERP and accounting integration. Add one API call at the end of your invoice generation step to emit a Peppol-ready file automatically, based on the receiver's country.
  • Migration to structured e-invoicing. Reuse the EN 16931 data you already generate rather than building a second invoice format by hand.

Frequently asked questions

Is ZUGFeRD the same as Factur-X? Technically yes. They share one specification - a PDF/A-3 with embedded EN 16931 CII XML. ZUGFeRD is the German name, Factur-X is the French name. An invoice valid as one is valid as the other.

Can I send a ZUGFeRD or Factur-X invoice over Peppol directly? No. Peppol expects Peppol BIS Billing 3.0 in UBL syntax, and most Peppol Access Points do not accept the CII XML that ZUGFeRD and Factur-X carry. The CII payload has to be mapped to UBL first.

What is the difference between CII and UBL? Both are XML syntaxes for the same EN 16931 invoice model. ZUGFeRD and Factur-X use CII (Cross Industry Invoice), while Peppol uses UBL (Universal Business Language). You cannot mix them, which is why a conversion is required.

Do I need to extract the XML from the PDF first? No. When you send a ZUGFeRD or Factur-X PDF/A-3, the converter extracts the embedded invoice XML automatically before converting. You can also send the raw CII XML directly if you already have it.

Does the converter support credit notes? Yes. A document with type code 381 is emitted as a UBL CreditNote rather than an Invoice.

Is XRechnung the same as Peppol? No. XRechnung is Germany's pure-UBL e-invoice format (a document). Peppol is the network that delivers UBL invoices. They are often used together but are not the same thing.

Get started

The ZUGFeRD to Peppol and Factur-X to Peppol converters are available now. Map your existing German and French e-invoices to the Peppol network with a single request.

ZUGFeRD to Peppol - explore the converter at convertapi.com/zugferd-to-peppol or test it free in the online sandbox.

Factur-X to Peppol - explore the converter at convertapi.com/facturx-to-peppol or test it free in the online sandbox.


Related converters

Ready to Streamline Your File Conversions?