Countries
Country specifications provide everything you need to build country-aware onboarding flows, payment forms, and compliance workflows. Each country specification includes the currencies it supports, which payment methods work there, available payout schedules, legal entity types that can operate, financial account types you can connect, the ID documents accepted for verification, and country-specific bank reference data when available. Use this endpoint to dynamically adapt your application to each market's requirements without hardcoding country-specific logic.
This is a public endpoint—no authentication required. You can call it from client-side code to build dynamic country selectors and validation rules.
The CountrySpecification object
Each country specification describes a single country's commerce capabilities. The object maps country codes (ISO 3166-1 alpha-2) to detailed specifications including supported features, requirements, and available options for that market.
Properties
- Name
banks- Type
- object
- Description
Country-specific bank reference data, when available. Ghana returns a
bank_account_typeofghana_bank_account, acode_schemeofsort_code, and anitemsarray of banks. Each bank includesid,name, optionalswift_code,sort_code_prefix, and branch entries withid,name, andsort_code.
Get country specifications
Retrieve specifications for all configured countries. Returns a map of country codes to country specification objects.
This endpoint requires no authentication and can be called from client-side code. It's designed for building dynamic forms, country selectors, and validation rules that adapt to each market's requirements.
Use cases
- Build country-specific onboarding flows with appropriate legal entity types
- Validate payment methods against country availability
- Display correct ID document types for verification
- Show available payout schedules per country
- Populate bank and branch selectors for country-specific bank accounts
- Populate country/currency dropdowns in your UI
Request body
No request body required. Send an empty object or omit the body entirely.
Request
curl https://api.zebo.dev/spec/countries \
-X POST \
-H "Content-Type: application/json"
{
"countries": {
"gh": {
"country_code": "gh",
"country_name": "Ghana",
"currencies": ["ghs", "usd"],
"payment_methods": [
"mobile_money",
"bank_account",
"payment_card",
"motito"
],
"payout_schedules": ["weekly", "manual"],
"bt_aging_specs": [
"twenty_four_hourly",
"forty_eight_hourly",
"hundred_sixty_eight_hourly"
],
"legal_entity_types": [
"company",
"government_entity",
"individual",
"non_profit",
"sole_prop"
],
"financial_account_types": [
"bank",
"dosh",
"wallet"
],
"id_document_types": [
"drivers_license",
"ghana_card",
"passport"
],
"banks": {
"bank_account_type": "ghana_bank_account",
"code_scheme": "sort_code",
"items": [
{
"id": "absa_gh_ltd",
"name": "ABSA (GH) LTD",
"swift_code": "BARCGHAC",
"sort_code_prefix": "03",
"branches": [
{
"id": "absa_gh_ltd_kasoa_branch",
"name": "ABSA (GH) LTD-KASOA BRANCH",
"sort_code": "030101"
}
]
}
]
}
}
}
}
Related resources
- Set up financial account - Use country specifications to show appropriate account types
- Accept a payment - Filter payment methods by country availability
- Financial Accounts - Complete API reference for financial accounts