Número da loja: credenciais
Lê, conecta, verifica e desconecta o número de WhatsApp que a loja usa para atender clientes.
O número da loja é o telefone de WhatsApp Business pelo qual o atendimento e o assistente respondem como a própria loja. Estas quatro rotas guardam a ligação entre a loja e esse número na Meta (a dona da API do WhatsApp). Use PUT quando você já tem o phone_number_id e o token da Meta; se o número ainda não existe, use o assistente de cadastro.
Consultar o número
Devolve o número atual da loja ou o estado vazio (campos em branco) quando nada foi conectado. O token nunca é devolvido: só has_token.
/api/v1/admin/whatsapp/credentialsAdminMostra o número de WhatsApp conectado à loja
Exemplo de requisição (Consultar o número)
curl "$BASE_URL/api/v1/admin/whatsapp/credentials" \
-H "Authorization: Bearer $TOKEN"Resposta (Consultar o número)
{
"vendor_id": "",
"phone_number_id": "109876543210987",
"display_name": "5511999998888",
"business_account_id": "223344556677889",
"has_token": true,
"verified": true,
"last_verified_at": "2026-10-11T21:33:11Z"
}Campos da resposta
vendor_idstringphone_number_idstringdisplay_namestringbusiness_account_idstringhas_tokenbooleantrue quando há um token de acesso guardado. O token nunca volta na resposta.verifiedbooleantrue quando o número está ativo e já passou por uma verificação bem-sucedida na Meta.last_verified_atstringtwo_step_pinstringroute_pendingbooleantrue quando o número já entrega as mensagens recebidas em outro destino e a plataforma não sobrescreveu. Só aparece no PUT.route_pending_reasonstringroute_pending.Erros (Consultar o número)
| Status | Quando | Corpo |
|---|---|---|
| 401 | Sem token, token inválido ou expirado. | {"error":"missing authorization header"} |
| 403 | O módulo WhatsApp Commerce está desligado na loja, o usuário não é administrador ou não tem o privilégio exigido. | {"error":"module_disabled","module":"whatsapp-commerce"} ou {"error":"insufficient privileges","required":"manage_settings"} ou {"error":"admin access required"} |
Conectar ou editar o número
Grava o phone_number_id como número da loja (ou altera os campos do número atual). Depois de salvar, a plataforma consulta a Meta para completar o telefone e marcar o número como verificado, e tenta registrar a rota de mensagens recebidas para esta loja.
/api/v1/admin/whatsapp/credentialsAdminConecta um número já existente na Meta como número da loja
Corpo da requisição
phone_number_idstringobrigatóriodisplay_namestringbusiness_account_idstringauth_tokenstringExemplo de requisição (Conectar ou editar o número)
curl -X PUT "$BASE_URL/api/v1/admin/whatsapp/credentials" \
-H "Authorization: Bearer $TOKEN" \
-H "Content-Type: application/json" \
-d '{
"phone_number_id": "109876543210987",
"display_name": "5511999998888",
"business_account_id": "223344556677889",
"auth_token": "EAAB..."
}'Resposta (Conectar ou editar o número)
{
"vendor_id": "",
"phone_number_id": "109876543210987",
"display_name": "5511999998888",
"business_account_id": "223344556677889",
"has_token": true,
"verified": true,
"last_verified_at": "2026-10-11T21:33:11Z",
"route_pending": false
}Campos da resposta
(...)objectroute_pending aparece só quando é true.Erros (Conectar ou editar o número)
| Status | Quando | Corpo |
|---|---|---|
| 400 | Corpo que não é JSON. | {"error":"invalid request body","detail":"..."} |
| 400 | phone_number_id vazio. | {"error":"phone_number_id is required"} |
| 401 | Sem token, token inválido ou expirado. | {"error":"missing authorization header"} |
| 403 | O módulo WhatsApp Commerce está desligado na loja, o usuário não é administrador ou não tem o privilégio exigido. | {"error":"module_disabled","module":"whatsapp-commerce"} ou {"error":"insufficient privileges","required":"manage_settings"} ou {"error":"admin access required"} |
| 409 | O número já está ligado a outra loja. O detail traz o código number_in_use. | {"error":"...","detail":"number_in_use"} |
Verificar na Meta
Faz uma chamada de teste à Meta usando o token guardado do número. Se a Meta aceitar, a plataforma grava a data da verificação e o número passa a contar como ativo. Não tem corpo.
/api/v1/admin/whatsapp/credentials/verifyAdminTesta o token do número na Meta e marca o número como verificado
Exemplo de requisição (Verificar na Meta)
curl -X POST "$BASE_URL/api/v1/admin/whatsapp/credentials/verify" \
-H "Authorization: Bearer $TOKEN"Resposta (Verificar na Meta)
{
"vendor_id": "",
"phone_number_id": "109876543210987",
"display_name": "5511999998888",
"business_account_id": "223344556677889",
"has_token": true,
"verified": true,
"last_verified_at": "2026-10-11T21:33:11Z"
}Campos da resposta
(...)objectverified: true.Erros (Verificar na Meta)
| Status | Quando | Corpo |
|---|---|---|
| 400 | Não há número, token ou phone_number_id guardados. | {"error":"credentials not configured"} |
| 401 | Sem token, token inválido ou expirado. | {"error":"missing authorization header"} |
| 403 | O módulo WhatsApp Commerce está desligado na loja, o usuário não é administrador ou não tem o privilégio exigido. | {"error":"module_disabled","module":"whatsapp-commerce"} ou {"error":"insufficient privileges","required":"manage_settings"} ou {"error":"admin access required"} |
| 502 | A Meta recusou o token ou o número. O detail traz o texto da Meta. | {"error":"Meta verification failed","detail":"..."} |
Desconectar o número
Desativa o número da loja. É uma exclusão lógica: nenhum dado (conversas, mensagens) é apagado, e o número deixa de receber o atendimento. Para voltar, conecte de novo com PUT.
/api/v1/admin/whatsapp/credentialsAdminDesconecta o número de WhatsApp da loja
Exemplo de requisição (Desconectar o número)
curl -X DELETE "$BASE_URL/api/v1/admin/whatsapp/credentials" \
-H "Authorization: Bearer $TOKEN"Resposta (Desconectar o número)
{
"ok": true
}Campos da resposta
okbooleantrue quando a chamada funciona.Erros (Desconectar o número)
| Status | Quando | Corpo |
|---|---|---|
| 401 | Sem token, token inválido ou expirado. | {"error":"missing authorization header"} |
| 403 | O módulo WhatsApp Commerce está desligado na loja, o usuário não é administrador ou não tem o privilégio exigido. | {"error":"module_disabled","module":"whatsapp-commerce"} ou {"error":"insufficient privileges","required":"manage_settings"} ou {"error":"admin access required"} |