Documentación de la api

Documentación

Documentación de API e integración

Use SmsGateway24 con SMS, WhatsApp, chats, peticiones a la API y webhooks.
Esta documentación cubre la autenticación por token, el envío de mensajes, las operaciones masivas, las API de dispositivos, los estados de entrega y la integración de webhooks.
v.1.1
API
Creado para desarrolladores y equipos
Conecte su backend, CRM o helpdesk con su dispositivo Android de mensajería.

1. Obtener un token:

Descripción: Si esta petición se ejecuta correctamente, recibirá un token. Después podrá usarlo para acceder al servidor y realizar más peticiones.
Endpoint: https://smsgateway24.com/getdata/gettoken
Método:: GET
Parámetros de la petición:
Variable Tipo Descripción
email string [obligatorio] Your login in the system. Usually email
pass string [obligatorio] Your password in the system

Respuesta en formato JSON::
Variable Tipo Descripción
token string Su token se obtiene mediante el método de obtención de token:
error int 0 | 1: indica si ha habido un error al procesar la petición
message string Mensaje de error; vacío si todo está correcto.
Enlace al ejemplo de código con Curl
Enlace al ejemplo de código con Guzzle
Ejemplo de la respuesta:
{"error":0,"message":"OK","token":"abbde3e31e9d026c02f41119fc551111e"}
or
{"error":1,"message":"Login or password incorrect"}

2. Enviar un único mensaje usando TOKEN:

Descripción: Crea un mensaje saliente en el servidor. El mensaje puede enviarse a través del canal seleccionado de su dispositivo Android conectado.
Endpoint: https://smsgateway24.com/getdata/addsms
Método: GET, POST (Use %2B en lugar del signo más "+" en la petición GET)
Parámetros de la petición:
Variable Tipo Descripción
token string [obligatorio] Su token se obtiene mediante el método de obtención de token.
sendto string [obligatorio] Dirección o número de teléfono del destinatario. Se pueden separar varios valores con comas.
body string [obligatorio] Cuerpo del mensaje. No es necesario al enviar una imagen (véase el parámetro "file" más abajo): en ese caso, body se sustituye por la URL de la imagen subida.
device_id int [obligatorio] ID del dispositivo
sim int [obligatorio] Ranura SIM: 0 y 1 para SMS. 2 - WhatsApp Business, 3 - WhatsApp personal. 4 y 5 - RCS.
timetosend string
YYYY-MM-DD
o
YYYY-MM-DD HH:MM:SS
[opcional] Hora prevista para enviar el mensaje. Por ejemplo: 2026-09-22 13:02:32
customerid int [opcional] El número de ID de su cliente. Campo opcional
urgent int [opcional] Marca el mensaje como urgente. Útil para OTP y tráfico de alta prioridad.
file file (multipart/form-data) [opcional] Archivo de imagen a enviar (jpeg, png, webp, gif). Si se indica, la petición debe enviarse como multipart/form-data con POST. El archivo se sube a nuestro almacenamiento S3 y su URL pública sustituye al campo "body", de modo que la imagen se entrega al destinatario (actualmente compatible en las ranuras de WhatsApp / WhatsApp Business) y también se muestra en el chat correspondiente. Este parámetro es totalmente opcional: las integraciones existentes que solo envían texto siguen funcionando sin cambios.
Compatibilidad retroactiva: el parámetro "file" es opcional. Si no envía ningún archivo, el endpoint se comporta exactamente como antes: sus integraciones actuales de solo texto no requieren cambios.

Respuesta en formato JSON:
Variable Tipo Descripción
error int 0 o 1: indica si ha habido un error al procesar la petición
message string Mensaje de error; vacío si todo está correcto.
sms_id int Identificador del mensaje creado en nuestro sistema.
Enlace al ejemplo de código con Curl
Enlace al ejemplo de código con Guzzle
Ejemplo de la respuesta:
{ "error": 0, "sms_id": 62807347, "message": "Sms has been saved successfully" }

2.1 Método heredado: enviar un SMS con usuario y contraseña

Obsoleto. Use la autenticación por token para las nuevas integraciones. Este método se mantiene solo por compatibilidad retroactiva.
Endpoint: https://smsgateway24.com/getdata/smstosend
Método: GET, POST
Parámetros de la petición:
Variable Tipo Descripción
emailstring[obligatorio] Su correo electrónico
passstring[obligatorio] Su contraseña
sendtostring[obligatorio] Dirección o número de teléfono del destinatario.
bodystring[obligatorio] Cuerpo del mensaje
device_idint[obligatorio] ID del dispositivo
simint[obligatorio] Ranura SIM: 0 y 1 para SMS. 2 - WhatsApp Business, 3 - WhatsApp personal. 4 y 5 - RCS
timetosendstring[opcional] Hora de envío programada.
customeridint[opcional] Su identificador de cliente.
urgentint[opcional] Marca el mensaje como urgente.

