WhatsApp API

WhatsApp en la API de XBASE

Envía plantillas y mensajes, reacciona, marca como leído y abre Flows en los números de WhatsApp conectados por la API oficial de Meta.

Actualizado el

Con el alcance Enviar mensajes de WhatsApp (whatsapp:send), la API usa los números de WhatsApp del workspace para enviar plantillas y mensajes, reaccionar, marcar mensajes como leídos y abrir Flows. Todo lo que sale por la API queda en la conversación del contacto, en el Chatcenter.

Qué números envían por la API

Los números de WhatsApp conectados por la API oficial de Meta (WhatsApp Cloud API): los que aparecen en WhatsApp API → Números, incluido el WhatsApp Business del celular conectado en coexistencia. Cada número tiene un id, que va en numberId en los envíos (listar los números).

Endpoints

Método y rutaQué hace
GET /whatsapp/numbersLista los números del workspace
GET /whatsapp/templatesLista las plantillas
POST /whatsapp/templatesEnvía una plantilla aprobada
POST /whatsapp/messagesEnvía un mensaje: texto, multimedia, ubicación, botones, lista o Flow
POST /whatsapp/messages/{messageId}/reactionReacciona a un mensaje
POST /whatsapp/messages/{messageId}/readMarca como leído un mensaje recibido
GET /whatsapp/flowsLista los Flows publicados de un número

Todas usan el alcance whatsapp:send y la dirección base https://api.xbase.app/api/external/v1.

Ventana de 24 horas

WhatsApp solo deja que la empresa envíe un mensaje libre (texto, multimedia, ubicación, botones, lista y Flow) hasta 24 horas después del último mensaje del contacto a ese número. Fuera de esa ventana, solo sale una plantilla aprobada, que sirve para retomar la conversación.

  • Si el contacto nunca escribió al número, o escribió hace más de 24 horas, POST /whatsapp/messages responde 422 WINDOW_CLOSED y no se envía nada.
  • La plantilla sale a cualquier hora, dentro o fuera de la ventana.
  • La ventana se abre de nuevo cuando el contacto responde.

Cómo queda registrada la conversación

  • Cada envío aparece en la conversación del contacto con ese número, en el Chatcenter, como si hubiera salido por la pantalla. El remitente es el nombre de la clave de API.
  • La plantilla crea el contacto y la conversación si todavía no existen. El mensaje libre usa la conversación que ya existe.
  • La respuesta de todo envío trae el messageId (el id del mensaje en Meta, que empieza con wamid.), el threadId (la conversación) y el dialogId (el mensaje en la conversación). El messageId es el mismo de los eventos de los webhooks del workspace y es el que va en la reacción y en la lectura.
  • La API no evita envíos duplicados: repetir la llamada envía de nuevo.

Preguntas frecuentes

Ver también

En esta página