Erros e escopos

O que cada código de erro da API /v1 significa, qual status HTTP acompanha e o que fazer. No fim, o catálogo completo de escopos das chaves.

Todo erro da API /v1 vem no mesmo envelope. Decida pelo code, que é estável; message é texto em português para gente ler e pode mudar.

{
  "error": {
    "code": "sandbox_forbidden",
    "message": "Chave de ambiente sandbox não pode acessar esta rota. ..."
  }
}

Erros de qualquer rota

Antes do código de cada rota, toda requisição passa pelas mesmas checagens, nesta ordem. A primeira que falhar responde:

HTTPCódigoQuandoO que fazer
401unauthorizedChave ausente, com prefixo desconhecido, revogada ou expirada.Confira o header e a chave no painel. Chave expirada não volta: gere outra.
403forbidden_scopeA chave não tem o escopo exigido pela rota.Gere uma chave com o escopo (não dá para editar os escopos de uma chave existente).
403sandbox_forbiddenChave sandbox numa rota fora da allow-list do sandbox.Use uma chave de produção (bz_live_) nessa rota.
429rate_limitedA Conta passou do limite de requisições da janela.Espere o Retry-After e use backoff. O limite é da Conta, somando todas as chaves.
403account_deletion_in_progressConta em processo de exclusão; vale só para POST, PUT, PATCH e DELETE.Leituras (GET) seguem funcionando; escritas ficam bloqueadas enquanto a exclusão estiver ativa.
403console_requiredA Conta não tem acesso ativo ao produto (assinatura cancelada ou ausente).Um Administrador da Conta deve regularizar a assinatura em Plano.
500internal_errorFalha interna, inclusive ao consultar o acesso da Conta ou o ambiente da chave. Nunca vira sucesso nem lista vazia.Tente de novo com backoff. Numa escrita sem resposta clara, releia o recurso antes de repetir.

O rate limit é de 120 requisições a cada 10 segundos por Conta, e o 429 traz X-RateLimit-Limit, X-RateLimit-Remaining, X-RateLimit-Reset e Retry-After. Veja Autenticação para chaves, ambientes e expiração.

Erros comuns nas rotas

HTTPCódigoQuandoO que fazer
400invalid_jsonO corpo não é JSON válido (ou passou do tamanho aceito).Corrija o corpo e envie Content-Type: application/json.
404not_foundO recurso não existe, é de outra Conta ou de outro ambiente. A API não distingue os três casos.Confira o id e o ambiente da chave.
422invalid_requestCampo ausente ou inválido. Muitas rotas usam um código mais específico (missing_name, invalid_status, invalid_customer…).Leia message: ela diz qual campo corrigir. Não repita sem corrigir.
409conflict e variantesEstado mudou no meio do caminho: versão desatualizada, atribuição disputada, recurso em uso.Releia o recurso e decida de novo. Não repita cegamente.

Os códigos específicos de cada recurso aparecem na referência e nos guias.

Plano e cobrança

HTTPCódigoQuandoO que fazer
403feature_unavailableOportunidades, demandas e Radar exigem o funil dos planos pagos.Assine o Starter ou o Pro.
422plan_restrictedRecurso de plano pago: transmissões, criar/editar/reordenar Etapas do funil e mudar a etapa (stage_id) de um contato.Assine o Starter ou o Pro. Leitura das Etapas e respostas 1:1 na janela de 24h continuam liberadas.
402quota_exceededEnvio de template além da cota do plano ou com cobrança pendente.Confira Plano e uso; regularize ou espere a renovação.
429free_form_limit_reachedRespostas 1:1 do plano Free esgotadas no mês.Assine um plano pago. Não é rate limit: repetir não adianta.
503billing_unavailableNão foi possível consultar a cobrança. O envio foi recusado antes da Meta.Transitório: tente de novo com backoff.

trial_expired está reservado no contrato, mas nenhuma rota /v1 o devolve hoje: um trial vencido volta às regras do Free e recebe plan_restricted. Trate os dois da mesma forma.

Erros de envio

Nas recusas de POST /api/v1/messages, inclusive as das checagens acima, o objeto error ganha campos para decidir o próximo passo sem adivinhar:

{
  "error": {
    "code": "outside_window",
    "message": "...",
    "outcome": "rejected",
    "retry": "after_correction",
    "next_step": "Use um Template aprovado ou aguarde uma nova mensagem do Contato..."
  }
}
  • outcome: rejected (recusado antes da Meta, nada saiu), accepted ou unknown (pode ter saído).
  • retry: after_correction (corrija antes de repetir), backoff (transitório), reconcile_first (consulte a mensagem e os Eventos antes de repetir, para não duplicar) ou unknown.
  • next_step: o que fazer, em português.
  • meta_code: o código de erro da Meta, quando ela respondeu.