3. Envío masivo de SMS con JSON

Descripción: Crea los SMS en el servidor para enviarlos. Después, el teléfono con la aplicación Smsgateway24 consulta el servidor, recoge los SMS y los envía desde su tarjeta SIM. Descargue la aplicación en este enlace
Endpoint: https://smsgateway24.com/getdata/addalotofsms
Método:: GET, POST
Parámetros de la petición:
Variable Tipo Descripción
datajson string [obligatorio] {"token":"df427bfcf113c9a21c67718035076b5b","smsdata":[{"sendto":"015752982212","body":"Test message","sim":1,"timetosend":"2019-07-01 23:50:00","device_id":260},{"sendto":"+4915752982212","body":"Test message 2","sim":1,"timetosend":"2019-07-01 23:50:00","device_id":260,"urgent":1}]}

Respuesta en formato JSON::
Variable Tipo Descripción
error int 0 | 1: indica si ha habido un error al procesar la petición
message string Mensaje de error; vacío si todo está correcto.
Enlace al ejemplo de código con Curl
Enlace al ejemplo de código con Guzzle
Request example:
{ "token":"df427bfcf113c9a21c6771803501", "smsdata":[ { "sendto":"015752982212", "body":"Your password is 12345", "sim":1, "timetosend":"2019-07-01 23:50:00", "device_id":260, "customerid":122, "urgent":1 }, { "sendto":"015752982212", "body":"Regular SMS. Not urgnet", "sim":1, "timetosend":"2019-07-01 23:50:00", "device_id":260, "customerid":122, "urgent":0 } ] }

4. Obtener todos los SMS (incluidos los entrantes):

Descripción: Esta petición le permite recuperar todos los mensajes asociados a su cuenta, incluidos los SMS entrantes de clientes. En este método todas las variables de entrada son obligatorias y los SMS pueden tener distintos estados.
Endpoint: https://smsgateway24.com/getdata/getallsms
Método: GET, POST (Use %2B en lugar del signo más "+" en la petición GET)
Parámetros de la petición:
Variable Tipo Descripción
token string [obligatorio] Su token se obtiene mediante el método de obtención de token.
device_id string [opcional] ID del dispositivo
status int [opcional]
  • 1 - SMS pendientes
  • 2 - SMS recogidos por el teléfono
  • 3 - En cola para el envío. Certainly, it would have been more logical to place the status "queued for sending" before "SMS taken by phone," but for backward compatibility, the statuses are in the following order: 1, 3, 2."
  • 5 - SMS entrantes
  • 6 - SMS enviados por el teléfono
  • 7 - El SMS se ha entregado
  • 8 - El SMS NO se ha entregado
  • 9 - El SMS no se ha enviado en absoluto: Generic Failure. (Lea qué hacer con este error aquí)
  • Otros errores menos frecuentes:
  • 10 - SMS no enviado - No Service
  • 11 - SMS no enviado - Null PDU
  • 12 - SMS no enviado - Radio Off
  • 100, 101 - SMS no enviado - NOT ALLOWED. (No se han concedido a la aplicación los permisos para enviar SMS)
begindate string
YYYY-MM-DD
or
YYYY-MM-DD HH:MM:SS
[opcional] Begin Date Time
enddate string
YYYY-MM-DD
or
YYYY-MM-DD HH:MM:SS
[opcional] End Date Time
sim int [opcional] Ranura SIM: 0 y 1 para SMS. 2 - WhatsApp Business, 3 - WhatsApp personal. 4 y 5 - RCS # 0 or 1
customerid int [opcional] El número de ID de su cliente. Campo opcional
onlycount int [opcional] 0 | 1 solo contar
phone string [opcional] 0 | 1 Filtro por número de teléfono
orderbydesc int [opcional] 0 | 1 Order by any field
timezone int [opcional] Indique su zona horaria local, por ejemplo Australia/Sydney.

