Attestwire › Rule reference › ATW-BIC-INVALID
ATW-BIC-INVALID A BIC must be 8 or 11 capital letters and digits
noun · Attestwire · warning · BT-86
For a sample invoice, the library reports: The payment service provider identifier (BT-86) "byladem1001" is written with lower-case letters. A BIC is written in capitals, and the ISO 20022 payment formats a buyer's system builds from the invoice accept nothing else.
- Business term
BT-86- Severity
warning
The fix
Write the BIC as the bank gives it: 8 or 11 capital letters and digits, without spaces. Within SEPA you may also leave payment.bic out, because the IBAN alone identifies the account.
A passing value
"payment": { "meansCode": "58", "iban": "DE02120300000000202051", "bic": "BYLADEM1001" }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:
{
"rule": "ATW-BIC-INVALID",
"field": "BT-86",
"severity": "warning",
"message": "The payment service provider identifier (BT-86) \"byladem1001\" is written with lower-case letters. A BIC is written in capitals, and the ISO 20022 payment formats a buyer's system builds from the invoice accept nothing else. It names the bank that holds the account; inside SEPA the IBAN alone is enough, but a malformed BIC is still copied into the buyer's payment. This is a warning of this library, not a rule of EN 16931 or of a CIUS, so it never makes the invoice invalid.",
"fix": "Write the BIC as the bank gives it: 8 or 11 capital letters and digits, without spaces. Within SEPA you may also leave payment.bic out, because the IBAN alone identifies the account.",
"example": "\"payment\": { \"meansCode\": \"58\", \"iban\": \"DE02120300000000202051\", \"bic\": \"BYLADEM1001\" }",
"xpath": "/ubl:Invoice/cac:PaymentMeans/cac:PayeeFinancialAccount/cac:FinancialInstitutionBranch/cbc:ID",
"docsUrl": "https://github.com/attestwire/en16931#not-implemented-yet"
}
xpath is always a UBL path. On a CII invoice, look for the
matching CII field instead.