Cambios
Lo nuevo va arriba. Tu sistema tiene que ignorar los campos, los tipos de aviso y los códigos de error que no conozca: llegan sin cambiar de versión.
Cómo cambia la API
- Sin versión nueva: campos nuevos en las respuestas, datos opcionales nuevos, tipos de aviso nuevos, códigos de error nuevos y operaciones nuevas.
- Con versión nueva (
/v2): quitar o renombrar un campo, cambiar un tipo o un comportamiento. La anterior convive al menos 12 meses, sus respuestas llevan las cabecerasDeprecationySunset, y se le avisa al dueño de cada clave que la haya usado en los últimos 30 días.
8 de octubre de 2026 · pause_ai: de fábrica, la IA no vuelve sola
POST /messagescon"pause_ai": trueaparta a la IA (o al flujo del punto de partida) por la pausa que la cuenta eligió en Configuración → Punto de partida. Lo que cambia es el valor de fábrica: una cuenta que nunca eligió un tiempo ahora la aparta «Al devolverlo», sin hora de vuelta. Antes eran 30 minutos.- Para que la IA vuelva a ese chat, usa la acción
return_to_aio devuélvela desde la bandeja. Una cuenta que eligió un tiempo (30 minutos, 1 hora…) lo conserva tal cual. - Sin
pause_aino cambia nada: un mensaje de la API no aparta a la IA. Los permisos, los límites y las claves siguen igual.
7 de octubre de 2026 · Enviar el código de verificación de tu sistema por WhatsApp
POST /messagesacepta"type": "verification_code"converification_code: { template, language, code }: tu sistema genera y comprueba el código, y aquí solo se entrega por WhatsApp con una plantilla de autenticación de «copiar código», en una sola llamada y sin buscar antes al contacto (to.phone, ocontact_id).- El código (de 4 a 15 caracteres: letras sin tilde, números y $ # * + ! ? % & _ -) nunca se guarda: en el chat y en la respuesta queda «Código de verificación enviado». Como lo pidió la propia persona, no hace falta
whatsapp_opt_in, y sale aunque haya pedido no recibir más mensajes automáticos. A cambio, cada teléfono recibe como mucho 5 códigos cada 10 minutos y 20 al día: al pasarse responde429 rate_limitedcondetails.limit=verification_codesyRetry-After. - Una
idempotency_keyvale 24 horas también enPOST /messages: pasado ese tiempo, la misma clave vuelve a enviar. Antes, hasta la limpieza diaria, devolvía el mensaje viejo sin enviar nada. GET /whatsapp/templateslista también las plantillas de autenticación, concategoryAUTHENTICATION y los datos nuevosotp_typeycode_expiration_minutes(nulos en las demás). Contype: "template"siguen sin enviarse: se envían solo converification_code.
2 de octubre de 2026 · Lanzar un flujo empezando en cualquier bloque
POST /flows/{id}/runsy la acciónrun_flowaceptan enstart_at_blockel id de cualquier bloque del flujo publicado. Ya no hace falta marcar el bloque en el editor: quien tiene la clave con permiso para lanzar flujos puede entrar por donde quiera.entry_blocks, enGET /flowsyGET /flows/{id}, trae ahora todos los bloques del flujo publicado (las notas no), con el de inicio primero. Antes solo traía el de inicio y los marcados.- Un id que no existe en lo publicado, o que es de una nota, sigue dando
422 invalid_entry_block, ahora con un mensaje que lo dice. Las claves, los permisos y los límites no cambian. - El id de un flujo se copia desde Flujos, en el menú ⋯ del flujo → «Copiar ID del flujo». El de un bloque está abajo del panel del bloque en el editor.
27 de septiembre de 2026 · Versión 1: la primera
- Claves de acceso con permisos, rotación y revocación; reintentos seguros con Idempotency-Key; errores con código estable y mensaje en español.
- Cuenta, contactos (con papelera de 30 días), etiquetas, campos, campos iguales para todos, flujos y recorridos, mensajes de texto y plantillas por su nombre.
- Avisos a otros sistemas firmados con Standard Webhooks, con reintentos, pausa automática y registro de entregas.
- Especificación OpenAPI 3.1 y referencia interactiva.