Os códigos de envio (janela de 24h, número desconectado, template) estão em Enviar mensagens.

Catálogo de escopos

Cada chave recebe uma lista de escopos na criação, no formato recurso:ação. Leitura (:read) não inclui escrita, e escrita (:write) não inclui leitura: marque os dois quando a integração precisar. A coluna Rotas conta as rotas /v1 que exigem o escopo, incluindo as do Agente de IA.

Mensagens, eventos e mídia

EscopoPermissãoO que liberaRotas
messages:sendEnviar mensagensDisparar mensagens pela API (POST /v1/messages).1
messages:readLer mensagensConsultar mensagens (GET /v1/messages).2
events:readLer eventosRecuperar Eventos duráveis por cursor (GET /v1/events).1
media:readLer mídiaConsultar mídia recebida (GET /v1/media/:id).2
media:writeEnviar arquivos de mídiaGuardar no BotoZap imagens, vídeos, áudios e documentos a partir de um link, para usar nas mensagens (POST /v1/media).1

Contatos e atendimento

EscopoPermissãoO que liberaRotas
conversations:readLer conversasListar e consultar conversas (GET /v1/conversations).4
conversations:writeGerenciar conversasEncerrar conversas e atribuir responsáveis (PATCH /v1/conversations/:id e assignments).3
contacts:readLer contatosListar e consultar contatos (GET /v1/contacts).5
contacts:writeGerenciar contatosCriar, editar e apagar contatos (POST/PATCH/DELETE /v1/contacts).11
saved_replies:readLer respostas rápidasConsultar as respostas rápidas compartilhadas da Conta.2
saved_replies:writeGerenciar respostas rápidasCriar, editar e apagar as respostas rápidas compartilhadas da Conta.3
inbox:readConsultar notas internas, retornos e organização do InboxConsultar notas internas, retornos e organização do Inbox da Conta.1
inbox:writeGerenciar notas internas, retornos e organização do InboxGerenciar notas internas, retornos e organização do Inbox da Conta.1

CRM, Agenda e Réguas

EscopoPermissãoO que liberaRotas
calendar:readLer calendáriosConsultar conexões e sincronização do Google Calendar da Conta.3
calendar:writeGerenciar calendáriosSelecionar calendários, desconectar e resolver falhas de sincronização da Conta.5
appointments:readLer agendamentosConsultar compromissos, disponibilidade, serviços, jornadas e exceções da Agenda (GET /v1/appointments/*).7
appointments:writeGerenciar agendamentosCriar, editar e apagar compromissos e configurar serviços, jornadas e exceções da Agenda (POST/PATCH/DELETE /v1/appointments/*).10
journeys:writeGerenciar RéguasCriar, editar, pausar e arquivar Réguas; programar e controlar Disparos (/v1/journeys e /v1/journey-runs).6
journeys:readLer RéguasConsultar Réguas e Disparos (GET /v1/journeys e /v1/journey-runs).4
crm:readConsultar CRM e RadarConsultar oportunidades, demandas, pendências e critérios do Radar da Conta.10
crm:writeGerenciar oportunidades e demandasGerenciar oportunidades e demandas e configurar critérios do Radar da Conta.9

Canais e templates

EscopoPermissãoO que liberaRotas
templates:readLer templatesListar e consultar templates (GET /v1/templates).2
templates:writeGerenciar templatesCriar templates (POST /v1/templates).1
numbers:readLer númerosListar números e checar saúde (GET /v1/phone_numbers).5
numbers:writeGerenciar númerosEditar e remover números (PATCH/DELETE /v1/phone_numbers/:id).2

Transmissões

EscopoPermissãoO que liberaRotas
broadcasts:readLer transmissõesListar e consultar broadcasts e destinatários (GET /v1/broadcasts).3
broadcasts:writeGerenciar transmissõesCriar, agendar, enviar e cancelar broadcasts (POST /v1/broadcasts).7

Clientes, equipe e integração

EscopoPermissãoO que liberaRotas
webhooks:readLer webhooksListar webhooks e entregas (GET /v1/webhooks, /webhook_deliveries).3
webhooks:writeGerenciar webhooksCriar, editar, testar e excluir webhooks (POST/PATCH/DELETE).4
customers:readLer clientesListar e consultar clientes e setup links (GET /v1/customers).4
customers:writeGerenciar clientesCriar, editar e apagar clientes e setup links.5
team:readLer equipeListar membros do workspace (GET /v1/users).1
logs:readLer logsConsultar logs de API (GET /v1/api_logs).1

Agente de IA

EscopoPermissãoO que liberaRotas
agents:readLer agentesConsultar agentes, execuções e pendências.71
agents:writeGerenciar agentesConfigurar agentes e controlar atendimento.83