Autenticación

Para hacer uso de nuestra API debes autenticarte con tu llave privada que puedes obtener en tu panel en "Llaves de acceso" o en la sección de "API".

Al autenticarte recibirás un token de sesión para hacer peticiones a nuestra API que deberás usar como autorización en los encabezados de tus peticiones. Los token de sesión expiran cada hora.

Atributos
Atributo Descripción
apikey   Obligatorio   Llave privada de acceso a la API.
lang   Opcional   Idioma de la respuesta. Por defecto   es  .
  es   Español.
  en   Inglés.
Errores
Código Mensaje
auth_01 Usuario no autorizado
auth_03 Llave privada inválida

La llave privada da acceso a todos los recursos de nuestra API, por lo cual asegúrate de nunca compartirla. En caso contrario puedes recuperarla generando una nueva llave privada desde tu panel.


Autenticación

Para autenticarte debes hacer una petición a la siguiente dirección:


  POST  https://api.smsmasivos.com.mx/auth 

Ejemplo de autenticación:
                              
curl -X POST "https://api.smsmasivos.com.mx/auth" -d "apikey=your_api_key"
                              
                            
                                
$params = array(
  "apikey" => your_api_key
);
curl_setopt_array($ch = curl_init(), array(
  CURLOPT_URL => "https://api.smsmasivos.com.mx/auth",
  CURLOPT_SSL_VERIFYPEER => 0,
  CURLOPT_POST => 1,
  CURLOPT_POSTFIELDS => http_build_query($params),
  CURLOPT_RETURNTRANSFER => 1
));
$response = curl_exec($ch);
curl_close($ch);

echo json_encode($response);
                                
                              
                                
require 'net/http'
require 'uri'

uri = URI.parse("https://api.smsmasivos.com.mx/auth")
request = Net::HTTP::Post.new(uri)
request.set_form_data(
  "apikey" => your_api_key
)
req_options = {
  use_ssl: uri.scheme == "https",
}
response = Net::HTTP.start(uri.hostname, uri.port, req_options) do |http|
  http.request(request)
end

puts response.body
                                
                              
                                
var request = (HttpWebRequest)WebRequest.Create("https://api.smsmasivos.com.mx/auth");
var postData = "apikey=your_api_key";
var data = Encoding.ASCII.GetBytes(postData);
request.Method = "POST";
request.ContentType = "application/x-www-form-urlencoded";
request.ContentLength = data.Length;
using (var stream = request.GetRequestStream())
{
  stream.Write(data, 0, data.Length);
}
var response = (HttpWebResponse)request.GetResponse();
var responseString = new StreamReader(response.GetResponseStream()).ReadToEnd();

Console.WriteLine(responseString);
                                
                              
                                
var request = require('request');

var targetURL = 'https://api.smsmasivos.com.mx/auth'
var response = request.post(
  {
    url: targetURL,
    form: {
      "apikey": your_api_key
    }
  }, (err, res, body) => {
    if(err == null){
      console.log(body);
    }
  }
);
                                
                              
                                
import requests

targetURL = "https://api.smsmasivos.com.mx/auth"
data = {'apikey':your_api_key}
r = requests.post(url = targetURL, data = data)

print(r.text)
                                
                              

Respuesta:
{
  "success": true,
  "message": "Usuario autenticado",
  "status": 200,
  "code": "auth_02",
  "token": your_token_auth
}
                          

Agregar contacto

Agrega información de tus contactos, como: Nombre, Número y/o Correo electrónico a cualquier agenda/canal que tengas configurado en el panel.

Encabezados
Encabezado Descripción
token   Obligatorio   Token de sesión generado a través de su llave privada en la sección Autenticación.
Atributos
Atributo Descripción
list_key   Obligatorio   Clave hash de la agenda/canal a la que deseas agregar el contacto.
number   Obligatorio   Número del contacto a registrar.
  Nota 1:   El número del contacto NO debe contener el código de país.   Nota 2:   No puedes registrar 2 o más veces un número en la misma agenda/canal.
name   Opcional   Nombre del contacto a registrar.
email   Opcional   Cuenta de correo eletrónico del contacto a registrar.
lang   Opcional   Idioma de la respuesta. Por defecto   es  .
  es   Español.
  en   Inglés.
Errores
Código Mensaje
auth_01 Usuario no autorizado
contact_01 Clave hash no definida
contact_02 Número no definido
contact_03 Número con formato incorrecto
contact_04 Nombre es muy largo, máximo 100 caracteres
contact_05 Correo electrónico con formato incorrecto
contact_06 Correo electrónico es muy largo, máximo 100 caracteres
contact_07 Agenda/Canal no encontrada
contact_10 Contacto existe (número duplicado en la misma agenda/canal)
contact_11, contact_12 Error al agregar el contacto

