---
title: "Spec"
description: "Discover the countries and capabilities Inttegro supports, including currencies, payment methods, payout schedules, account types, identity documents, and bank directories."
canonical: "https://studio.inttegro.com/api/spec"
format: inttegro-machine-docs/v1
language: "PHP"
sdk_version: "v12.0.0"
reader_profile: optional
reader_manifest: "https://studio.inttegro.com/machine/php/readers/index.json"
reader_identification: "Optional: declare your client only if known and your current-session capabilities; use reader_manifest for supplemental recommendations."
preamble_estimated_tokens: 628
model_token_report: "https://studio.inttegro.com/machine/token-report.json"
preamble_questions: 5
preamble_source: "machine-only-decisions"
recommended_mcp_tools: ["get_country_specifications"]
estimated_tokens: 2798
token_estimate_method: "utf8_bytes_divided_by_4"
---

## Machine preamble

**Summary:** Discover the countries and capabilities Inttegro supports, including currencies, payment methods, payout schedules, account types, identity documents, and bank directories. This PHP representation uses the selected SDK's native names wherever Studio has a verified mapping.

### Five questions

#### Q1. Is Spec the right source for this task?

Use this reference for discover the countries and capabilities inttegro supports, including currencies, payment methods, payout schedules, account types, identity documents, and bank directories. For the complete outcome or lifecycle, start with [Accept a payment](https://studio.inttegro.com/machine/php/guides/accept-a-payment.md); return here for exact operations and fields.

#### Q2. What does “This endpoint is the public capability source” require?

**This endpoint is the public capability source.** It needs no API key and is
safe to call from client-side code when building country-aware choices.

#### Q3. What does “Resolve the country entry before validating dependent fields” require?

**Resolve the country entry before validating dependent fields.** Currency,
payment method, payout schedule, financial-account type, identity-document,
and bank choices should come from the selected country's specification rather
than from a global hard-coded list.

#### Q4. What does “Treat omission as capability absence” require?

**Treat omission as capability absence.** A missing bank directory means the
country has no bank list in the response; it is not an empty or failed
authenticated lookup. Preserve the lowercase ISO country-code keys when
indexing the returned collection.

#### Q5. What does “Refresh instead of assuming permanence” require?

**Refresh instead of assuming permanence.** Capability data can evolve. Use
the current response when presenting or validating a new configuration, then
continue to the relevant API such as [Financial
accounts](https://studio.inttegro.com/machine/php/api/financial-accounts.md) or [Payouts](https://studio.inttegro.com/machine/php/api/payouts.md).

### Recommended MCP assistance

Use these through an authenticated Inttegro MCP connection. This document remains the contract source.

- [`get_country_specifications`](https://studio.inttegro.com/machine/php/inttegro-mcp/tools.md#get_country_specifications) — read; no mutation confirmation. Lists Commerce-supported countries, currencies, payment methods, payout schedules, and onboarding capabilities.

## Document content

# Spec

Use the Spec API to discover which Inttegro capabilities are available in each country. It gives your integration the current currencies, payment methods, payout schedules, account types, identity documents, and bank choices for every supported market.

> **Note:**
>
> No API key is required. You can call this endpoint from client-side code to
> populate country-aware choices and validation rules.

## Use live capability data instead of hard-coded market assumptions

The four decision rules are in the machine preamble above.

## The country specification object

Each country specification describes the Inttegro capabilities currently
configured for one country. The operation returns a collection keyed by
lowercase ISO 3166-1 alpha-2 country code. All properties below are present
except [`banks`](https://php.inttegro.dev/v12.0.0/classes/Inttegro-Shared-CountrySpecifications.html), which is omitted for countries without a
bank directory.

### Properties

- [`bt_aging_specs`](https://php.inttegro.dev/v12.0.0/classes/Inttegro-Shared-CountrySpecifications.html) — `array`

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

- [`banks`](https://php.inttegro.dev/v12.0.0/classes/Inttegro-Shared-CountrySpecifications.html) — `object`

  Country-specific bank reference data, when available. Ghana returns a
  [`countries[].banks.bank_account_type`](https://php.inttegro.dev/v12.0.0/classes/Inttegro-Shared-CountrySpecifications.html) of `'ghana_bank_account'`, a [`countries[].banks.code_scheme`](https://php.inttegro.dev/v12.0.0/classes/Inttegro-Shared-CountrySpecifications.html) of
  `'sort_code'`, and
  an [`countries[].banks.items`](https://php.inttegro.dev/v12.0.0/classes/Inttegro-Shared-CountrySpecifications.html) array of banks. Each bank
  includes [`countries[].banks.items[].id`](https://php.inttegro.dev/v12.0.0/classes/Inttegro-Shared-CountrySpecifications.html),
  [`countries[].banks.items[].name`](https://php.inttegro.dev/v12.0.0/classes/Inttegro-Shared-CountrySpecifications.html), optional
  [`countries[].banks.items[].swift_code`](https://php.inttegro.dev/v12.0.0/classes/Inttegro-Shared-CountrySpecifications.html),
  [`countries[].banks.items[].sort_code_prefix`](https://php.inttegro.dev/v12.0.0/classes/Inttegro-Shared-CountrySpecifications.html), and a
  required [`countries[].banks.items[].branches`](https://php.inttegro.dev/v12.0.0/classes/Inttegro-Shared-CountrySpecifications.html) array.
  Each branch contains
  [`countries[].banks.items[].branches[].id`](https://php.inttegro.dev/v12.0.0/classes/Inttegro-Shared-CountrySpecifications.html),
  [`countries[].banks.items[].branches[].name`](https://php.inttegro.dev/v12.0.0/classes/Inttegro-Shared-CountrySpecifications.html), and
  [`countries[].banks.items[].branches[].sort_code`](https://php.inttegro.dev/v12.0.0/classes/Inttegro-Shared-CountrySpecifications.html).
  [`countries[].banks.items[].swift_code`](https://php.inttegro.dev/v12.0.0/classes/Inttegro-Shared-CountrySpecifications.html) and
  [`countries[].banks.items[].sort_code_prefix`](https://php.inttegro.dev/v12.0.0/classes/Inttegro-Shared-CountrySpecifications.html) are omitted
  when unavailable.

- [`country_code`](https://php.inttegro.dev/v12.0.0/classes/Inttegro-Shared-CountrySpecifications.html) — `string`

  ISO 3166-1 alpha-2 country code (for example, `'gh'` for
  Ghana or `'ng'` for Nigeria).

- [`country_name`](https://php.inttegro.dev/v12.0.0/classes/Inttegro-Shared-CountrySpecifications.html) — `string`

  Full country name in English (for example, `'Ghana'` or `'Nigeria'`).

- [`currencies`](https://php.inttegro.dev/v12.0.0/classes/Inttegro-Shared-CountrySpecifications.html) — `array`

  Supported currency codes for this country, such as
  `'ghs'` and `'usd'`. Use these when
  creating orders or configuring payouts.

- [`financial_account_types`](https://php.inttegro.dev/v12.0.0/classes/Inttegro-Shared-CountrySpecifications.html) — `array`

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

- [`id_document_types`](https://php.inttegro.dev/v12.0.0/classes/Inttegro-Shared-CountrySpecifications.html) — `array`

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

- [`legal_entity_types`](https://php.inttegro.dev/v12.0.0/classes/Inttegro-Shared-CountrySpecifications.html) — `array`

  Machine-readable legal entity types that can operate in this country,
  returned as strings.

- [`payment_methods`](https://php.inttegro.dev/v12.0.0/classes/Inttegro-Shared-CountrySpecifications.html) — `array`

  Public payment method capability identifiers configured for the country.
  Match these identifiers against the payment methods your integration
  supports rather than converting them into customer-facing labels.

- [`payout_schedules`](https://php.inttegro.dev/v12.0.0/classes/Inttegro-Shared-CountrySpecifications.html) — `array`

  Available payout schedules for this country, such as
  `'weekly'` and `'manual'`. Use these
  when configuring payout settings.

## List country specifications

Retrieve the current Inttegro capabilities for every supported country.

This endpoint requires no authentication and can be called from client-side
code.

Treat the values as capability identifiers, not display copy. Refresh them when starting a country-dependent flow and validate the final choice again when creating the corresponding resource; availability can change between the two requests.

> Mcp Endpoint Tools is interactive content. Use the canonical page to view it.

### Request body

No request body is required. Send an empty object or omit the body entirely.

**Request — POST /spec/countries**

```php
<?php

use Inttegro\Client;

$client = new Client($_ENV['INTTEGRO_API_KEY']);
$result = $client->spec->countries();
```

```json
{
  "countries": {
    "gh": {
      "country_code": "gh",
      "country_name": "Ghana",
      "currencies": ["ghs", "usd"],
      "payment_methods": ["mobile_money", "bank_account", "payment_card"],
      "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 a financial account](https://studio.inttegro.com/machine/php/guides/set-up-financial-account.md) - Show the account types available in a country
- [Accept a payment](https://studio.inttegro.com/machine/php/guides/accept-a-payment.md) - Offer payment methods available in the customer's country
- [Financial accounts](https://studio.inttegro.com/machine/php/api/financial-accounts.md) - Create and manage financial accounts
