Validation rules
BR-AG-01 — EN 16931 rule
Lines or document-level allowances/charges use VAT category "M" (IPSI, Ceuta/Melilla) but the VAT breakdown (BG-23) has no IPSI entry.
- Rule
BR-AG-01— official EN 16931 / XRechnung rule- Severity
- error
- Detected by
- tier 3 — KoSIT validator (authoritative)
- Reachability
- Only reachable when validating your own XML — normbill-generated documents cannot trigger it
The engine derives one breakdown entry per category and rate in use, so generated documents always contain it; only XML submitted to /v1/invoices/validate can miss it.
How to fix it
Add a cac:TaxSubtotal with category "M" to cac:TaxTotal in your XML.
BR-AG-01 auf Deutsch — was bedeutet der Fehler?
Positionen oder Nachlässe/Zuschläge verwenden die Kategorie "M" (IPSI, Ceuta/Melilla), aber die Umsatzsteueraufschlüsselung (BG-23) enthält keinen IPSI-Eintrag. Von normbill erzeugte Dokumente enthalten ihn immer; die Meldung betrifft extern erzeugtes XML.
So beheben Sie den Fehler
Ergänzen Sie in Ihrem XML ein cac:TaxSubtotal mit der Kategorie "M" in cac:TaxTotal.
Related rules
BR-AG-02— The invoice has IPSI (M) lines, which require the seller VAT identifier (BT-31), the tax registration number…BR-AG-03— A document-level allowance uses VAT category M (IPSI), which requires the seller VAT identifier (BT-31), the…BR-AG-04— A document-level charge uses VAT category M (IPSI), which requires the seller VAT identifier (BT-31), the…BR-AG-05— An IPSI (M) line must have a VAT rate (BT-152) of 0 or greater.BR-AG-06— A document-level allowance with VAT category M (IPSI) must have a rate of 0 or greater.BR-AG-07— A document-level charge with VAT category M (IPSI) must have a rate of 0 or greater.
Official sources
- XRechnung specification (KoSIT / xeinkauf.de)
- KoSIT validator on GitHub and the XRechnung validator configuration
Every 422 from the API lists the rule id, the path in your request JSON, a plain-language message and a suggested fix — see the docs overview for the report format.
Or try it live: drop any XRechnung XML on the free validator — same KoSIT-backed report, no account.