How to Fix a Rejected XRechnung
Submitting to a German public-sector portal is a pass or fail exam: ZRE, OZG-RE, and the state portals validate the XML the moment it arrives and refuse anything that breaks a rule, with a terse list of codes as the only feedback. The invoice is not late yet, but it is not delivered either. The editor above takes the refused file, opens every element as a form field, and gives you back an XRechnung that passes the same checks.
What the portals actually check
An XRechnung must satisfy three layers at once: the XML syntax (CII or UBL), the European core invoice rules of EN 16931, and the German CIUS on top, the BR-DE rules. The portals run all three. A file can be perfectly valid EN 16931 and still bounce because a BR-DE rule wants a seller phone number or a buyer reference the source system never filled in.
The rejections that come up again and again
- A missing or malformed Leitweg-ID in the buyer reference (BT-10), including lost check digits
- Seller contact incomplete: the BR-DE rules require a contact name, phone number, and email address
- No payment details where the German rules demand them, typically the IBAN
- VAT category totals that no longer match the line amounts after a late change
- A wrong or outdated specification identifier (BT-24), so the file does not announce itself as XRechnung
- Empty country codes or seller identifiers the buyer's workflow insists on
Every one of them is data in a named field. Upload the file, and those fields are laid out in front of you with the rest of the invoice.
The Leitweg-ID, without the guesswork
The Leitweg-ID is the routing address of the German administration: the receiving authority assigns it, and the portals match it against their directory. It fails in unspectacular ways, a digit lost in copy and paste, a hyphen too many, an ID from the wrong office. In the editor it is a plain field with nothing around it to break: paste the ID exactly as the authority issued it, regenerate, and resubmit.
Edit without the system that made the file
Rejected XRechnung files usually come out of an ERP export or an external biller, systems you cannot rerun five minutes before a deadline. The editor works on the file alone: CII or UBL syntax in, the EN 16931 model parsed into a guided form, and a validated XRechnung out, regenerated in CII syntax by the same engine as the XRechnung generator. Attachments, notes, and untouched fields ride along unchanged.
Check the rule report before and after
When all you have is the portal's error codes, validate the file first: the report names each violated rule, BR-DE included, and the element behind it. Fix exactly those fields here, and the regenerated file is checked against the same rules before you download it:
Already booked by the authority? Use a credit note
Editing and resubmitting is for files the portal refused, meaning nobody has recorded them. Once an invoice has been accepted and booked by the recipient, German practice corrects it with a credit note that references the original instead of a quietly changed document:
And if XRechnung itself is new territory, the format guide covers the rules, the Leitweg-ID, and sample files: