Meta Graph API
Mensagens e Graph API
A HookCloud provisiona e gerencia a conexão. O backend do partner pode enviar diretamente pela Meta.
Obter token e URL de envio
curl --request POST 'https://api.hookcloud.app/functions/v1/swift-worker' \
--header 'apikey: SUA_PUBLISHABLE_KEY' \
--header 'Authorization: Bearer hc_partner_live_SUA_CHAVE' \
--header 'Content-Type: application/json' \
--data '{
"route": "reveal-partner-instance-meta-token",
"phone_number_id": "PHONE_NUMBER_ID"
}'Armazene criptografado no backend e substitua quando houver reconnect. Não registre o token em logs de aplicação.
Enviar texto
const response = await fetch('https://graph.facebook.com/v25.0/PHONE_NUMBER_ID/messages', {
method: 'POST',
headers: {
Authorization: `Bearer ${META_ACCESS_TOKEN}`,
'Content-Type': 'application/json'
},
body: JSON.stringify({
messaging_product: 'whatsapp',
to: '5511999999999',
type: 'text',
text: { body: 'Olá! Como podemos ajudar?' }
})
});
const data = await response.json();Referência: Messages API
Enviar template
const payload = {
messaging_product: 'whatsapp',
to: '5511999999999',
type: 'template',
template: {
name: 'confirmacao_agendamento',
language: { code: 'pt_BR' },
components: [{
type: 'body',
parameters: [
{ type: 'text', text: 'Marcos' },
{ type: 'text', text: '22/07 às 15h' }
]
}]
}
};Antes de enviar, consulte sendable=true e valide parameter_schema.
Receber status
{
"object": "whatsapp_business_account",
"entry": [{
"changes": [{
"field": "messages",
"value": {
"metadata": { "phone_number_id": "PHONE_NUMBER_ID" },
"statuses": [{
"id": "wamid.xxxxx",
"status": "failed",
"recipient_id": "5511999999999",
"timestamp": "...",
"errors": [{ "code": 131049, "title": "..." }]
}]
}
}]
}]
}Mapeie o wamid à campanha e reporte os estados finais para a HookCloud quando quiser consolidar Saúde de Entregas.
Referência: Message Status Update Notifications
Janela de atendimento
Mensagens livres e templates seguem regras diferentes da plataforma. Use templates aprovados quando necessário, mantenha opt-in e não use automação para contornar controles de qualidade ou engajamento.
Retry recomendado
| Situação | Ação |
|---|---|
| HTTP 5xx / indisponibilidade temporária | Retry exponencial com jitter |
| HTTP 429 / rate limit | Respeitar Retry-After e reduzir concorrência |
| 131049 | Não fazer retry imediato; aguardar e rever engajamento |
| 131042 | Corrigir pagamento/linha de crédito da WABA |
| 132000 | Corrigir parâmetros do template |
| 132001 | Revalidar template, idioma e disponibilidade |
Esta página ajudou?Use o Partner Portal para suporte e compartilhe o link desta seção.
