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, and the ID documents accepted for verification. 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
financial_account_types- Type
- array
- Description
Financial account types available in this country. Each item is a
FinancialAccountTypeobject with:name(string) - Machine-readable identifier (e.g.,wallet,bank_account)label(string) - Human-readable label (e.g.,Wallet,Bank Account)description(string) - Description of the account typesubtypes(array) - Specific subtypes (e.g.,["mobile_money"]for wallet)
- Name
id_document_types- Type
- array
- Description
Identification document types accepted in this country. Each item is an
IDDocumentTypeobject with:name(string) - Machine-readable identifier (e.g.,ghana_card,passport)label(string) - Human-readable label (e.g.,Ghana Card,Passport)description(string) - Description of the document type
- Name
legal_entity_types- Type
- array
- Description
Legal entity types that can operate in this country. Each item is a
LegalEntityTypeobject with:type(string) - Machine-readable type identifier (e.g.,individual,company)name(string) - Human-readable name (e.g.,Individual,Company)description(string) - Detailed description of the entity type
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 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"
Response
{
"countries": {
"gh": {
"country_code": "gh",
"country_name": "Ghana",
"currencies": ["ghs", "usd"],
"payment_methods": [
"mobile_money",
"bank_account",
"payment_card",
"motito",
"upper"
],
"payout_schedules": ["weekly", "manual"],
"bt_aging_specs": [
"twenty_four_hourly",
"forty_eight_hourly",
"hundred_sixty_eight_hourly"
],
"legal_entity_types": [
{
"type": "individual",
"name": "Individual",
"description": "Individual person. They have a tax identification number (TIN) and can operate a business in their own name."
},
{
"type": "company",
"name": "Company",
"description": "Registered business entity with a company registration number."
}
],
"financial_account_types": [
{
"name": "wallet",
"label": "Wallet",
"description": "Mobile money wallet account",
"subtypes": ["mobile_money"]
},
{
"name": "bank_account",
"label": "Bank Account",
"description": "Traditional bank account",
"subtypes": ["ghana_bank_account"]
},
{
"name": "dosh_account",
"label": "Dosh Account",
"description": "Dosh wallet account for instant settlements",
"subtypes": []
}
],
"id_document_types": [
{
"name": "ghana_card",
"label": "Ghana Card",
"description": "National identification card issued by NIA"
},
{
"name": "passport",
"label": "Passport",
"description": "International passport"
},
{
"name": "drivers_license",
"label": "Driver's License",
"description": "Valid driver's license"
}
]
}
}
}
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