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-47official 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

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.

Spotted something?

Bug, missing feature, wrong validation result — tell us. The page you're on is attached automatically; email optional.