Inicio

Última Actualización: 05 Agosto del 2022

Introducción

API SMS es una API con la cual se puede enviar mensajes de texto a números telefónicos en México

Utilizando esta API, podras utilizar los siguientes métodos;
Enviar un mensaje SMS
Programar el envio del mensaje
Cancelar el envio del mensaje
Ver estado del mensaje enviado

Todos los métodos disponibles de la API reciben la petición por GET, por lo que podrás probar directo en tu navegador.

Se deberá registrar previamente antes de poder usar la API, el registro es totalmente gratuito, pero deberá adquirir un paquete de creditos de consumo.

Requisitos

Es indispensable cumplir con los siguientes requisitos para enviar un SMS a través de nuestra API.

Registro

Se deberá registrar de forma gratuita en el panel de control, y crear un proyecto. Este proyecto deberá ser verificado por la llave publica asignada. Para crear su cuenta deberá acceder a la siguiente URL:

https://envia-sms.com/panel/register
Nota: Solo se permite el registro de correos empresariales. No se admiten correos de carácter gratuito.

Endpoint

Para enviar un mensaje, se deberá ingresar al siguiente ENDPOINT:

https://envia-sms.com/api/sms/{metodo}?{plantilla}&var_{variable a remplazar 1}&var_{variable a remplazar 2}&{pref,numero telefónico}&{token}

  • En donde {metodo} será alguno de los métodos disponibles abajo.
  • En donde {plantilla} será id de la plantilla que queremos enviar
  • En donde si existe alguna palabra a remplazar var_{variable a remplazar 1} será la plabra a remplazar en la plantilla
  • En donde si existe alguna palabra a remplazar var_{variable a remplazar 2} será la plabra a remplazar en la plantilla
  • En donde {numero} será una variable tipo GET obligatoria, en la cual se deberá incluir el prefijo del país al que se le enviará el mensaje. El prefijo será separado con una coma, por ejemplo: 52,5589520028
  • En donde {token} será una variable tipo GET obligatoria, con el que identificará su proyecto.

En la variable {pref,numero}, se deberá sustituir la palabra "pref" por el prefijo de los paises disponibles y cambiar la palabra "numero" por el número del destinatario.

Respuesta del servidor

