# Payout Countries

The countries where the bank ramp can pay out to the user, each with the fiat currencies it pays in.

## Overview

The first step of a payout to a bank account: let the user pick the country and currency of the beneficiary, then [search the channels](https://docs.aureahub.com/docs/payout-channels.md) for that pair. Aurea asks the bank ramp for the user's own bank ramp customer, so the list is what that user can use.

- Countries are ISO 3166-1 alpha-2 codes, sorted; each currency is listed once. `XX` names channels usable internationally.
- **Payouts must be switched on** for your tenant in that environment ([Tenant Settings](https://docs.aureahub.com/docs/bank-settings.md)): otherwise `403` `NOAH_FUNCTION_OFF`. A tenant that does not use the bank ramp, or a token without a tenant, gets `403`.
- The user needs a bank ramp profile in that environment ([Onboarding Session](https://docs.aureahub.com/docs/payin-session.md)): otherwise `404` with `details.code` `NOAH_CUSTOMER_NOT_FOUND`. KYC approval is not needed to read; the bank ramp's own refusals pass through with their status and `details`, for example `403` `NOAH_FORBIDDEN` with `denyReasons`. **A user who has not started their onboarding is a different case**: Aurea lets the read through and the bank ramp answers `404`, which arrives as `404` `NOAH_RESOURCE_NOT_FOUND`. The reason is worth knowing — **The bank ramp does not create the customer when the session is created, but when the user actually begins the hosted flow**, so until then the bank ramp has nobody by that id (measured against the bank ramp's sandbox on 21 September 2026: [Sync KYC Status](https://docs.aureahub.com/docs/payin-sync-status.md) answers `synced: false` and says the customer is not in the bank ramp yet). These reads become useful once the user has started onboarding.
- `isTestnet=true` reads the bank ramp's sandbox with the user's sandbox profile; `false` or omitted reads production. Nothing is stored and nothing moves.

## Endpoint

### `GET /v1/ramp/bank/payout/countries`

Authentication: bearer token required.

Returns the countries the bank ramp pays out in for the user's bank ramp customer, with their fiat currencies.

**Query parameters**

| Name | Type | Required | Description |
| --- | --- | --- | --- |
| `isTestnet` | boolean | no | `true` for the bank ramp's sandbox; `false` or omitted for production |

**Responses**

`200` OK

```json
{
  "environment": "sandbox",
  "countries": [
    { "country": "DE", "fiatCurrencies": ["EUR"] },
    { "country": "US", "fiatCurrencies": ["USD"] },
    { "country": "XX", "fiatCurrencies": ["USD"] }
  ]
}
```

`404` No bank ramp profile

```json
{
  "statusCode": 404,
  "error": "NotFoundError",
  "message": "No bank ramp customer profile in sandbox for this user: onboard with the bank ramp first.",
  "details": { "code": "NOAH_CUSTOMER_NOT_FOUND", "environment": "sandbox" }
}
```

---

Web version: https://docs.aureahub.com/#payout-countries
