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

# Templates

> Listar y consultar plantillas aprobadas por Meta.

## GET /templates

Lista las plantillas de WhatsApp disponibles en tu cuenta. Las plantillas deben estar aprobadas por Meta para poder usarse.

**Scope requerido:** `templates:read`

### Parámetros

| Parámetro       | Tipo          | Default | Descripción                                                                 |
| --------------- | ------------- | ------- | --------------------------------------------------------------------------- |
| `page`          | number        | `1`     | Página                                                                      |
| `pageSize`      | number        | `20`    | Resultados por página (máx 100)                                             |
| `phoneNumberId` | string (UUID) | —       | Filtrar por canal                                                           |
| `status`        | string        | —       | Filtrar por estado: `pending`, `approved`, `rejected`, `disabled`, `paused` |

### Request

```bash theme={null}
curl "https://api.waspytech.com/api/v2/templates?status=approved&pageSize=50" \
  -H "Authorization: Bearer wspy_..."
```

### Response `200`

```json theme={null}
{
  "data": [
    {
      "id": "template-uuid",
      "phoneNumberId": "channel-uuid",
      "metaTemplateId": "1234567890",
      "name": "confirmacion_pedido",
      "language": "es_AR",
      "category": "UTILITY",
      "status": "approved",
      "components": [
        {
          "type": "BODY",
          "text": "Hola {{1}}, tu pedido {{2}} fue confirmado."
        }
      ],
      "createdAt": "2026-03-15T10:00:00.000Z"
    }
  ],
  "meta": { "requestId": "...", "page": 1, "pageSize": 50, "total": 12 }
}
```

<Note>
  **`phoneNumberId` puede ser `null`** para templates "globales" (no atados a un canal específico). **`metaTemplateId`** es el ID del lado de Meta — útil si gestionás los mismos templates desde Meta Business Manager.
</Note>

***

## GET /templates/:id

Obtener un template por ID.

**Scope requerido:** `templates:read`

```bash theme={null}
curl https://api.waspytech.com/api/v2/templates/TEMPLATE_ID \
  -H "Authorization: Bearer wspy_..."
```

## GET /templates/by-name/:name

Resolver un template por su **nombre aprobado** (el mismo string que pasás a `POST /messages` en `template.name`). Útil cuando tu integración conoce el nombre (ej. `confirmacion_pedido`) pero no el UUID interno.

**Scope requerido:** `templates:read`

| Query           | Descripción                                                    |
| --------------- | -------------------------------------------------------------- |
| `language`      | Filtrar por idioma (ej: `es_AR`, `en_US`)                      |
| `phoneNumberId` | Desambiguar cuando el mismo nombre existe en múltiples canales |

```bash theme={null}
curl "https://api.waspytech.com/api/v2/templates/by-name/confirmacion_pedido?language=es_AR" \
  -H "Authorization: Bearer wspy_..."
```

Devuelve el match más reciente. 404 si no existe.

### Campos

| Campo            | Tipo           | Descripción                                              |
| ---------------- | -------------- | -------------------------------------------------------- |
| `id`             | string (UUID)  | ID interno del template                                  |
| `phoneNumberId`  | string \| null | Canal al que pertenece, o null para templates globales   |
| `metaTemplateId` | string \| null | ID del template en Meta Business Manager                 |
| `name`           | string         | Nombre del template en Meta                              |
| `language`       | string         | Código de idioma (ej: `es_AR`, `en_US`)                  |
| `category`       | string         | `MARKETING`, `UTILITY`, `AUTHENTICATION`                 |
| `status`         | string         | `pending`, `approved`, `rejected`, `disabled`, `paused`  |
| `components`     | array          | Componentes del template (HEADER, BODY, FOOTER, BUTTONS) |

<Warning>
  Solo los templates con status `approved` se pueden usar para enviar mensajes. Si intentás usar uno que no está aprobado, recibís un error de Meta.
</Warning>

### Categorías

| Categoría        | Uso                                                 | Costo Meta  |
| ---------------- | --------------------------------------------------- | ----------- |
| `UTILITY`        | Confirmaciones, tracking, actualizaciones de pedido | Menor costo |
| `MARKETING`      | Promociones, ofertas, reactivación                  | Mayor costo |
| `AUTHENTICATION` | Códigos de verificación, OTP                        | Menor costo |

Los costos de Meta varían por país y categoría. Ver [Meta vs Waspy](/concepts/meta-vs-waspy).