Respuesta en formato JSON::
Variable Tipo Descripción
token string Su token se obtiene mediante el método de obtención de token:
error int 0 | 1: indica si ha habido un error al procesar la petición
message string Mensaje de error; vacío si todo está correcto
count int SMS amount
smss int JSON object
Enlace al ejemplo de código con Curl
Enlace al ejemplo de código con Guzzle
Ejemplo de la respuesta ... :
{ "smss": { "62050971": { "id": 62050971, "sendto": "+4912312312332", "body": "Hello! Thank you for Order! ", "customerid": null, "status": 2, "statustitle": "sending", "deviceid": 11231, "urgent": null, "created": { "date": "2023-11-02 22:44:43.000000", "timezone_type": 3, "timezone": "Europe/Paris" }, "senttime": null, "timetosend": null, "paketid": null, "pakettitle": null, "paketbody": null }, "62051117": { "id": 62051117, "sendto": "+4912312312332", "body": "Hello! Thank you for Order! ", "customerid": null, "status": 7, "statustitle": "delivered", "deviceid": 11231, "urgent": null, "created": { "date": "2023-11-02 22:46:09.000000", "timezone_type": 3, "timezone": "Europe/Paris" }, "senttime": null, "timetosend": null, "paketid": null, "pakettitle": null, "paketbody": null } } }

5. Añadir una nueva lista de contactos

Descripción: La etiqueta es necesaria para generar una newsletter dirigida a un grupo de números. Por ejemplo, use la etiqueta Empleados
Endpoint: https://smsgateway24.com/getdata/savetag
Método:: GET, POST
Parámetros de la petición:
Variable Tipo Descripción
token string [obligatorio] Su token se obtiene mediante el método de obtención de token.
title string [obligatorio] Nombre de la etiqueta

Respuesta en formato JSON::
Variable Tipo Descripción
tag_id int Tag ID
error int 0 | 1: indica si ha habido un error al procesar la petición
message string Mensaje de error; vacío si todo está correcto.
Enlace al ejemplo de código con Curl
Enlace al ejemplo de código con Guzzle
Ejemplo de la respuesta:
{ "error": 0, "tag_id": 8303, "message": "OK" }

6. Añadir contactos a la lista de contactos:

Descripción: Añada contactos a cualquier etiqueta. Por ejemplo, a la etiqueta * Empleados * encajan perfectamente sus compañeros.
Endpoint: https://smsgateway24.com/getdata/savecontact
Método:: GET, POST
Parámetros de la petición:
Variable Tipo Descripción
token string [obligatorio] Su token se obtiene mediante el método de obtención de token.
phone string [obligatorio] phone number
ctag_id int [obligatorio] Tag ID
fullname string [obligatorio] El nombre de su cliente

Respuesta en formato JSON::
Variable Tipo Descripción
contact_id int Contact Id
error int 0 | 1: indica si ha habido un error al procesar la petición
message string Mensaje de error; vacío si todo está correcto.
Enlace al ejemplo de código con Curl
Enlace al ejemplo de código con Guzzle
Ejemplo de la respuesta ... :
{"error":0,"contact_id":15954765,"message":"ok"}

7. Crear una newsletter

Descripción:Una vez creada la etiqueta, puede hacer el envío a los teléfonos de esa etiqueta.
Endpoint: https://smsgateway24.com/getdata/savepaket
Método:: GET, POST
Parámetros de la petición:
Variable Tipo Descripción
token string [obligatorio] Su token se obtiene mediante el método de obtención de token.
title string [obligatorio] Título de la newsletter
device_id string [obligatorio] ID del dispositivo
body string [obligatorio] Cuerpo del mensaje de destino
tags string [obligatorio] ID de la etiqueta. Puede haber varias, separadas por comas. Por ejemplo: 12,13,14
sim int [obligatorio]Ranura SIM: 0 y 1 para SMS. 2 - WhatsApp Business, 3 - WhatsApp personal. 4 y 5 - RCS 0 or 1
time_to_send int, default = 0 [obligatorio]Date time when Newsletter should be sent. Do not forget tap start on device. DD.MM.YYYY H:i:s

Respuesta en formato JSON::
Variable Tipo Descripción
contact_id int ID del contacto
error int 0 | 1: indica si ha habido un error al procesar la petición
message string Mensaje de error; vacío si todo está correcto.
paket_id int Package ID
Enlace al ejemplo de código con Curl
Enlace al ejemplo de código con Guzzle
Ejemplo de la respuesta ... :
{"error":0,"message":"OK","token":"abbde3e31e9d026c02f4f49fc551111e"}
or
{"error":1,"message":"Login or password incorrect"}

8. Obtener la lista de dispositivos

Descripción: Puede consultar toda la información de sus dispositivos.
Endpoint: https://smsgateway24.com/getdata/getalldevices
Método:: GET, POST
Parámetros de la petición:
Variable Tipo Descripción
token string [obligatorio] Su token se obtiene mediante el método de obtención de token.

