Saúde, números e webhook
Mostra se a integração com a Meta está de pé, lista os números da conta compartilhada e gerencia a assinatura do app nos webhooks.
Depois de gravar as credenciais, estas quatro rotas respondem às perguntas do operador: a Meta aceita o nosso token? Quais números existem na conta e a qual loja cada um pertence? O nosso app está assinado para receber as mensagens?
Todas consultam a Meta (Graph API v23.0) com as credenciais da plataforma, então a resposta depende de a Meta estar acessível. Elas exigem root_admin com o privilégio manage_whatsapp_platform.
Saúde da integração
/api/v1/admin/whatsapp-platform/healthAdminResumo de saúde da integração com a Meta
Faz uma única chamada à Meta e devolve se as credenciais estão preenchidas, se a Meta respondeu e quantos números há por qualidade. Uma falha da Meta não vira erro HTTP: a resposta é 200 com connection_ok: false e o texto do problema em error.
{
"configured": true,
"connection_ok": true,
"waba_id": "104855559999999",
"numbers_total": 3,
"verified_count": 3,
"quality_green": 2,
"quality_yellow": 0,
"quality_red": 0,
"quality_other": 1
}Campos da resposta
configuredbooleantrue quando há token de acesso e id da WABA gravados.connection_okbooleantrue quando a Meta respondeu à listagem de números com as credenciais gravadas.waba_idstringnumbers_totalintegerverified_countintegercode_verification_status igual a VERIFIED.quality_greenintegerGREEN.quality_yellowintegerYELLOW.quality_redintegerRED.quality_otherintegererrorstringNúmeros da conta
/api/v1/admin/whatsapp-platform/numbersAdminListar os números da WABA compartilhada
Pede à Meta todos os números da WABA e, para cada um, procura qual loja o conectou. Para descobrir a loja, a plataforma percorre todas as lojas ativas, então a chamada pode ser lenta com muitas lojas. Um número que existe na conta mas ainda não foi ligado a nenhuma loja vem sem store_name e tenant_id.
{
"data": [
{
"phone_number_id": "109876543210987",
"display_phone_number": "+55 11 99999-8888",
"verified_name": "Loja Exemplo",
"code_verification_status": "VERIFIED",
"quality_rating": "GREEN",
"store_name": "Loja Exemplo",
"tenant_id": "8d1f6a52-3b0e-4e57-9f31-2c4a7b9d0e11"
}
]
}Campos da resposta
dataarraydata[].phone_number_idstringdata[].display_phone_numberstringdata[].verified_namestringdata[].code_verification_statusstringVERIFIED quando aceito.data[].quality_ratingstringGREEN, YELLOW, RED ou vazio.data[].store_namestringdata[].tenant_idstringEstado do webhook
/api/v1/admin/whatsapp-platform/webhookAdminVer o token de verificação e os apps assinados
Mostra o token que você deve colar na configuração de webhook do app da Meta, se o segredo do app está gravado e quais apps estão assinados na WABA. Se a Meta falhar, a resposta continua 200 com o motivo em error.
{
"configured": true,
"verify_token": "venddor-verify-2026",
"app_secret_set": true,
"subscribed_apps": [
{ "name": "Venddor Commerce", "link": "https://example.com/app", "id": "1234567890" }
]
}Campos da resposta
configuredbooleantrue quando há token de acesso e WABA gravados. Quando false, subscribed_apps vem vazio e a Meta não é consultada.verify_tokenstringapp_secret_setbooleantrue quando o segredo do app está gravado.subscribed_appsarrayname, link e id.errorstringAssinar o app na WABA
/api/v1/admin/whatsapp-platform/webhook/subscribeAdminAssinar o app da plataforma nos webhooks da WABA
Assina o app dono do token (o app da plataforma) nos webhooks da WABA. Sem essa assinatura, a Meta não entrega as mensagens recebidas. Não tem corpo.
{ "success": true }Exemplo de requisição
# saúde
curl "$BASE_URL/api/v1/admin/whatsapp-platform/health" \
-H "Authorization: Bearer $TOKEN"
# assinar o app
curl -X POST "$BASE_URL/api/v1/admin/whatsapp-platform/webhook/subscribe" \
-H "Authorization: Bearer $TOKEN"Erros
| Status | Quando | Corpo de exemplo |
|---|---|---|
| 401 | Sem cabeçalho Authorization | {"error":"missing authorization header"} |
| 403 | Usuário que não é root_admin, ou sem o privilégio manage_whatsapp_platform | {"error":"insufficient permissions"} |
| 503 | numbers e webhook/subscribe quando falta token ou WABA | {"error":"Configure o token de acesso e o WhatsApp Business Account ID (WABA) na página de credenciais da plataforma antes de listar os números.","kind":"config_missing"}. Em webhook/subscribe a mensagem é "Configure o token de acesso e o WABA na página de credenciais da plataforma primeiro." |
| 500 | A Meta recusou a chamada em numbers ou webhook/subscribe, ou falha ao ler o banco | {"error":"..."} com a mensagem original da Meta |
As mensagens de config_missing são devolvidas em português pelo servidor.