Look up correspondent banking / settlement instructions (SSI) for a bank.
Returns the correspondent banks (nostro accounts) that a given bank
uses to settle payments in a specific currency, including account
numbers (when available) and intermediary chains. Essential for
payment routing and pre-validation.
Each correspondent is annotated with a clearing_note indicating
whether it can clear the currency directly (located in a home
country for that currency) or needs its own correspondent.
If the note suggests a further lookup, call ssi_lookup on the
correspondent's SWIFT code to find the full clearing chain.
IMPORTANT — known data gaps to respect:
- Account numbers may be empty for some/all correspondents. The
response surfaces an `account_availability_note` in those cases.
Do NOT invent account numbers. Use swift_lookup() to find the
bank's own published correspondent banks page when accounts
are missing.
- `is_preferred` is rarely populated — its absence is a DATA gap, not a
signal. When `preferred_correspondent_note` is present (all flags false),
do NOT infer a "preferred"/"natural" correspondent, and equally do NOT
tell the user the bank "has no preference" or "rotates" — do not draw
attention to the flag at all. Any listed BIC is a valid clearing route.
- `intermediaries` is almost always empty in our dataset — an empty
list does NOT mean the payment is direct.
- Asset category per correspondent is COMMERCIAL (for customer
MT103 credit transfers) or FINANCIAL (for bank-own-account /
interbank MT202/pacs.009 settlements). Read `asset_categories`
(the full list) rather than the single `asset_category`, which
shows the commercial view only: one entry is one BIC+account and
the same account is often published under BOTH categories, so the
single field can never establish what an account may NOT be used
for. The `asset_category_note` summarises the split — match the
listed correspondents to the user's flow type (customer payment
vs treasury/interbank).
- If `correspondents` is EMPTY, we have no SSI on file for that
bank/currency. The response carries a `no_ssi_note` (no SSI in any
currency) or `requested_currency_unavailable_note` (SSI on file for
other currencies only). This is a coverage gap, NOT a finding that the
bank has no correspondents. Do NOT name a correspondent for the missing
currency from training data — surface the `published_ssi_document` /
the bank's website and tell the user to confirm SSI with the bank.
Always inspect the response's top-level `next_steps` array — it
chains the swift_lookup / country_banking_rules / bank_holidays
calls that complete a settlement-instruction answer.
Requires an API key with an active FI subscription.
To get started: call mcp_register → mcp_verify → subscribe to
an FI plan at https://ohmyfin.ai/subscription.
Args:
swift: SWIFT/BIC code of the bank (e.g., "DEUTDEFF", 8 or 11 chars).
currency: ISO 4217 currency code (e.g., "USD", "EUR", "GBP").
api_key: Your Ohmyfin API key (prod-...). Can also be passed
via KEY header or Authorization: Bearer header.
Examples:
ssi_lookup("DEUTDEFF", "USD") # Deutsche Bank USD correspondents
ssi_lookup("HSBCHKHH", "EUR") # HSBC HK EUR correspondents
ssi_lookup("DEUTDEFF", "USD", api_key="prod-abc123...")