SWIFT/BIC
finance.banking.swift_bicSociety for Worldwide Interbank Financial Telecommunication code (also called Bank Identifier Code). 8 or 11 character code identifying financial institutions. Format: 4-letter bank code + 2-letter country code (ISO 3166) + 2-character location code + optional 3-character branch code.
Worked samples
DuckDB 1.5.5 · finetype 0.6.64
| Value | As VARCHAR | bank_code | branch_code | country_code | location_code |
|---|---|---|---|---|---|
| DEUTDEFF | DEUTDEFF | DEUT | XXX | DE | FF |
| BNPAFRPP | BNPAFRPP | BNPA | XXX | FR | PP |
| CHASUS33XXX | CHASUS33XXX | CHAS | XXX | US | 33 |
| BOFAUS3N | BOFAUS3N | BOFA | XXX | US | 3N |
Shape
^[A-Z]{4}[A-Z]{2}[A-Z0-9]{2}([A-Z0-9]{3})?$| Value | Length | Shape |
|---|---|---|
| DEUTDEFF | 8 | matches |
| BNPAFRPP | 8 | matches |
| CHASUS33XXX | 11 | matches |
| BOFAUS3N | 8 | matches |
| DEUTDEF | 7 | rejected: one character short |
Background
Origin
ISO 9362 is the international standard for Business Identifier Codes (BIC), approved by the International Organization for Standardization.[1] ISO 9362 is based on an industry standard that SWIFT created around 1975.[1] ISO 9362 has had five editions, from 1987, 1994, 2009, 2014 and 2022, and only the 2022 edition is still valid.[1] SWIFT is the registration authority for the BIC standard, appointed by ISO.[2] As registration authority, SWIFT receives BIC registration requests, assigns each BIC and publishes the related BIC data record.[2]
BIC was defined originally as a Bank Identifier Code.[1] Because SWIFT originally introduced the codes, BICs are still often called SWIFT addresses or SWIFT codes.[1]
A BIC is 8 or 11 characters long.[1][3] The Deutsche Bundesbank describes the BIC as a four-character business party prefix, a two-character ISO country code, a two-character business party suffix and an optional three-character branch code.[3] The country part of a BIC is an ISO 3166-1 alpha-2 country code.[1] SWIFT has exceptionally assigned the code XK to the Republic of Kosovo, which does not have an ISO 3166-1 country code.[1] Where an eight-character BIC is given, it may be assumed to refer to the institution's primary office.[1] A branch code of XXX stands for the primary office.[1]
Use
BICs are used when transferring money between banks, particularly for international wire transfers.[1] In a SWIFT MT103 cash-transfer message, BICs appear under tags such as 50a (ordering customer), 56a (intermediary) and 57a (account with institution).[1] SWIFT also identifies endpoints on its network with twelve-character addresses made of the BIC8, a one-character logical terminal code and the three-character branch code.[1] SWIFT's twelve-character BIC12 addresses are not part of the ISO standard.[1]
Regulation (EU) No 260/2012 defines a BIC as a business identifier code that unambiguously identifies a payment service provider, the elements of which are specified by the ISO.[4] Under Regulation (EU) No 260/2012, after 1 February 2014 for national payment transactions and after 1 February 2016 for cross-border ones, payment service providers may not require users to indicate the BIC of the payer's or the payee's provider.[4]
The Deutsche Bundesbank asks everyone taking part in cashless payments to show their account details on business papers as IBAN, BIC and the name of the payment service provider, in the pattern IBAN DE58 1234 5678 0123 4567 89, BIC BANKDEFFXXX.[3] The python-stdnum library validates a BIC by checking its length and the characters in each position.[5] The python-stdnum documentation shows a BIC written with spaces, ABNA BE 2A, validating to the compact form ABNABE2A.[5] The python-stdnum documentation notes that BICs are conventionally written in capitals.[5] Strip spaces and upper-case values before comparing BICs, and treat an eight-character code and the same code with XXX appended as the same primary office. (Meridian's view) A pattern match shows only that a value has the shape of a BIC, not that SWIFT ever assigned it; where that matters, check codes against a published directory. (Meridian's view)
Where you'll meet it
The Deutsche Bundesbank's bank sort code file (Bankleitzahlendatei) carries a BIC in its field 8.[3]
GLEIF and SWIFT introduced the BIC-to-LEI relationship file in February 2018.[2] In February 2018 GLEIF reported that, of the approximately 130,000 BICs assigned to date, some 45,000 belonged to legal entities or foreign branches that qualified for mapping against LEIs.[6]
Sources
- [1]ISO 9362 - Wikipediasecondary source
- [2]Download BIC-to-LEI Relationship Files - LEI Mapping - LEI Data – GLEIForganisation
- [3]Merkblatt Bankleitzahlendatei 20.12.2022organisation
- [4]Regulation (EU) No 260/2012 of the European Parliament and of the Council of 14 March 2012 establishing technical and business requirements for credit transfers and direct debits in euro and amending Regulation (EC) No 924/2009documentation
- [5]stdnum.bic — python-stdnum 2.1 documentationdocumentation
- [6]GLEIF and SWIFT Introduce the First Open Source BIC-to-LEI Relationship File to Allow for Interoperability Across Multiple ID Platforms - GLEIF Blog - News & Media – GLEIForganisation
Detection notes
New in v2. SWIFT/BIC codes are used for international wire transfers. 8-character codes identify the head office; 11-character codes include a branch identifier. "XXX" as branch code also means head office.
Use it
$ finetype infer -i "DEUTDEFF" --mode column
→ finance.banking.swift_bic
SELECT ft_infer('DEUTDEFF');
-- → 'finance.banking.swift_bic'UPPER(CAST({col} AS VARCHAR))Schema
https://meridian.online/schemas/finance.banking.swift_bic · Frictionless type string
finetype taxonomy finance.banking.swift_bic -o json-schema