Saltar al contenido

Listar plantillas

Lista las plantillas del cliente, una por plantilla con sus campañas y canales asignados, con paginación y filtros.

Endpoint: GET /v1/templates

Parámetros

Query

ParámetroTipoRequeridoDescripción
statestringNoFiltro por estado (APPROVED, PENDING, …).
searchstringNoBúsqueda por nombre.
categorystringNoFiltro por categoría.
langstringNoFiltro por idioma.
didstringNoFiltro por DID.
namestringNoNombre exacto.
template_meta_idstringNoID del template en Meta.
activebooleanNoFiltro por estado activo/inactivo.
deletedbooleanNoEstado de eliminación. true → solo plantillas eliminadas. false o ausente → excluye eliminadas.
campaign_namestringNoNombre exacto de campaña (permite traer Unassigned).
fieldsstringNoCampos a devolver por plantilla (CSV). Whitelist: id, waba_id, client_id, active, namespace, meta_template, channel_campaigns. Si se omite, se devuelven todos.
size / limitnumberNoTamaño de página.
pagenumberNoNúmero de página.
client_idnumberCondicionalCliente sobre el que se listan plantillas.
channel_idsstringNoFiltro por canales (CSV).
quality_scoresstringNoFiltro por calidad (CSV).

Request

curl --request GET \
  --url 'https://api.chattigo.com/v1/templates?fields=id,waba_id,namespace,meta_template,channel_campaigns&size=10&page=1' \
  --header 'Authorization: Bearer <token>'

Response

Éxito (200)

{
  "data": [
    {
      "id": "664a1b2c3d4e5f6000000001",
      "active": true,
      "client_id": 1001,
      "namespace": "abc_123",
      "waba_id": "123456789012345",
      "meta_template": {
        "id": "7890123456789012",
        "name": "welcome",
        "language": "es",
        "status": "APPROVED",
        "category": "UTILITY",
        "components": [{ "type": "BODY", "text": "Hola {{1}}" }],
        "quality_score": { "score": "HIGH" }
      },
      "channel_campaigns": [
        {
          "campaign_id": 123,
          "campaign_name": "Camp 1",
          "channels": [
            { "channel_id": 456, "did": "5731...", "type": "WHATSAPP" }
          ]
        }
      ]
    }
  ],
  "total": 1,
  "page": 1,
  "pageSize": 20,
  "paging": null
}

total, page y pageSize siempre se devuelven, sin importar el filtro fields. Las plantillas sin campaña asignada se devuelven con channel_campaigns: [].

Plantillas de mensaje directo: el listado regular excluye las plantillas con isDirectMessage: true (mensaje directo). Solo se devuelven las plantillas regulares (isDirectMessage en false o ausente).

Campos vacíos omitidos: dentro de meta_template, los campos que no aplican se omiten de la respuesta: example cuando está vacío ({}), format/text/buttons cuando vienen nulos, y previous_category, quality_score y rejected_reason cuando vienen vacíos. Ejemplo: una plantilla de solo BODY sin rechazo no incluye rejected_reason en el meta_template.

Errores

CódigoCaso
400agent without campaigns (token sin BSP_CN y sin campañas)
400client_id is required (token con BSP_CN sin client_id)
400invalid client_id: <valor> (el valor de client_id no es numérico)
403BSP_CN permission required for cross-client access (token sin BSP_CN que envía un client_id distinto al de su token)