Integración SMS

Area de desarrolladores SMS: Como integrar la funcionalidad de envío de SMS, mensajes a moviles, en las aplicaciones

Comprobar el estado de los envíos

La plataforma de Descom SMS, ofrece notificaciones de entrega. Estás se producen asincronamente. Desde está sección puede comporbar el estado de entrega de los mensajes de un envío. Para ello debe realizar una llamada de tipo GET a la siguiente URL: https://api.descomsms.com/api/shipment/{id}

El parámetro {id}, debemos de sustituirlo por el identificativo del envío que obtuvimos en la respuesta de un envío de SMS, que puede ver en el aparatado anterior.

Ejemplo


    curl https://api.descomsms.com/api/shipment/100 \
    -H "Content-Type: application/json" \
    -H "DSMS-User: poner_aqui_el_usuario" \
    -H "DSMS-Pass: poner_aqui_el_password"

Respuestas esperadas


  • 200 La petición se ha efectuado correctamente
  • 401 Autentificación requerida o denegada
  • 403 No tiene permisos para acceder a este elemento
  • 503 Error interno, la petición no ha sido efectuada

En el caso que la respuesta sea correcta, obtendrá en el contenido de la misma un json con el resultado del envío. Definimos a continuación en una tabla los parametros que obtendremos en la respuesta:

ParámetroTipoDescripción
id Integer Identificativo del envío, podremos usarlo para comprobar posteriormente el estado de entrega de los mensajes.
dryrun Boolean Será `true` si el envío fue simulado
num_messages Integer Número totales de mensajes en el envío
num_sms Integer Número totales de SMS que se envió
cost_credits Double Créditos que nos desconto en la cuenta el envío
credits_before Double Créditos que disponía la cuenta antes del envío
credits_after Double Créditos que disponía la cuenta después del envío
ip String Dirección IP desde donde se lanzó el envío
created_at DateTime Fecha en la que se realizó la petición
updated_at DateTime Fecha en la que se modifico por última vez el envío
status Object Status Devuelve un objeto con el número de mensajes en cada estado posible

Definición: Object Status

ParámetroTipoDescripción
sending Integer Número de mensajes encolado en nuestra plataforma, pendientes de enviar.
sent Integer Número de mensajes enviado a ruta desde nuestra plataforma.
receive_by_smsc Integer Número de mensajes con confirmación de entrega a la operadora.
receive_by_destination Integer Número de mensajes con confirmación de entrega al destinatario.

Ejemplo de respuesta:

{
    "id": 390,
    "dryrun": true,
    "num_messages": 1,
    "num_sms": 1,
    "cost_credits": 1,
    "credits_before": 678.2,
    "credits_after": 678.2,
    "ip": "127.0.0.1",
    "created_at": {
        "date": "2017-09-08 10:08:34.000000",
        "timezone_type": 3,
        "timezone": "Europe/Madrid"
    },
    "updated_at": {
        "date": "2017-09-08 10:08:34.000000",
        "timezone_type": 3,
        "timezone": "Europe/Madrid"
    },
    "status": {
        "sending": 1,
        "sent": 0,
        "receive_by_smsc": 0,
        "receive_by_destination": 0,
        "error": 0
    }
}

By

Obtener tu lista de remitentes autorizados

Si desea obtener los remitentes con los cuales estás autorizado a enviar en tus SMS. Puede consultarlo a través de la API mediante la llamada https://api.descomsms.com/api/senderID

Recuerde que es necesario autentificar la petición

Ejemplo


    curl https://api.descomsms.com/api/senderID \
    -H "Content-Type: application/json" \
    -H "DSMS-User: poner_aqui_el_usuario" \
    -H "DSMS-Pass: poner_aqui_el_password"

Respuestas esperadas


  • 200 La petición se ha efectuado correctamente
  • 401 Autentificación requerida o denegada
  • 503 Error interno, la petición no ha sido efectuada

En el caso que la respuesta sea correcta, obtendrá en el contenido de la misma un json con un array con la lista de remitentes que tienes autorizados.

Ejemplo:

    [
        "lider",
        "nuevo sms",
        "promocion",
        "publicidad",
        "hola",
        "invitacion",
        "novedades",
        "urgente",
        "pasalo",
        "agenda",
        "recuerda",
        "saludos",
        "un amigo",
        "una amiga",
        "novedad",
        "fiesta",
        "felicidades",
        "informacion",
        "mensaje",
        "recordar",
        "info",
        "aviso"
    ]

¿Necesitas un remitente que no figura en está lista?


Si necesitas un remitente personal para tu cuenta accede a tu Panel de Control, donde te explicamos como hacerlo.

By

Enviar SMS

El envío de SMS se realiza a través de una llamada de tipo POST a la siguiente URL: https://api.descomsms.com/api/sms/send

