Whats App
Envío de mensajes de WhatsApp: texto, imagen, video, audio y documentos.
Este canal está diseñado para mensajes individuales o transaccionales. No lo uses como mecanismo de envío masivo no solicitado: WhatsApp puede restringir la cuenta.
El envío sale desde una instancia de WhatsApp vinculada a tu cuenta, que debe existir, estar conectada y permanecer operativa. Cada instancia se identifica con su instance_id.
Enviar WhatsApp
POST /whatsapp/send
Enviar WhatsApp
GET /whatsapp/send
Enviar WhatsApp
POST https://api.smsmasivos.com.mx/whatsapp/send
Envía un mensaje de WhatsApp. Soporta texto, imagen, video, audio y documentos
Parameters
instance_idstringrequerido
Identificador de la instancia de WhatsApp vinculada a tu cuenta. La instancia debe existir y estar activa.
numberstringrequerido
Número de teléfono destino de 10 dígitos, sin código de país. Actualmente el envío está disponible para números de México (código de país
52).messagestringrequerido
Contenido del mensaje (máximo 1000 caracteres). Para mensajes multimedia, es la URL pública HTTPS del archivo; la URL debe terminar con la extensión del archivo, sin parámetros adicionales.
typeenumopcional
Tipo de mensaje. Extensiones aceptadas por tipo:
image: jpg, jpeg, png, svg, webpvideo: mp4audio: ogg, amr, 3gp, aac, mpegdocument: pdf, doc, docx, pptx, xlsx, xls, csv
textimagevideoaudiodocumentcountry_codestringopcional
Código de país (por defecto
52). Actualmente solo se admite 52 (México).find_country_codeenumopcional
Con valor
1, el código de país se extrae del propio número en lugar de tomarse de country_code.01datestringopcional
Fecha de programación para envío diferido (formato
YYYY-MM-DD HH:MM:SS). Debe ser futura.namestringopcional
Nombre del contacto
captionstringopcional
Texto que acompaña al archivo multimedia (imagen, video, audio o documento). Máximo 1000 caracteres. No aplica para mensajes de texto.
read_confirmationobjectopcional
Configuración de confirmación de lectura por URL.
curl -X POST https://api.smsmasivos.com.mx/whatsapp/send \
-H "Content-Type: application/json" \
-H "apikey: TU_API_KEY" \
-d '{
"instance_id": "instance_abc123",
"number": "5512345678",
"message": "Hola desde WhatsApp!",
"type": "text"
}'
<?php
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, 'https://api.smsmasivos.com.mx/whatsapp/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([
'instance_id' => 'instance_abc123',
'number' => '5512345678',
'message' => 'Hola desde WhatsApp!',
'type' => 'text'
]));
$response = curl_exec($ch);
curl_close($ch);
echo $response;
import requests
response = requests.post(
'https://api.smsmasivos.com.mx/whatsapp/send',
headers={
'Content-Type': 'application/json',
'apikey': 'TU_API_KEY'
},
json={
'instance_id': 'instance_abc123',
'number': '5512345678',
'message': 'Hola desde WhatsApp!',
'type': 'text'
}
)
print(response.json())
const response = await fetch('https://api.smsmasivos.com.mx/whatsapp/send', {
method: 'POST',
headers: {
'Content-Type': 'application/json',
'apikey': process.env.SMSMASIVOS_API_KEY
},
body: JSON.stringify({
instance_id: 'instance_abc123',
number: '5512345678',
message: 'Hola desde WhatsApp!',
type: 'text'
})
});
const data = await response.json();
console.log(data);
const axios = require('axios');
const { data } = await axios.post(
'https://api.smsmasivos.com.mx/whatsapp/send',
{
instance_id: 'instance_abc123',
number: '5512345678',
message: 'Hola desde WhatsApp!',
type: 'text'
},
{
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/whatsapp/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 = {
instance_id: 'instance_abc123',
number: '5512345678',
message: 'Hola desde WhatsApp!',
type: 'text'
}.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
{
instance_id = "instance_abc123",
number = "5512345678",
message = "Hola desde WhatsApp!",
type = "text"
};
var response = await client.PostAsJsonAsync(
"https://api.smsmasivos.com.mx/whatsapp/send",
payload
);
var result = await response.Content.ReadFromJsonAsync<JsonElement>();
Console.WriteLine(result);
OkHttpClient client = new OkHttpClient();
String json = "{"
+ "\"instance_id\":\"instance_abc123\","
+ "\"number\":\"5512345678\","
+ "\"message\":\"Hola desde WhatsApp!\","
+ "\"type\":\"text\""
+ "}";
Request request = new Request.Builder()
.url("https://api.smsmasivos.com.mx/whatsapp/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": "message sent", "status": 200, "code": "whatsapp_21", "credit": 1.5, "reference": "abc123def456ghi789jkl", "id": 12345 }
{ "success": false, "message": "Parámetros inválidos.", "status": 400, "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 WhatsApp
GET https://api.smsmasivos.com.mx/whatsapp/send
Envía un mensaje de WhatsApp con los parámetros en el query string. Recomendamos usar la versión POST para no exponer tu API Key en la URL.
Query parameters
instance_idstringrequerido
ID de la instancia de WhatsApp desde la cual se envía el mensaje
numberstringrequerido
Número de teléfono destino
messagestringrequerido
Contenido del mensaje o URL del archivo multimedia
typestringopcional
Tipo de mensaje:
text, image, video, audio o document (por defecto: text)country_codestringopcional
Código de país (por defecto: 52)
datestringopcional
Fecha de programación para envío diferido
captionstringopcional
Texto descriptivo del medio
curl https://api.smsmasivos.com.mx/whatsapp/send?instance_id=value&number=value&message=value
const WhatsApp = await sms.whatsapp.list({ instance_id: 'value', number: 'value', message: 'value' })
WhatsApp = sms.whatsapp.list(instance_id="value", number="value", message="value")
WhatsApp, err := client.Whatsapp.List(ctx, nil)
Response
{ "success": true, "message": "message sent", "status": 200, "code": "whatsapp_21", "credit": 1.5, "reference": "abc123def456ghi789jkl", "id": 12345 }
{ "success": false, "message": "Parámetros inválidos.", "status": 400, "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" }
Objeto de respuesta
Estructura de la respuesta que devuelven estos endpoints.
Atributos
successboolean
—
messagestring
Mensaje de estado
statusinteger
—
codestring
Código de respuesta
creditnumber
Créditos consumidos
referencestring
ID de referencia del mensaje
idinteger
ID del mensaje (solo cuando show_id=1)
Objeto de respuesta
{ "success": true, "message": "message sent", "status": 200, "code": "whatsapp_21", "credit": 1.5, "reference": "abc123def456ghi789jkl", "id": 12345 }