Enviar SMS

Para enviar SMS debes hacer una petición a la siguiente dirección:


 POST  https://api.smsmasivos.com.mx/contacts/add 

Ejemplo de envío SMS:
                                      
curl -X POST "https://api.smsmasivos.com.mx/contacts/add" -H "token: your_token_auth" -d "list_key=your_list_key&number=your_contact_number"
                                      
                                    
                                        
$params = array(
  "list_key" => your_list_key,
  "number" => your_contact_number
);
$headers = array(
  "token: your_token_auth"
);
curl_setopt_array($ch = curl_init(), array(
  CURLOPT_URL => "https://api.smsmasivos.com.mx/contacts/add",
  CURLOPT_SSL_VERIFYPEER => 0,
  CURLOPT_HEADER => 0,
  CURLOPT_HTTPHEADER => $headers,
  CURLOPT_POST => 1,
  CURLOPT_POSTFIELDS => http_build_query($params),
  CURLOPT_RETURNTRANSFER => 1
));
$response = curl_exec($ch);
curl_close($ch);

echo json_encode($response);
                                        
                                      
                                        
require 'net/http'
require 'uri'

uri = URI.parse("https://api.smsmasivos.com.mx/contacts/add")
headers = {
  "token": your_token_auth
}
request = Net::HTTP::Post.new(uri, headers)
request.set_form_data(
  "list_key" => your_list_key,
  "number" => your_contact_number
)
req_options = {
  use_ssl: uri.scheme == "https",
}
response = Net::HTTP.start(uri.hostname, uri.port, req_options) do |http|
  http.request(request)
end

puts response.body
                                        
                                      
                                        
var request = (HttpWebRequest)WebRequest.Create("https://api.smsmasivos.com.mx/contacts/add");
var postData = "list_key=your_list_key&";
postData += "number=your_contact_number&";
var data = Encoding.ASCII.GetBytes(postData);
Console.WriteLine(postData.ToString());
request.Method = "POST";
request.Headers["token"] = your_token_auth;
request.ContentType = "application/x-www-form-urlencoded";
request.ContentLength = data.Length;
using (var stream = request.GetRequestStream())
{
  stream.Write(data, 0, data.Length);
}
var response = (HttpWebResponse)request.GetResponse();
var responseString = new StreamReader(response.GetResponseStream()).ReadToEnd();

Console.WriteLine(responseString);
                                        
                                      
                                        
var request = require('request');

var targetURL = 'https://api.smsmasivos.com.mx/contacts/add'
var response = request.post(
  {
    url: targetURL,
    headers: {
      "token": your_token_auth
    },
    form: {
      "list_key": your_list_key,
      "number": your_contact_number
    }
  }, (err, res, body) => {
    if(err == null){
      console.log(body);
    }
  }
);
                                        
                                      
                                        
import requests

targetURL = "https://api.smsmasivos.com.mx/contacts/add"
headers = {
  'token':your_token_auth
}
data = {
  'list_key':your_list_key,
  'number':your_contact_number
}
r = requests.post(url = targetURL, data = data, headers = headers)

print(r.text)
                                        
                                      

Respuesta:
{
  "success":true,
  "message":"Contacto agregado",
  "status":200,
  "code":"contact_13"
}
                                  

Enviar SMS

Para enviar SMS a través de nuestra API primero debes obtener un token de sesión para acceder a los recursos. Si no lo tienes aún puedes generarlo como se indica en el apartado de Autenticación.

Encabezados
Encabezado Descripción
token   Obligatorio   Token de sesión generado a través de su llave privada en la sección Autenticación.
Atributos
Atributo Descripción
message   Obligatorio   Mensaje que desea enviar. Si el mensaje contiene algún error o sobrepasa el número de caracteres permitidos se le indicará en la respuesta de la API.
numbers   Obligatorio   Lista de números a los que desea enviar el mensaje. Los números deben ir separados por una coma (,). Ejemplo:   4771234567,4770987654,4779182736  
country_code   Obligatorio   Código de país al que desea enviar el mensaje. Consulta nuestra lista de países en las que tenemos disponible nuestro servicio de envío de SMS.
name   Opcional   Nombre para identificar los envíos realizados en Reportes. Por defecto:   Campaign Y-m-d H:M:S  
lang   Opcional   Idioma de la respuesta. Por defecto   es  .
  es   Español.
  en   Inglés.
sandbox Opcional Para enviar SMS en modo de pruebas indica este atributo con   1  . En caso contrario el mensaje será enviado y descontado de tu crédito. Por defecto   0  .
  1   Modo de pruebas.
  0   Modo producción.

