> ## Documentation Index
> Fetch the complete documentation index at: https://docs.pay.aptahq.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Capabilities and corridors

> Ask what your routed provider supports before you promise a feature to your users.

AptaPay is a multi-provider gateway. Which provider handles your traffic is a
routing decision made per tenant and per corridor — you do not choose it, and
you should not encode it in your integration.

Not every provider supports every operation. Rather than discovering that in
production, ask.

## Capabilities

```http theme={null}
GET /v1/capabilities
```

Signed with your normal credentials. It returns, per capability, which
provider you are routed to and whether it is supported — with a
human-readable reason when it is not.

The capabilities are `collections`, `payouts`, `refunds`, `bank_resolution`,
`reference_data`, `fx` and `balances`.

<Tip>
  This is the integration-time contract. A `501` on the actual call — for
  example [`POST /v1/refunds`](/api-reference/refunds/reversals-—-currently-a-hard-501-always), which
  is an unconditional 501 today — is the backstop for a caller who did not
  check first, not the intended way to discover a gap.
</Tip>

FX is granted to every tenant as a baseline capability, so you can always
quote and exchange between the currencies you hold float in.

## Corridors

A corridor is the combination of **country, currency and method**. It is the
unit that limits, fees and support are defined against.

```http theme={null}
GET /v1/reference/corridors
```

Returns every corridor available to you, with its minimum and maximum
amounts and its supported methods. Query it rather than hardcoding limits —
they are configurable per tenant and can only ever be narrowed from the
platform defaults, so a cached copy will drift toward being wrong in the
permissive direction.

Related reference endpoints:

<Columns cols={2}>
  <Card title="Countries" icon="globe" href="/api-reference/reference/live-delivery-countries-and-their-payment-types">
    Supported countries and their currencies.
  </Card>

  <Card title="Banks" icon="landmark" href="/api-reference/reference/delivery-banks-for-a-country">
    Bank list for a country, for bank payouts.
  </Card>

  <Card title="Resolve account" icon="user-check" href="/api-reference/reference/account-number-to-account-name">
    Confirm a bank account resolves to a name before paying out.
  </Card>

  <Card title="Balances" icon="wallet" href="/api-reference/reference/provider-wallet-balances-per-currency-the-shared-pool">
    Your float, per currency.
  </Card>
</Columns>

## Country is stated, never guessed

You always state the country explicitly. AptaPay does not infer it from a
phone number's digits, because several currencies span multiple countries —
XAF and XOF each cover several — and a guess there would route money to the
wrong place.

For payouts the country you state is validated strictly. For collections it
is more lenient. The asymmetry is deliberate: **payouts are irreversible**,
so an ambiguous destination is refused rather than attempted.
