Evento de WhatsApp
Mismo endpoint, cabeceras y política de reintentos que Messenger, con
page.channel: whatsapp y los campos propios del canal en page y en
message.
Adjuntos. Una imagen, audio, vídeo, documento o sticker se guarda
en Resender y el evento sale cuando el archivo ya está disponible:
llega una sola vez, con details.status: available y en
attachment.url un link firmado que se abre sin cabeceras durante
24 h (details.urlExpiresAt). Ver downloadWhatsappMedia.
- Si el archivo no se pudo bajar de WhatsApp, o no estuvo listo en
2 minutos, el evento sale igual con
details.status: failedyurl: null. El texto y el resto del mensaje llegan completos. unavailable(WhatsApp no ofreció el archivo) ydeletedtambién llegan conurl: null.- Ubicación, contactos, reacción, respuesta interactiva, pedido y
evento de sistema no tienen archivo:
url: nully sindetails.status. - El pie de foto es
message.text.
Orden. Los mensajes de una misma conversación llegan en el orden
en que se escribieron. Uno no sale mientras el anterior esté
esperando su archivo o reintentándose. Un mensaje que Meta nos
entrega tarde, con hora anterior a uno ya enviado, sale apenas llega:
ordená por message.createdAt si necesitás el orden exacto.
Ecos. En Coexistence, lo que el negocio escribe desde la app de
WhatsApp Business llega con direction: outbound y
origin: business_app. Filtralos para que tu bot no se responda a sí
mismo. El historial importado al conectar no se reenvía.
Header Parameters
Id determinista del evento. El mismo evento reingerido trae el mismo id; usalo para deduplicar.
^evt_[0-9a-f]{32}$Epoch en segundos del momento de la firma.
^[0-9]+$v1= + HMAC-SHA256 hex. Ver WebhookSignature.
^v1=[0-9a-f]{64}$Request Body
application/json
TypeScript Definitions
Use the request body type in TypeScript.
Response Body
Example Requests
/whatsappEvents