How to Convert a PDF Invoice to ZUGFeRD XML
ZUGFeRD is a unique e-invoicing format that combines a human-readable PDF with machine-readable XML in a single file. If you already have PDF invoices and need to upgrade them to ZUGFeRD for compliance with Germany's e-invoicing requirements — or simply to enable automated processing while keeping the visual invoice intact — this guide shows you how.
This is for businesses trading in Germany, Austria, or Switzerland (the DACH region), companies preparing for Germany's B2B e-invoicing mandate, and anyone who wants to send invoices that both humans and software can read without separate files.
Step-by-Step: Convert a PDF Invoice to ZUGFeRD
-
Sign up or log in to InvoicePeppol
Create a free InvoicePeppol account with your email or Google login. Your free tier includes monthly conversions — no credit card needed.
-
Upload your PDF invoice
Go to the PDF converter and upload your invoice. Standard PDF invoices from any accounting software work — DATEV, Lexware, SAP, or even a simple Word-to-PDF export. Text-based PDFs produce the best extraction accuracy.
-
AI extracts your invoice data
InvoicePeppol's AI analyses your PDF and extracts all structured data: seller and buyer details, invoice number, issue and due dates, line items with descriptions, quantities, unit prices, VAT rates, payment information, and totals. The extraction typically completes in seconds.
-
Review the extracted data
Carefully review the structured form. Check seller and buyer names, addresses, and VAT numbers. Verify each line item — description, quantity, unit price, and VAT rate. Confirm that totals (net, VAT, gross) are correct. For ZUGFeRD, accurate data is essential because the embedded XML must match the visual PDF.
-
Select ZUGFeRD as the output format and choose a profile
Choose ZUGFeRD from the output format options. You'll also select a profile that determines how much structured data is included in the XML (see the profiles section below). For most business use cases, the EN 16931 (Comfort) profile is the right choice — it's fully compliant with the European e-invoicing standard.
-
Download your ZUGFeRD file
InvoicePeppol generates a PDF/A-3 file with the CII XML embedded as an attachment. The result is a single file that looks like a normal PDF when opened in any PDF viewer, but contains the full structured invoice data inside. Download it and send it to your trading partner, upload it to a portal, or import it into ERP software that supports ZUGFeRD.
Tips for ZUGFeRD Conversion
- Understand the PDF/A-3 requirement. ZUGFeRD files must use the PDF/A-3 standard (an archival PDF format that supports embedded files). InvoicePeppol handles this automatically — the output is always a valid PDF/A-3 with the XML attachment. Your original PDF does not need to be PDF/A; the conversion process takes care of the format transformation.
- Choose the right profile. ZUGFeRD offers multiple profiles (Minimum, Basic WL, Basic, EN 16931, Extended). For compliance with Germany's B2B e-invoicing mandate, you need at least the EN 16931 profile. The Minimum and Basic WL profiles contain too little data for full compliance. When in doubt, use EN 16931.
- The embedded XML must match the PDF. ZUGFeRD's power is that both the visual PDF and the embedded XML represent the same invoice. Review your extracted data carefully — any discrepancy between what the PDF shows and what the XML contains creates compliance issues and confuses recipients.
- ZUGFeRD and Factur-X are the same thing. ZUGFeRD 2.x and Factur-X are technically identical formats — they were harmonised in 2020. A ZUGFeRD 2.x file is a valid Factur-X file and vice versa. If a French trading partner asks for Factur-X, your ZUGFeRD file already qualifies.
ZUGFeRD Profiles Explained
ZUGFeRD defines several profiles that control how much structured data is included in the embedded XML. Each profile builds on the previous one:
- Minimum — contains only basic metadata (invoice number, date, total amount, seller/buyer names). Not sufficient for automated processing or EN 16931 compliance. Useful only as a transitional step.
- Basic WL (Without Lines) — adds payment details and tax breakdown, but no individual line items. Suitable for simple invoices where line-level detail isn't needed.
- Basic — includes line items with descriptions, quantities, and prices. A practical choice for straightforward B2B invoices.
- EN 16931 (Comfort) — the recommended profile. Fully compliant with the European e-invoicing standard EN 16931. This is the profile required for Germany's B2B mandate and accepted across the EU. It includes all fields defined in the European standard.
- Extended — adds fields beyond EN 16931 for complex scenarios like group billing, detailed delivery information, or additional trade terms. Use this only if your trading partner specifically requires it.
For Germany's e-invoicing mandate, you need at minimum the EN 16931 profile. InvoicePeppol defaults to this profile to ensure compliance.
What's in the Output File?
A ZUGFeRD file is a PDF/A-3 document with an embedded XML attachment named factur-x.xml (or zugferd-invoice.xml in older versions). The XML uses the UN/CEFACT Cross Industry Invoice (CII) syntax — a different XML standard than UBL, but equally compliant with EN 16931.
The embedded XML contains:
- Exchange document context — identifies the ZUGFeRD profile and specification version
- Header — invoice number, type code, issue date, and currency
- Seller (SellerTradeParty) — legal name, address, VAT ID, and contact details
- Buyer (BuyerTradeParty) — recipient name, address, and identifiers
- Payment terms — due date, payment method, IBAN/BIC, and any discount terms (Skonto)
- Tax summary — applicable VAT rates and calculated amounts
- Line items — product/service entries with quantities, unit prices, and tax categories
- Monetary summary — net total, tax total, and amount due
The visual PDF layer looks exactly like a normal invoice — recipients who don't have ZUGFeRD-capable software can simply open it as a regular PDF. Recipients with compatible ERP or accounting software can import the XML data automatically, eliminating manual data entry.
Next Steps
Learn more about ZUGFeRD and related formats:
- ZUGFeRD Format Guide — comprehensive technical overview of the ZUGFeRD specification, profiles, and validation
- Germany E-Invoicing Guide — full details on Germany's B2G and B2B e-invoicing mandates and how ZUGFeRD fits in
- Factur-X Format Guide — the French-German twin of ZUGFeRD, technically identical from version 2.x onwards
- XRechnung Format Guide — Germany's pure-XML alternative to ZUGFeRD, required for some B2G scenarios
- Peppol BIS 3.0 Guide — if you also need to send invoices across the Peppol network
Frequently Asked Questions
What's the difference between ZUGFeRD and a regular PDF invoice?
A regular PDF invoice is just an image — software can display it, but can't automatically extract the invoice data without OCR or AI. A ZUGFeRD invoice looks identical when you open it, but it contains an embedded XML file with all the structured invoice data (amounts, line items, tax details, etc.). This means accounting software can import ZUGFeRD invoices automatically, eliminating manual data entry and reducing errors.
Is ZUGFeRD accepted outside Germany?
Yes. ZUGFeRD 2.x is technically identical to Factur-X, the French e-invoicing format. It's accepted in France, Austria, Switzerland, and increasingly across the EU wherever EN 16931-compliant invoices are required. The EN 16931 profile ensures European-wide compatibility.
Which ZUGFeRD profile should I use?
For most business scenarios, use the EN 16931 (Comfort) profile. It's fully compliant with the European standard and meets Germany's B2B e-invoicing requirements. The Minimum and Basic WL profiles don't contain enough data for compliance. The Extended profile is only needed for complex invoicing scenarios with specific trading partner requirements.
Can my trading partner read a ZUGFeRD file if they don't have special software?
Absolutely. That's the beauty of ZUGFeRD's hybrid approach. The file opens as a normal PDF in any PDF viewer — Adobe Acrobat, Preview, Chrome, or any other reader. The recipient sees a perfectly formatted invoice. If they also have ZUGFeRD-capable accounting software (like DATEV, Lexware, SAP, or many others), it can additionally extract the embedded XML data for automated processing.
Does my original PDF need to be in PDF/A format?
No. InvoicePeppol handles the format conversion automatically. You can upload any standard PDF invoice, and the output ZUGFeRD file will be a valid PDF/A-3 document with the XML properly embedded. Your input PDF format doesn't matter — the conversion process normalises everything.
Ready to convert your invoices?
InvoicePeppol converts your PDF invoices to compliant e-invoicing XML in seconds. AI-powered extraction, manual review, and instant download.