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. | Sí | 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".