Descrição
Este endpoint permite enviar um template do WhatsApp para um destinatário individual. Implementa um padrão fire-and-forget : ao enviar a mensagem, retorna um message_id (wamid da Meta) que você pode usar para verificar o status da mensagem.
A API valida o template, resolve as variáveis e envia a mensagem pela API da Meta de forma síncrona.
Sua API Key da Mindo. Formato: mindo_xxxxxxxxxxxxxxxxxxxxxxxx
Parâmetros do body
ID do número de telefone do WhatsApp na Meta a partir do qual a mensagem será enviada. Você pode obtê-lo no endpoint Obter contas de negócio .
Nome do template aprovado a ser enviado. Deve ter status APPROVED na Meta.
Idioma do template. Padrão: "es". Exemplos: "es", "en", "pt_BR".
Número de telefone do destinatário em formato internacional (ex.: "+5491112345678"). Sem espaços.
Variáveis personalizadas para o template. As chaves devem corresponder às variáveis definidas no template.
Variáveis para botões dinâmicos do template. As chaves usam o formato button_0, button_1, etc., onde o número corresponde ao índice do botão (começando em 0). Os valores são os sufixos dinâmicos ou payloads de cada botão. Importante: Botões do tipo URL suportam apenas 1 variável.
Resposta (200 OK)
Se a mensagem foi enviada com sucesso.
ID da mensagem atribuído pela Meta (wamid). Use para verificar o status da mensagem.
Nome do template enviado.
Número de telefone do destinatário.
Status inicial da mensagem. Sempre "sent" quando enviada com sucesso.
Data e hora do envio da mensagem.
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"
}
}'
200 - OK
400 - Validação
400 - Template não aprovado
404 - Template não encontrado
404 - Número não encontrado
401 - Não autenticado
{
"success" : true ,
"message_id" : "wamid.HBgNNTQ5MTEyMzQ1Njc4FQIAERgSQjVBN0YzRjQ2NzFCNDVBNQA=" ,
"template_name" : "welcome_message" ,
"recipient_phone" : "+5491112345678" ,
"status" : "sent" ,
"sent_at" : "2025-11-16T21:30:00Z"
}
Status das mensagens
O campo status da mensagem pode ter os seguintes valores:
Status Descrição sentMensagem enviada para a Meta com sucesso deliveredMensagem entregue no dispositivo do destinatário readMensagem lida pelo destinatário failedFalha no envio da mensagem
O endpoint de consulta individual de status (GET /api/v1/meta-templates/messages/\{message_id\}/) estará disponível em breve. Enquanto isso, você pode usar o message_id retornado para rastreabilidade interna.
Casos de uso
Mensagem de boas-vindas para novo cliente
Envie uma mensagem de boas-vindas personalizada quando um novo cliente se cadastrar. 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 "Boas-vindas enviadas: { data[ 'message_id' ] } " )
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 ( "Boas-vindas enviadas:" , data . message_id );
Envie um código de verificação único para um usuário. 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' ] } " )
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ção de status do pedido
Notifique um cliente quando o status do pedido mudar. 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" : "Em trânsito"
}
}
)
data = response.json()
print ( f "Notificação enviada: { data[ 'message_id' ] } " )
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: "Em trânsito" }
})
}
);
const data = await response . json ();
console . log ( "Notificação enviada:" , data . message_id );