Notificaciones de Despacho

Cuando se realiza un despacho de un mensaje a través del Proxy HTTP/XML, se recibirá una notificación sobre el resultado del despacho hacia la operadora. Esta notificación es asíncrona al envío del MTRequest.

La notificación enviada, será del tipo XML mediante método POST HTTP (con Content-Type: text/xml) y tendrá el siguiente formato:

Esta notificación será enviada a una URL provista por el partner

<?xml version="1.0" encoding="ISO-8859-1"?>
<MTRequestNotify>
<Servicio id="[String]"/>
<Telefono msisdn="[String]" idtran="[Number]" RefId="[Number]" /> <Estado deliverdate="[Datetime]" status="[String]" tran_status="[Number]"/>
<Info>[String]</Info>
<TicketId value="[Number]" idtran="[Number]" status="[String]" tran_status="[Number]" charge_date="[Datetime]"><Info></Info>
</TicketId>
</MTRequestNotify>
Detalle de campos XML MTRequestNotify

Para los usuarios que utilizan nuestra plataforma de envíos masivos y quieran utilizar nuestro servicio de detección de carrier tendrán que dejar en blanco la tercera columna del Excel, en donde originalmente se solicita informar la operadora correspondiente al destinatario.

Servicio

  • Id: Siendo [String] el numero corto, operador y país ej (70370.bill.cti.ar)

Teléfono

  • msisdn: Siendo [String] el número de teléfono móvil del cliente del externo
  • idtran: Siendo [Number] el identificador de la transacción generada por MovilGate en la recepción del MTRequest, entregado en el MTResponse.
  • RefId: Siendo [Number] el valor correspondiente al que el Integrador Externo colocó en el IdTran del MTRequest.

Estado

  • deliverdate: Siendo [Datetime] la fecha en la cual fue despacho el mensaje hacia el carrier
  • status: Siendo [String] el texto que informa que ocurrió con el mensaje. Los diferentes status son:
    • MT_DELIVERED: Mensaje despachado hacia el carrier
    • EXPIRETIME: El despacho expiró
    • MAXRETRIES: Se alcanzó la máxima cantidad de reintentos posibles
    • DISCARD: Mensaje descartado, esto surge por alguna falla, generalmente por problemas de cobro del mensaje.
    • LENGTHZERO: El mensaje no tiene contenido, por lo que no se despacha
    • MT_FAIL_TIMEOUT: No se recibió respuesta del carrier sobre el despacho, por lo que no se puede garantizar si el mensaje llegará a destino Nota: Cuando se recibe este estado no se debe reintentar el envío del mensaje.
  • tran_status: Siendo [Number] el código que informa que ocurrió con el despacho del mensaje.

Info: Siendo [String] la información proporcionada por el carrier al momento de hacer el despacho del MT. Aquí también se proporcionará información de errores por los que el mensajes quedó en estado DISCARD, como por ej.: “Error: Formato de MSISDN incorrecto”

TicketId: Este elemento no debe ser tenido en cuenta para analizar sobre la notificación del resultado de envío.

Ejemplo envío de MTRequestNotify: Ejemplo de una notificación exitosa de cobro y de despacho hacia el carrier.

<?xml version="1.0" encoding="ISO-8859-1"?>
<MTRequestNotify>
<Servicio id="70370.bill.cti.ar"/>
<Telefono msisdn="1148965523" idtran="14" RefId ="12345678"/> <Estado deliverdate="2013-03-03 11:55:57" status="MT_DELIVERED" tran_status="0"/>
<Info>errnum:0:errstr:Status SMPP:[Code:0]</Info>
<TicketId value="" idtran="14" status="BILLED" tran_status="" charge_date="" tariff=""> <Info></Info>
</TicketId>
</MTRequestNotify>

A éste request iniciado por MovilGate el Integrador Externo debe contestar con un código 200 HTTP, para confirmar la recepción del mismo. En caso que MovilGate no reciba respuesta, o reciba otro código, realizará los reintentos correspondientes.

Pruebas de recepción de distintos estados

Se puede enviar un MTRequest con un número de teléfono especial para forzar un Estado → status particular en el MTRequestNotify. Las distintas combinaciones se detallan a continuación:

Número de Teléfono Estado
0000000001 MT_DELIVERED
0000000002 EXPIRETIME
0000000003 MAXRETRIES
0000000004 DISCARD
0000000005 LENGTHZERO
0000000006 MT_FAIL_TIMEOUT
0000000007 MT_BADRESPONSE
0000000008 ERROR

Por ejemplo, para recibir una notificación con Estado → status en DISCARD, se puede enviar un MTRequest como el siguiente:

 

<MTRequest>
<Proveedor Id=”EMOBILE” Password=”ps29292″/>
<Servicio Id=”20500.movistar.ar” ContentType=”0″/>
<Telefono msisdn=”0000000004″ IdTran=”12345678″/>
<Contenido>Mensaje irrelevante</Contenido>
</MTRequest>

IMPORTANTE: por más que se use detección de operadora en la integración, se debe especificar una ruta válida en Servicio → Id incluyendo el número corto de la integración, alguna de las operadoras y el país (como muestra el ejemplo).