SMS Masivos
Envío de SMS masivos, individuales y programados
Enviar SMS (GET)
GET /sms/send
Enviar SMS
POST /sms/send
The Sms Masivo object
Returned by the sms masivos endpoints.
Attributes
successboolean
—
messagestring
Mensaje de estado
statusinteger
—
codestring
Código de respuesta
total_messagesinteger
Número de mensajes enviados
referencesarray<object>
IDs de referencia de los mensajes
creditnumber
Créditos consumidos
campaignIdinteger
ID de campaña (solo cuando showCampaignId=true)
The Sms Masivo object
{ "success": true, "message": "sent_messages", "status": 200, "code": "sms_11", "total_messages": 1, "references": [], "credit": 1.5, "campaignId": 12345 }
Enviar SMS (GET)
GET https://api.smsmasivos.com.mx/sms/send
Envía un solo SMS mediante GET con parámetros en query string
Query parameters
numbersstringrequired
—
messagestringrequired
—
senderstringoptional
—
country_codestringoptional
—
curl https://api.smsmasivos.com.mx/sms/send?numbers=525512345678&message=Hola desde SMS Masivos!
const SMS Masivo = await sms.smsmasivos.list({ numbers: '525512345678', message: 'Hola desde SMS Masivos!' })
SMS Masivo = sms.smsmasivos.list(numbers="525512345678", message="Hola desde SMS Masivos!")
SMS Masivo, err := client.Smsmasivos.List(ctx, nil)
Response
{ "success": true, "message": "sent_messages", "status": 200, "code": "sms_11", "total_messages": 1, "references": [ { "reference": "abc123def456ghi789jkl", "number": "525512345678" } ], "credit": 1.5, "campaignId": 12345 }
{ "success": false, "message": "API Key inválida o no existe.", "status": 401, "code": "<string>" }
{ "success": false, "message": "API Key inválida o no existe.", "status": 401, "code": "auth_05" }
{ "success": false, "message": "La dirección IP no está autorizada para acceder.", "status": 403, "code": "auth_04" }
{ "success": false, "message": "Demasiadas solicitudes. Límite: 100 mensajes/segundo (producción) o 100/día (sandbox).", "status": 429, "code": "rate_01" }
{ "success": false, "message": "Error interno del servidor. Contacta a soporte con el request_id.", "status": 500, "code": "server_01", "request_id": "550e8400-e29b-41d4-a716-446655440000" }
Enviar SMS
POST https://api.smsmasivos.com.mx/sms/send
**¿Envías códigos de verificación, login o 2FA? No uses este endpoint.** `/sms/send` es para marketing y notificaciones: sin prioridad de red y sin fallback de voz/WhatsApp. En pruebas parecerá funcionar, pero en producción tus códigos llegarán tarde o no llegarán. Para verificación usa [`/otp/send`](#tag/2fa). Envía un mensaje SMS a uno o múltiples destinatarios. El mensaje se envía sin acentos para garantizar compatibilidad con todas las operadoras.
Parameters
numbersstringrequired
Números de teléfono del destinatario, separados por coma. Solo México (country code 52).
messagestringrequired
Contenido del mensaje SMS. No incluir acentos.
senderstringoptional
Sender ID alfanumérico (máx 11 caracteres). Si no se especifica, usa el default de la cuenta.
country_codestringoptional
Código de país (default: 52 para México)
datestringoptional
Fecha programada para envío diferido (formato: YYYY-MM-DD HH:MM:SS)
sandboxenumoptional
1=modo sandbox (no consume créditos, no envía realmente). Default: 0.
01channelintegeroptional
Canal de entrega (default: 1)
shorten_urlenumoptional
1=acortar URLs en el mensaje automáticamente
01url_to_shortenstringoptional
URL específica a acortar (si no se especifica, se acortan todas las URLs del mensaje)
read_confirmationarray<any>optional
Configuración de confirmación de lectura
curl -X POST https://api.smsmasivos.com.mx/sms/send \
-H "Content-Type: application/json" \
-H "apikey: TU_API_KEY" \
-d '{
"numbers": "525512345678",
"message": "Hola {nombre}, tu pedido esta confirmado.",
"sender": "MiEmpresa"
}'
<?php
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, 'https://api.smsmasivos.com.mx/sms/send');
curl_setopt($ch, CURLOPT_POST, true);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_HTTPHEADER, [
'Content-Type: application/json',
'apikey: ' . getenv('SMSMASIVOS_API_KEY')
]);
curl_setopt($ch, CURLOPT_POSTFIELDS, json_encode([
'numbers' => '525512345678',
'message' => 'Hola {nombre}, tu pedido esta confirmado.',
'sender' => 'MiEmpresa'
]));
$response = curl_exec($ch);
curl_close($ch);
echo $response;
import requests
response = requests.post(
'https://api.smsmasivos.com.mx/sms/send',
headers={
'Content-Type': 'application/json',
'apikey': 'TU_API_KEY'
},
json={
'numbers': '525512345678',
'message': 'Hola {nombre}, tu pedido esta confirmado.',
'sender': 'MiEmpresa'
}
)
print(response.json())
const response = await fetch('https://api.smsmasivos.com.mx/sms/send', {
method: 'POST',
headers: {
'Content-Type': 'application/json',
'apikey': process.env.SMSMASIVOS_API_KEY
},
body: JSON.stringify({
numbers: '525512345678',
message: 'Hola {nombre}, tu pedido esta confirmado.',
sender: 'MiEmpresa'
})
});
const data = await response.json();
console.log(data);
const axios = require('axios');
const { data } = await axios.post(
'https://api.smsmasivos.com.mx/sms/send',
{
numbers: '525512345678',
message: 'Hola {nombre}, tu pedido esta confirmado.',
sender: 'MiEmpresa'
},
{
headers: {
'Content-Type': 'application/json',
'apikey': process.env.SMSMASIVOS_API_KEY
}
}
);
console.log(data);
require 'net/http'
require 'json'
uri = URI('https://api.smsmasivos.com.mx/sms/send')
http = Net::HTTP.new(uri.host, uri.port)
http.use_ssl = true
request = Net::HTTP::Post.new(uri.path, {
'Content-Type' => 'application/json',
'apikey' => ENV['SMSMASIVOS_API_KEY']
})
request.body = {
numbers: '525512345678',
message: 'Hola {nombre}, tu pedido esta confirmado.',
sender: 'MiEmpresa'
}.to_json
response = http.request(request)
puts JSON.parse(response.body)
using var client = new HttpClient();
client.DefaultRequestHeaders.Add("apikey", "TU_API_KEY");
var payload = new
{
numbers = "525512345678",
message = "Hola {nombre}, tu pedido esta confirmado.",
sender = "MiEmpresa"
};
var response = await client.PostAsJsonAsync(
"https://api.smsmasivos.com.mx/sms/send",
payload
);
var result = await response.Content.ReadFromJsonAsync<JsonElement>();
Console.WriteLine(result);
OkHttpClient client = new OkHttpClient();
String json = "{"
+ "\"numbers\":\"525512345678\","
+ "\"message\":\"Hola {nombre}, tu pedido esta confirmado.\","
+ "\"sender\":\"MiEmpresa\""
+ "}";
Request request = new Request.Builder()
.url("https://api.smsmasivos.com.mx/sms/send")
.post(RequestBody.create(json, MediaType.parse("application/json")))
.addHeader("apikey", "TU_API_KEY")
.build();
Response response = client.newCall(request).execute();
System.out.println(response.body().string());
Response
{ "success": true, "message": "sent_messages", "status": 200, "code": "sms_11", "total_messages": 2, "references": [ { "reference": "abc123def456ghi789jkl", "number": "525512345678" }, { "reference": "xyz987uvw654rst321mno", "number": "525598765432" } ], "credit": 3 }
{ "success": false, "message": "API Key inválida o no existe.", "status": 401, "code": "<string>" }
{ "success": false, "message": "API Key inválida o no existe.", "status": 401, "code": "auth_05" }
{ "success": false, "message": "La dirección IP no está autorizada para acceder.", "status": 403, "code": "auth_04" }
{ "success": false, "message": "Demasiadas solicitudes. Límite: 100 mensajes/segundo (producción) o 100/día (sandbox).", "status": 429, "code": "rate_01" }
{ "success": false, "message": "Error interno del servidor. Contacta a soporte con el request_id.", "status": 500, "code": "server_01", "request_id": "550e8400-e29b-41d4-a716-446655440000" }