Bandmaster docs

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

VocêGET/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"
Bandmaster200 OK✓✓
{
"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

VocêGET/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"
Bandmaster200 OK✓✓
[
{
  "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

VocêPUT/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"}'
Bandmaster200 OK✓✓

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

VocêPATCH/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" }
}'
Bandmaster200 OK✓✓
true

GET /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

VocêGET/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.jpg
Bandmaster200 OK✓✓

content-type: image/jpeg — corpo binário

A troca é multipart, no campo photo:

PUT /phones/profile-image

VocêPUT/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"
Bandmaster200 OK✓✓
true

Sem 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

VocêGET/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"
Bandmaster200 OK✓✓
{
"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

VocêGET/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"
Bandmaster200 OK✓✓
{
"identifier": "seu-identifier",
"security_key": "um-segredo-de-no-minimo-16-caracteres",
"source": "phone"
}
sourceSignificado
phoneo número tem chave própria
companyo número herda a chave padrão da empresa
nonenã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

VocêPUT/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"}'
Bandmaster200 OK✓✓
{
"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

VocêPUT/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}'
Bandmaster200 OK✓✓
{
"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.

Nesta página