> ## 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.

# Configuração de métodos de pagamento

> Leia os métodos de pagamento configurados (habilitados e desabilitados) para o vendor vinculado à sua API key. Use para saber quais métodos de pagamento sua integração pode oferecer.

Retorna a configuração completa de métodos de pagamento para o vendor vinculado à sua API key, enriquecida com dados do catálogo global (`uuid`, `name`, `description`).

O endpoint não aceita query params — `accountId` e `vendorId` são derivados da API key. **Retorna todos os métodos** (habilitados e desabilitados) para que o cliente decida o que mostrar. Métodos do JSONB sem match no catálogo são excluídos.

## Autenticação

<ParamField header="x-api-key" type="string" required>
  Sua API key do Fire com scope `payment-methods:read`. A key **deve ser vendor-scoped** (binding account + vendor) — keys sem `vendorId` são rejeitadas com `403`.
</ParamField>

## Requisição

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

## Resposta

<ResponseField name="accountId" type="string">UUID do account ao qual a API key pertence.</ResponseField>

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

    <ResponseField name="vendors" type="object[]">
      <Expandable title="vendor">
        <ResponseField name="vendorId" type="string">Identificador do vendor.</ResponseField>
        <ResponseField name="vendorName" type="string">Nome legível do vendor.</ResponseField>

        <ResponseField name="paymentMethods" type="object[]">
          <Expandable title="paymentMethod">
            <ResponseField name="uuid" type="string">UUID do catálogo global de `payment_methods`.</ResponseField>
            <ResponseField name="code" type="string">Código do método (ex. `CASH`, `CREDIT_CARD`).</ResponseField>
            <ResponseField name="name" type="string">Nome de exibição.</ResponseField>
            <ResponseField name="description" type="string | null">Descrição opcional.</ResponseField>
            <ResponseField name="enabled" type="boolean">Se o método está ativo para este 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": "Dinheiro",
                "description": null,
                "enabled": true
              },
              {
                "uuid": "7e2b-...-c8",
                "code": "CREDIT_CARD",
                "name": "Cartão de crédito",
                "description": "Visa, Mastercard",
                "enabled": true
              },
              {
                "uuid": "abcf-...-2d",
                "code": "PlaceToPay",
                "name": "PlaceToPay",
                "description": null,
                "enabled": false
              }
            ]
          }
        ]
      }
    ]
  }
  ```

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

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

## Notas

* `uuid` vem do catálogo global de `payment_methods`, não do JSONB por account.
* Métodos desabilitados são incluídos para que você possa renderizá-los com estado "indisponível" ou escondê-los — é sua decisão.
* `countries` agrupa pelo código de país do JSONB.

## Relacionados

<CardGroup cols={2}>
  <Card title="Configuração de canais" icon="grid-2" href="/pt/api-reference/channels-config">
    Endpoint companion para ler os canais de venda configurados.
  </Card>

  <Card title="Autenticação" icon="lock" href="/pt/authentication">
    Como funcionam as API keys vendor-scoped e os scopes.
  </Card>
</CardGroup>
