---
title: "Configuración operativa de un canal, sin secretos y sin efectos"
method: GET
path: "/channels/{channelId}/config"
tags: ["Channels"]
---

# Configuración operativa de un canal, sin secretos y sin efectos

`GET /channels/{channelId}/config`

## Request

- Base URL: `https://api.met.meteor.com.co/api/v1`
- URL: `https://api.met.meteor.com.co/api/v1/channels/{channelId}/config`
- Auth: one of:
  - `bearer` (a scheme the document does not define)
  - HTTP bearer

Devuelve el estado del canal, el flujo vinculado, el enrutamiento, los Mets asignados y cada línea (número de WhatsApp, Page, cuenta de Instagram o casilla de correo) con su alias, si está activa y qué flujo la atiende de verdad (`effective_flow_id`, con la precedencia línea → cuenta → canal). **Es solo lectura**: no crea ni repara nada, así que sirve para diagnosticar. **No devuelve credenciales**: ni tokens, ni PIN, ni la ruta del webhook. Un canal de otro workspace responde `404`, igual que uno inexistente.

## Path parameters

- `channelId` string, required

## Response `200`

- object: Sobre en el que viaja toda respuesta correcta de la API. El recurso está en `data`. Los SDKs oficiales lo desenvuelven por ti; un cliente hecho a mano tiene que leer `.data`.
  - `success` true, required: Siempre `true` en una respuesta 2xx.
  - `data` ChannelConfigDto, required
    - `accounts` ChannelConfigAccountDto[], required
      - `alias` string, nullable, required
      - `connected_at` string, nullable, required
      - `external_id` string, required: Id en el proveedor (WABA id, o el id de la cuenta de Meta).
      - `flow_id` string, nullable, required: Flujo que heredan las líneas de esta cuenta sin flujo propio.
      - `id` string, required
      - `is_primary` boolean, required
      - `kind` 'whatsapp_waba' | 'meta_connection', required
      - `last_synced_at` string, nullable, required
      - `name` string, nullable, required
    - `accounts_has_more` boolean, required: `true` = hay más de 200 cuentas y la lista viene cortada.
    - `configured` boolean, required: `false` = el workspace nunca configuró el canal. Este endpoint NO la crea: informa que falta.
    - `created_at` string, nullable, required
    - `flow` ChannelConfigFlowDto, required
      - `id` string, required
      - `met_ids` number[], required: Mets que asignan los nodos de handoff de la versión PUBLICADA del flujo.
      - `name` string, nullable, required: `null` cuando el flujo no existe en este workspace (referencia rota).
      - `published_at` string, nullable, required
      - `status` string, required: `draft` | `published` | `archived`, o `not_found` si la referencia apunta a un flujo que ya no existe en el workspace. Solo `published` atiende mensajes automáticamente.
    - `flow_explicitly_unset` boolean, required: `true` = alguien eligió «Sin flujo» a propósito; la reparación automática del panel respeta esa decisión y no vuelve a vincular el Flujo principal.
    - `flows` ChannelConfigFlowDto[], required: Todos los flujos que se mencionan arriba, con nombre y estado.
      - `id` string, required
      - `met_ids` number[], required: Mets que asignan los nodos de handoff de la versión PUBLICADA del flujo.
      - `name` string, nullable, required: `null` cuando el flujo no existe en este workspace (referencia rota).
      - `published_at` string, nullable, required
      - `status` string, required: `draft` | `published` | `archived`, o `not_found` si la referencia apunta a un flujo que ya no existe en el workspace. Solo `published` atiende mensajes automáticamente.
    - `id` number, required
    - `is_active` boolean, required: `true` = el canal está conectado y operando en este workspace.
    - `lines` ChannelConfigLineDto[], required: Líneas del canal. En correo solo salen las casillas de la Bandeja: las personales que alguien conectó para Agenda no se listan.
      - `account_external_id` string, nullable, required: `external_id` de la cuenta a la que pertenece (ver `accounts`).
      - `alias` string, nullable, required
      - `authorization_expires_at` string, nullable, required: Solo Instagram y correo: cuándo vence la autorización (no el token).
      - `connected_at` string, nullable, required
      - `display` string, nullable, required: Lo que ve el cliente final: número visible, nombre de la Page, usuario o correo.
      - `effective_flow_id` string, nullable, required: El flujo que efectivamente arranca un mensaje que entra por esta línea. `null` si la línea está inactiva: lo que entra por ella se descarta.
      - `effective_flow_source` 'line' | 'account' | 'channel' | 'inactive', required: De dónde sale `effective_flow_id`: la línea, su cuenta o el canal. `inactive` = la línea está apagada y no atiende.
      - `external_id` string, required: Id en el proveedor: `phone_number_id`, `page_id`, `ig_user_id` o la dirección.
      - `flow_id` string, nullable, required: Flujo propio de la línea. `null` = hereda.
      - `id` string, required
      - `is_active` boolean, required: `false` = la línea está pausada y no recibe con su vínculo propio.
      - `kind` 'whatsapp_phone' | 'messenger_page' | 'instagram_account' | 'email_inbox', required
      - `last_synced_at` string, nullable, required
      - `messaging_limit_tier` string, nullable, required: Solo WhatsApp: nivel de mensajería de Meta.
      - `name_status` string, nullable, required: Solo WhatsApp: estado del nombre visible en Meta.
      - `primary_met_id` number, nullable, required
      - `quality_rating` string, nullable, required: Solo WhatsApp: calidad según Meta (`GREEN`, `YELLOW`, `RED`).
      - `secondary_met_ids` number[], required
      - `status` ChannelConfigLineStatusDto, required
        - `code` string, required: `registered`, `coexistence`, `code_not_verified`, `code_expired` o `not_registered`.
        - `operational` boolean, required: `true` = la línea puede enviar y recibir.
        - `stage` string, required
        - `via` string, nullable, required
    - `lines_has_more` boolean, required: `true` = hay más de 200 líneas y la lista viene cortada.
    - `mets` ChannelConfigMetDto[], required: Todos los Mets que se mencionan arriba (canal, líneas y nodos de los flujos).
      - `found` boolean, required
      - `id` number, required
      - `name` string, nullable, required: `null` cuando el Met no existe en este workspace (referencia rota).
    - `name` string, required
    - `primary_met` ChannelConfigMetDto, required
      - `found` boolean, required
      - `id` number, required
      - `name` string, nullable, required: `null` cuando el Met no existe en este workspace (referencia rota).
    - `routing` ChannelConfigRoutingDto, required
      - `allow_when_energy_depleted` boolean, required
      - `campaign` ChannelConfigRouteDto, required
        - `flow_id` string, nullable, required
        - `payload` object, required
      - `default_flow_id` string, nullable, required
      - `enabled` boolean, required
      - `fallback` ChannelConfigRouteDto, required
        - `flow_id` string, nullable, required
        - `payload` object, required
      - `mode` 'disabled' | 'every_message' | 'rules', required: `disabled` (lo normal), `every_message` o `rules`.
      - `rules` ChannelConfigRoutingRuleDto[], required
        - `before_waits` boolean, required
        - `contains_any` string[], required
        - `exact_any` string[], required
        - `flow_id` string, nullable, required
        - `interactive_ids` string[], required
        - `payload` object, required: Datos que la regla le pasa al flujo al arrancarlo.
        - `quoted_contains_any` string[], required
        - `required_tag` string, nullable, required
        - `resume_menu_first` boolean, required
    - `secondary_mets` ChannelConfigMetDto[], required
      - `found` boolean, required
      - `id` number, required
      - `name` string, nullable, required: `null` cuando el Met no existe en este workspace (referencia rota).
    - `type` 'meteor_crm' | 'whatsapp' | 'email' | 'messenger' | 'instagram' | 'web', required
    - `updated_at` string, nullable, required

## Other responses

- `400`: La request no es válida: un campo no pasa validación, falta un parámetro requerido o el recurso no admite la transición solicitada.
- `401`: API key ausente, inválida, revocada o expirada — o el workspace está bloqueado.
- `403`: La key está autenticada pero no puede ejecutar esta operación: scope faltante, capacidad deshabilitada, modo test restringido o recurso fuera de su cartera.
- `404`: El recurso no existe o no está disponible dentro del alcance de la key. No revela la existencia de recursos de otros tenants.
- `429`: Se superó el límite por minuto de la key o la cuota del plan. Respeta `Retry-After`; el SDK ya reintenta solo.
- `500`: Error del servidor o del Met que ejecutaba. El SDK reintenta los 5xx con backoff.

---

[API](https://skmtc.dev/meteor/apis/met-public-api.md) · [All operations](https://skmtc.dev/meteor/apis/met-public-api/llms.txt) · [OpenAPI document](https://skmtc.dev/meteor/apis/met-public-api/revisions/5d9ca294295c?raw)
