Banks API
The Banks API allows you to retrieve lists of banks for specific countries. This is essential for building beneficiary forms and validating bank account information.
Get Banks by Country
Retrieve a list of all banks available for a specific country. This endpoint is commonly used to populate bank selection dropdowns in your application.
Endpoint
Client API Endpoint: GET /api/v1/client/banks/{country_code}
Authentication
This endpoint requires HMAC authentication (Business API Key). Include your API key and signature in the request headers:
Note: For HMAC authentication details, see the Authentication guide.
Path Parameters
Query Parameters
Supported Country Codes
Common country codes include:
- NG - Nigeria
- US - United States (7,261+ banks with routing numbers)
- CA - Canada
- GB - United Kingdom
- KE - Kenya
- GH - Ghana
- TZ - Tanzania
- UG - Uganda
- ZA - South Africa
- SL - Sierra Leone
- CI - Côte d'Ivoire
Note: The list of supported countries may vary. Contact support if you need banks for a country not listed here.
Mobile money operators (payout corridors)
For mobile money payouts (TZS, GHS, UGX, SLE), call:
GET /api/v1/client/banks/{country_code}?type=momo
Use each object's code as bank_code and name as bank_name when creating a beneficiary. Payouts then use the standard Fiat Payout quote flow.
The tables below match the current API catalog. Prefer the live Banks API in production — operators may be added or updated without this doc changing immediately.
Tanzania (TZ → TZS)
Beneficiary fields: first_name, last_name, email, phone, bank_name, bank_code, country_code: "TZ", currency_code: "TZS". phone is required; use full international digits (e.g. 255712345678).
Uganda (UG → UGX)
Beneficiary fields: same as Tanzania, with country_code: "UG" and currency_code: "UGX".
Ghana (GH → GHS)
Mobile money (?type=momo):
Bank account (GHIPSS) — use ?type=banks instead. Requires account_number, bank_code, and bank_name (not phone alone).
Sierra Leone (SL → SLE)
Beneficiary fields: same as Tanzania, with country_code: "SL" and currency_code: "SLE".
Example: mobile money response (TZ)
Validation: For TZS, UGX, and SLE, beneficiary create/update rejects non–mobile-money
bank_codevalues (e.g. a traditional bank code likeDCBTZAfor Tanzania). Use only codes returned by?type=momo.
Success Response (200 OK)
Returns an array of bank objects. The response structure varies by country:
Standard Response (Most Countries)
US Banks Response (Includes Additional Fields)
US banks include additional fields for routing numbers and location information. Note that code and national_bank_code are empty strings for US banks:
Response Fields
Error Responses
Example: cURL
Example: HTTP Request
Use Cases
- Beneficiary Forms - Populate bank selection dropdowns when users add beneficiaries
- Account Validation - Use bank codes/routing numbers to validate account numbers before creating beneficiaries
- Bank Lookup - Display bank names in transaction details and receipts
- Multi-Country Support - Dynamically load banks based on the user's selected country
- US Bank Routing - Use routing numbers for ACH and wire transfers in the United States
- State Filtering - Filter US banks by state code for location-specific bank selection
US Banks Specific Information
The US banks list includes 7,261+ banks with complete routing number information:
- Routing Numbers: Each bank entry includes a 9-digit ABA routing number (use
routing_numberfield, notcode) - State Information: Banks are tagged with their state code and full state name
- Short Names: Abbreviated bank names for display in compact UIs
- Full Names: Complete bank names for official documentation
- Code Fields: For US banks,
codeandnational_bank_codeare empty strings - always userouting_numberinstead
Important Notes for US Banks:
codeandnational_bank_codefields are empty strings ("") for US banks- Always use the
routing_numberfield for US bank identification and transactions - Use
routing_numberfor ACH and wire transfer setup - Filter banks by
state_codefor location-specific bank selection
Example Use Cases for US Banks:
- Filter banks by state when users select their location
- Display routing numbers for ACH setup instructions
- Validate routing numbers before processing transfers
- Show bank short names in dropdown menus, full names in confirmations
Look up US bank by routing number (client)
Look up US bank details by ABA routing number. Use this when you have a routing number (e.g. from user input or a partner) and need the bank name and location. Response is USD-focal only: no id, code, or national_bank_code.
Endpoint
Client API Endpoint: GET /api/v1/client/banks/US/routing-lookup/{routing_number}
Authentication
HMAC authentication (Business API Key). Same as Get Banks by Country.
Path parameters
Success response (200 OK)
Array of matching US bank objects. Multiple entries may be returned when the same bank has multiple routing numbers (e.g. by branch).
Example response:
Error responses
Example: cURL
Best Practices
- Cache Results - Bank lists don't change frequently, so consider caching the response to reduce API calls
- Handle Errors Gracefully - Some country codes may not be supported; provide fallback options
- Store Bank IDs - Use the
idfield when creating beneficiaries, as it's more reliable than codes - Validate Country Code - Ensure the country code is in ISO 3166-1 alpha-2 format before making the request
- Filter by Type - Use the
typeparameter to filter between banks and mobile money providers when needed - US Routing Numbers - For US banks, always use the
routing_numberfield for ACH and wire transfers (notcodeornational_bank_code) - Handle Empty Codes - For US banks, expect
codeandnational_bank_codeto be empty strings and userouting_numberinstead
Related Endpoints
- Banks API - Get list of banks for a country (this endpoint)
- Look up US bank by routing number - Get US bank details by ABA routing number (client)
- Account Lookup - Verify bank account details using bank codes
- Create Beneficiary - Use bank information when creating beneficiaries
Next Steps
After retrieving the bank list, you can:
- Create Beneficiaries - Use the bank
idorcodewhen creating beneficiary records (userouting_numberfor US banks) - Validate Accounts - Use the account lookup endpoint to verify account numbers
- Display Bank Names - Show user-friendly bank names in your UI
- US Transfers - Use routing numbers for ACH and wire transfer setup
For more information, see:
- Beneficiaries API - How to create and manage beneficiaries
- Account Lookup - Verify bank account details