ZUGFeRD CII EN 16931

Edit a ZUGFeRD Invoice in Your Browser, Free

Your customer's system refused the invoice, or a supplier sent you a broken file? Drop it here: every field becomes editable, you repair the errors and download a valid ZUGFeRD invoice again.

Drop one PDF or XML file here, or click to select it. Single invoice per run.

Get a Refused ZUGFeRD Invoice Accepted

One failed rule and the file bounces: DATEV will not import it, the buyer's workflow refuses it. Repair the data here and send a file that passes.

Nothing Is Locked

From the seller's USt-IdNr. to the last line item's tax rate: the extracted invoice opens as a form and every value in it can be rewritten.

Aimed at the Usual Failures

Mismatched tax totals, a forgotten IBAN, a missing Leitweg-ID, empty country codes: the errors German AP systems and portals refuse invoices for are exactly the fields this form exposes.

The Rest of the File Survives

Attachments, notes, charges, and every field you leave alone travel into the rebuilt invoice untouched, so a one-field fix stays a one-field fix.

Proven Valid Before You Get It

The rebuilt file must pass the EN 16931 schema and business rules before the download begins; a file that would bounce again never leaves the server.

How It Works

Upload, correct, download: the whole repair in one sitting.

Step 1

Hand Over the Broken File

A PDF with embedded XML or a bare CII XML both work. If a plain PDF has no XML at all, AI reads the printed values instead.

Step 2

Change What Failed

The wizard opens with the extracted data in place. Adjust the offending values; totals and tax groups recalculate on every keystroke.

Step 3

Download the Repaired Invoice

A new ZUGFeRD PDF/A-3 is generated with the corrected XML inside, checked against the official rules before it reaches you.

Frequently Asked Questions

What senders and recipients of broken ZUGFeRD files ask.

Because a validation rule failed. Receiving software checks the embedded XML against EN 16931 and the German business rules before accepting it, and a single violation (a tax total that does not reconcile, a missing mandatory identifier, a credit transfer without an IBAN) sinks the entire file. The PDF side can look perfect; the XML is what gets judged.
Yes, that is the point of this page. The editor works on the file itself, so an invoice out of any ERP, accounting package, or online generator can be opened, corrected, and rebuilt here with nothing installed.
You can repair the file so your own processing continues: upload, fix, download, import. The formal invoice correction still belongs to the supplier under Paragraph 14 UStG, so request a reissued original for your records and treat the repaired copy as a working document.
No. Whatever the extraction found but the form does not surface (embedded documents, note texts, allowances, delivery data) is kept alongside and merged back when the invoice is rebuilt.
Yes. A PDF without a structured layer goes through AI reading instead of XML parsing: the printed invoice is transcribed into the form. What you download afterwards is a genuine hybrid ZUGFeRD file, XML included.
Once the invoice has been booked by the recipient. At that point German practice calls for a credit note (type code 381) referencing the original rather than a silently altered document; the credit note generator on this site builds one. Editing is for invoices that bounced before being recorded.
Yes, within the daily allowance and one invoice at a time. A premium account removes the caps and processes up to 100 invoices in a batch.

Repairing a ZUGFeRD Invoice That Was Refused

The message rarely says more than 'invoice rejected'. Somewhere between you and your customer, a piece of software opened the XML inside your ZUGFeRD file, tested it against the EN 16931 rules, and threw the whole document out. Until the data is fixed, nobody books the invoice and nobody pays it. Upload the file above: the editor unpacks every field into a form, you correct what is broken, and a minute later you have a valid ZUGFeRD invoice to send again.

Where ZUGFeRD invoices get stuck

Germany has no central B2B invoicing portal, so the rejection usually happens at the receiving end: the buyer's accounts payable software, an invoice inbox service, or the DATEV import at their tax advisor. Each of these runs the official Schematron rules over the embedded XML and refuses files that fail. Public-sector invoices are stricter still: the federal portals (ZRE and OZG-RE) and the state portals validate XRechnung submissions on upload and bounce them immediately with a list of rule violations.

Typical errors behind a rejection

Most refused ZUGFeRD files fail on one of a few recurring points:

  • Tax totals that disagree: the 19% and 7% groups do not match the line amounts, or rounding was done in the wrong place
  • No usable seller identification: the VAT ID (USt-IdNr.) and tax number are both absent
  • An IBAN missing even though the payment means says credit transfer
  • A missing Leitweg-ID on an invoice to a public authority
  • Wrong or empty country codes in the addresses
  • A profile mismatch: the XML declares one ZUGFeRD profile but carries the fields of another

Every one of these is a value in a field, and a field can be edited. There is no need to rebuild the invoice from a blank page or to chase the software that produced it.

Fix the file in the browser, keep the rest intact

Drop the refused invoice into the editor and it reads the CII XML out of the PDF/A-3 (a standalone XML file works too). The parties, dates, references, line items, tax rates, and payment data all land in an editable form. Change only what is wrong: whatever you leave alone, including embedded attachments, notes, and document-level charges, is written back into the regenerated file exactly as it arrived. The result is validated against EN 16931 before the download starts, so the same error cannot ride along twice.

When the broken invoice is one you received

Since the E-Rechnungspflicht took effect, every German business must be able to receive e-invoices, and sooner or later a supplier will send one your software cannot swallow. Repairing it here gets your bookkeeping unblocked: extract, correct, reimport. For the VAT record, ask the supplier for a corrected original as well; under German VAT law (Paragraph 14 UStG) the invoice document is theirs to fix, and the GoBD expects you to archive what you actually received.

Verify first, then resend

If you want to see the complete rule report before deciding what to change, validate the original file first. The validator names each violated rule and the field behind it, which makes the edit afterwards a two-minute job:

Editing has a limit: booked invoices need a Gutschrift

Correcting and resending is legitimate while the invoice is still in transit, meaning it was refused before anyone recorded it. An invoice that your customer has already accepted and posted must stay as it is; German practice corrects it with a credit note (kaufmaennische Gutschrift, type code 381) that references the original:

New to the format, or unsure which profile your customer expects? The guide covers the file structure, the profiles, and the mandate deadlines:

All the Tools You Need

The full toolkit, all in one place

Rather use classic tools instead of chat? Each action is just one click away too.

AI Assistant

Tell the chat what you need: it converts, checks, builds, and reads out German e-invoices.

Open tool

PDF to ZUGFeRD

Any PDF, Word, or Excel invoice goes in; a ZUGFeRD or XRechnung file comes out.

Open tool

Create ZUGFeRD PDF

The guided wizard turns your details into a ZUGFeRD or XRechnung invoice.

Open tool

Create XRechnung

Generate a valid XRechnung with Leitweg-ID, ready for public-sector buyers.

Open tool

ZUGFeRD Credit Note

Cancel or correct an e-invoice you already sent with a ZUGFeRD credit note.

Open tool

XRechnung Credit Note

Create an XRechnung credit note with Leitweg-ID for public-sector buyers.

Open tool

Create Order-X

Create an Order-X order file: the ZUGFeRD hybrid principle applied to purchase orders.

Open tool

Edit ZUGFeRD Invoice

Repair a refused or broken invoice: upload it, correct the fields, and get a valid file back.

Open tool

Edit XRechnung

Open an XRechnung as a form, fix the Leitweg-ID or any rejected field, and download a valid file.

Open tool

Validate ZUGFeRD

Run EN 16931 checks on your ZUGFeRD invoices before DATEV or your customer does.

Open tool
X

Validate XRechnung

Check XRechnung XML against EN 16931 and the German CIUS rules.

Open tool

Validate Order-X

Run incoming and outgoing Order-X orders through the official Order-X 1.0 checks.

Open tool

Extract XML

Pull structured XML straight out of any PDF invoice with AI-driven OCR.

Open tool

Extract Attachments

Pull every embedded file out of a ZUGFeRD or XRechnung invoice as a ZIP.

Open tool

Embed XML to PDF

Marry a PDF and its CII XML into one ZUGFeRD-compliant hybrid invoice.

Open tool
X

CII to ZUGFeRD

Package existing CII XML as a ZUGFeRD PDF/A-3 hybrid invoice.

Open tool

CII to UBL

Transform a CII invoice into UBL XML, the syntax most Peppol networks expect.

Open tool

UBL to CII

Map a UBL invoice to UN/CEFACT CII XML, ready to embed in ZUGFeRD or Factur-X.

Open tool

XRechnung to PDF

See any CII, UBL, or XRechnung XML as a tidy, printable PDF.

Open tool

XRechnung Viewer

Open e-invoice XML in your browser and read it like a paper invoice.

Open tool

e-Invoice Automation

Automate invoice generation, validation and Peppol delivery end to end.

Open tool
Ready for mandatory e-invoicing?

Make every invoice compliant, in a single message

Subscribe to get unlimited tools, choosable compliance profiles and the full set of premium features.

EN 16931 & PDF/A-3b compliant Results in seconds No installation Data never stored
2 free uses per day · No card required