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

the shape this field expects
"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:

TeachingError
{
  "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.