Skip to main content
POST
https://api.mindosoftware.com
/
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"
    }
  }'
{
  "success": true,
  "message_id": "wamid.HBgNNTQ5MTEyMzQ1Njc4FQIAERgSQjVBN0YzRjQ2NzFCNDVBNQA=",
  "template_name": "welcome_message",
  "recipient_phone": "+5491112345678",
  "status": "sent",
  "sent_at": "2025-11-16T21:30:00Z"
}

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 un message_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

X-API-Key
string
required
Tu API Key de Mindo. Formato: mindo_xxxxxxxxxxxxxxxxxxxxxxxx

Parámetros del body

phone_number_id
string
required
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.
template_name
string
required
Nombre del template aprobado a enviar. Debe tener estado APPROVED en Meta.
language
string
Idioma del template. Por defecto: "es". Ejemplos: "es", "en", "pt_BR".
recipient_phone
string
required
Número de teléfono del destinatario en formato internacional (ej: "+5491112345678"). Sin espacios.
variables
object
Variables personalizadas para el template. Las claves deben coincidir con las variables definidas en el template.

Respuesta (200 OK)

success
boolean
Indica si el mensaje fue enviado exitosamente.
message_id
string
ID del mensaje asignado por Meta (wamid). Usar para consultar el estado del mensaje.
template_name
string
Nombre del template enviado.
recipient_phone
string
Número de teléfono del destinatario.
status
string
Estado inicial del mensaje. Siempre "sent" al enviarse exitosamente.
sent_at
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"
    }
  }'
{
  "success": true,
  "message_id": "wamid.HBgNNTQ5MTEyMzQ1Njc4FQIAERgSQjVBN0YzRjQ2NzFCNDVBNQA=",
  "template_name": "welcome_message",
  "recipient_phone": "+5491112345678",
  "status": "sent",
  "sent_at": "2025-11-16T21:30:00Z"
}

Estados del mensaje

El campo status del mensaje puede tener los siguientes valores:
EstadoDescripción
sentMensaje enviado a Meta exitosamente
deliveredMensaje entregado al dispositivo del destinatario
readMensaje leído por el destinatario
failedEl envío del mensaje falló
El endpoint de consulta de estado individual (GET /api/v1/meta-templates/messages/\{message_id\}/) estará disponible próximamente. Mientras tanto, podés usar el message_id retornado para trazabilidad interna.

Casos de uso

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);
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);
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);