Llamadas De Voz
Envío de llamadas de voz con plantillas TTS
Enviar Llamada de Voz
POST /voice/send
The Llamadas De Voz object
Returned by the llamadas de voz 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 Llamadas De Voz object
{ "success": true, "message": "sent_messages", "status": 200, "code": "sms_11", "total_messages": 1, "references": [], "credit": 1.5, "campaignId": 12345 }
Enviar Llamada de Voz
POST https://api.smsmasivos.com.mx/voice/send
Realiza una llamada telefónica con mensaje de voz usando plantillas TTS (Text-to-Speech). Soporta GET y POST.
Parameters
numbersstringrequired
Números de teléfono de los destinatarios, separados por coma. Ejemplo: `4771234567,4770987654`
country_codestringrequired
Código de país. Por estandarización, siempre se debe enviar `52` que es el código correspondiente a México.
templateenumrequired
Letra de la plantilla de voz a utilizar (a - k). Cada letra corresponde a un guion de voz pregrabado que se reproduce durante la llamada. Las variables `{{company}}` y `{{code}}` se reemplazan automáticamente.
**Plantillas disponibles:**
| Letra | Tipo de mensaje |
|-------|----------------|
| **a** | Verificación — "{{company}} tu código de verificación es: {{code}}" |
| **b** | Validación de cuenta — "Ingresa el código en tu app de {{company}}: {{code}}" |
| **c** | Activación — "El código {{code}} activa tu cuenta de {{company}}" |
| **d** | Autenticación — "Código de autenticación para {{company}}: {{code}}" |
| **e** | Activación alternativo — "Captura el código {{code}} para {{company}}" |
| **f** | Código simple — "{{company}} tu código es: {{code}}" |
| **g** | Confirmación — "Código de confirmación {{company}}: {{code}}" |
| **h** | Verificación inverso — "{{code}} es tu código de {{company}}" |
| **i** | Inicio de sesión — "{{code}} para iniciar sesión en {{company}}" |
| **j** | Activación extendido — "Código de activación para {{company}}: {{code}}" |
| **k** | Mensaje personalizado — Usa el parámetro `voice_message` para definir el texto (máx. 160 caracteres). |
La plantilla **k** es especial: permite enviar un mensaje de voz completamente personalizado mediante el parámetro `voice_message`. El resto de plantillas (a-j) usan guiones fijos.
Usa `formal_tone: true` para cambiar el trato de "tú" a "usted".
abcdefghijksandboxenumoptional
Modo de pruebas. `1` = sandbox (no descuenta créditos), `0` = producción. Por defecto `0`.
01companystringoptional
Nombre de la compañía para personalizar el mensaje de voz.
codestringoptional
Código de verificación a comunicar en la llamada.
voice_messagestringoptional
Mensaje de voz personalizado (máximo 160 caracteres). Solo compatible con la plantilla `k`.
formal_tonebooleanoptional
Define el trato gramatical del mensaje. `false` = trato informal (tú). `true` = trato formal (usted). Por defecto `false`.
curl -X POST https://api.smsmasivos.com.mx/voice/send \
-H "Content-Type: application/json" \
-H "apikey: TU_API_KEY" \
-d '{
"numbers": "5512345678",
"country_code": "52",
"template": "a",
"company": "Mi Empresa"
}'
<?php
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, 'https://api.smsmasivos.com.mx/voice/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' => '5512345678',
'country_code' => '52',
'template' => 'a',
'company' => 'Mi Empresa'
]));
$response = curl_exec($ch);
curl_close($ch);
echo $response;
import requests
response = requests.post(
'https://api.smsmasivos.com.mx/voice/send',
headers={
'Content-Type': 'application/json',
'apikey': 'TU_API_KEY'
},
json={
'numbers': '5512345678',
'country_code': '52',
'template': 'a',
'company': 'Mi Empresa'
}
)
print(response.json())
const response = await fetch('https://api.smsmasivos.com.mx/voice/send', {
method: 'POST',
headers: {
'Content-Type': 'application/json',
'apikey': process.env.SMSMASIVOS_API_KEY
},
body: JSON.stringify({
numbers: '5512345678',
country_code: '52',
template: 'a',
company: 'Mi Empresa'
})
});
const data = await response.json();
console.log(data);
const axios = require('axios');
const { data } = await axios.post(
'https://api.smsmasivos.com.mx/voice/send',
{
numbers: '5512345678',
country_code: '52',
template: 'a',
company: 'Mi Empresa'
},
{
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/voice/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: '5512345678',
country_code: '52',
template: 'a',
company: 'Mi Empresa'
}.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 = "5512345678",
country_code = "52",
template = "a",
company = "Mi Empresa"
};
var response = await client.PostAsJsonAsync(
"https://api.smsmasivos.com.mx/voice/send",
payload
);
var result = await response.Content.ReadFromJsonAsync<JsonElement>();
Console.WriteLine(result);
OkHttpClient client = new OkHttpClient();
String json = "{"
+ "\"numbers\":\"5512345678\","
+ "\"country_code\":\"52\","
+ "\"template\":\"a\","
+ "\"company\":\"Mi Empresa\""
+ "}";
Request request = new Request.Builder()
.url("https://api.smsmasivos.com.mx/voice/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": 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" }