Los mensajes enviados en modo de pruebas enviarán la misma respuesta como si los enviaras en modo producción y estarán disponibles en reportes.

  Nota 1:   Solo puedes enviar 1000 mensajes en modo de prueba por día.
  Nota 2:   El reporte de los mensajes enviados en modo de pruebas solo estarán disponibles el mismo día que se enviaron.
Errores
Código Mensaje
auth_01 Usuario no autorizado
sms_01 Mensaje indefinido
sms_02 Mensaje muy largo
sms_03 Número indefinido
sms_04 Mensaje con formato incorrecto
sms_05 Código de país indefinido
sms_06 Nombre muy largo
sms_07 Créditos insuficientes
sms_12, sms_13 Error al enviar los mensajes
sms_15 Máximo 500 mensajes por envío
sms_16 Número repetido
sms_17 Máximo 1,000 envíos por día en modo de pruebas

Enviar SMS

Para enviar SMS debes hacer una petición a la siguiente dirección:


 POST  https://api.smsmasivos.com.mx/sms/send 

Ejemplo de envío SMS:
                                      
curl -X POST "https://api.smsmasivos.com.mx/sms/send" -H "token: your_token_auth" -d "message=your_message_to_send&numbers=your_list_of_numbers&country_code=your_country_code"
                                      
                                    
                                        
$params = array(
  "message" => your_message_to_send,
  "numbers" => your_list_of_numbers,
  "country_code" => your_country_code
);
$headers = array(
  "token: your_token_auth"
);
curl_setopt_array($ch = curl_init(), array(
  CURLOPT_URL => "https://api.smsmasivos.com.mx/sms/send",
  CURLOPT_SSL_VERIFYPEER => 0,
  CURLOPT_HEADER => 0,
  CURLOPT_HTTPHEADER => $headers,
  CURLOPT_POST => 1,
  CURLOPT_POSTFIELDS => http_build_query($params),
  CURLOPT_RETURNTRANSFER => 1
));
$response = curl_exec($ch);
curl_close($ch);

echo json_encode($response);
                                        
                                      
                                        
require 'net/http'
require 'uri'

uri = URI.parse("https://api.smsmasivos.com.mx/sms/send")
headers = {
  "token": your_token_auth
}
request = Net::HTTP::Post.new(uri, headers)
request.set_form_data(
  "message" => your_message_to_send,
  "numbers" => your_list_of_numbers,
  "country_code" => your_country_code
)
req_options = {
  use_ssl: uri.scheme == "https",
}
response = Net::HTTP.start(uri.hostname, uri.port, req_options) do |http|
  http.request(request)
end

puts response.body
                                        
                                      
                                        
var request = (HttpWebRequest)WebRequest.Create("https://api.smsmasivos.com.mx/sms/send");
var postData = "message=your_message_to_send&";
postData += "numbers=your_list_of_numbers&";
postData += "country_code=your_country_code";
var data = Encoding.ASCII.GetBytes(postData);
Console.WriteLine(postData.ToString());
request.Method = "POST";
request.Headers["token"] = your_token_auth;
request.ContentType = "application/x-www-form-urlencoded";
request.ContentLength = data.Length;
using (var stream = request.GetRequestStream())
{
  stream.Write(data, 0, data.Length);
}
var response = (HttpWebResponse)request.GetResponse();
var responseString = new StreamReader(response.GetResponseStream()).ReadToEnd();

Console.WriteLine(responseString);
                                        
                                      
                                        
var request = require('request');

var targetURL = 'https://api.smsmasivos.com.mx/sms/send'
var response = request.post(
  {
    url: targetURL,
    headers: {
      "token": your_token_auth
    },
    form: {
      "message": your_message_to_send,
      "numbers": your_list_of_numbers,
      "country_code": your_country_code
    }
  }, (err, res, body) => {
    if(err == null){
      console.log(body);
    }
  }
);
                                        
                                      
                                        
import requests

targetURL = "https://api.smsmasivos.com.mx/sms/send"
headers = {
  'token':your_token_auth
}
data = {
  'message':your_message_to_send,
  'numbers':your_list_of_numbers,
  'country_code':your_country_code
}
r = requests.post(url = targetURL, data = data, headers = headers)

print(r.text)
                                        
                                      

Respuesta:
{
  "success":true,
  "message":"Mensajes enviados",
  "status":200,
  "code":"sms_11",
  "references": [
    {
      "reference": each_reference,
      "number": each_number
    },
    {
      "reference": each_reference,
      "number": each_number
    }
  ]
}
                                  

Reportes

Con nuestra API puedes obtener un reporte detallado de tus envíos para ver el estatus de tus mensajes enviados indicando un rango de fechas.