En está petición POST, además de enviar en la cabecera los datos de autentificación, debemos enviar un json por POST con los datos del envío.

Datos POST


A continuacíon le detallamos mediante una tabla los parámetros admitidos en esta llamada.

Objeto Json:

ParámetroValorRequerido
dryrun Boolean, Si indicamos este campo como `true` se simulará un envío sin que se descuente créditos en la cuenta.  
sanitize Boolean, Permite convertir el texto del SMS a un juego de caracteres GSM 7bits  
messages Array, de objetos Message No permitido enviar más de 50 objetos en la misma petición

Definición: Objeto Message

ParámetroValorRequerido
to Array, con de los números de móvil de los destinatarios. No está permitido enviar más de 100 destinatarios en el mismo mensaje
text String, cadena de texto que se enviará por SMS.
senderID String, con la cadena del texto o móvil del remitente. Tenga en cuenta que este debe estar validado en la plataforma.  

Ejemplo


    curl https://api.descomsms.com/api/sms/send \
    -H "Content-Type: application/json" \
    -H "DSMS-User: poner_aqui_el_usuario" \
    -H "DSMS-Pass: poner_aqui_el_password" \
    -X POST \
    --data '
{
    "messages": [
        {
            "to": [
                "666666666"
            ],
            "text": "test",
            "senderID": "Info"
        }
    ]
}
'

Respuestas esperadas


  • 200 La petición se ha efectuado correctamente
  • 401 Autentificación requerida o denegada
  • 402 Saldo insuficiente para realizar el envío
  • 422 Los datos enviados no son validos
  • 503 Error interno, la petición no ha sido efectuada

En el caso que la respuesta sea correcta, obtendrá en el contenido de la misma un json con el resultado del envío. Definimos a continuación en una tabla los parametros que obtendremos en la respuesta:

ParámetroTipoDescripción
id Integer Identificativo del envío, podremos usarlo para comprobar posteriormente el estado de entrega de los mensajes.
dryrun Boolean Será `true` si el envío fue simulado
num_messages Integer Número totales de mensajes en el envío
num_sms Integer Número totales de SMS que se envió
cost_credits Double Créditos que nos desconto en la cuenta el envío
credits_before Double Créditos que disponía la cuenta antes del envío
credits_after Double Créditos que disponía la cuenta después del envío
ip String Dirección IP desde donde se lanzó el envío
created_at DateTime Fecha en la que se realizó la petición
updated_at DateTime Fecha en la que se modifico por última vez el envío

Ejemplo de respuesta:

{
    "id": 390,
    "dryrun": true,
    "num_messages": 1,
    "num_sms": 1,
    "cost_credits": 1,
    "credits_before": 678.2,
    "credits_after": 678.2,
    "ip": "127.0.0.1",
    "created_at": {
        "date": "2017-09-08 10:08:34.000000",
        "timezone_type": 3,
        "timezone": "Europe/Madrid"
    },
    "updated_at": {
        "date": "2017-09-08 10:08:34.000000",
        "timezone_type": 3,
        "timezone": "Europe/Madrid"
    }
}

By

Obtener saldo de la cuenta

Si desea obtener el saldo actual de la cuenta, puede consultarlo a través de la API mediante la llamada https://api.descomsms.com/api/balance

Recuerde que es necesario autentificar la petición

Ejemplo


    curl https://api.descomsms.com/api/balance \
    -H "Content-Type: application/json" \
    -H "DSMS-User: poner_aqui_el_usuario" \
    -H "DSMS-Pass: poner_aqui_el_password"

Respuestas esperadas


  • 200 La petición se ha efectuado correctamente
  • 401 Autentificación requerida o denegada
  • 503 Error interno, la petición no ha sido efectuada

En el caso que la respuesta sea correcta, obtendrá en el contenido de la misma un json con el saldo de su cuenta con el siguiente formato:

{
    "balance":value
}

Siendo `value` un campo de tipo decimal con el saldo actual de la cuenta.

Ejemplo:

    {
        "balance":90.5
    }

En este ejemplo el saldo actual de la cuenta, es de 90.5 créditos.

By

Autentificación

La autentificación se realiza enviado el usuario y la contraseña en la cabecera de la petición HTTP. Dado que las peticiones son HTTPS está información se retransmite de forma cifrada y segura.

Los nombre de la cabecera por el que se retransmiten el usuario y contraseña son los siguiente respectivamente; DSMS-User y DSMS-Pass

Si aún no dispone de una cuenta en la plataforma, puede obtener una registrandose a través del siguiente formulario

Tenga en cuenta que todas las peticiones a la API requiere autentificación

