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.

  Nota 1:   El envío de mensajes a través de nuestra API v2 no acepta acentos, si envía acentos en su mensaje estos serán sustituidos automáticamente al procesarlos.
  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
sms_18 Código de país no soportado

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 
                                      
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_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 ha 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>

(Autenticación de Doble Factor) Reenvío

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
resend   Obligatorio     1     Number  
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

 POST  https://api.smsmasivos.com.mx/protected/{format}/phones/verification/resend 
                                      
curl -X POST "https://api.smsmasivos.com.mx/protected/json/phones/verification/resend" -H "token: your_token_auth" -d "phone_number=your_phone_number&country_code=your_country_code&resend=1"
                                      
                                    
                                        
$params = array(
  "phone_number" => your_phone_number,
  "country_code" => your_country_code,
  "resend" => 1
);
$headers = array(
  "token: your_token_auth"
);
curl_setopt_array($ch = curl_init(), array(
  CURLOPT_URL => "https://api.smsmasivos.com.mx/protected/json/phones/verification/resend",
  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/resend")
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,
  "resend" => 1
)
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/resend");
var postData = "phone_number=your_phone_number&";
postData += "country_code=your_country_code";
postData += "resend=1";
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/resend'
var response = request.post(
  {
    url: targetURL,
    headers: {
      "token": your_token_auth
    },
    form: {
      "phone_number": your_phone_number,
      "country_code": your_country_code,
      "resend" => 1
    }
  }, (err, res, body) => {
    if(err == null){
      console.log(body);
    }
  }
);
                                        
                                      
                                        
import requests

targetURL = "https://api.smsmasivos.com.mx/protected/json/phones/verification/resend"
headers = {
  'token':your_token_auth
}
data = {
  'phone_number':your_phone_number,
  'country_code':your_country_code,
  'resend' : 1
}
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_company_name", "es", "resend");

                                        
                                      
                                        

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: "code_length", expiration_date: "expiration_date", company:"your_company_name", lang: "es", resend: 1) { 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>

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  

WhatsApp enviar mensaje

Envía un mensaje de texto o un archivo desde tu canal de whatsApp previamente configurado en https://manager.smsmasivos.com.mx.

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
token_channel   Obligatorio   Token del canal de whatsApp desde el cual se desea enviar los mensajes.   *3     Text  
name   Obligatorio   Nombre a registrar del contacto WhatsApp.   *1     Text  
number   Obligatorio   Número al que se enviará el mensaje vía WhatsApp y que se vinculará al contacto WhatsApp. Ejemplo: 525551234567   *1     Text  
message   Obligatorio   Mensaje o ruta del archivo que se enviará vía WhatsApp.
  Nota   El mensaje debe de tener como máximo 600 caracteres
  Text  
type   Obligatorio   Tipo de mensaje a enviar.
  0   Mensaje de texto.
  1   Archivo   *2  
 
  Number  
  *1   En caso de que exista el contacto este no se modificará.
  *2  
   º El archivo debe de ser una url ej: https://prueba.com/imagen.png
   º Los formatos permitidos son: .jpeg,.jpg,.gif,.png,.tiff,.tif,.raw,.bmp,.pdf,.svg,.txt,.doc,.docx,.xls,.xlsx,.ppt,.pptx,.csv
Generar token   *3  

Para poder generar su token del canal, deberá abrir la siguiente ruta https://manager.smsmasivos.com.mx/configurarCanales, en la cual debe de realizar los siguientes pasos.

Paso 1

Dar clic en el ícono de llave, lo cual genera el token

Paso 2

A continuación el token se muestra como en la siguiente imagen, solo basta con copiarlo para poderlo usar en sus peticiones.

Errores
Código Mensaje
auth_01 Usuario no autorizado
err_01 No cuenta con paquetes asociados a la cuenta.
err_02 No cuenta con un paquete vigente para esta acción.
err_03 Ha sobrepasado el límite de peticiones de su paquete.
wa_01, wa_13, wa_14, wa_16 Error al procesar la solicitud.
wa_02 Token de la agenda indefinida.
wa_03 Nombre del contacto indefinido.
wa_04 Número de celular indefinido.
wa_05 Mensaje indefinido.
wa_06 Tipo de mensaje indefinido.
wa_07 Tipo de mensaje inválido.
wa_08 El mensaje supera el límite de caracteres permitidos
wa_09 Número de celular inválido.
wa_10 Token de la agenda inválido.
wa_11 El archivo es incompatible
wa_12 El archivo a enviar no corresponde a una URL.
wa_15 Renovar el código QR en manager.

WhatsApp enviar mensaje

Para poder realizar un envío de whatsApp debes hacer una petición a la siguiente dirección:

  POST  https://api.smsmasivos.com.mx/whatsapp/message 
Ejemplo de envío de whatsApp:
                              
curl -X POST "https://api.smsmasivos.com.mx/whatsapp/message" -H "token: your_token_auth" -d "token_channel=token_channel&name=contact_name&number=contact_number&message=message_to_send_or_file&type=type_of_message"
                              
                            
                                
$params = array(
  "token_channel" => token_channel,
  "name" => contact_name,
  "number" => contact_number,
  "message" => message_to_send_or_file,
  "type" => type_of_message
);
$headers = array(
  "token: your_token_auth"
);
curl_setopt_array($ch = curl_init(), array(
  CURLOPT_URL => "https://api.smsmasivos.com.mx/whatsapp/message",
  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/whatsapp/message")
headers = {
  "token": your_token_auth
}
request = Net::HTTP::Post.new(uri, headers)
request.set_form_data(
  "token_channel" => token_channel,
  "name" => contact_name,
  "number" => contact_number,
  "message" => message_to_send_or_file,
  "type" => type_of_message
)
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/whatsapp/message");
var postData = "message=your_message_to_send&";
postData += "token_channel=token_channel&";
postData += "name=contact_name&";
postData += "number=contact_number&";
postData += "message=message_to_send_or_file&";
postData += "type=type_of_message";
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/whatsapp/message'
var response = request.post(
  {
    url: targetURL,
    headers: {
      "token": your_token_auth
    },
    form: {
      "token_channel": token_channel,
      "name": contact_name,
      "number": contact_number,
      "message": message_to_send_or_file,
      "type": type_of_message
    }
  }, (err, res, body) => {
    if(err == null){
      console.log(body);
    }
  }
);
                                
                              
                                
import requests

targetURL = "https://api.smsmasivos.com.mx/whatsapp/message"
headers = {
  'token':your_token_auth
}
data = {
  "token_channel": token_channel,
  "name": contact_name,
  "number": contact_number,
  "message": message_to_send_or_file,
  "type": type_of_message
}
r = requests.post(url = targetURL, data = data, headers = headers)

print(r.text)
                                
                              
                                

                                
                              
                                

                                
                              
JSON Respuesta:
{
    "success": true,
    "message": "Mensaje enviado",
    "status": 200,
    "code": "wa_17"
}
                                  
XML Respuesta:
                                    
<hash>
   <success>true</success>
   <message>Mensaje enviado</message>
   <status>200</status>
   <code>wa_17</code>
</hash>

WhatsApp Webhook

En la configuración de tu canal podrás dar de alta la direccion de tu webhook. La cual puedes habilitar en el momento que desees.

Paso 1

Para comenzar con su configuración de webhook, debe acceder a https://manager.smsmasivos.com.mx/configurarCanales, aquí debe seleccionar la opción de editar, la cual se encuentra en la parte superior derecha del canal deseado a configurar, como se muestra en la siguiente imagen.

Paso 2

Una vez seleccionada la opción de editar, se desplegará un modal en el cual debe ingresar la dirección del mismo, por ejemplo: www.pruebaWebhook.com/test, por último debe de verificar que la opción de estatus se encuentre activada para su buen funcionamiento.

Paso 3

Finalmente la configuración de Webhook debe lucir similar a la que se muestra a continuación, lo cual indica que el proceso del mismo fue realizado existosamente.

Respuesta:
{
    "contact": 123456,
    "name": "Nuevo Contacto",
    "email": "[email protected]",
    "message": "Mensaje de texto",
    "channelType": 2,
    "recibido": 1565625261546,
    "channel_token": Df435fSe5gAcfe3
}
                                

Solicitud de pago, Webhook para pagos completados

Configura tu Webhook para enviar una notificación cuando un contacto haya realizado un pago exitoso en su solicitud de pago enviada previamente.

Paso 1

Para comenzar con la configuración de su webhook, deberá acceder a la siguiente ruta: https://app.smsmasivos.com.mx/agendas, en la cual debe de identificar su agenda para solicitudes de pago, la misma se encuentra en color verde.

Paso 2

Para modificar la URL del webhook, debe de seleccionar el apartado señalado en la imagen continua, aquí tiene que ingresar la URL donde desee que le enviemos una notificación cada vez que un contacto haya realizado un pago exitoso a su solicitud de pago.

Paso 3

Una vez registrado su Webhook debe de encender el mismo, esto se hace activando el check que se encuentra al lado de la URL del webhook, si el mismo se encuentra desactivado no le podremos enviar ninguna notificación de sus pagos completados.

Respuesta hacia petición

Una vez configurado el Webhook para sus pagos completados, deberá responder la petición con la palabra received, con el fin de conocer si fue recibida la misma, en caso de que no responda la petición con la palabra received, enviaremos 4 intentos más para un total de 5 intentos, en caso de no responder a ninguna petición, se detendrá el envío de la confirmación de la solicitud de pago.

Solicitud de pago, Webhook para pagos completados

Respuesta:
{
  "self_id": "312132",
  "payment_method": "MercadoPago",
  "status": "Pago completado",
  "number": 4771234567,
  "email": "[email protected]",
  "amount": 1234
}
                                  

Solicitud de pago

Construcción y cuerpo de una solicitud de pago. Las solicitudes puedes ser cerradas, abiertas o semiabiertas, el tipo de solicitud se específica al momento de su creación



Tipo
Tipo Descripción
 abierta Una solicitud abierta, es aquella en la que cualquier persona con la url puede colocar sus datos y llevar a cabo un pago  
 cerrada Una solicitud cerrada es específica para un contacto, en este caso la solicitud esta asociada a una única persona, solo aquella persona con la url recibe la solicitud prellenada con los datos de cobro
 semiabierta Una solicitud semiabierta, es aquella en la cual cualquier persona con la url puede pagar, puede incluir datos prellenados de cobro, tales como el monto exacto a pagar

Campos
Descripción Reestricciones
 Monto   Obligatorio   Monto total a pagar     Monto máximo   $110000 MXN   Monto mínimo   $10 MXN

  Referencia de montos admitidos por nuestro sistema, cada pasarela puede aplicar restricciones específicas del cargo minímo y máximo dependiendo del tipo de negocio.  

Stripe ref:   https://sms.gy/6cwEy  
Paypal ref:   https://sms.gy/wEonm  
Conekta ref:   https://sms.gy/dggcj  
PayU Latam ref:   https://sms.gy/SQpbw  
MercadoPago ref:   https://sms.gy/Ph2Dc  

  Formato compatible, con hasta 2 decimales:  000000.00
 Nº Celular   Obligatorio   Número de celular que se asociará al pago     Formato XXXXXXXXXX número sin código de país  
 Nombre   Obligatorio   Nombre de la persona que realiza el pago     Longitud máxima, caracteres: 150 
 Email   Obligatorio   Email que se asociará al pago     Longitud máxima, caracteres: 250 
 Orden de pago   Obligatorio   Campo opcional personalizado, el usuario puede disponer de el a modo de referencia de transacción     Longitud máxima, caracteres: 250  

Funcionalidad
Característica Descripción
 URL de redireccionamiento, pago exitoso  Opcional  La URL de redireccionamiento se específica al momento de la creación de la solicitud, cuando se lleve a cabo una transacción exitosa el usuario será redirigido a dicha URL, en caso de no especificarse, se tomará una página default proporcionada por SMS MASIVOS como punto de reedirección
 Marca de Agua   Opcional   Por defecto todas las solicitudes del plan básico vienen con marca de agua, para eliminarla actualiza el tipo de plan de distribución  
 Solicitud Semiabierta   Opcional   Para generar una solicitud semiabierta se deberá anexar los campos como parámetros en la URL, dichos parámetros están sujetos a las mismas restricciones de una url abierta  

  https://app.smsmasivos.com.mx/components/solicitudpagos/load?i[email protected]example.com&idpropio=verd273564

Adjunta los siguientes parámetros a la url larga (*sin acortar)
monto numero nombre email idpropio

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