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 Tipo de Dato
apikey   Obligatorio   Clave generada en la sección API Key de este manual.   Text  
lang   Opcional   Idioma de la respuesta. Por defecto   es  .
  es   Español.
  en   Inglés.
  Text  
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 autenticarse 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)
                                
                              
                                
File > New > Import Module > (Select the extracted smsmasivos module)

// In gradle.app

dependencies {

  implementation project(':apismsmasivos')

}

// In your activity

import com.vzert.smsmasivos.api.apismsmasivos;

...

apismsmasivos sms = new apismsmasivos(this);

String response = sms.auth("your_api_key", "es");
                                
                              
                                

import apismsmasivos

...

var sms = apismsmasivos()

sms.auth(apikey: "your_api_key", lang: "es") { data, err in
  print(data!.value(forKey: "token")!)
}

                                
                              
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
Encabezados Descripción Tipo de Dato
token   Obligatorio   Token de sesión generado a través de su llave privada en la sección Autenticación.   Text  
Atributos
Atributo Descripción Tipo de Dato
list_key   Obligatorio   Clave hash de la agenda/canal a la que deseas agregar el contacto.   Text  
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.
  Text  
name   Opcional   Nombre del contacto a registrar.   Text  
email   Opcional   Cuenta de correo electrónico del contacto a registrar.   Text  
lang   Opcional   Idioma de la respuesta. Por defecto   es  .
  es   Español.
  en   Inglés.
  Text  
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 muy largo
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

Agregar contacto

Para agregar un contacto debes hacer una petición a la siguiente dirección:

 POST  https://api.smsmasivos.com.mx/contacts/add 
Ejemplo de agregar contacto:
                                      
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)
                                        
                                      
                                        

import com.vzert.smsmasivos.api.apismsmasivos;

...

apismsmasivos sms = new apismsmasivos(this);

String response = sms.addContact("your_list_key", "your_contact_number", "your_contact_name", "your_contact_email", "es");

                                        
                                      
                                        

import apismsmasivos

...

var sms = apismsmasivos()

sms.addContact(list_key: "your_list_key", number: "your_contact_number", name: "your_contact_name", email: "your_contact_email", lang: "es") { data, err in
  print(data!.value(forKey: "message")!)
}

                                        
                                      
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
Atributo Descripción Tipo de Dato
token   Obligatorio   Token de sesión generado a través de su llave privada en la sección Autenticación.   Text  
Atributos
Atributo Descripción Tipo de Dato
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.   Text  
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     Text  
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.   Number  
name   Opcional   Nombre para identificar los envíos realizados en Reportes. Por defecto:   Campaign Y-m-d H:M:S     Text  
lang   Opcional   Idioma de la respuesta. Por defecto   es  .
  es   Español.
  en   Inglés.
  Text  
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.
  Number  
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 Número 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 envio 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)
                                        
                                      
                                        

import com.vzert.smsmasivos.api.apismsmasivos;

...

apismsmasivos sms = new apismsmasivos(this);

String response = sms.sendSMS("your_message_to_send", "your_list_of_numbers", "your_country_code", "your_campaign_name", "es", "0");

                                        
                                      
                                        

import apismsmasivos

...

var sms = apismsmasivos()

sms.sendSMS(message: "your_message_to_send", numbers: "your_list_of_numbers", country_code: your_country_code, name: "your_campaign_name", lang: "es", sandbox: true) { data, err in
  print(data!.value(forKey: "references")!)
}

                                        
                                      
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
Encabezados Descripción Tipo de Dato
token   Obligatorio   Token de sesión generado a través de su llave privada en la sección Autenticación.   Text  
Atributos
Atributo Descripción Tipo de Dato
start_date   Obligatorio   Fecha de inicio para filtrar el reporte de los mensajes enviados entre el rango de fechas definida.   Text  
end_date   Obligatorio   Fecha de fin para filtrar el reporte de los mensajes enviados entre el rango de fechas definida.   Text  
lang   Opcional   Idioma de la respuesta. Por defecto   es  .
  es   Español.
  en   Inglés.
  Text  
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.
  Number  
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)
                                        
                                      
                                        

import com.vzert.smsmasivos.api.apismsmasivos;

...

apismsmasivos sms = new apismsmasivos(this);

String response = sms.getReports("your_start_date", "your_end_date", "es", "0");

                                        
                                      
                                        

import apismsmasivos

...

var sms = apismsmasivos()

let start = Date()
let end = Date.init(timeIntervalSinceNow: 86400)

sms.getReport(start_date: start!, end_date: end!, lang: "es", sandbox: true) { data, err in
  print(data!.value(forKey: "report")!)
}

                                        
                                      
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
Atributo Descripción Tipo de Dato
token   Obligatorio   Token de sesión generado a través de su llave privada en la sección Autenticación.   Text  
Atributos
Atributo Descripción Tipo de Dato
lang   Opcional   Idioma de la respuesta. Por defecto   es  .
  es   Español.
  en   Inglés.
  Text  
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 consulta 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)
                                        
                                      
                                        

import com.vzert.smsmasivos.api.apismsmasivos;

...

apismsmasivos sms = new apismsmasivos(this);

String response = sms.getCredits("es");

                                        
                                      
                                        

import apismsmasivos

