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.

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
    banks
    Type
    object
    Description

    Country-specific bank reference data, when available. Ghana returns a bank_account_type of ghana_bank_account, a code_scheme of sort_code, and an items array of banks. Each bank includes id, name, optional swift_code, sort_code_prefix, and branch entries with id, name, and sort_code.

  • 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

    Machine-readable financial account type names available in this country, returned as strings.

  • Name
    id_document_types
    Type
    array
    Description

    Machine-readable identification document type names accepted in this country, returned as strings.

  • Name
    payment_methods
    Type
    array
    Description

    Public payment method capability names for the country, such as mobile_money, bank_account, payment_card, and motito.

  • Name
    payout_schedules
    Type
    array
    Description

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


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

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

Was this page helpful?