Gerenciar o número
URL de webhook, perfil, foto, chave pública e a chave de assinatura.
Estas chamadas configuram o número: para onde os webhooks vão, o que o cliente vê
no WhatsApp e o segredo que assina as entregas. Host:
admin.2bebandmaster.com.br.
Todas exigem o header identifier além do token — sem ele, a resposta é 400
("Identifier was not sent").
Dados do número
GET /phones/info
/phones/info›headers
- authorization:
- Bearer <token>
- identifier:
- <identifier-do-numero>
curl https://admin.2bebandmaster.com.br/phones/info \
-H "authorization: Bearer $TOKEN" \
-H "identifier: $IDENTIFIER"{
"number": "5511999999999",
"identifier": "seu-identifier",
"webhook": "https://sua-aplicacao.com.br/webhooks/bandmaster",
"description": "Atendimento",
"current_limit": "TIER_1K",
"current_quality_rating": "GREEN"
}Credenciais do broker nunca aparecem nesta resposta. Os significados de
current_limit e current_quality_rating estão em
conceitos.
O histórico mostra as mudanças desses campos ao longo do tempo:
GET /phones/info/history
/phones/info/history›headers
- authorization:
- Bearer <token>
- identifier:
- <identifier-do-numero>
curl https://admin.2bebandmaster.com.br/phones/info/history \
-H "authorization: Bearer $TOKEN" \
-H "identifier: $IDENTIFIER"[
{
"eventDate": "2026-07-05T13:20:11.000Z",
"number": "5511999999999",
"identifier": "seu-identifier",
"history": [
{ "event": "current_quality_rating", "from": "GREEN", "to": "YELLOW" }
]
}
]URL de webhook
É para essa URL que o Bandmaster entrega mensagens e status recebidos. Veja webhooks para os payloads.
PUT /phones/webhook
/phones/webhook›headers
- authorization:
- Bearer <token>
- identifier:
- <identifier-do-numero>
curl -X PUT https://admin.2bebandmaster.com.br/phones/webhook \
-H "authorization: Bearer $TOKEN" \
-H "identifier: $IDENTIFIER" \
-H "content-type: application/json" \
-d '{"webhook":"https://sua-aplicacao.com.br/webhooks/bandmaster"}'a URL passa a valer para as próximas entregas
URL inválida responde 400 ("Error updating webhook"). Para ler a URL atual,
use GET /phones/webhook, que devolve os mesmos campos do GET /phones/info.
Perfil do número
O perfil é o que o cliente vê no WhatsApp. Todos os campos do PATCH são
opcionais — mande só o que muda.
PATCH /phones/about
/phones/about›headers
- authorization:
- Bearer <token>
- identifier:
- <identifier-do-numero>
curl -X PATCH https://admin.2bebandmaster.com.br/phones/about \
-H "authorization: Bearer $TOKEN" \
-H "identifier: $IDENTIFIER" \
-H "content-type: application/json" \
-d '{
"description": "Atendimento de 9h às 18h",
"email": "contato@sua-empresa.com.br",
"websites": ["https://sua-empresa.com.br"],
"about": { "text": "Respondemos em minutos" }
}'trueGET /phones/about devolve o perfil (address, description, email,
websites, vertical, about) ou 404 ("Profile not found.").
Foto do perfil
A leitura devolve os bytes da imagem, não JSON:
GET /phones/profile-image
/phones/profile-image›headers
- authorization:
- Bearer <token>
- identifier:
- <identifier-do-numero>
curl https://admin.2bebandmaster.com.br/phones/profile-image \
-H "authorization: Bearer $TOKEN" \
-H "identifier: $IDENTIFIER" \
--output foto.jpgcontent-type: image/jpeg — corpo binário
A troca é multipart, no campo photo:
PUT /phones/profile-image
/phones/profile-image›headers
- authorization:
- Bearer <token>
- identifier:
- <identifier-do-numero>
curl -X PUT https://admin.2bebandmaster.com.br/phones/profile-image \
-H "authorization: Bearer $TOKEN" \
-H "identifier: $IDENTIFIER" \
-F "photo=@foto.jpg"trueSem o campo photo, a resposta é 400 ("Image was not sent").
Chave pública
GET /phones/public_key devolve a chave e o estado da assinatura dela;
POST /phones/public_key grava uma nova.
GET /phones/public_key
/phones/public_key›headers
- authorization:
- Bearer <token>
- identifier:
- <identifier-do-numero>
curl https://admin.2bebandmaster.com.br/phones/public_key \
-H "authorization: Bearer $TOKEN" \
-H "identifier: $IDENTIFIER"{
"business_public_key": "-----BEGIN PUBLIC KEY-----\n...",
"business_public_key_signature_status": "VALID"
}Qualquer falha nessas duas rotas vira 400 ("Error updating publicKey" na
gravação).
Chave de assinatura do webhook
É o segredo usado para assinar os webhooks que chegam na sua URL. A leitura diz de onde o segredo vem:
GET /phones/security_key
/phones/security_key›headers
- authorization:
- Bearer <token>
- identifier:
- <identifier-do-numero>
curl https://admin.2bebandmaster.com.br/phones/security_key \
-H "authorization: Bearer $TOKEN" \
-H "identifier: $IDENTIFIER"{
"identifier": "seu-identifier",
"security_key": "um-segredo-de-no-minimo-16-caracteres",
"source": "phone"
}source | Significado |
|---|---|
phone | o número tem chave própria |
company | o número herda a chave padrão da empresa |
none | não há chave — os webhooks chegam sem assinatura |
Para gravar ou rodar a chave, mande uma string de 16 a 256 caracteres. Fora dessa faixa, a resposta é 422.
PUT /phones/security_key
/phones/security_key›headers
- authorization:
- Bearer <token>
- identifier:
- <identifier-do-numero>
curl -X PUT https://admin.2bebandmaster.com.br/phones/security_key \
-H "authorization: Bearer $TOKEN" \
-H "identifier: $IDENTIFIER" \
-H "content-type: application/json" \
-d '{"security_key":"um-segredo-de-no-minimo-16-caracteres"}'{
"identifier": "seu-identifier",
"security_key": "um-segredo-de-no-minimo-16-caracteres",
"source": "phone"
}Mandar null limpa a chave do número: ele volta a herdar a chave da empresa
(ou fica sem assinatura, se a empresa também não tiver).
limpar a chave do número
/phones/security_key›headers
- authorization:
- Bearer <token>
- identifier:
- <identifier-do-numero>
curl -X PUT https://admin.2bebandmaster.com.br/phones/security_key \
-H "authorization: Bearer $TOKEN" \
-H "identifier: $IDENTIFIER" \
-H "content-type: application/json" \
-d '{"security_key":null}'{
"identifier": "seu-identifier",
"security_key": null,
"source": "company"
}503 na rotação
Se a invalidação do cache do segredo falhar, a rotação responde 503. A chave pode ter sido gravada, mas os serviços de entrega ainda não a enxergam — repita a chamada até obter 200 antes de exigir a nova assinatura no seu verificador.
A propagação da chave não é instantânea: veja rotação e cache antes de virar a chave em produção.