Back to articles

SWIFT/BIC Code Validation: Complete Guide to Bank Identifier Codes

SWIFTBICISO 9362validationbank codeinternational transfer

SWIFT/BIC Code Validation: Complete Guide to Bank Identifier Codes

When sending or receiving an international wire transfer, your bank will ask for a SWIFT code or BIC. These codes are the backbone of the global banking communication network, identifying financial institutions across 200+ countries. Whether you are a developer integrating payment systems, a finance professional processing cross-border transactions, or an individual sending money abroad, understanding how BIC codes work and how to validate them is essential.

What Is a SWIFT/BIC Code?

A BIC (Bank Identifier Code) is a standardized code defined by the ISO 9362 standard. It uniquely identifies a financial institution in international transactions. The terms "SWIFT code" and "BIC" are used interchangeably: SWIFT (Society for Worldwide Interbank Financial Telecommunication) is the organization that manages the BIC registry and operates the global messaging network used by banks.

Every BIC code is either 8 or 11 characters long. An 8-character BIC refers to the institution's head office, while an 11-character BIC identifies a specific branch.

Structure of a BIC Code

A BIC code is composed of four distinct parts:

  • Institution code (4 letters): Identifies the bank or financial institution. For example, BNPA for BNP Paribas, CHAS for JPMorgan Chase.
  • Country code (2 letters): The ISO 3166-1 alpha-2 country code where the institution is headquartered. For example, FR for France, US for the United States, GB for the United Kingdom.
  • Location code (2 alphanumeric characters): Identifies the city or region of the institution. For example, PP in BNPAFRPP indicates Paris.
  • Branch code (3 alphanumeric characters, optional): Identifies a specific branch. If omitted or set to XXX, the BIC refers to the head office.

Examples

| BIC Code | Bank | Country | City | |---|---|---|---| | BNPAFRPP | BNP Paribas | France | Paris | | BNPAFRPPXXX | BNP Paribas (head office) | France | Paris | | CHASUS33 | JPMorgan Chase | United States | New York | | DEUTDEFF | Deutsche Bank | Germany | Frankfurt | | BARCGB22 | Barclays Bank | United Kingdom | London | | UBSWCHZH | UBS | Switzerland | Zurich |

Note that BNPAFRPP and BNPAFRPPXXX are functionally equivalent: both refer to BNP Paribas head office in Paris.

SWIFT vs BIC vs IBAN: What's the Difference?

This is one of the most common sources of confusion in international banking:

  • BIC (Bank Identifier Code): Identifies the bank itself. It tells you which institution will handle the transaction.
  • SWIFT code: Exactly the same thing as a BIC. "SWIFT code" is the colloquial name, "BIC" is the technical ISO term.
  • IBAN (International Bank Account Number): Identifies a specific bank account. It includes the country code, check digits, bank identifier, and account number.

In practice, for an international transfer you typically need both: the IBAN to identify the recipient's account, and the BIC/SWIFT code to identify the recipient's bank (especially for non-SEPA transfers).

How to Validate a BIC Code

Validating a BIC code involves multiple levels of verification:

Level 1: Syntax Validation

The most basic check verifies the format:

  • Total length must be exactly 8 or 11 characters
  • Characters 1-4 (institution code): uppercase letters only (A-Z)
  • Characters 5-6 (country code): uppercase letters, must be a valid ISO 3166-1 alpha-2 country code
  • Characters 7-8 (location code): uppercase letters or digits (A-Z, 0-9)
  • Characters 9-11 (branch code, if present): uppercase letters or digits (A-Z, 0-9)

A regex pattern for BIC validation: ^[A-Z]{6}[A-Z0-9]{2}([A-Z0-9]{3})?$

Level 2: Country Code Verification

The two-letter country code embedded in the BIC must correspond to a valid ISO 3166-1 alpha-2 country code. For example, FR (France), DE (Germany), US (United States) are valid, while XX or ZZ are not assigned to any country.

Level 3: Registry Lookup

The most thorough validation checks whether the BIC actually exists in the official SWIFT registry. SWIFT maintains a global directory of all registered BICs, updated regularly. A BIC that passes syntax validation but is not found in the registry could be:

  • A decommissioned code from a bank that merged or closed
  • A test code (BICs with 0 in position 8 are reserved for testing)
  • A typo or fabricated code

Our BankValidor tool performs all three levels of validation, checking syntax, verifying the country code, and looking up the BIC against registry data to confirm the institution exists and is active.

Common BIC Validation Errors

When validating BIC codes, these are the most frequent issues encountered:

  1. Lowercase letters: BIC codes must be uppercase. bnpafrpp is invalid; BNPAFRPP is correct.
  2. Wrong length: Codes that are 9, 10, or any length other than 8 or 11 characters.
  3. Invalid country code: Using a non-existent ISO country code.
  4. Confusing BIC with IBAN: Entering an IBAN (which starts with a country code and check digits) in a BIC field.
  5. Outdated codes: Banks that have merged or rebranded may have deprecated their old BIC codes.

Test vs Production BIC Codes

SWIFT reserves certain codes for testing purposes. A BIC where the 8th character (second character of the location code) is 0 is a test BIC and should not be used for real transactions. For example, BNPAFR0P would be a test code, while BNPAFRPP is the production code.

Why BIC Validation Matters

Incorrect BIC codes are one of the leading causes of failed or delayed international transfers. When a BIC is wrong:

  • The transfer may be routed to the wrong bank
  • The transaction may be rejected, resulting in return fees
  • Processing delays can range from days to weeks
  • Correspondent banks may charge investigation fees

Validating BIC codes before initiating transfers saves time, money, and frustration for all parties involved.

Validate Your BIC Code Now

Our free online tool validates SWIFT/BIC codes using three independent layers: syntax verification, country code validation, and registry lookup against official data. Try it now to verify any BIC code instantly.

Validate a SWIFT/BIC code →

BankValidor — SWIFT/BIC Code Validation: Complete Guide to Bank Identifier Codes