Há muitos motivos pelos quais não é possível entregar a sua mensagem no tempo exato – às vezes isso acontece, porque o usuário desligou o telefone ou não há mais espaço para armazenamento no telefone, e assim por diante. Esperar pelo relatório final de entrega ou pelo tempo de expiração da mensagem de SMS para receber um código GSM errado, é cansativo e não é uma opção, se você deseja oferecer aos seus usuários o 2-Fator de autenticação (2FA) em tempo real.
O relatório de entrega intermediário é estabelecido como um dos parâmetros da API de mensagens de texto com todas as funcionalidades Ele é enviado pela mesma URL de notificação do relatório final de entrega.
No momento em que qualquer erro GSM não permanente for recebido (por ex.: EC_ABSENT_SUBSCRIBER) pelo sistema da Infobip, nossos relatórios intermediários com base na API de SMS (entregues em tempo real) o encaminharão para a sua URL de notificação, localizada nos servidores callback.
Além de erros GSM, você também receberá, em tempo real, informações sobre preços, status da mensagem, rede e códigos do país.
Se quiser mais informações sobre os códigos de erro GSM.
*A URL de notificação é estabelecida como um dos parâmetros da API de mensageria de texto com todas as funcionalidades.
O exemplo abaixo mostra como definir Relatórios Intermediários (intermediateReport) para informações instantâneas de mensagens, bem como URL de Notificação (notifyURL) e Tipo de Conteúdo de Notificação (notifyContentType) para os relatórios e o callbackData do usuário.
POST /sms/1/text/advanced HTTP/1.1
Host: api.infobip.com
Authorization: Basic QWxhZGRpbjpvcGVuIHNlc2FtZQ==
Content-Type: application/json
{
"bulkId":"BULK-ID-123-xyz",
"messages":[
{
"from":"InfoSMS",
"destinations":[
{
"to":"41793026727",
"messageId":"MESSAGE-ID-123-xyz"
},
{
"to":"41793026731"
}
],
"text":"Mama always said life was like a box of chocolates. You never know what you're gonna get.",
"intermediateReport":true,
"notifyUrl":"http://www.example.com/sms/advanced",
"notifyContentType":"application/json",
"callbackData":"There's no place like home."
}
]
}
O resultado que você receberá na sua URL de notificação terá a mesma estrutura do Relatório final de entrega.
{
"results": [
{
"bulkId": "BULK-ID-123-xyz",
"messageId": "c9823180-94d4-4ea0-9bf3-ec907e7534a6",
"to": "41793026731",
"sentAt": "2015-10-04T13:01:52.933+0000",
"doneAt": "2015-10-04T13:02:00.134+0000",
"smsCount": 1,
"price": {
"pricePerMessage": 0.0001000000,
"currency": "EUR"
},
"status": {
"groupId": 3,
"groupName": "PENDING",
"id": 1,
"name": "PENDING_WAITING_DELIVERY",
"description": "Message sent, waiting for delivery report"
},
"error": {
"groupId": 1,
"groupName": "HANDSET_ERRORS",
"id": 27,
"name": "EC_ABSENT_SUBSCRIBER",
"description": "Absent Subscriber",
"permanent": false
},
"callbackData":"There's no place like home."
},
{
"bulkId": "BULK-ID-123-xyz",
"messageId": "MESSAGE-ID-123-xyz",
"to": "41793026727",
"sentAt": "2015-06-04T13:01:52.937+0000",
"doneAt": "2015-06-04T13:02:01.204+0000",
"smsCount": 1,
"price": {
"pricePerMessage": 0.0001000000,
"currency": "EUR"
},
"status": {
"groupId": 3,
"groupName": "PENDING",
"id": 1,
"name": "PENDING_WAITING_DELIVERY",
"description": "Message sent, waiting for delivery report"
},
"error": {
"groupId": 1,
"groupName": "HANDSET_ERRORS",
"id": 27,
"name": "EC_ABSENT_SUBSCRIBER",
"description": "Absent Subscriber",
"permanent": false
},
"callbackData":"There's no place like home."
}
]
}