Get Supported Countries

Returns every country you can send payouts to, along with each country's supported currencies and payout rails (destination_types). Use this to populate country pickers in your UI or to discover which corridors are open for a given destination.

Each corridor lists destination_types — values include bank, swift, mobile_money, sepa_eur, domestic_gbp, wire, ach, alipay, wechatpay, paybill, paytill. Combine the destination type with GET /api/payouts/supported-countries/:country to get the exact field schema.


Request

List every payout corridor with GET /api/payouts/supported-countries.

Get Supported Countries

Response Fields
1
countriesArray<Country>

Full list of countries payouts are supported in.

2
codeString

ISO 3166-1 alpha-2 country code (e.g. 'GB', 'NG').

3
nameString

Display name of the country.

4
flagString

Country flag emoji for UI rendering.

5
dial_codeString

International dial prefix. Occasionally a comma-separated list when the country has multiple (e.g. DO → '1809,1829,1849').

6
corridorsArray<Corridor>

Supported payout corridors for this country. Each entry pairs a currency with the destination types available for that currency.

7
currencyString

ISO 4217 currency code (e.g. 'USD', 'EUR', 'GHS').

8
destination_typesArray<String>

Payout rails available for this (country, currency) pair. See the list above for possible values.

Sandbox vs. Live

The country list you get in sandbox is a subset of the production list. Always call this endpoint against the environment you're integrating with before hard-coding corridor support.

Get Supported Countries - Response (excerpt)

Get Country Details

Returns the full beneficiary field schema for a single country — a machine-readable destination_types object keyed by rail (bank, swift, mobile_money, alipay, wechatpay, etc.). Each entry lists required fields, their type / component / pattern / min_length / max_length validators, plus any enum options and per-rail limits.

This is the source of truth you should consult before constructing an Initialize payload. Use it to drive dynamic forms, client-side validation, or per-country payload builders.

Get Country Details

Path Parameters
1
countrystringRequired

ISO 3166-1 alpha-2 country code — must appear in Get Supported Countries (e.g. 'CN', 'NG', 'GB').

Response Fields
1
data.code / data.name / data.flag / data.dial_codeString

Country identity block — same shape as entries in Get Supported Countries.

2
destination_typesObject

Map keyed by rail name (e.g. 'bank', 'swift', 'alipay', 'wechatpay', 'mobile_money'). Each value is the full field schema for that rail.

3
labelString

Human-readable label for the rail (e.g. 'Bank Transfer', 'International Wire (SWIFT)').

4
fieldsArray<Field>

Ordered list of fields required on the beneficiary for this rail. Each field carries key/label/type/required/component plus optional pattern/min_length/max_length/placeholder/options. Fields of type 'group' contain nested fields; type 'variant' is a discriminated union keyed by variant_key.

5
banksArray<Bank>

Populated for rails that require a bank selector (e.g. 'bank'). Same shape as Get Banks.

6
limitsObject

Per-rail amount limits: min_amount, max_amount, currency.

Dynamic Forms

The response is designed to drive auto-generated forms. Each field's component (text, select, date, country_select, fieldset, variant_fieldset) maps one-to-one to a form control; options_ref points at shared enum lists so you don't re-hardcode them per country.

Get Country Details - CN Response

Get Banks

Returns the bank and mobile-money directory for a country — a flat list of providers with their code and display name. Use the returned code as the bank_code input for Account Lookup and as the beneficiary's bank_code on Initialize.

Get Banks

Path Parameters
1
countryCodestringRequired

Two-letter ISO country code (e.g. 'NG', 'KE', 'GH'). Must be one of the codes returned by Get Supported Countries.

Response Fields
1
country_codeString

Echo of the ISO country code you requested.

2
country_nameString

Display name of the country (e.g. 'Nigeria').

3
totalInteger

Total number of bank / provider entries returned (e.g. Nigeria returns 358).

4
banksArray<Bank>

Banks and mobile-money providers supported in the country. Typically sorted alphabetically by bank_name.

5
bank_codeString

Provider code — pass this as bank_code on Account Lookup and as the beneficiary's bank_code on Initialize.

6
bank_nameString

Display name of the bank or mobile-money provider (e.g. 'Access bank', 'PAYSTACK PAYMENTS LIMITED').

Get Banks - Response (excerpt)

Get Limits

Returns the minimum and maximum payout amount for every supported (country, currency) corridor, with pre-computed USD equivalents so you can validate amounts client-side before creating a quote.

Get Limits

Response Fields
1
data.limitsArray<Limit>

One entry per (country, currency) corridor. Countries that support multiple currencies (e.g. GB supports both EUR and GBP) return one limit per currency.

2
countryString

ISO 3166-1 alpha-2 country code (e.g. 'NG', 'GH', 'GB').

3
currencyString

ISO 4217 currency code for this corridor (e.g. 'NGN', 'GHS', 'GBP').

4
min_amountString

Minimum amount for a single payout, expressed as a decimal string in the local currency.

5
max_amountString

Maximum amount for a single payout, expressed as a decimal string in the local currency.

6
min_amount_usdString

min_amount converted to USD using the current exchange rate. Useful for validating USD-denominated amounts client-side without calling a conversion endpoint.

7
max_amount_usdString

max_amount converted to USD using the current exchange rate.

Rates Move

The USD equivalents are computed at request time against the live FX rate. Cache the response sparingly — stale USD bounds may drift from what the quote endpoint will accept.

Get Limits - Response (excerpt)

Did you find this page useful?