Ejemplo


    curl https://api.descomsms.com/api \
    -H "Content-Type: application/json" \
    -H "DSMS-User: poner_aqui_el_usuario" \
    -H "DSMS-Pass: poner_aqui_el_password"

Respuesta obtenida


Si la estado de la respuesta HTTP obtenida es 401, significa que la autentificación no ha sido satisfactoria.

By

API SMS | integración de servicio SMS en las aplicaciones

Introducción

Descom SMS te ofrece una API para integrar en tus propios desarrollos los envío de SMS a traves de nuestra plataformas. Está es la nueva versión de la API, si necesitas funcionalidades que aún no están integradas en está, puede acceder a la documentación de la versión anterior en el siguiente enlace.

Novedad La nueva API soporta el juego de caracteres UTF-8, ahora puedes enviar acentos y el resto de caracteres que antes no podias.

Características de la API


  • Todas las llamadas a la API se realizan mediante peticiones HTTP
  • HTTPS: Transmisión encriptada de datos obligatoria
  • Autentificación: Sistema de autentificación mediante usuario/contraseña
  • JSON: Los datos usan el standard JSON

Uso


Todas las llamadas a la API tienen la siguiente base url: https://api.descomsms.com/api usando los métodos GET o POST dependiendo de la llamada

Cada petición a la API debe incorporar la cabecera de nombre Content-Type con el valor: application/json vea el siguiente ejemplo

    curl https://api.descomsms.com/api \
    -H "Content-Type: application/json"

Respuestas


Cada petición a la API devolverá un código de respuesta HTTP. Estos son los estados que te podrás encontrar:

  • 200 La petición se ha efectuado correctamente
  • 401 Autentificación requerida o denegada
  • 402 Saldo insuficiente para realizar el envío
  • 403 No tiene permisos para acceder a este elemento
  • 422 Los datos enviados no son validos
  • 503 Error interno, la petición no ha sido efectuada

By

1. Descripción

La interfaz DLL te ofrece 2 funciones para obtener los reportes de entrega.

2. Definición de Funciones

Reporte de entrega de un Mensaje

  • Descripción: Obtiene el estado de entrega de un SMS.
  • Función: ObtenerInformeSMS
  • Argumentos:
    • LPCSTR idUsuario; Codigo de usuario en la plataforma Descom SMS.
    • LPCSTR Usuario; Nombre de Usuario de la cuenta.
    • LPCSTR Password; Contraseña de la cuenta
    • LPCSTR IdDM; Id de envío obtenido desde la función EnviarSMS.
  • Valor de retorno: tipo Int; Nos devuelve el estado de entrega de un SMS, salvo que el valor sea negativo, en cuyo caso se trata de un error.

long ObtenerInformeSMS(
LPCSTR idUsuario,
LPCSTR Usuario,
LPCSTR Password,
LPCSTR IdDM);



Reporte de entrega de un Envío Masivo

  • Descripción: Obtiene el estado de entrega de un SMS.
  • Función: ObtenerInformeEnvio
  • Argumentos:
    • LPCSTR idUsuario; Codigo de usuario en la plataforma Descom SMS.
    • LPCSTR Usuario; Nombre de Usuario de la cuenta.
    • LPCSTR Password; Contraseña de la cuenta.
    • LPCSTR idenviodm; Id de envío obtenido desde la función EnviarSMSMasibo.
    • int *sin_confirmacion;Obtiene el número de mensajes que no se han confirmado.
    • int *confirmados; Obtiene el número de mensajes que se han confirmados.
    • int *errores; Obtiene el número de mensajes con errores en la entrega.
    • int *sin_informacion; Obtiene el número de mensajes que aún no dispone de información de la entrega.
  • Valor de retorno: tipo Int; Nos devuelve el número de mensajes con errores, salvo que el valor sea negativo, en cuyo caso se trata de un error.

 

long ObtenerInformeEnvio(
LPCSTR idUsuario,
LPCSTR Usuario,
LPCSTR Password,
LPCSTR idenviodm,
long *sin_confirmacion,
long *confirmados,
long *errores,
long *sin_informacion)



3. Ejemplos y Descargas

Una vez instalada la libreria, podemos llamarla practicamente desde cualquier lenguaje de programación, para hacer uso de ella

 

Llamar desde Visual Basic .NET

Private Declare Function ObtenerInformeSMS Lib _
       "descomsms.dll" ( _
       ByVal idUsuario As String, _
       ByVal Usuario As String, _
       ByVal Password As String, _
       ByVal IdEnvio As String _
) As Integer

Private Declare Function ObtenerInformeEnvio Lib _
           "descomsms.dll" ( _
           ByVal idUsuario As String, _
           ByVal Usuario As String, _
           ByVal Password As String, _
           ByVal idenviodm As String, _
           ByRef sin_confirmacion As Integer, _
           ByRef confirmados As Integer, _
           ByRef errores As Integer, _
           ByRef sin_informacion As Integer _
) As Integer