Encabezados
Encabezado Descripción
token   Obligatorio   Token de sesión generado a través de su llave privada en la sección Autenticación.
Atributos
Atributo Descripción
start_date Obligatorio Fecha de inicio para filtrar el reporte de los mensajes enviados entre el rango de fechas definida.
end_date Obligatorio Fecha de fin para filtrar el reporte de los mensajes enviados entre el rango de fechas definida.
lang   Opcional   Idioma de la respuesta. Por defecto   es  .
  es   Español.
  en   Inglés.
sandbox Opcional Para obtener el reporte de los mensajes enviados en modo de pruebas indica este atributo con   1  . En caso contrario el reporte se generará con los mensajes enviados en modo producción. Por defecto   0  .
  1   Modo de pruebas.
  0   Modo producción.

Los mensajes enviados en modo de pruebas tendrán la misma respuesta como si los hubieras enviado en modo producción.

  Nota 1:   El reporte de los mensajes enviados en modo de pruebas solo estarán disponibles el mismo día que se enviaron.
Estatus

Es el número que corresponde al estatus que fue devuelto por el envío de tu mensaje. Los estatus pueden ser:

  0   Entregado
  1   No entregado
  2   Error
  3   Expirado
  4   Rechazado
  5   Desconocido
  6   No existe
  7   Formato incorrecto
  8   Pendiente


Errores
Código Mensaje
auth_01 Usuario no autorizado
report_01 Fecha de inicio indefinida
report_02 Fecha de fin indefinida
report_03 Fecha de inicio es mayor a fecha fin

Reportes

Para generar el reporte debes hacer una petición a la siguiente dirección:


 POST  https://api.smsmasivos.com.mx/reports/generate 

Ejemplo de generar reporte:
                                      
curl -X POST "https://api.smsmasivos.com.mx/reports/generate" -H "token: your_token_auth" -d "start_date=your_start_date&end_date=your_end_date"
                                      
                                    
                                        
$params = array(
  "start_date" => your_start_date,
  "end_date" => your_end_date
);
$headers = array(
  "token: your_token_auth"
);
curl_setopt_array($ch = curl_init(), array(
  CURLOPT_URL => "https://api.smsmasivos.com.mx/reports/generate",
  CURLOPT_SSL_VERIFYPEER => 0,
  CURLOPT_HEADER => 0,
  CURLOPT_HTTPHEADER => $headers,
  CURLOPT_POST => 1,
  CURLOPT_POSTFIELDS => http_build_query($params),
  CURLOPT_RETURNTRANSFER => 1
));
$response = curl_exec($ch);
curl_close($ch);

echo json_encode($response);
                                        
                                      
                                        
require 'net/http'
require 'uri'

uri = URI.parse("https://api.smsmasivos.com.mx/reports/generate")
headers = {
  "token": your_token_auth
}
request = Net::HTTP::Post.new(uri, headers)
request.set_form_data(
  "start_date" => your_start_date,
  "end_date" => your_end_date
)
req_options = {
  use_ssl: uri.scheme == "https",
}
response = Net::HTTP.start(uri.hostname, uri.port, req_options) do |http|
  http.request(request)
end

puts response.body
                                        
                                      
                                        
var request = (HttpWebRequest)WebRequest.Create("https://api.smsmasivos.com.mx/reports/generate");
var postData = "start_date=your_start_date&";
postData += "end_date=your_end_date";
var data = Encoding.ASCII.GetBytes(postData);
Console.WriteLine(postData.ToString());
request.Method = "POST";
request.Headers["token"] = your_token_auth;
request.ContentType = "application/x-www-form-urlencoded";
request.ContentLength = data.Length;
using (var stream = request.GetRequestStream())
{
  stream.Write(data, 0, data.Length);
}
var response = (HttpWebResponse)request.GetResponse();
var responseString = new StreamReader(response.GetResponseStream()).ReadToEnd();

Console.WriteLine(responseString);
                                        
                                      
                                        
var request = require('request');

var targetURL = 'https://api.smsmasivos.com.mx/reports/generate'
var response = request.post(
  {
    url: targetURL,
    headers: {
      "token": your_token_auth
    },
    form: {
      "start_date": your_start_date,
      "end_date": your_end_date
    }
  }, (err, res, body) => {
    if(err == null){
      console.log(body);
    }
  }
);
                                        
                                      
                                        
import requests

targetURL = "https://api.smsmasivos.com.mx/reports/generate"
headers = {
  'token':your_token_auth
}
data = {
  'start_date':your_start_date,
  'end_date':your_end_date
}
r = requests.post(url = targetURL, data = data, headers = headers)

print(r.text)
                                        
                                      

Respuesta:
{
  "success": true,
  "message": "Reporte generado",
  "status": 200,
  "code": "report_04",
  "report": [
    {
      "name": each_shipment_name,
      "created_date": each_created_date,
      "reference": each_reference,
      "number": each_number,
      "message": each_message,
      "sent_date": each_sent_date,
      "status": each_status,
      "operator": each_operator
    }
  ]
}
                                  

