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".abcdefghijk
sandboxenumoptional
Modo de pruebas. `1` = sandbox (no descuenta créditos), `0` = producción. Por defecto `0`.01
companystringoptional
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"
}