Respuesta en formato JSON::
Variable Tipo Descripción
count int Número de dispositivos:
device json
  • id - ID del dispositivo
  • title - Nombre del dispositivo
  • created - Fecha de creación del dispositivo
  • createdhumanformat - Fecha de creación del dispositivo en formato normal
  • lastseen - Fecha en que se vio el dispositivo por última vez
  • lastseenhumanformat - Fecha en que se vio el dispositivo por última vez
  • serialnumber - Número de serie del dispositivo
  • siminfo - Información sobre las tarjetas SIM en JSON
  • appversion - La versión de la aplicación instalada en el dispositivo
  • subscription - Si el dispositivo tiene suscripción
message string Mensaje de error; vacío si todo está correcto.
Enlace al ejemplo de código con Curl
Enlace al ejemplo de código con Guzzle
Ejemplo de la respuesta:
    {
    "count": 2,
    "device": {
        "1576": {
            "id": 1576,
            "title": "AOSP_on_IA_Emulator",
            "number": null,
            "imei": "358240051111110",
            "created": {
                "date": "2020-03-28 20:10:29.000000",
                "timezone_type": 3,
                "timezone": "UTC"
            },
            "createdhumanformat": "28.03.2020 20:10:29",
            "lastseen": {
                "date": "2020-04-23 17:02:21.000000",
                "timezone_type": 3,
                "timezone": "UTC"
            },
            "lastseenhumanformat": "23.04.2020 17:02:21",
            "serialnumber": "EMULATOR30X0X5X0",
            "siminfo": [
                {
                    "Slot": "0",
                    "IccId": "89014103211118510720",
                    "Number": " 15555215554",
                    "Roaming": "0",
                    "CountryIso": "us",
                    "CarrierName": "Android (T-Mobile)"
                }
            ],
            "appversion": "12.1.21",
            "isappversionactual": false,
            "delaybetweeneachsms": null,
            "delaybetweenrequest": 1,
            "subscription": true
        },
        "1297": {
            "id": 1297,
            "title": "Android_SDK_built_for_x86",
            "number": null,
            "imei": "null",
            "created": {
                "date": "2020-01-20 14:01:05.000000",
                "timezone_type": 3,
                "timezone": "UTC"
            },
            "createdhumanformat": "20.01.2020 14:01:05",
            "lastseen": {
                "date": "2020-04-20 20:51:34.000000",
                "timezone_type": 3,
                "timezone": "UTC"
            },
            "lastseenhumanformat": "20.04.2020 20:51:34",
            "serialnumber": "unknown",
            "siminfo": [
                {
                    "Slot": "0",
                    "IccId": "8949226172233934327",
                    "Number": "+4915752982212",
                    "Roaming": "1",
                    "CountryIso": "de",
                    "CarrierName": "Drillisch (o2)"
                }
            ],
            "appversion": "12.1.21",
            "isappversionactual": false,
            "delaybetweeneachsms": 5,
            "delaybetweenrequest": 10,
            "subscription": false
        }
    }
}

9. Obtener el estado de entrega de un SMS

Descripción: Con este método puede consultar el estado de entrega de cada SMS
Endpoint: https://smsgateway24.com/getdata/getsmsstatus
Método:: GET, POST
Parámetros de la petición:
Variable Tipo Descripción
token string [obligatorio] Su token se obtiene mediante el método de obtención de token.
sms_id int [obligatorio] Sms Id

Respuesta en formato JSON::
Variable Tipo Descripción
sms_id int SMS ID
status int SMS Status
  • 1 - SMS pendientes
  • 2 - SMS recogidos por el teléfono
  • 3 - En cola para el envío. Certainly, it would have been more logical to place the status "queued for sending" before "SMS taken by phone," but for backward compatibility, the statuses are in the following order: 1, 3, 2."
  • 5 - SMS entrantes
  • 6 - SMS enviados por el teléfono
  • 7 - El SMS se ha entregado
  • 8 - El SMS NO se ha entregado
  • 9 - El SMS no se ha enviado en absoluto: Generic Failure. (Lea qué hacer con este error aquí)
  • Otros errores menos frecuentes:
  • 10 - SMS no enviado - No Service
  • 11 - SMS no enviado - Null PDU
  • 12 - SMS no enviado - Radio Off
  • 100, 101 - SMS no enviado - NOT ALLOWED. (No se han concedido a la aplicación los permisos para enviar SMS)
status_description string Nombre del estado
error int 0 | 1 - si hay un error al procesar la petición
message string Mensaje de error; vacío si todo está correcto.
Enlace al ejemplo de código con Curl
Enlace al ejemplo de código con Guzzle
Ejemplo de la respuesta:
{"error":0,"message":"OK","token":"abbde3e31e9d026c02f4f49fc551111e"}
or
{"error":1,"message":"Login or password incorrect"}