Créditos

Puedes obtener la cantidad de créditos que tienes disponibles por medio de nuestra API.

Encabezados
Encabezado Descripción
token   Obligatorio   Token de sesión generado a través de su llave privada en la sección Autenticación.
Atributos
Atributo Descripción
lang   Opcional   Idioma de la respuesta. Por defecto   es  .
  es   Español.
  en   Inglés.
Errores
Código Mensaje
auth_01 Usuario no autorizado

Créditos

Para consultar tu crédito disponible debes hacer una petición a la siguiente dirección:


 POST  https://api.smsmasivos.com.mx/credits/consult 

Ejemplo de consultar créditos:
                                      
curl -X POST "https://api.smsmasivos.com.mx/credits/consult" -H "token: your_token_auth"
                                      
                                    
                                        
$headers = array(
  "token: your_token_auth"
);
curl_setopt_array($ch = curl_init(), array(
  CURLOPT_URL => "https://api.smsmasivos.com.mx/credits/consult",
  CURLOPT_SSL_VERIFYPEER => 0,
  CURLOPT_HEADER => 0,
  CURLOPT_HTTPHEADER => $headers,
  CURLOPT_POST => 1,
  CURLOPT_POSTFIELDS => http_build_query(array()),
  CURLOPT_RETURNTRANSFER => 1
));
$response = curl_exec($ch);
curl_close($ch);

echo json_encode($response);
                                        
                                      
                                        
require 'net/http'
require 'uri'

uri = URI.parse("https://api.smsmasivos.com.mx/credits/consult")
headers = {
  "token": your_token_auth
}
request = Net::HTTP::Post.new(uri, headers)
req_options = {
  use_ssl: uri.scheme == "https",
}
response = Net::HTTP.start(uri.hostname, uri.port, req_options) do |http|
  http.request(request)
end

puts response.body
                                        
                                      
                                        
var request = (HttpWebRequest)WebRequest.Create("https://api.smsmasivos.com.mx/credits/consult");
var postData = "";
var data = Encoding.ASCII.GetBytes(postData);
Console.WriteLine(postData.ToString());
request.Method = "POST";
request.Headers["token"] = your_token_auth;
request.ContentType = "application/x-www-form-urlencoded";
request.ContentLength = data.Length;
using (var stream = request.GetRequestStream())
{
  stream.Write(data, 0, data.Length);
}
var response = (HttpWebResponse)request.GetResponse();
var responseString = new StreamReader(response.GetResponseStream()).ReadToEnd();

Console.WriteLine(responseString);
                                        
                                      
                                        
var request = require('request');

var targetURL = 'https://api.smsmasivos.com.mx/credits/consult'
var response = request.post(
  {
    url: targetURL,
    headers: {
      "token": your_token_auth
    }
  }, (err, res, body) => {
    if(err == null){
      console.log(body);
    }
  }
);
                                        
                                      
                                        
import requests

targetURL = "https://api.smsmasivos.com.mx/credits/consult"
headers = {
  'token': your_token_auth
}
r = requests.post(url = targetURL, data = {}, headers = headers)

print(r.text)
                                        
                                      

Respuesta:
{
  "success": true,
  "message": "Créditos disponibles",
  "status": 200,
  "code": "report_04",
  "credit": your_available_credit
}
                                  

Confirmación de entrega

Para recibir la confirmación de los mensajes SMS que enviaste a tus destinatarios es necesario nos proporciones una URL que puedes configurar en tu panel en "Confirmación de entrega" o en la sección de "API". A esta URL pasaremos por método GET la confirmación de tus destinatarios.

Es necesario que su sistema reciba los parámetros que se enviarán y nos dé como respuesta una cadena "OK" después de haber procesado correctamente los parámetros enviados. En caso de que se nos proporcione una respuesta diferente se realizará un reintento, hasta 25 reintentos diferentes se realizarán para cada solicitud.

Parámetros enviados a la URL proporcionada
Atributo Descripción
type Tipo de acción a procesar en tu URL.
  confirmation   Confirmación de entrega
  response   Respuestas de destinatarios
reference Identificador del mensaje.
status Es el número que corresponde al estatus que fue devuelto por el envío de tu mensaje. Los estatus pueden ser:
  0   Entrega confirmada
  1   No entregado
  2   Desconexión temporal
  3   Expirado
  4   Rechazado
  5   Desconocido por el operador
  6   Número desconocido
  7   Formato incorrecto
  8   Error
  9   Phishing
  10   Blacklist
  11   Número fijo
number Número del destinatario a quien se envió el mensaje.
date Fecha y hora de confirmación de entrega en formato año, día, mes, hora, minuto, segundo.   AAAAMMDDHHMMSS  

La URL proporcionada en Confirmación de entrega y Respuestas de destinatarios es compartida, por lo cuál deberá validar el tipo de acción que procesará.

Confirmación de entrega

Forma correcta de definir la URL para confirmación de entrega:


 GET  https://dominio.com/path/to/url 

Llamada a URL
https://dominio.com/path/to/url?type=confirmation&reference=reference_value&status=status_value&number=number_value&date=date_value 

Respuestas de destinatarios

Para recibir la información de los mensajes SMS que responden tus destinatarios, es necesario nos proporciones una URL que puedes configurar en tu panel en "Confirmación de entrega" o en la sección de "API". A esta URL pasaremos por método GET las respuestas de sus destinatarios.

Es necesario que su sistema reciba los parámetros que se enviarán y nos dé como respuesta una cadena "OK" después de haber procesado correctamente los parámetros enviados. En caso de que se nos proporcione una respuesta diferente se realizará un reintento, hasta 25 reintentos diferentes se realizarán para cada solicitud.

Parámetros enviados a la URL proporcionada
Atributo Descripción
type Tipo de acción a procesar en tu URL.
  confirmation   Confirmación de entrega
  response   Respuestas de destinatarios
reference Identificador del mensaje.
number Número del destinatario a quien se envió el mensaje.
message Mensaje que se envió al destinatario.
response Mensaje de respuesta por parte del destinatario.
send_date Fecha y hora en que se envió el mensaje en formato año, día, mes, hora, minuto, segundo.   AAAAMMDDHHMMSS  
response_date Fecha y hora en que se recibio respuesta del destinatario en formato año, día, mes, hora, minuto, segundo.   AAAAMMDDHHMMSS  

La URL proporcionada en Confirmación de entrega y Respuestas de destinatarios es compartida, por lo cuál deberá validar el tipo de acción que procesará.

Respuestas de destinatarios

Forma correcta de definir la URL para respuestas de destinatarios:


 GET  https://dominio.com/path/to/url 

Llamada a URL
https://dominio.com/path/to/url?type=response&reference=reference_value&number=number_value&message=message_value&response=response_value&send_date=send_date_value&response_date=response_date_value 

2FA (autenticación de doble factor) Registro

Ofrece tranquilidad a tus usuarios. Envío de PINs y contraseñas mediante SMS que deberá ser ingresado en el sitio web o app completando así el proceso solicitado.

Encabezados
Encabezado Descripción
token   Obligatorio   Token de sesión generado a través de su llave privada en la sección Autenticación.
URL
Nombre Descripción
format   Obligatorio   El formato en el que espera la respuesta de la llamada a la API.
  json   Respuesta en formato JSON.
  xml   Respuesta en formato XML.
Atributos
Atributo Descripción
phone_number Obligatorio Número de telefono a verificar, formato: XXX-XXX-XXXX.
country_code Obligatorio Código de país al que desea enviar el mensaje. Consulta nuestra lista de países en las que tenemos disponible nuestro servicio de envío de SMS.
code_length   Opcional   Longitud del código de verificación. Por defecto   4  .
expiration_date   Opcional   Fecha de expiración para el código de verificación. Por defecto 24 hrs. Formato de ejemplo   2000-01-31 14:18:00  .
locale   Opcional   Idioma de la respuesta. Por defecto   es  .
  es   Español.
  en   Inglés.
company Opcional Nombre de la compañía mostrada al usuario en el mensaje de verificación.

  Nota 1:   La compañía se despliega como: 'MiCompañía. Tu código de verificación es: XXXX'.
Estatus del proceso
Código Referencia del proceso
verification_01 Código generado correctamente
verification_02 Error en la información de la petición
verification_03 Correcto. Esperando por validación
verification_04 Usuario ya verificado

2FA (autenticación de doble factor) Registro

Para generar un código de validación debes hacer una petición a la siguiente dirección:


 POST  https://api.smsmasivos.com.mx/protected/{format}/phones/verification/start 

Ejemplo de solicitud del código de verificación:
                                      
curl -X POST "https://api.smsmasivos.com.mx/protected/json/phones/verification/start" -H "token: your_token_auth" -d "phone_number=your_phone_number&country_code=your_country_code"
                                      
                                    
                                        
$params = array(
  "phone_number" => your_phone_number,
  "country_code" => your_country_code
);
$headers = array(
  "token: your_token_auth"
);
curl_setopt_array($ch = curl_init(), array(
  CURLOPT_URL => "https://api.smsmasivos.com.mx/protected/json/phones/verification/start",
  CURLOPT_SSL_VERIFYPEER => 0,
  CURLOPT_HEADER => 0,
  CURLOPT_HTTPHEADER => $headers,
  CURLOPT_POST => 1,
  CURLOPT_POSTFIELDS => http_build_query($params),
  CURLOPT_RETURNTRANSFER => 1
));
$response = curl_exec($ch);
curl_close($ch);

echo json_encode($response);
                                        
                                      
                                        
require 'net/http'
require 'uri'

uri = URI.parse("https://api.smsmasivos.com.mx/protected/json/phones/verification/start")
headers = {
  "token": your_token_auth
}
request = Net::HTTP::Post.new(uri, headers)
request.set_form_data(
  "phone_number" => your_phone_number,
  "country_code" => country_code
)
req_options = {
  use_ssl: uri.scheme == "https",
}
response = Net::HTTP.start(uri.hostname, uri.port, req_options) do |http|
  http.request(request)
end

puts response.body
                                        
                                      
                                        
var request = (HttpWebRequest)WebRequest.Create("https://api.smsmasivos.com.mx/protected/json/phones/verification/start");
var postData = "phone_number=your_phone_number&";
postData += "country_code=your_country_code";
var data = Encoding.ASCII.GetBytes(postData);
Console.WriteLine(postData.ToString());
request.Method = "POST";
request.Headers["token"] = your_token_auth;
request.ContentType = "application/x-www-form-urlencoded";
request.ContentLength = data.Length;
using (var stream = request.GetRequestStream())
{
  stream.Write(data, 0, data.Length);
}
var response = (HttpWebResponse)request.GetResponse();
var responseString = new StreamReader(response.GetResponseStream()).ReadToEnd();

Console.WriteLine(responseString);
                                        
                                      
                                        
var request = require('request');

var targetURL = 'https://api.smsmasivos.com.mx/protected/json/phones/verification/start'
var response = request.post(
  {
    url: targetURL,
    headers: {
      "token": your_token_auth
    },
    form: {
      "phone_number": your_phone_number,
      "country_code": your_country_code
    }
  }, (err, res, body) => {
    if(err == null){
      console.log(body);
    }
  }
);
                                        
                                      
                                        
import requests

targetURL = "https://api.smsmasivos.com.mx/protected/json/phones/verification/start"
headers = {
  'token':your_token_auth
}
data = {
  'phone_number':your_start_date,
  'country_code':your_country_code
}
r = requests.post(url = targetURL, data = data, headers = headers)

print(r.text)
                                        
                                      

Respuesta JSON:
{
    "success": true,
    "message": "Code successfully generated",
    "status": 201,
    "code": "verification_01"
}
                                  

Respuesta XML:
<hash>
   <success>true</success>
   <message>Code successfully generated</message>
   <status>201</status>
   <code>verification_01</code>
</hash>

2FA (autenticación de doble factor) Validación

Ofrece tranquilidad a tus usuarios. Envío de PINs y contraseñas mediante SMS que deberá ser ingresado en el sitio web o app completando así el proceso solicitado.

Encabezados
Encabezado Descripción
token   Obligatorio   Token de sesión generado a través de su llave privada en la sección Autenticación.
URL
Nombre Descripción
format   Obligatorio   El formato en el que espera la respuesta de la llamada a la API.
  json   Respuesta en formato JSON.
  xml   Respuesta en formato XML.
Atributos
Atributo Descripción
phone_number Obligatorio Número de telefono a verificar, formato: XXX-XXX-XXXX.
verification_code Obligatorio El código que se generado en la ruta 'phones/verification/start'
  Nota:   El código únicamente llega al número especificado en el proceso.
locale   Opcional   Idioma de la respuesta. Por defecto   es  .
  es   Español.
  en   Inglés.
Estatus del proceso
Código Referencia del proceso
validation_01 Código correcto. Usuario Verificado
validation_02 Error en la información de la petición
validation_03 Número de intentos excedido

2FA (autenticación de doble factor) Validación

Para validar el código generado, debes hacer una petición a la siguiente dirección:


 POST  https://api.smsmasivos.com.mx/protected/{format}/phones/verification/check

Ejemplo de solicitud de validación del código:
                                      
curl -X POST "https://api.smsmasivos.com.mx/protected/xml/phones/verification/check" -H "token: your_token_auth" -d "phone_number=your_phone_number&verification_code=client_verification_code"
                                      
                                    
                                        
$params = array(
  "phone_number" => your_phone_number,
  "verification_code" => client_verification_code
);
$headers = array(
  "token: your_token_auth"
);
curl_setopt_array($ch = curl_init(), array(
  CURLOPT_URL => "https://api.smsmasivos.com.mx/protected/xml/phones/verification/check",
  CURLOPT_SSL_VERIFYPEER => 0,
  CURLOPT_HEADER => 0,
  CURLOPT_HTTPHEADER => $headers,
  CURLOPT_POST => 1,
  CURLOPT_POSTFIELDS => http_build_query($params),
  CURLOPT_RETURNTRANSFER => 1
));
$response = curl_exec($ch);
curl_close($ch);

