Skip to main content
GET

Intro

Returns the list of banks Khaime supports for local payout setup, so you can populate a bank-selection UI and pass back a valid bank identifier.

Context

This is a lookup endpoint that feeds Setup Merchant Payout, Update Merchant Payout, and the bank details on Submit KYC — all three require settlement_bank/bank_name to exactly match a name this endpoint returns (for NG, that match is validated server-side). Fetch this list before rendering any bank picker rather than hardcoding bank names.

Hows

Query parameters

string
Filter banks by currency — pass NGN for Nigerian banks only. Omit to return all supported banks across all currencies.

Response

Response fields

Account number types

Some institutions (mobile money providers, mainly) use a phone number instead of a traditional account number: Switch your input field’s label based on this value — “Account Number” vs. “Phone Number” — rather than assuming every institution uses the same format.

Usage flow

Error cases

Whys

Exact-match bank names instead of free text. Local transfer rails route by institution, not by whatever a partner happens to type — validating settlement_bank against this fixed list at setup time catches typos and unsupported banks before they cause a failed payout later, rather than after money is already in motion. Two identifiers per bank (gravv_institution_id and paystack_bank_code). Not every Nigerian bank supports instant transfer — some do, others only route through the fallback rail. Exposing both identifiers lets the payout endpoints pick the right path per bank automatically; you don’t need to know or care which one a given bank uses.

Why nots

  • Not a live account-name lookup. This returns supported institutions, not a way to verify that a specific account number belongs to a specific account name — Khaime doesn’t expose account-name resolution through this endpoint.
  • Doesn’t cover every country a merchant might be in. It’s scoped to the local-bank-transfer markets (NG, GH, ZA, KE); Stripe Connect countries manage bank accounts entirely inside Stripe’s own onboarding UI, so they never appear here.
  • A bank appearing here doesn’t guarantee instant settlement. Banks without a gravv_institution_id still work for payout, but route over a fallback rail with different settlement timing.

Next Steps

Once you have the bank list: