---
title: "Editar una plantilla de WhatsApp existente (vuelve a revisión de Meta)"
method: PATCH
path: "/channels/{channelId}/templates/{templateId}"
tags: ["Channels"]
---

# Editar una plantilla de WhatsApp existente (vuelve a revisión de Meta)

`PATCH /channels/{channelId}/templates/{templateId}`

## Request

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

Reemplaza los `components` y/o la `category` de una plantilla. El nombre y el idioma no se editan: identifican a la plantilla, y para cambiarlos se crea otra.

**La edición vuelve a pasar por revisión de Meta.** La respuesta trae `template_status` con el estado que Meta reporta justo después (lo normal es `PENDING`). Qué se puede editar y cuántas veces lo decide Meta —por ejemplo, limita las ediciones de una plantilla aprobada y no deja cambiarle la categoría—; si no lo permite, la respuesta es `400` con `template_edit_rejected` y el motivo que dio Meta.

**Comparte el tope por hora con la creación de plantillas**: una edición rechazada le baja la calificación a la cuenta igual que una creación. Al superarlo, `429` con `rate_limited`.

La plantilla se busca entre las cuentas de WhatsApp (WABA) conectadas del workspace, o solo en `waba_id` si lo mandas. Si no aparece, `404` con `template_not_found`.

## Path parameters

- `channelId` string, required
- `templateId` string, required

## Request body

- EditTemplateDto
  - `category` string: Categoría nueva (`UTILITY`, `MARKETING` o `AUTHENTICATION`). Meta no deja cambiar la categoría de cualquier plantilla —según su documentación, no la de una ya aprobada—; si no lo permite, la respuesta trae su rechazo.
  - `components` object[]: Los bloques nuevos, completos (`HEADER`, `BODY`, `FOOTER`, `BUTTONS`): Meta reemplaza los componentes de la plantilla por estos, no los mezcla. Lo más seguro es partir de los `components` que devuelve `GET /channels/{channelId}/templates?status=all` y cambiar solo lo necesario. Un encabezado con imagen, video o documento va igual que al crear: la URL pública del archivo en `sample_url`.
  - `waba_id` string: En qué **cuenta de WhatsApp (WABA)** buscar la plantilla. Omitido = se busca en todas las cuentas conectadas del workspace: el id de una plantilla es único, así que no hace falta decir de cuál es.

## 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` EditTemplateResponseDto, required
    - `category` string, nullable
    - `id` string, required: Id de la plantilla en Meta (el mismo de la ruta).
    - `language` string, nullable
    - `name` string, nullable
    - `status` string, required: `ok`: Meta aceptó la edición. Un rechazo no llega aquí: sale como error.
    - `template_status` string, nullable: Estado de revisión que Meta reporta justo después de editar —lo normal es que vuelva a `PENDING`—. `null` si Meta aceptó la edición pero no se pudo leer el estado en ese momento: se consulta con `GET /channels/{channelId}/templates?status=all`. Mientras no vuelva a `APPROVED`, `send-template` puede rechazarla.
    - `waba_id` string, required: Cuenta de WhatsApp (WABA) a la que pertenece la plantilla.

## 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.
- `409`: La operación entra en conflicto con el estado actual o con un Idempotency-Key en uso. No reintentes con el mismo key y un body distinto.
- `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)
