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.

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
    bt_aging_specs
    Type
    array
    Description

    Balance transaction aging specifications available in this country. Common values: twenty_four_hourly (24 hours), forty_eight_hourly (48 hours), hundred_sixty_eight_hourly (168 hours / 7 days).

  • Name
    country_code
    Type
    string
    Description

    ISO 3166-1 alpha-2 country code (e.g., gh for Ghana, ng for Nigeria).

  • Name
    country_name
    Type
    string
    Description

    Full country name in English (e.g., Ghana, Nigeria).

  • Name
    currencies
    Type
    array
    Description

    Supported currency codes for this country (e.g., ["ghs", "usd"]). Use these when creating orders or configuring payouts.

  • Name
    financial_account_types
    Type
    array
    Description

    Financial account types available in this country. Each item is a FinancialAccountType object 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 type
    • subtypes (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 IDDocumentType object 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
    payment_methods
    Type
    array
    Description

    Supported payment methods in this country (e.g., mobile_money, bank_account, payment_card, motito, upper).

  • Name
    payout_schedules
    Type
    array
    Description

    Available payout schedules for this country (e.g., weekly, manual). Use these when configuring payout settings.


POST/spec/countries

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

POST
/spec/countries
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"
        }
      ]
    }
  }
}

Was this page helpful?