Llamadas de respuesta sobre el estado de los SMS

La Messages API utiliza llamadas de retorno de estado para notificar a tu aplicación cuando cambia el estado de un mensaje, por ejemplo, cuando se envía, se entrega o se rechaza. Estas notificaciones permiten conocer el ciclo de vida del mensaje en todos los canales, incluido el SMS. Esta guía explica cómo se gestionan los acuses de recibo de SMS (DLR) y cómo se asocian a las notificaciones de estado de la Messages API.

Cuando envías un mensaje a través del canal SMS de la Messages API, la SMS API subyacente de Vonage entrega el mensaje a un operador o proveedor y te envía los acuses de recibo (DLR). Estos DLR describen hasta qué punto ha avanzado el mensaje por la red. A continuación, la Messages API traduce estos acuses de recibo de SMS en un conjunto estandarizado de respuestas de estado y las envía a la URL de webhook que hayas configurado.

Ciclo de vida de un mensaje SMS

Un mensaje SMS suele pasar por las siguientes etapas:

Escenario Descripción Hecho imponible Estado de la Messages API
Aceptado por la SMS API El mensaje se ha aceptado y se ha reenviado a través de las pasarelas de la SMS API. submitted
Enviado al dispositivo Un acuse de recibo (DLR) de la red confirma que el mensaje ha llegado al dispositivo del usuario final. Sin coste adicional delivered
Caducado, fallido o rechazado El mensaje no se ha podido enviar o ha sido rechazado por la SMS API o por el proveedor. - rejected

Nota: La fiabilidad de los informes de entrega de SMS puede variar en función del operador. Es posible que algunas redes no envíen dichos informes o que indiquen estados inexactos.

DLR de SMS frente a las devoluciones de llamada de estado de la Messages API

Los proveedores de SMS envían recibos de entrega (DLR) para indicar el estado de los mensajes. La Messages API procesa estos DLR y los asigna a su propio modelo de estado.

Estado de SMS DLR Estado de la Messages API Notas
accepted submitted Se envía cuando la SMS API acepta el mensaje para su envío.
buffered (sin tener en cuenta) La SMS API casi nunca lo utiliza; no se reenvía.
delivered delivered Indica que el dispositivo del usuario final ha recibido el mensaje (si el operador lo permite).
expired rejected Enlaces a páginas internas código de error 1360.
failed rejected Indica fallo del proveedor o error de red.
unknown rejected Enlaces a páginas internas código de error 1330.
rejected rejected Mapas según Correspondencias de códigos de error de MMS/SMS.

Ejemplo: Llamada de respuesta sobre el estado de un SMS

Cuando la SMS API acepte correctamente un mensaje SMS, recibirás un submitted una función de devolución de llamada similar a esta:

{ 
  "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" 
  } 
} 

Si posteriormente un DLR confirma la entrega, se realizará otra llamada de retorno con "status": "delivered".

Más información