AttestwireRule referenceBR-49

BR-49 Payment instructions must include a payment means code

noun · EN 16931 · fatal · BT-81

For a sample invoice, the library reports: The invoice carries a payment instruction group (BG-16), so it must specify the payment means type code (BT-81). BG-16 is optional in core EN 16931 — but once present it has to be actionable, and the means code is the part a payment system reads.

Business term
BT-81
Severity
fatal

The fix

Set payment.meansCode to a UNTDID 4461 code: "58" SEPA credit transfer, "30" credit transfer, "59" SEPA direct debit, "48" bank card, "57" standing agreement, "97" clearing between partners. If you did not mean to give payment instructions at all, remove the payment object.

A passing value

the shape this field expects
"payment": { "meansCode": "58", "iban": "DE02120300000000202051" }

What the library returns

The full error returned by @attestwire/en16931. It includes the rule ID, affected field and suggested correction. Developers can use this object in their application:

TeachingError
{
  "rule": "BR-49",
  "field": "BT-81",
  "severity": "fatal",
  "message": "The invoice carries a payment instruction group (BG-16), so it must specify the payment means type code (BT-81). BG-16 is optional in core EN 16931 — but once present it has to be actionable, and the means code is the part a payment system reads. An IBAN with no means code does not tell the payer whether you expect them to push a credit transfer or whether you intend to collect by direct debit, which are opposite instructions.",
  "fix": "Set payment.meansCode to a UNTDID 4461 code: \"58\" SEPA credit transfer, \"30\" credit transfer, \"59\" SEPA direct debit, \"48\" bank card, \"57\" standing agreement, \"97\" clearing between partners. If you did not mean to give payment instructions at all, remove the payment object.",
  "example": "\"payment\": { \"meansCode\": \"58\", \"iban\": \"DE02120300000000202051\" }",
  "xpath": "/ubl:Invoice/cac:PaymentMeans/cbc:PaymentMeansCode",
  "docsUrl": "https://attestwire.com/rules/BR-49"
}

xpath is always a UBL path. On a CII invoice, look for the matching CII field instead.