4. Gráfico

Report-Envio

By

DLL SMS | Envío simple de SMS, envío masivo de SMS y consulta de saldo

1. Descripción

La interfaz DLL Simple te ofrece 3 funciones para enviar sms o comprobar el saldo de una cuenta

2. Definición de Funciones

Obtener el Saldo

  • Descripción: Obtiene el saldo de una cuenta
  • Función: ObtenerSaldo
  • Argumentos:
    • LPCSTR idUsuario; Codigo de usuario en la plataforma Descom SMS.
    • LPCSTR Usuario; Nombre de Usuario de la cuenta.
    • LPCSTR Password; Contraseña de la cuenta
  • Valor de retorno: tipo Int; Nos devuelve el saldo de la cuenta, salvo que el valor sea negativo, en cuyo caso se trata de un error.
long  ObtenerSaldo(LPCSTR idUsuario, LPCSTR Usuario, LPCSTR Password);

Enviar SMS

  • Descripción: Envía un SMS
  • Función: EnviarSMS
  • Argumentos:
    • LPCSTR idUsuario; Codigo de usuario en la plataforma Descom SMS.
    • LPCSTR Usuario; Nombre de Usuario de la cuenta.
    • LPCSTR Password; Contraseña de la cuenta
    • LPCSTR Remitente; Remitente del mensaje
    • LPCSTR Movil; móvil del destinatario.
    • LPCSTR Mensaje; texto del SMS.
  • Valor de retorno: tipo Int; Nos devuelve el código de envío del mensaje (para comprobar posteriormente el reporte de entrega), salvo que el valor sea negativo, en cuyo caso se trata de un error.
long EnviarSMS(
LPCSTR idUsuario,
LPCSTR Usuario,
LPCSTR Password,
LPCSTR Remitente,
LPCSTR Movil,
LPCSTR Mensaje);

Enviar SMS's Masivos

  • Descripción: Envía varios SMS en un solo envío
  • Función: EnviarSMSMasivo
  • Argumentos:
    • LPCSTR idUsuario; Codigo de usuario en la plataforma Descom SMS.
    • LPCSTR Usuario; Nombre de Usuario de la cuenta.
    • LPCSTR Password; Contraseña de la cuenta
    • LPCSTR Remitente; Remitente del mensaje
    • char *Moviles; Array de móviles de los destinatarios.
    • int sizeMoviles; Tamaño del Array de destinatarios (se recomineda nunca superar más de 50 mensajes en un solo envío)
    • LPCSTR Mensaje; texto del SMS.
  • Valor de retorno: tipo Int; Nos devuelve el código de envío masivo de mensajes (para comprobar posteriormente el reporte de entrega), salvo que el valor sea negativo, en cuyo caso se trata de un error.

long EnviarSMSMasivo(
   LPCSTR idUsuario,
   LPCSTR Usuario,
   LPCSTR Password,
   LPCSTR Remitente,
   char *Moviles[],
   int sizeMoviles,
   LPCSTR Mensaje);


3. Ejemplos y Descargas

Una vez instalada la libreria, podemos llamarla practicamente desde cualquier lenguaje de programación, para hacer uso de ella.




 

Llamar desde Visual Basic .NET

Private Declare Function ObtenerSaldo Lib _
       "descomsms.dll" ( _
       ByVal idUsuario As String, _
       ByVal Usuario As String, _
       ByVal Password As String _
) As Integer

Private Declare Function EnviarSMS Lib _
       "descomsms.dll" ( _
       ByVal idUsuario As String, _
       ByVal Usuario As String, _
       ByVal Password As String, _
       ByVal Remitente As String, _
       ByVal Movil As String, _
       ByVal Mensaje As String _
) As Integer
Private Declare Function EnviarSMSMasivo Lib _
 "descomsms.dll" ( _
 ByVal idUsuario As String, _
       ByVal Usuario As String, _
       ByVal Password As String, _
       ByVal Remitente As String, _
       ByVal Movil() As String, _
       ByVal NumeroMoviles As Integer, _
       ByVal Mensaje As String _
) As Integer


4. Gráfico

Enviar-SMS-InterfazHTTP

By

1. Descripción

La interfaz DLL te ofrece una serie de funciones para integrar la plataforma Descom SMS en tus aplicaiones bajo Windows

 

2. Plataformas

Plataformas soportadas: Windows

3. Instalación

solo necesitamos descargar la DLL y alojarla en la carpeta System32 de nuestro sistema, es decir, "%SystemRoot%\system32"

3. Servicios

Dispone de los siguientes Servicios:

 

4. Descargas

By