Objetos
Notificaciones de Mensajes
Estructura general notificaciones de mensajes
Contacts
| Nombre | Descripción | Tipo | Requerimientos |
|---|---|---|---|
| profile | Objeto que contiene los datos del contacto | Object | Obligatorio |
| wa_id | Teléfono (con código de país) que envío el mensaje. | String | Obligatorio |
Messages
| Nombre | Descripción | Tipo | Requerimientos |
|---|---|---|---|
| from | Teléfono (con código de país) que envío el mensaje. | String | Obligatorio |
| id | Identificador del mensaje | String | Obligatorio |
| timestamp | Fecha y hora de envío de mensaje | String | Obligatorio |
| type | De acuerdo al tipo de mensaje, el valor puede ser:
| String | Obligatorio |
| text | Objeto que contiene el texto del mensaje | Object | Opcional |
| audio | Objeto que contiene los datos del audio | Object | Opcional |
| document | Objeto que contiene los datos del documento | Object | Opcional |
| image | Objeto que contiene los datos de la imagen | Object | Opcional |
| location | Objeto que contiene los datos de la ubicación | Object | Opcional |
| video | Objeto que contiene los datos del video | Object | Opcional |
| voice | Objeto que contiene los datos del mensaje de voz | Object | Opcional |
| sticker | Objeto que contiene los datos del sticker | Object | Opcional |
| interactive | Objeto que contiene los datos de mensajes interactivos | Object | Opcional |
| button | Objeto que contiene el texto de repuesta rápida | Object | Opcional |
| context | Objeto que contiene información relacionada a los siguientes casos:
| Object | Se enviará en los siguientes casos:
|
| contacs | Objeto que contiene los datos del contacto. | Objeto | El obligatorio cuando se recibe una notificación de contacto compartido. |
Profile
| Nombre | Descripción | Tipo | Requerimientos |
|---|---|---|---|
| name | Nombre del contacto que envió el mensaje | String | Obligatorio |
Texto
| Nombre | Descripción | Tipo | Requerimientos |
|---|---|---|---|
| body | Texto del Mensaje. | String | Obligatorio. |
Audio
| Nombre | Descripción | Tipo | Requerimientos |
|---|---|---|---|
| id | Identificador del archivo. | String | Obligatorio. |
| mime_type | Tipo de archivo. | String | Obligatorio. |
| sha256 | Checksum del archivo. | String | Obligatorio. |
Documento
| Nombre | Descripción | Tipo | Requerimientos |
|---|---|---|---|
| id | Identificador del archivo. | String | Obligatorio. |
| mime_type | Tipo de archivo. | String | Obligatorio. |
| sha256 | Checksum del archivo. | String | Obligatorio. |
| caption | Texto que acompaña al documento. | String | Opcional. |
| filename | Nombre del archivo en el dispositivo del remitente. | String | Obligatorio. |
Imagen
| Nombre | Descripción | Tipo | Requerimientos |
|---|---|---|---|
| id | Identificador del archivo. | String | Obligatorio. |
| mime_type | Tipo de archivo. | String | Obligatorio. |
| sha256 | Checksum del archivo. | String | Obligatorio. |
| caption | Texto que acompaña a la imagen. | String | Opcional. |
Ubicación
| Nombre | Descripción | Tipo | Requerimientos |
|---|---|---|---|
| address | Dirección. | String | Obligatorio. |
| latitud | Latitud. | Number | Obligatorio. |
| longitud | Longitud. | Number | Obligatorio. |
| name | Nombre de la ubicación. | String | Obligatorio. |
| url | URL del sitio web de donde el usuario descargó la información de la ubicación. | String | Opcional. |
Video
| Nombre | Descripción | Tipo | Requerimientos |
|---|---|---|---|
| id | Identificador del archivo. | String | Obligatorio. |
| mime_type | Tipo de archivo. | String | Obligatorio. |
| sha256 | Checksum del archivo. | String | Obligatorio. |
| caption | Texto/Título que asigna el usuario al archivo que envía | String | Opcional, solo se encuentra presente si el usuario lo escribe. |
Mensaje de voz
| Nombre | Descripción | Tipo | Requerimientos |
|---|---|---|---|
| id | Identificador del archivo. | String | Obligatorio |
| mime_type | Tipo de archivo. | String | Obligatorio |
| sha256 | Checksum del archivo. | String | Obligatorio |
| caption | Texto/Título que asigna el usuario al archivo que envía. | String | Opcional, solo se encuentra presente si el usuario lo escribe. |
Sticker
| Nombre | Descripción | Tipo | Requerimientos |
|---|---|---|---|
| id | Identificador del archivo. | String | Obligatorio. |
| mime_type | Tipo de archivo. | String | Obligatorio. |
| sha256 | Checksum del archivo. | String | Obligatorio. |
| animated | Animado. | Boolean | Obligatorio. |
Respuesta rápida para mensajes interactivos
| Nombre | Descripción | Tipo | Requerimientos |
|---|---|---|---|
| context | Objeto que contiene información relacionada de un mensaje. | Object | Obligatorio. |
| button_reply | Botón de respuesta | Object | Obligatorio. |
Objeto context mensajes interactivos
| Nombre | Descripción | Tipo | Requerimientos |
|---|---|---|---|
| from | Teléfono (con código de país) del remitente del mensaje al que se hace referencia o del mensaje asociado al botón | String | Obligatorio. |
| id | Id del mensaje al que se hace referencia o del mensaje asociado al botón |
Respuesta rápida (tipo botón)
Objeto context tipo botón
| Nombre | Descripción | Tipo | Requerimientos |
|---|---|---|---|
| from | Teléfono (con código de país) del remitente del mensaje al que se hace referencia o del mensaje asociado al botón | String | Obligatorio. |
| id | Id del mensaje al que se hace referencia o del mensaje asociado al botón | String | Obligatorio. |
Contacto compartido
| Nombre | Descripción | Tipo | Requerimientos |
|---|---|---|---|
| from | Teléfono (con código de país) del que se enviará el mensaje. | String | Obligatorio. |
| to | Teléfono (con código de país) del cliente al que se le envía el mensaje. Se admiten signos más (+), guiones (-), paréntesis ((,)) y espacios. | String | Obligatorio. |
| type | El valor por defecto es “location”. | String | Obligatorio |
| contacts | VObjeto que contiene los datos del contacto. | Object | Obligatorio. |
Objeto contacts
| Nombre | Descripción | Tipo | Requerimientos |
|---|---|---|---|
| birthday | Fecha de nacimiento del Contacto. | String | Opcional. |
| addresses | Objeto que contiene las direcciones del Contacto | Object | Opcional. |
| emails | Objeto que contiene los emails del Contacto | Object | Opcional. |
| name | Objeto que contiene el nombre del Contacto. | Object | Obligatorio. |
| org | Objeto que contiene la compañía del Contacto. | Object | Opcional. |
| phones | Objeto que contiene los teléfonos del Contacto. | Object | Opcional. |
| urls | Objeto que contiene las URLs del Contacto. | Object | Opcional. |
Objeto addresses
| Nombre | Descripción | Tipo | Requerimientos |
|---|---|---|---|
| city | Ciudad. | String | Opcional. |
| country | País. | String | Opcional. |
| state | Estado. | String | Opcional. |
| street | Calle. | String | Opcional. |
| type | Los valores podrán ser: WORK, HOME. | String | Opcional. |
| zip | Código Postal. | String | Opcional. |
Objeto emails
| Nombre | Descripción | Tipo | Requerimientos |
|---|---|---|---|
| Correo del Contacto. | String | Opcional. | |
| type | Los valores podrán ser: WORK. | String | Opcional. |
Objeto name
| Nombre | Descripción | Tipo | Requerimientos |
|---|---|---|---|
| first_name | Nombre del Contacto. | String | Obligatorio si middle_name y last_name no tienen valor. |
| middle_name | Segundo nombre del contacto. | String | Obligatorio si first_name y last_name no tienen valor. |
| last_name | Apellido del Contacto. | String | Obligatorio si middle_name y first_name no tienen valor. |
| formatted_name | Nombre Completo. | String | Obligatorio. |
Objeto org
| Nombre | Descripción | Tipo | Requerimientos |
|---|---|---|---|
| company | Nombre de la compañía. | String | Obligatorio |
Objeto phones
| Nombre | Descripción | Tipo | Requerimientos |
|---|---|---|---|
| phone | Teléfono del Contacto. | String | Obligatorio. |
| type | Los valores podrán ser: WORK, HOME. | String | Obligatorio. |
Objeto urls
| Nombre | Descripción | Tipo | Requerimientos |
|---|---|---|---|
| url | URL del contacto. | String | Obligatorio. |
| type | Los valores podrán ser: WORK. | String | Obligatorio. |
Carro de compras
| Nombre | Descripción | Tipo | Requerimientos |
|---|---|---|---|
| order | Orden de compras. | Object | Obligatorio. |
Objeto order
| Nombre | Descripción | Tipo | Requerimientos |
|---|---|---|---|
| catalog_id | Identificador del catálogo. | String | Obligatorio. |
| product_items | Lista de identificados de productos. | Lista Object | Obligatorio. |
Objeto product item
| Nombre | Descripción | Tipo | Requerimientos |
|---|---|---|---|
| currency | Tipo de moneda. | String | Obligatorio. |
| item_price | Precio del producto. | Number | Obligatorio. |
| product_retailer_id | Identificador del producto. | String | Obligatorio. |
| quantity | Cantidad a comprar. | Number | Obligatorio. |
Flows
| Nombre | Descripción | Tipo | Requerimientos |
|---|---|---|---|
| type | El valor es "nfm_reply". | String | Obligatorio. |
| nfm_reply | Retiene los datos recibidos del cliente. | Object | Obligatorio. |
Objeto nfm_reply
| Nombre | Descripción | Tipo | Requerimientos |
|---|---|---|---|
| response_json | Los valores de los campos que completó el usuario en formato JSON que siempre están presentes. | String | Obligatorio. |
| body | El valor es "send". | String | Obligatorio. |
| name | El valor es "flow". | String | Obligatorio. |
Notificaciones de Estatus
Estructura general notificaciones de estatus
| Nombre | Descripción | Tipo | Requerimientos |
|---|---|---|---|
| id | Identificador del mensaje | String | Obligatorio. |
| recipient_id | Teléfono al que se le envió el mensaje | String | Obligatorio. |
| status | Los estatus del mensaje son:
| String | Obligatorio. |
| timestamp | Fecha y hora en la que ocurrió el estatus. | String | Obligatorio |
| errors | En caso de algún error en el envío del mensaje, se presentará el objeto errors. | Objecto | Opcional |
| conversation | Atributos de la conversación actual. | Objecto | Opcional. Este dato puede no incluirse en algunas notificaciones |
| pricing | Atributos de facturación. | Objecto |
Objeto conversation
| Nombre | Descripción | Tipo | Requerimientos |
|---|---|---|---|
| id | Identificador de la conversación | String | Obligatorio. |
| origin | Describe la categoría de conversación.
| ||
| Objeto | Obligatorio |
Objeto origin
| Nombre | Descripción | Tipo | Requerimientos |
|---|---|---|---|
| type | - authentication: Indica que la conversación fue abierta por una empresa que envió una plantilla categorizada como mensaje de AUTHENTICATION a un cliente.
| String | Obligatorio. |
Objeto pricing
| Nombre | Descripción | Tipo | Requerimientos |
|---|---|---|---|
| billable | Indica si el mensaje o conversación dado es facturable. El valor varía de acuerdo al pricing_model.
| Boolean | Obligatorio |
| pricing_model | Tipo de modelo de precios que se utiliza. Los valores admitidos actuales son CBP y NBP. | String | |
| category | Indica la categoría de precios de la conversación.
| String |
Objeto errors
| Nombre | Descripción | Tipo | Requerimientos |
|---|---|---|---|
| code | Código de error. Para mayor detalle, ver sección Códigos de Error | Number | Obligatorio. |
| title | Descripción del error | String | Obligatorio |
| href | Url con mas detalle acerca del error | String | Opcional |
| id | Identificador del Mensaje | String | Obligatorio |
| recipient_id | Teléfono al que se le envió el mensaje | String | Obligatorio |
| status | Failed | String | Obligatorio |
| timestamp | Fecha y hora en la que ocurrió el error. | String | Obligatorio |
Notificaciones de Grupos
Estructura general notificaciones de grupos
| Nombre | Descripción | Tipo |
|---|---|---|
| groups | Lista de eventos de grupo. Cada objeto trae al menos timestamp, group_id y type; los demás campos dependen del tipo de evento (ver Ejemplos). | Lista objetos |
Valores del campo type:
| Valor | Evento |
|---|---|
| group_create | Resultado de la creación de un grupo. |
| group_delete | Resultado de la eliminación de un grupo. |
| group_participants_add | Un usuario se unió al grupo (por ejemplo, mediante el enlace de invitación). |
| group_participants_remove | Se eliminó a uno o más participantes, o un participante abandonó el grupo (initiated_by indica quién lo originó). |
| group_join_request_created | Un usuario solicitó unirse a un grupo con aprobación requerida. |
| group_join_request_revoked | Un usuario canceló su solicitud para unirse. |
| group_settings_update | Resultado de la actualización del asunto, la descripción o la foto de perfil del grupo. |
| group_suspend | WhatsApp suspendió el grupo. |
| group_suspend_cleared | Se retiró la suspensión del grupo. |
Estatus de mensajes enviados a un grupo
Los estatus de mensajes enviados a un grupo (sent, delivered, read) llegan en el arreglo statuses, con la misma estructura de Notificaciones de Estatus, y estos campos adicionales:
| Nombre | Descripción | Tipo |
|---|---|---|
| recipient_type | Siempre group. | String |
| recipient_participant_id | Participante del grupo al que corresponde el estatus. | String |
WhatsApp puede agregar varios estatus en un mismo webhook. Cada webhook siempre referencia un único grupo y un único estatus.
Notificaciones de Flows
Estructura general notificaciones de Flows
Las notificaciones de Flows (cambios de estatus y alertas de un Flow) se reciben por webhook. Son una combinación de objetos anidados de matrices JSON y objetos que contienen información sobre un cambio.
| Nombre | Descripción | Tipo |
|---|---|---|
| object | El webhook al que se ha suscrito una empresa. | String |
| entry | Una serie de objetos de entrada. Los objetos de entrada tienen las siguientes propiedades:
| Lista objetos |
Objeto value
Contiene detalles del cambio que es disparado por el webhook. Este objeto está anidado dentro de la matriz changes del array entry.
| Nombre | Descripción | Tipo |
|---|---|---|
| flow_id | Identificador del Flow. | String |
| threshold | El umbral de alerta que se alcanzó. | Number |
| event | Tipo de notificación. Posibles valores:
| String |
| message | Descripción detallada del mensaje. | String |
| old_status | Estatus previo del Flow:
| String |
| new_status | Estatus actual del Flow:
| String |
| alert_state | Estatus de la alerta:
| String |
| requests_count | Número de solicitudes utilizadas para calcular la métrica. | Integer |
| errors | Una matriz de objetos de error que describen cada error incluido en la alerta. Los objetos de error tienen las siguientes propiedades:
| Lista objetos |
| p50_latency | P50 Latencia de las solicitudes del endpoint. | Integer |
| p90_latency | P90 Latencia de las solicitudes del endpoint. | Integer |
| error_rate | Tasa de error general de la alerta. | Integer |
Para la respuesta que envía el usuario al completar un Flow, consulta Flows en Notificaciones de Mensajes.