echo json_encode($response);
                                        
                                      
                                        
require 'net/http'
require 'uri'

uri = URI.parse("https://api.smsmasivos.com.mx/protected/json/phones/verification/check")
headers = {
  "token": your_token_auth
}
request = Net::HTTP::Post.new(uri, headers)
request.set_form_data(
  "phone_number" => your_phone_number,
  "verification_code" => client_verification_code
)
req_options = {
  use_ssl: uri.scheme == "https",
}
response = Net::HTTP.start(uri.hostname, uri.port, req_options) do |http|
  http.request(request)
end

puts response.body
                                        
                                      
                                        
var request = (HttpWebRequest)WebRequest.Create("https://api.smsmasivos.com.mx/protected/json/phones/verification/check");
var postData = "phone_number=your_phone_number&";
postData += "verification_code=client_verification_code";
var data = Encoding.ASCII.GetBytes(postData);
Console.WriteLine(postData.ToString());
request.Method = "POST";
request.Headers["token"] = your_token_auth;
request.ContentType = "application/x-www-form-urlencoded";
request.ContentLength = data.Length;
using (var stream = request.GetRequestStream())
{
  stream.Write(data, 0, data.Length);
}
var response = (HttpWebResponse)request.GetResponse();
var responseString = new StreamReader(response.GetResponseStream()).ReadToEnd();

Console.WriteLine(responseString);
                                        
                                      
                                        
var request = require('request');

var targetURL = 'hhttps://api.smsmasivos.com.mx/protected/json/phones/verification/check'
var response = request.post(
  {
    url: targetURL,
    headers: {
      "token": your_token_auth
    },
    form: {
      "phone_number": your_phone_number,
      "verification_code": client_verification_code
    }
  }, (err, res, body) => {
    if(err == null){
      console.log(body);
    }
  }
);
                                        
                                      
                                        
import requests

targetURL = "https://api.smsmasivos.com.mx/protected/json/phones/verification/check"
headers = {
  'token':your_token_auth
}
data = {
  'phone_number':your_start_date,
  'verification_code':client_verification_code
}
r = requests.post(url = targetURL, data = data, headers = headers)

print(r.text)
                                        
                                      

Respuesta JSON:
                                  {
    "success": true,
    "message": "Success, User verified",
    "status": 200,
    "code": "validation_01"
}
                                  

Respuesta XML:
                                    
<hash>
   <success>true</success>
   <message>Success, User Verified</message>
   <status>200</status>
   <code>validation_01</code>
</hash>

Email

Envía SMS desde tu cuenta de correo (Gmail, Hotmail, Yahoo, etc.) como si estuvieras enviando un correo electrónico.

Para enviar mensajes verifique que cuenta con los créditos suficientes para hacerlo.

Atributos
Atributo Descripción Ejemplo
Para: Número de celular a quién es dirigido el mensaje, debe estar formado por:   código país + clave ciudad + número + @api.smsmasivos.com.mx  

  Nota:   No indiques más de un destinatario, ya que no es soportada esta forma.
  [email protected]  
Asunto: Llave privada generada en su panel en "Llaves de acceso" o en la sección de "API".

  Nota:   Ponga únicamente su llave privada.
  8192f0c5c7cf2df5222c30e115a83917206218da  
Mensaje: Mensaje que desea enviar al destinatario.

  Nota:   Recuerde no sobrepasar el límite de caracteres (incluyendo espacios).
  Mensaje de desde mi cuenta de correo electrónico  

SMS por SMPP

Si estás interesado en este tipo de envíos comunícate con nosotros a   [email protected]  , con gusto te asesoraremos.

Librerías de ejemplo

Lista de lenguajes disponibles

Lenguaje Recursos
PHP Link del ejemplo:   Ejemplo librería PHP  
NodeJS Link del ejemplo:   Ejemplo librería NodeJS  
C# Link del ejemplo:   Ejemplo librería C#  
Python Link del ejemplo:   Ejemplo librería Python  
JAVA Link del ejemplo:   Ejemplo librería JAVA  
Ruby Link del ejemplo:   Ejemplo librería Ruby  

Países

Lista de los países en los que está disponible nuestro servicio de envío de SMS

País
Argentina   54  
Bolivia   591  
Brasil   55  
Chile   56  
Colombia   57  
Costa Rica   506  
Ecuador   593  
El Salvador   503  
Estados Unidos   1  
Guatemala   502  
Honduras   504  
México   52  
Nicaragua   505  
Panamá   507  
Venezuela   58