curl -X POST https://api.mindosoftware.com/api/v1/meta-templates/send/ \
-H "X-API-Key: mindo_xxxxxxxxxxxxxxxxxxxxxxxx" \
-H "Content-Type: application/json" \
-d '{
"phone_number_id": "813497231850626",
"template_name": "welcome_message",
"language": "es",
"recipient_phone": "+5491112345678",
"variables": {
"name": "Juan Perez",
"code": "ABC123"
},
"button_variables": {
"button_0": "ABC-123"
}
}'
import requests
response = requests.post(
"https://api.mindosoftware.com/api/v1/meta-templates/send/",
headers={"X-API-Key": "mindo_xxxxxxxxxxxxxxxxxxxxxxxx"},
json={
"phone_number_id": "813497231850626",
"template_name": "welcome_message",
"language": "es",
"recipient_phone": "+5491112345678",
"variables": {
"name": "Juan Perez",
"code": "ABC123"
},
"button_variables": {
"button_0": "ABC-123"
}
}
)
data = response.json()
print(f"Message ID: {data['message_id']}")
print(f"Status: {data['status']}")
const response = await fetch(
"https://api.mindosoftware.com/api/v1/meta-templates/send/",
{
method: "POST",
headers: {
"X-API-Key": "mindo_xxxxxxxxxxxxxxxxxxxxxxxx",
"Content-Type": "application/json"
},
body: JSON.stringify({
phone_number_id: "813497231850626",
template_name: "welcome_message",
language: "es",
recipient_phone: "+5491112345678",
variables: {
name: "Juan Perez",
code: "ABC123"
},
button_variables: {
button_0: "ABC-123"
}
})
}
);
const data = await response.json();
console.log("Message ID:", data.message_id);
console.log("Status:", data.status);
{
"success": true,
"message_id": "wamid.HBgNNTQ5MTEyMzQ1Njc4FQIAERgSQjVBN0YzRjQ2NzFCNDVBNQA=",
"template_name": "welcome_message",
"recipient_phone": "+5491112345678",
"status": "sent",
"sent_at": "2025-11-16T21:30:00Z"
}
{
"phone_number_id": ["This field is required."],
"recipient_phone": ["This field is required."]
}
{
"error": "Template 'welcome_message' no tiene estado APPROVED"
}
{
"error": "Template 'welcome_message' (language: es) no encontrado en este business account"
}
{
"error": "Numero de WhatsApp con ID '813497231850626' no encontrado"
}
{
"error": "Este endpoint requiere autenticacion con API Key (header X-API-Key)"
}
Mensajes
Enviar mensaje
Envío individual de mensajes con templates de WhatsApp Business
POST
/
api
/
v1
/
meta-templates
/
send
/
curl -X POST https://api.mindosoftware.com/api/v1/meta-templates/send/ \
-H "X-API-Key: mindo_xxxxxxxxxxxxxxxxxxxxxxxx" \
-H "Content-Type: application/json" \
-d '{
"phone_number_id": "813497231850626",
"template_name": "welcome_message",
"language": "es",
"recipient_phone": "+5491112345678",
"variables": {
"name": "Juan Perez",
"code": "ABC123"
},
"button_variables": {
"button_0": "ABC-123"
}
}'
import requests
response = requests.post(
"https://api.mindosoftware.com/api/v1/meta-templates/send/",
headers={"X-API-Key": "mindo_xxxxxxxxxxxxxxxxxxxxxxxx"},
json={
"phone_number_id": "813497231850626",
"template_name": "welcome_message",
"language": "es",
"recipient_phone": "+5491112345678",
"variables": {
"name": "Juan Perez",
"code": "ABC123"
},
"button_variables": {
"button_0": "ABC-123"
}
}
)
data = response.json()
print(f"Message ID: {data['message_id']}")
print(f"Status: {data['status']}")
const response = await fetch(
"https://api.mindosoftware.com/api/v1/meta-templates/send/",
{
method: "POST",
headers: {
"X-API-Key": "mindo_xxxxxxxxxxxxxxxxxxxxxxxx",
"Content-Type": "application/json"
},
body: JSON.stringify({
phone_number_id: "813497231850626",
template_name: "welcome_message",
language: "es",
recipient_phone: "+5491112345678",
variables: {
name: "Juan Perez",
code: "ABC123"
},
button_variables: {
button_0: "ABC-123"
}
})
}
);
const data = await response.json();
console.log("Message ID:", data.message_id);
console.log("Status:", data.status);
{
"success": true,
"message_id": "wamid.HBgNNTQ5MTEyMzQ1Njc4FQIAERgSQjVBN0YzRjQ2NzFCNDVBNQA=",
"template_name": "welcome_message",
"recipient_phone": "+5491112345678",
"status": "sent",
"sent_at": "2025-11-16T21:30:00Z"
}
{
"phone_number_id": ["This field is required."],
"recipient_phone": ["This field is required."]
}
{
"error": "Template 'welcome_message' no tiene estado APPROVED"
}
{
"error": "Template 'welcome_message' (language: es) no encontrado en este business account"
}
{
"error": "Numero de WhatsApp con ID '813497231850626' no encontrado"
}
{
"error": "Este endpoint requiere autenticacion con API Key (header X-API-Key)"
}
Descripción
Este endpoint permite enviar un template de WhatsApp a un destinatario individual. Implementa un patrón fire-and-forget: al enviar el mensaje, retorna unmessage_id (wamid de Meta) que podés usar para consultar el estado del mensaje.
La API valida el template, resuelve las variables y envía el mensaje a través de la API de Meta de forma sincrónica.
Header de autenticación
string
requerido
Tu API Key de Mindo. Formato:
mindo_xxxxxxxxxxxxxxxxxxxxxxxxParámetros del body
string
requerido
ID de Meta del número de WhatsApp desde el cual se enviará el mensaje. Podés obtenerlo con el endpoint Obtener cuentas de negocio.
string
requerido
Nombre del template aprobado a enviar. Debe tener estado
APPROVED en Meta.string
Idioma del template. Por defecto:
"es". Ejemplos: "es", "en", "pt_BR".string
requerido
Número de teléfono del destinatario en formato internacional (ej:
"+5491112345678"). Sin espacios.object
Variables personalizadas para el template. Las claves deben coincidir con las variables definidas en el template.
object
Variables para botones dinámicos del template. Las claves usan el formato
button_0, button_1, etc., donde el número corresponde al índice del botón (comenzando en 0). Los valores son los sufijos o payloads dinámicos de cada botón.Importante: Los botones de tipo URL solo admiten 1 variable.Respuesta (200 OK)
boolean
Indica si el mensaje fue enviado exitosamente.
string
ID del mensaje asignado por Meta (wamid). Usar para consultar el estado del mensaje.
string
Nombre del template enviado.
string
Número de teléfono del destinatario.
string
Estado inicial del mensaje. Siempre
"sent" al enviarse exitosamente.string (ISO 8601)
Fecha y hora en que se envió el mensaje.
curl -X POST https://api.mindosoftware.com/api/v1/meta-templates/send/ \
-H "X-API-Key: mindo_xxxxxxxxxxxxxxxxxxxxxxxx" \
-H "Content-Type: application/json" \
-d '{
"phone_number_id": "813497231850626",
"template_name": "welcome_message",
"language": "es",
"recipient_phone": "+5491112345678",
"variables": {
"name": "Juan Perez",
"code": "ABC123"
},
"button_variables": {
"button_0": "ABC-123"
}
}'
import requests
response = requests.post(
"https://api.mindosoftware.com/api/v1/meta-templates/send/",
headers={"X-API-Key": "mindo_xxxxxxxxxxxxxxxxxxxxxxxx"},
json={
"phone_number_id": "813497231850626",
"template_name": "welcome_message",
"language": "es",
"recipient_phone": "+5491112345678",
"variables": {
"name": "Juan Perez",
"code": "ABC123"
},
"button_variables": {
"button_0": "ABC-123"
}
}
)
data = response.json()
print(f"Message ID: {data['message_id']}")
print(f"Status: {data['status']}")
const response = await fetch(
"https://api.mindosoftware.com/api/v1/meta-templates/send/",
{
method: "POST",
headers: {
"X-API-Key": "mindo_xxxxxxxxxxxxxxxxxxxxxxxx",
"Content-Type": "application/json"
},
body: JSON.stringify({
phone_number_id: "813497231850626",
template_name: "welcome_message",
language: "es",
recipient_phone: "+5491112345678",
variables: {
name: "Juan Perez",
code: "ABC123"
},
button_variables: {
button_0: "ABC-123"
}
})
}
);
const data = await response.json();
console.log("Message ID:", data.message_id);
console.log("Status:", data.status);
{
"success": true,
"message_id": "wamid.HBgNNTQ5MTEyMzQ1Njc4FQIAERgSQjVBN0YzRjQ2NzFCNDVBNQA=",
"template_name": "welcome_message",
"recipient_phone": "+5491112345678",
"status": "sent",
"sent_at": "2025-11-16T21:30:00Z"
}
{
"phone_number_id": ["This field is required."],
"recipient_phone": ["This field is required."]
}
{
"error": "Template 'welcome_message' no tiene estado APPROVED"
}
{
"error": "Template 'welcome_message' (language: es) no encontrado en este business account"
}
{
"error": "Numero de WhatsApp con ID '813497231850626' no encontrado"
}
{
"error": "Este endpoint requiere autenticacion con API Key (header X-API-Key)"
}
Estados del mensaje
El campostatus del mensaje puede tener los siguientes valores:
| Estado | Descripción |
|---|---|
sent | Mensaje enviado a Meta exitosamente |
delivered | Mensaje entregado al dispositivo del destinatario |
read | Mensaje leído por el destinatario |
failed | El envío del mensaje falló |
Usá el
message_id retornado para consultar el estado de entrega del mensaje con Estado del mensaje.Casos de uso
Mensaje de bienvenida a nuevo cliente
Mensaje de bienvenida a nuevo cliente
Envía un mensaje de bienvenida personalizado cuando un nuevo cliente se registra.
Python
import requests
response = requests.post(
"https://api.mindosoftware.com/api/v1/meta-templates/send/",
headers={"X-API-Key": "mindo_xxxxxxxxxxxxxxxxxxxxxxxx"},
json={
"phone_number_id": "813497231850626",
"template_name": "welcome_message",
"recipient_phone": "+5491112345678",
"variables": {
"name": "Juan Perez"
}
}
)
data = response.json()
print(f"Bienvenida enviada: {data['message_id']}")
JavaScript
const response = await fetch(
"https://api.mindosoftware.com/api/v1/meta-templates/send/",
{
method: "POST",
headers: {
"X-API-Key": "mindo_xxxxxxxxxxxxxxxxxxxxxxxx",
"Content-Type": "application/json"
},
body: JSON.stringify({
phone_number_id: "813497231850626",
template_name: "welcome_message",
recipient_phone: "+5491112345678",
variables: { name: "Juan Perez" }
})
}
);
const data = await response.json();
console.log("Bienvenida enviada:", data.message_id);
Código de verificación
Código de verificación
Envía un código de verificación único al usuario.
Python
import requests
import secrets
code = secrets.token_hex(3).upper()
response = requests.post(
"https://api.mindosoftware.com/api/v1/meta-templates/send/",
headers={"X-API-Key": "mindo_xxxxxxxxxxxxxxxxxxxxxxxx"},
json={
"phone_number_id": "813497231850626",
"template_name": "verification_code",
"recipient_phone": "+5491112345678",
"variables": {
"name": "Juan",
"code": code
}
}
)
data = response.json()
print(f"Código {code} enviado: {data['message_id']}")
JavaScript
const code = Math.random().toString(36).substring(2, 8).toUpperCase();
const response = await fetch(
"https://api.mindosoftware.com/api/v1/meta-templates/send/",
{
method: "POST",
headers: {
"X-API-Key": "mindo_xxxxxxxxxxxxxxxxxxxxxxxx",
"Content-Type": "application/json"
},
body: JSON.stringify({
phone_number_id: "813497231850626",
template_name: "verification_code",
recipient_phone: "+5491112345678",
variables: { name: "Juan", code }
})
}
);
const data = await response.json();
console.log(`Código ${code} enviado:`, data.message_id);
Notificación de estado de pedido
Notificación de estado de pedido
Notifica al cliente cuando su pedido cambia de estado.
Python
import requests
response = requests.post(
"https://api.mindosoftware.com/api/v1/meta-templates/send/",
headers={"X-API-Key": "mindo_xxxxxxxxxxxxxxxxxxxxxxxx"},
json={
"phone_number_id": "813497231850626",
"template_name": "order_update",
"recipient_phone": "+5491112345678",
"variables": {
"order_id": "ORD-001",
"status": "En camino"
}
}
)
data = response.json()
print(f"Notificación enviada: {data['message_id']}")
JavaScript
const response = await fetch(
"https://api.mindosoftware.com/api/v1/meta-templates/send/",
{
method: "POST",
headers: {
"X-API-Key": "mindo_xxxxxxxxxxxxxxxxxxxxxxxx",
"Content-Type": "application/json"
},
body: JSON.stringify({
phone_number_id: "813497231850626",
template_name: "order_update",
recipient_phone: "+5491112345678",
variables: { order_id: "ORD-001", status: "En camino" }
})
}
);
const data = await response.json();
console.log("Notificación enviada:", data.message_id);

