Search banks and financial institutions by name, SWIFT/BIC code, or country.
Covers both SWIFT-connected banks and non-SWIFT financial institutions
(e-money issuers, payment processors, MFOs, brokerages, VASPs, etc.).
Returns: SWIFT/BIC code (if any), name, city, country, institution type,
GPI membership, a coarse sanctions FLAG across 7 hard-sanctions watchlists
(OFAC SDN, EU, UK, CA, CH, AU, NZ — see sanctions_note; this is NOT a full
screen, use sanctions_screen for a compliance verdict), and enriched bank
profile when available.
EVERY BANK COMES BACK SAYING WHETHER WE HOLD ITS CORRESPONDENT CHAIN.
Read `settlement_instructions` on each bank: `on_file: true` with a
`currencies_on_file` count means we hold that BIC8's actual correspondent
BIC, nostro account number and national clearing ID, and `read_with` is the
exact ssi_lookup call that returns them. `on_file: false` means we hold none
in any currency — a gap in our data, not a finding about the bank. A null is
"not established yet" and is neither. This is the answer to "which
intermediary bank do I put on the instruction?", and it is a fact we either
have or do not have — never one to recall from training data.
The country parameter accepts both 2-letter ISO codes ("ID", "DE") and
full English names ("Indonesia", "Germany"). Names are resolved
automatically.
A BIC IDENTIFIES AN OFFICE, NOT A BRAND, AND THE DIFFERENCE IS PRICED.
A name search returns ONE representative office per bank, elected by BIC
convention rather than by relevance to the payment, and `office_note` says
so whenever the bank holds more than one. Published tariffs, correspondent
chains and settlement instructions are filed per BIC, so the choice changes
the answer: transfer_cost("COBADEFF") returns Commerzbank's published 0.15%
sending fee and transfer_cost("COBADEBB") refuses for want of a filed
tariff, and both of those are Commerzbank AG in Germany. So:
- If the user named a CITY, put it in the query — "Commerzbank Frankfurt"
resolves to the Frankfurt office, and the plain name cannot.
- If they did not, ask which BIC is on their statement or payment
instruction before pricing or routing, and say which office you used.
- Never present a representative office's BIC as "the bank's BIC".
Examples:
swift_lookup("DEUTDEFF") # exact BIC lookup
swift_lookup("Deutsche Bank") # search by name
swift_lookup("Commerzbank Frankfurt") # bank + city -> that office's BIC
swift_lookup("TBC PAY") # find non-SWIFT payment processor
swift_lookup("bank", country="KZ") # explore banks in a country
swift_lookup("Halyk", country="KZ") # find specific bank in country
swift_lookup("Bank Mandiri", country="Indonesia") # full country name OK