Llamadas de estado de la API de Messages

La API Messages envía devoluciones de llamada de estado a la URL de tu webhook para informarte cada vez que un evento cambie el estado de un mensaje, por ejemplo, cuando se envíe, se entregue o se rechace.

Estas retrollamadas proporcionan una visibilidad coherente del ciclo de vida de los mensajes en todos los canales admitidos, incluyendo SMS, MMS, RCSy aplicaciones: WhatsApp, Vibery Facebook Messenger.

Cada vez que cambia el estado de un mensaje, Messages API envía una devolución de llamada de estado al webhook configurado.
Esta llamada de retorno incluye información clave como el UUID del mensaje, el canal, la marca de tiempo, el estado de la entrega y, en su caso, los metadatos de precio y red.

Los distintos canales admiten eventos y niveles de información diferentes. Por ejemplo:

Canal Hecho imponible Estado final típico
WhatsApp, Viber, FB En delivered read, delivered, rejected
RCS En delivered read, delivered, rejected
SMS En submitted delivered, rejected
MMS En submitted delivered, rejected

Estados de devolución de llamada

Llamadas de estado de lectura

Para los canales OTT como WhatsApp y Viber, la Messages API puede enviar un read cuando el proveedor indica que el usuario final ha leído el mensaje en su dispositivo.

Devoluciones de llamada de estado enviadas

Este estado significa que Messages API ha pasado un mensaje a un proveedor de mensajería.

Devoluciones de estado no entregadas

Este estado significa que Messages API no ha podido conectarse al proveedor de mensajería. Esto puede deberse a una interrupción del proveedor de mensajería u otro incidente.

Llamadas de Estado Rechazadas

Un mensaje puede ser rechazado por varias razones:

  • Messages API no puede procesar el mensaje (por ejemplo, parámetros no válidos o medios no compatibles).
  • El proveedor rechaza el mensaje, por ejemplo, al enviar MMS a un país no admitido.
  • El tiempo de vida (TTL) del mensaje expira antes de que pueda ser entregado.

En estos casos, un rejected con un objeto de error que describe el fallo.

Ejemplo de devolución de llamada

SMS (mensaje multiparte)

{
  "message_uuid": "aaaaaaaa-bbbb-cccc-dddd-0123456789ab",
  "to": "447700900000",
  "from": "447700900001",
  "timestamp": "2023-05-01T14:00:00.000Z",
  "status": "submitted",
  "usage": {
    "currency": "EUR",
    "price": "0.0333"
  },
  "client_ref": "string",
  "channel": "sms",
  "destination": {
    "network_code": "12345"
  },
  "sms": {
    "total_count": "2"
  }
}

RCS (Solicitud rechazada con fallo de SMS)

{
  "message_uuid": "001",
  "to": "447700900000",
  "from": "447700900001",
  "timestamp": "2024-01-01T14:00:00.000Z",
  "status": "rejected",
  "channel": "rcs",
  "destination": {
    "network_code": "12345"
  },
  "error": {
    "type": "https://developer.vonage.com/api-errors/messages#1260",
    "title": 1260,
    "detail": "Destination unreachable - The message could not be delivered to the phone number.",
    "instance": "abc102"
  },
  "workflow": {
    "id": "1001",
    "item_number": "1",
    "items_total": "2"
  }
}

Códigos de red

La API de Messages incluye una función network_code en las devoluciones de llamada para identificar al operador que gestiona el mensaje. Los códigos de red son combinaciones de códigos de país móvil (MCC) y códigos de red móvil (MNC) y se aplican a SMS, RCS y MMS, y representan los datos más precisos disponibles en el momento del evento de devolución de llamada de estado.