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

# Payment methods

> GET /v1/payment-methods - which ways in and out are open for a country today.

Lists the ways money can enter and leave for a given country: cards, bank rails,
and the alternative local methods that dominate in some markets - mobile money,
QR schemes, and local payment networks.

Read this rather than hard-coding a list. Availability changes with the partner's
coverage, and a method that is open in one direction is not always open in the
other.

## Query parameters

<ParamField query="country" type="string" required>
  ISO 3166-1 alpha-2 code (e.g. `"BR"`).
</ParamField>

<ParamField query="direction" type="string">
  `in` for on-ramp, `out` for off-ramp. Omit to get both.
</ParamField>

<ParamField query="currency" type="string">
  ISO 4217 code, to narrow the answer to one currency.
</ParamField>

## Response

<ResponseField name="country" type="string">
  The country asked about, echoed back.
</ResponseField>

<ResponseField name="methods" type="array">
  One entry per method. Each carries `type` (`card`, `apple_pay`,
  `virtual_account`, `bank_deposit`, `bank_payout`, `mobile_money`, `qr`,
  `local_network`), the `currency` it works in, `direction` (`in` or `out`), the
  `rail` behind it where one applies, `min` and `max` in that currency, and a
  coarse `settlement` label.
</ResponseField>

<Warning>
  **A method being listed is not a promise for a specific user.** Their bank, card
  issuer or verification tier can still decline. Treat this as what the corridor
  supports, not as pre-approval.
</Warning>

<Note>
  Card availability is narrower than the banking side in several countries. Where
  the two disagree, this endpoint is the one to trust for cards - it reflects the
  card partner's own restriction list. See also
  [Card countries](/api-reference/card-countries).
</Note>

<RequestExample>
  ```bash cURL theme={null}
  curl "$RHEON_API/v1/payment-methods?country=BR&direction=out" \
    -H "Authorization: Bearer $RHEON_API_KEY"
  ```
</RequestExample>

<ResponseExample>
  ```json 200 theme={null}
  {
    "country": "BR",
    "methods": [
      {
        "type": "bank_payout",
        "currency": "BRL",
        "direction": "out",
        "rail": "pix",
        "min": "10.00",
        "max": "50000.00",
        "settlement": "instant"
      },
      {
        "type": "card",
        "currency": "BRL",
        "direction": "out",
        "min": "50.00",
        "max": "20000.00",
        "settlement": "t+1"
      }
    ]
  }
  ```
</ResponseExample>

## Errors

| HTTP | `code`            | When                                           |
| ---- | ----------------- | ---------------------------------------------- |
| 400  | `invalid_request` | `country` missing or not a valid alpha-2 code. |
| 401  | `unauthorized`    | Missing, malformed, or unknown API key.        |
| 429  | `rate_limited`    | Over your key's rate limit.                    |
| 502  | `upstream_error`  | A partner catalogue is unavailable.            |
| 500  | `internal`        | Unexpected server error.                       |
