Validation rules
UBL-SR-47
Several cac:PaymentMeans elements carry different cbc:PaymentMeansCode values — when the code (BT-81) is repeated it must be identical everywhere.
- Rule
UBL-SR-47— official EN 16931 / XRechnung rule- Severity
- error
- Business term
BT-81— Payment means code- Field in your JSON
invoice.payment.means_code- Detected by
- tier 3 — KoSIT validator (authoritative)
- Reachability
- Only reachable when validating your own XML — normbill-generated documents cannot trigger it
The serializer emits a single PaymentMeans, so generated XML always has exactly one code.
How to fix it
Use the same payment means code on every PaymentMeans, or reduce the document to one PaymentMeans.
UBL-SR-47 auf Deutsch — was bedeutet der Fehler?
Der KoSIT-Validator lehnt die Rechnung ab, weil mehrere cac:PaymentMeans unterschiedliche cbc:PaymentMeansCode-Werte tragen — wird der Code (BT-81) wiederholt, muss er überall identisch sein.
So beheben Sie den Fehler
Verwenden Sie auf allen PaymentMeans denselben Zahlungsweg-Code — oder reduzieren Sie das Dokument auf einen Zahlungsweg.
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.