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

# Payment methods config

> Read the configured payment methods (enabled and disabled) for the vendor bound to your API key. Use it to know which payment methods your integration can offer.

Returns the full payment-methods configuration for the vendor bound to your API key, enriched with global catalog data (`uuid`, `name`, `description`).

The endpoint takes no query parameters — `accountId` and `vendorId` are derived from the API key. **All methods are returned** (enabled and disabled) so the client can decide what to show. Methods in the account JSONB without a catalog match are excluded.

## Authentication

<ParamField header="x-api-key" type="string" required>
  Your Fire API key with the `payment-methods:read` scope. The key **must be vendor-scoped** (account + vendor binding) — keys without a `vendorId` are rejected with `403`.
</ParamField>

## Request

<RequestExample>
  ```http theme={null}
  GET https://api.fire.rest/api/v1/external/payment-methods/config
  x-api-key: <your_api_key>
  ```
</RequestExample>

## Response

<ResponseField name="accountId" type="string">UUID of the account the API key belongs to.</ResponseField>

<ResponseField name="countries" type="object[]">
  <Expandable title="country">
    <ResponseField name="countryCode" type="string">ISO 3166-1 alpha-2 (e.g. `BR`, `EC`, `CO`).</ResponseField>

    <ResponseField name="vendors" type="object[]">
      <Expandable title="vendor">
        <ResponseField name="vendorId" type="string">Vendor identifier.</ResponseField>
        <ResponseField name="vendorName" type="string">Human-readable vendor name.</ResponseField>

        <ResponseField name="paymentMethods" type="object[]">
          <Expandable title="paymentMethod">
            <ResponseField name="uuid" type="string">UUID from the global `payment_methods` catalog.</ResponseField>
            <ResponseField name="code" type="string">Payment method code (e.g. `CASH`, `CREDIT_CARD`).</ResponseField>
            <ResponseField name="name" type="string">Display name.</ResponseField>
            <ResponseField name="description" type="string | null">Optional description.</ResponseField>
            <ResponseField name="enabled" type="boolean">Whether the method is active for this vendor.</ResponseField>
          </Expandable>
        </ResponseField>
      </Expandable>
    </ResponseField>
  </Expandable>
</ResponseField>

<ResponseExample>
  ```json 200 theme={null}
  {
    "accountId": "550e8400-e29b-41d4-a716-446655440000",
    "countries": [
      {
        "countryCode": "EC",
        "vendors": [
          {
            "vendorId": "100.1.10",
            "vendorName": "Sandbox Ecuador",
            "paymentMethods": [
              {
                "uuid": "9f3a-...-e1",
                "code": "CASH",
                "name": "Cash",
                "description": null,
                "enabled": true
              },
              {
                "uuid": "7e2b-...-c8",
                "code": "CREDIT_CARD",
                "name": "Credit card",
                "description": "Visa, Mastercard",
                "enabled": true
              },
              {
                "uuid": "abcf-...-2d",
                "code": "PlaceToPay",
                "name": "PlaceToPay",
                "description": null,
                "enabled": false
              }
            ]
          }
        ]
      }
    ]
  }
  ```

  ```json 401 — invalid API key theme={null}
  {
    "error": {
      "code": "unauthorized",
      "message": "Invalid or missing API key"
    }
  }
  ```

  ```json 403 — key not vendor-scoped theme={null}
  {
    "error": {
      "code": "forbidden",
      "message": "API key must be vendor-scoped to access this endpoint"
    }
  }
  ```
</ResponseExample>

## Notes

* `uuid` comes from the global `payment_methods` catalog, not from the per-account JSONB.
* Disabled methods are included so you can render them with an "unavailable" state or hide them — it is your decision.
* `countries` groups by country code from the JSONB.

## Related

<CardGroup cols={2}>
  <Card title="Channels config" icon="grid-2" href="/en/api-reference/channels-config">
    Companion endpoint to read configured sales channels.
  </Card>

  <Card title="Authentication" icon="lock" href="/en/authentication">
    How vendor-scoped API keys and scopes work.
  </Card>
</CardGroup>
