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

# Channels config

> Read the active sales-channel configuration (with fulfillment types) for your vendor. Use it to know which channels and fulfillment combinations your integration can use.

Returns the full sales-channel configuration for your vendor, enriched with global catalog data (`uuid`, `name`, `description`) and the fulfillment types configured for each channel.

The endpoint takes no query parameters. Only channels with `enabled !== false` are returned. Channels that have no match in the catalog are excluded from the response.

## Authentication

<ParamField header="x-api-key" type="string" required>
  Your Fire API key with the `channels:read` scope. The key **must be vendor-scoped** (account + vendor binding) — keys without a `vendorId` are rejected with `403`. The account and vendor are resolved from the key, so no `account` header or query param is needed.
</ParamField>

## Request

<RequestExample>
  ```http theme={null}
  GET https://api.fire.rest/api/v1/fire/external/channels/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="channels" type="object[]">
          <Expandable title="channel">
            <ResponseField name="uuid" type="string">UUID from the global `channels` catalog.</ResponseField>
            <ResponseField name="code" type="string">Channel code (e.g. `APP`, `KIOSK`, `WEB`).</ResponseField>
            <ResponseField name="name" type="string">Display name.</ResponseField>
            <ResponseField name="description" type="string | null">Optional description.</ResponseField>
            <ResponseField name="enabled" type="boolean">Always `true` for returned rows.</ResponseField>

            <ResponseField name="fulfillmentTypes" type="object[]">
              <Expandable title="fulfillmentType">
                <ResponseField name="uuid" type="string">UUID from the global `fulfillment_types` catalog.</ResponseField>
                <ResponseField name="code" type="string">Fulfillment code (e.g. `DELIVERY`, `PICKUP`).</ResponseField>
                <ResponseField name="name" type="string">Display name.</ResponseField>
                <ResponseField name="referenceName" type="string">Internal reference name.</ResponseField>
                <ResponseField name="description" type="string | null">Optional description.</ResponseField>
                <ResponseField name="enabled" type="boolean">Always `true` for returned rows.</ResponseField>
              </Expandable>
            </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",
            "channels": [
              {
                "uuid": "9f3a-...-e1",
                "code": "APP",
                "name": "Mobile App",
                "description": "Mobile-app sales channel",
                "enabled": true,
                "fulfillmentTypes": [
                  {
                    "uuid": "abcf-...-2d",
                    "code": "DELIVERY",
                    "name": "Delivery",
                    "referenceName": "DELIVERY",
                    "description": null,
                    "enabled": true
                  }
                ]
              },
              {
                "uuid": "7e2b-...-c8",
                "code": "KIOSK",
                "name": "Kiosk",
                "description": null,
                "enabled": true,
                "fulfillmentTypes": []
              }
            ]
          }
        ]
      }
    ]
  }
  ```

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

  ```json 403 theme={null}
  {
    "error": {
      "code": "forbidden",
      "message": "Access denied"
    }
  }
  ```
</ResponseExample>

## Notes

* `uuid` comes from the global `channels` catalog, not from the per-account JSONB.
* `fulfillmentTypes` only includes types configured for that channel in the vendor. Types without a catalog match are excluded.
* `countries` groups by country code from the JSONB. A vendor may appear in multiple countries if it is configured per-country.

## Related

<CardGroup cols={2}>
  <Card title="Payment methods config" icon="credit-card" href="/en/api-reference/payment-methods-config">
    Companion endpoint to read configured payment methods.
  </Card>

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