...

var sms = apismsmasivos()

sms.getCredits(lang: "es") { data, err in
  print(data!.value(forKey: "credit")!)
}

                                        
                                      
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 a enviar
Atributo Descripción Tipo de Dato
type Tipo de acción a procesar en tu URL.
  confirmation   Confirmación de entrega
  response   Respuestas de destinatarios
  Text  
reference Identificador del mensaje.   Text  
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
  6   Número desconocido
  7   Formato incorrecto
  8   Error
  9   Phishing
  10   Blacklist
  11   Número fijo
  Number  
number Número del destinatario a quien se envió el mensaje.   Number  
date Fecha y hora de confirmación de entrega en formato año, día, mes, hora, minuto, segundo.   AAAAMMDDHHMMSS     Text  

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 a enviar
Atributo Descripción Tipo de Dato
type Tipo de acción a procesar en tu URL.
  confirmation   Confirmación de entrega
  response   Respuestas de destinatarios
  Text  
reference Identificador del mensaje.   Text  
number Número del destinatario a quien se envió el mensaje.   Number  
message Mensaje que se envió al destinatario.   Text  
response Mensaje de respuesta por parte del destinatario.   Text  
send_date Fecha y hora en que se envió el mensaje en formato año, día, mes, hora, minuto, segundo.   AAAAMMDDHHMMSS     Text  
response_date Fecha y hora en que se recibio respuesta del destinatario en formato año, día, mes, hora, minuto, segundo.   AAAAMMDDHHMMSS     Text  

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 

(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
Atributo Descripción Tipo de Dato
token   Obligatorio   Token de sesión generado a través de su llave privada en la sección Autenticación.   Text  
Formato de URL
Nombre Descripción Tipo de Dato
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.
  Text  
Atributos
Atributo Descripción Tipo de Dato
phone_number   Obligatorio   Número de telefono a verificar, formato: XXXXXXXXXX.   Text  
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.   Number  
code_length   Opcional   Longitud del código de verificación. Por defecto   4  .
  Number  
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  .
  Text  
locale   Opcional   Idioma de la respuesta. Por defecto   es  .
  es   Español.
  en   Inglés.
  Text  
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".
  Text  
Estatus del proceso
Código Mensaje
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

(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_phone_number,
  'country_code':your_country_code
}
r = requests.post(url = targetURL, data = data, headers = headers)

print(r.text)
                                        
                                      
                                        

import com.vzert.smsmasivos.api.apismsmasivos;

...

apismsmasivos sms = new apismsmasivos(this);

String response = sms.registryDoubleFactor("your_phone_number", "your_country_code", "your_country_code", "your_company_name", "es");

                                        
                                      
                                        

import apismsmasivos

...

var sms = apismsmasivos()

let expiration_date = Date.init(timeIntervalSinceNow: 86400)

sms.registryDoubleFactor(phone_number: "your_phone_number", country_code: your_country_code, code_length: your_country_code, expiration_date: expiration_date, company:"your_company_name", lang: "es") { data, err in
  print(data!.value(forKey: "message")!)
}

                                        
                                      
JSON Respuesta:
{
    "success": true,
    "message": "Code successfully generated",
    "status": 201,
    "code": "verification_01"
}
                                  
XML Respuesta:
<hash>
   <success>true</success>
   <message>Code successfully generated</message>
   <status>201</status>
   <code>verification_01</code>
</hash>

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
Atributo Descripción Tipo de Dato
token   Obligatorio   Token de sesión generado a través de su llave privada en la sección Autenticación.   Text  
Formato de URL
Nombre Descripción Tipo de Dato
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.
  Text  
Atributos
Atributo Descripción Tipo de Dato
phone_number   Obligatorio   Número de telefono a verificar, formato: XXXXXXXXXX.   Text  
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.
  Text  
locale   Opcional   Idioma de la respuesta. Por defecto   es  .
  es   Español.
  en   Inglés.
  Text  
Estatus del proceso
Código Mensaje
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

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_phone_number,
  'verification_code':client_verification_code
}
r = requests.post(url = targetURL, data = data, headers = headers)

print(r.text)
                                        
                                      
                                        

import com.vzert.smsmasivos.api.apismsmasivos;

...

apismsmasivos sms = new apismsmasivos(this);

String response = sms.validationDoubleFactor("your_phone_number", "client_verification_code", "es");

                                        
                                      
                                        

import apismsmasivos

...

var sms = apismsmasivos()

sms.validationDoubleFactor(phone_number: "your_phone_number", verification_code: "client_verification_code", lang: "es") { data, err in
  print(data!.value(forKey: "message")!)
}

                                        
                                      
JSON Respuesta:
{
    "success": true,
    "message": "Success, User verified",
    "status": 200,
    "code": "validation_01"
}
                                  
XML Respuesta:
                                    
<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).
  Nota 2:   Si tu mensaje agrega automaticamente una firma puedes delimitar el final del mensaje con el conjunto de caracteres %&%
  Mensaje de desde mi cuenta de correo electrónico  

SMS por SMPP

Si está interesado en este tipo de envíos comunícate con nosotros   [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  
Android SDK Link del ejemplo:   Ejemplo librería Android  
iOS SDK Link del ejemplo:   Ejemplo librería iOS  

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