Una vez que se haya hecho el request, el servidor regresará un código 200 http si todo salió de forma correcta, o devolverá un código 400 http si hubo un error en el envío de los parámetros al endpoint. En cualquier caso devolverá un json con el siguiente formato:

    
    {
        "error": false,
        "code_error": 0,
        "error_message": null,
        "response": {
    }
    


  • En donde {error} será una variable tipo bool. Indicará si hubo un error o no.
  • En donde {code_error} será una variable tipo int. Indicará el número de error que podrá ser identificado en esta documentación.
  • En donde {error_message} será una variable tipo string. Indicará error que hubo al momento de mandar la solicitud al servidor.
  • En donde {response} será una variable tipo array. Devolverá la información solicitada dependiendo el método utilizado.

Pruebas

Para realizar pruebas, se puede ocupar cualquier método disponible en esta documentación, únicamente se deberá ingresar "pruebas_", seguido de eso, el token de proyecto, quedando la estructura de esta forma:

https://envia-sms.com/api/sms/{metodo}?{plantilla}&var_{variable a remplazar 1}&var_{variable a remplazar 2}&{pref,numero telefónico}&pruebas_{token}

En modo pruebas, no se gastará algún crédito adquirido


[
    "error": false,
    "codigo_error": "",
    "mensaje_error": "",
    "response": {
        "mensaje": "Mensaje enviado correctamente",
        "mensaje_enviado": "Mensaje de prueba",
        "numero": "521234567891",
        "fecha_programada": null,
        "identificador": {
            "0": "60si864mv8o3b"
        }
    }
]

Métodos Disponibles

Enviar un mensaje SMS

Para enviar un mensaje de texto, se debe acceder al método {send} y se deberá ingresar la varible {plantilla}, la variable {pref,numero} y la variable {token} de forma obligatoria.
{pref,numero} Variable tipo GET, se deberá enviar de forma obligatoria para establecer el número destino. Se deberá sustituir la palabra "pref" por el prefijo de los paises disponibles (sin simbolos) y sustituir la palabra "numero" por el número del destinatario.

{plantilla} :Variable tipo GET, se deberá enviar de forma obligatoria para identificar la plantilla previamente creada desde el panel de control o se podrá enviar el identificador de una plantilla general.

var_{variable} :Es un/as variable/s tipo GET opcional condicional. Si la plantilla previamente creada contiene variables (palabras y/o links a reemplazar) se deberá de enviar de forma obligatoria las variables creadas en su plantilla. En caso de que la plantilla no tenga variables (palabras y/o links a reemplazar) no se enviará ninguna variable GET var_{variable}. En caso de que la plantilla no cuente con variables, se ignorará lo enviado.

Tambien se pueden enviar otras variables de forma opcional, como:

  • {fecha_programar}:Variable tipo GET, si se envía esta variable se programará el envío de un sms a la fecha dada. Esta variable, se enviará con un formato YYYY-MM-DD HH:MM:SS y expresado en el uso horario GMT - 5h (Horario central de México)
  • {ucs2} : Variable tipo GET, si se envía con le valor de 1, la API sms hará que el mensaje pueda tener cualquier carácter reconocidos por el alfabeto estándar UCS-2. Al utilizar esta variable, cada 70 carácteres se tomará como un mensaje. La longitud máxima del mensaje es de 500 caracteres.
  • {duplicado} :Variable tipo GET, si se envía con el valor de 1, la API SMS permitirá enviar el mismo mensaje al mismo destinatario varias veces. En caso de que no se envíe, filtrará los mensajes con el mismo contenido enviados al mismo destinatario y solo se enviará 1 SMS dentro dentro de la misma hora.
  • {short_link} :Variable tipo GET, si se envía con el valor de 1, la API SMS automáticamente creará un link corto tipo "https://miurl.link/XXX" cuando se envíe un link dentro de una variable var_{variable} de tipo URL. NOTA: Para usar esta función se deberá activar previamente en el perfil de la cuenta.

  • Ejemplo:

    https://envia-sms.com/api/sms/send?plantilla=01&var_codigo_verificacion=123456&var_empresa=API SMS&token=pruebas_TOKEN&numero=12,34567891


    A esto nos devolverá un JSON, la información del envio del mensaje (mensaje de respuesta, mensaje enviado, numero,fecha_programada y el identificador de mensaje, éste en forma de arreglo). Ejemplo:

    
    [
        "error": false,
        "codigo_error": "",
        "mensaje_error": "",
        "response": {
            "mensaje": "Mensaje enviado correctamente",
            "mensaje_enviado": "123456 es tu codigo de verificacion de API SMS.",
            "numero": "1234567891",
            "fecha_programada": null,
            "identificador": {
                "0": "60si864mv8o3b"
            }
        }
    ]
    
    


    Ejemplo para enviar un sms en una fecha y hora especifico:

    https://envia-sms.com/api/sms/send?plantilla=01&var_codigo_verificacion=123456&var_empresa=API SMS&token=pruebas_TOKEN&numero=12,3456789&fecha_programar=2022-06-03 00:00:00


    Y nos devolverá el siguiente ejemplo:
    Nota: La "fecha_programar" es opcional, eso quiere decir que no es necesario ingresar esa variable.
    
    {
        "error": false,
        "codigo_error": "",
        "mensaje_error": "",
        "response": {
            "mensaje": "Mensaje enviado correctamente",
            "mensaje_enviado": "123456 es tu codigo de verificacion de API SMS.",
            "numero": "123456789",
            "fecha_programada": 2022-06-03 00:00:00,
            "identificador": {
                "0": "60si864mv8o3b"
            }
        }
    }
    
    


    Ejemplo para enviar un sms con un link para acortar:

    https://envia-sms.com/api/sms/send?plantilla=0000&var_usuario=MW&var_url=http://aquivaunaurlmuylarga.com/masdatos/otrosdatos/index.html&token=pruebas_TOKEN&numero=12,3456789&short_link=1


    Nota: Para usar esta función se deberá activar previamente en el perfil de la cuenta. En caso de que no esté activada la función en su cuenta y se mande la variable {short_link} con valor 1, no se acortará la url y se enviará el link original

    Y nos devolverá el siguiente ejemplo:
    
    {
        "error": false,
        "codigo_error": "",
        "mensaje_error": "",
        "response": {
            "mensaje": "Mensaje enviado correctamente",
            "mensaje_enviado": "Hola MW, tienes una increible promo, solo entra a esta https:\/\/miurl.link\/r\/XXXX",
            "numero": "123456789",
            "fecha_programada": "",
            "identificador": {
                "0": "62f06d7e40b65"
            }
        }
    }
    
    


    Cancelar o enviar mensajes programados

    Con este método se puede cancelar o enviar ahora un mensaje programado. Solo utilizaremos las variables: {tipo} e {identificador}

    La variable {tipo}, es obligatoria, ya que será la acción a realizar. Solo puede tener 2 valores: "cancel" o "send".

    La variable {indentificador} es variable obligatoria, ya que será el identificador del mensaje programado, puede tener 2 valores: "identificador del mensaje" o "*". El valor "*" se encarga de seleccionar todos los mensajes programados.

    Ejemplo:

    https://envia-sms.com/api/sms//send_cancel?tipo=cancel&identificador=60si864mv8o3b&token=TOKEN


    Y nos devolverá el siguiente ejemplo:

    
    
        {
            "error": false,
            "error_code": "0",
            "error_message": "",
            "response": {
                "message": "Acción realizada"
            }
        }
    
    

    Ver estado de del mensaje enviado

    Se puede obtener es estado del mensaje enviado. Solo utilizaremos el identificador y el numero telefónico del remitente, esto en con las varibles {identificador}, {numero} y {token}.
    Nota: En la variable numero, es necesario ingresar que al principio se ingrese el numero de país.
    Ejemplo:

    https://envia-sms.com/api/sms/status_message?identificador=60si864mv8o3b&numero=52,1234567891&token=TOKEN


    Y nos devolverá el siguiente ejemplo:

    
    {
        "error": false,
        "error_code": "0",
        "error_message": "",
        "response": {
            "number": "521234567891",
            "status": "Modo pruebas",
            "description": [],
            "identificador": "60si864mv8o3b",
            "date": "2022-06-03 00:00:00"
        }
    }
        


    Respuestas:

    # Status
    1 Procesando
    2 Error
    3 Entregado_GSM
    4 Entregado_operador
    5 Entregado

    "Procesando": El mensaje enviado ha sido procesado.

    "Error": Se ha producido un error en la entrega del mensaje.

    "Entregado_GSM": El mensaje ha sido entregado a la red GSM.

    "Entregado_operador": Mensaje se ha entregado por el operador local del destinatario.

    "Entregado": El mensaje ha sido entregado al destinatario correctamente.

    "description": Aquí se mostrará la descripción adicional del mensaje, esto en caso que haya un error:

    • Mensaje_rechazado
    • Mensaje_expirado
    • Mensaje_duplicado
    • No_entregado

    Paises disponibles

    Aquí estarán los paises y los prefijos disponibles en nuestra API

    Si no está disponible el país al cual requiere enviar el mensaje, puede contactarse al área de soporte para solicitar una activación de país.

    Manejamos 4 precios por envío de sms. De acuerdo al paquete contratado se decontará de su saldo pagado.

    # Paises Prefijo Precio (Paquete gratuito) Precio (Paquete inicio) Precio (Paquete básico) Precio (Paquete intermedio) Precio (Paquete Profesional)
    1 México +52 0.5 0.47 0.45 0.43 0.41
    2 Francia +33 1.5 1.44 1.42 1.4 1.38
    3 España +34 1.5 1.43 1.41 1.39 1.37


    Paises disponibles

    Para obtener el JSON con el listado de los paises disponibles, se deberá acceder al método {paises} y se ingresará una sola variable {token}
    {token}: En esta variable se ingresará el token de proyecto al cual se le descontará un crédito.


    Ejemplo:

    https://envia-sms.com/api/sms/paises?token=TOKEN

    A esto nos devolverá un JSON, con el listado de paises disponibles en nuestra API
    Ejemplo:

    
    {
        "error": true,
        "codigo_error": "",
        "mensaje_error": "",
        "response": [
            {
                "codigo_pais": "MX",
                "nombre_pais": "México",
                "prefijo": "52",
                "precio_gratis": "0.5",
                "precio_inicio": "0.47",
                "precio_basico": "0.45",
                "precio_intermedio": "0.43",
                "precio_profesional": "0.41"
            },
            {
                "codigo_pais": "FR",
                "nombre_pais": "Francia",
                "prefijo": "33",
                "precio_gratis": "1.5",
                "precio_inicio": "1.44",
                "precio_basico": "1.42",
                "precio_intermedio": "1.4",
                "precio_profesional": "1.38"
            },
            {
                "codigo_pais": "ES",
                "nombre_pais": "España",
                "prefijo": "34",
                "precio_gratis": "1.5",
                "precio_inicio": "1.43",
                "precio_basico": "1.41",
                "precio_intermedio": "1.39",
                "precio_profesional": "1.37"
            }
        ]
    }
    
    

    Nota: Este método no esta disponible en modo pruebas

    Cuenta

    Créditos disponibles

    Se puede solicitar el número de créditos disponibles de un proyecto. Para esto se debe acceder al método {cuenta} y deberá ingresa el criterio de búsqueda {creditos_disponibles} y de forma obligatoria deberá enviar una variable tipo GET {token}
    Ejemplo:

    https://envia-sms.com/api/sms/creditos_disponibles?token=pruebas


    Y nos devolverá el siguiente ejemplo:

    
    {
        "error": false,
        "code_error": 0,
        "error_message": null,
        "response": {
            "creditos_disponibles": "9999"
        }
    }
        

    Códigos de Error API

    Una vez que se haya hecho el request, el servidor regresará un código http 400 si hubo un error en el envío de los parámetros al endpoint.

    En la siguiente tabla, se listan los códigos de error:

    Código Descripción Método
    0 Acción realizada N/A
    01 Se bloqueó la IP de solicitud, por uso indebido de la API N/A - Error general
    02 No se recibió el token del proyecto N/A - Error general
    03 El token de proyecto es inválido N/A - Error general
    04 Su proyecto se encuentra en estatus: Suspendido N/A - Error general
    05 Su proyecto no cuenta con créditos disponibles N/A - Error general
    06 No se encontró el proyecto solicitado N/A - Error general
    07 No se encontró el prefijo télefónico N/A - Error general
    08 El país con ese prefijo, no se encuentra en la lista de paises disponibles N/A - Error general
    102 El mensaje es demasiado grande para este método / El mensaje es demasiado grande send
    103 No se recibió el número de destino send
    104 El número es demasiado grande send
    106 Los mensajes programados no se pueden enviar en modo pruebas send
    107 Pongase en contacto con el área de soporte send
    108 El valor de la fecha programada, es inválida send
    109 Hubo un error al enviar el mensaje al destinatario send
    110 Pongase en contacto con el área de soporte send
    111 Se ha detectado un error con el destinatario send
    112 Pongase en contacto con el área de soporte send
    113 El campo es demasiado largo send
    114 Se ha detectado un valor desconocido en el nivel send
    115 Se ha proporcionado el link de notificación, pero falta el nivel send
    116 Se ha proporcionado el nivel, pero falta el link de notificación send
    117 Hubo un error al enviar su mensaje send
    118 El indentificador de mensaje es muy largo send
    119 El mensaje contiene caracteres no soportados send
    120 Pongase en contacto con el área de soporte send
    121 Se exedió el número de caracteres en el remitente send
    122 Demasiados destinatarios send
    123 No hay destinatario send
    124 El mensaje es muy largo. El limite es 160 caracteres de 7 bits send
    125 El mensaje está vacio send
    126 Pongase en contacto con el área de soporte send
    127 Pongase en contacto con el área de soporte send
    128 Pongase en contacto con el área de soporte send
    129 No se encontró la plantilla send
    130 Su plantilla ha sido desactivada, si cree que es un error, contactese al área de soporte send
    131 Su plantilla ha sido rechazada, por que no cumple con las normas de API SMS send
    132 Su plantilla sigue en revisión send
    133 Una de las palabras no está configurada para enviar una URL send
    134 Una de las palabras no está configurada para enviar un texto send
    135 El mensaje ha sido rechazado, debido a una palabra prohibida send
    136 No se recibieron todas las variables de la plantilla send
    137 La plantilla que intenta usar no pertenece a su cuenta send
    301 No se recibió el tipo send_cancel
    302 No se recibió el identificador send_cancel /status_message
    303 No existe el identificador send_cancel /status_message
    304 No se encontró el mensaje programado send_cancel
    400 Bad Request N/A - Error general
    401 Sin autorización N/A - Error general
    403 Forbidden N/A - Error general
    500 Error en el servidor N/A - Error general
    601 No se encontró el número telefónico ingresado status_message
    602 No se encontró el status status_message

    Códigos de ejemplo

    A continuación se muestran como obtener información con cualquiera de los métodos disponibles.



    Changelog

    En esta sección aparecerán los cambios hechos en la API, desde el día de su publicación

    Una API de Multiservicios Web