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)"
}
Messages
Send message
Send individual WhatsApp Business template messages
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)"
}
Description
This endpoint allows you to send a WhatsApp template to an individual recipient. It implements a fire-and-forget pattern: when sending the message, it returns amessage_id (Meta’s wamid) that you can use to check the message status.
The API validates the template, resolves the variables, and sends the message through the Meta API synchronously.
Authentication header
string
required
Your Mindo API Key. Format:
mindo_xxxxxxxxxxxxxxxxxxxxxxxxBody parameters
string
required
Meta’s WhatsApp phone number ID from which the message will be sent. You can get it from the Get business accounts endpoint.
string
required
Name of the approved template to send. Must have
APPROVED status in Meta.string
Template language. Default:
"es". Examples: "es", "en", "pt_BR".string
required
Recipient’s phone number in international format (e.g.:
"+5491112345678"). No spaces.object
Custom variables for the template. Keys must match the variables defined in the template.
object
Variables for dynamic template buttons. Keys use the format
button_0, button_1, etc., where the number corresponds to the button index (starting at 0). Values are the dynamic suffixes or payloads for each button.Important: URL buttons only support 1 variable.Response (200 OK)
boolean
Whether the message was sent successfully.
string
Message ID assigned by Meta (wamid). Use to check the message status.
string
Name of the template sent.
string
Recipient’s phone number.
string
Initial message status. Always
"sent" when sent successfully.string (ISO 8601)
Date and time when the message was sent.
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)"
}
Message statuses
The messagestatus field can have the following values:
| Status | Description |
|---|---|
sent | Message sent to Meta successfully |
delivered | Message delivered to the recipient’s device |
read | Message read by the recipient |
failed | Message send failed |
Use the returned
message_id to check the message’s delivery status with Message status.Use cases
Welcome message for a new customer
Welcome message for a new customer
Send a personalized welcome message when a new customer registers.
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"Welcome sent: {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("Welcome sent:", data.message_id);
Verification code
Verification code
Send a unique verification code to a user.
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"Code {code} sent: {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(`Code ${code} sent:`, data.message_id);
Order status notification
Order status notification
Notify a customer when their order status changes.
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": "In transit"
}
}
)
data = response.json()
print(f"Notification sent: {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: "In transit" }
})
}
);
const data = await response.json();
console.log("Notification sent:", data.message_id);

