Validation rules

UBL-SR-47 — UBL rule

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.

Related rules

  • BR-DE-1 — Payment instructions (BG-16) are missing. XRechnung requires them.
  • BR-DE-25-a — Payment means is a SEPA direct debit (code 59) but direct-debit information (BG-19) is missing.
  • NB-PAYMENT-MEANS-UNSUPPORTED — Card-payment means codes (48/54/55) need card information (BG-18) that normbill cannot express yet — KoSIT…
  • BR-CL-16 — The payment means code (BT-81) is not a UNTDID 4461 code.
  • BR-49 — Payment instructions (BG-16) are present but the payment means type code (BT-81) is missing.
  • BR-DE-24-a — The payment means is a card payment (code 48, 54 or 55), so card information (BG-18) is required.

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.