Erros
Formato único de erro, categorias, todos os códigos de motivo (reason) com o significado e como resolver.
Toda resposta de erro da API tem o mesmo corpo e o cabeçalho x-request-id:
{
"error": {
"code": "PAYMENT_REQUIRED",
"message": "Revise os custos antes de continuar.",
"requestId": "7f3c1a9e-2b4d-4c6e-8f10-a1b2c3d4e5f6",
"reason": "BILLING_QUOTE_REQUIRED"
}
}| Campo | Significado |
|---|---|
code | Categoria estável (tabela abaixo). Decida a reação do seu código por ela. |
reason | Motivo de domínio estável, quando houver. Use para tratar casos específicos. |
message | Texto em pt-BR, seguro para mostrar ao usuário. Pode mudar: não compare strings. |
requestId | Identificador da chamada. Guarde nos seus logs e informe ao suporte. |
Respostas de sucesso não têm envelope: o corpo é a própria resposta da operação.
Categorias
code | HTTP | Quando acontece | O que fazer |
|---|---|---|---|
UNAUTHENTICATED | 401 | Chave ausente, inválida, vencida ou revogada. | Confira o cabeçalho e o estado da chave no painel. Não repita. |
FORBIDDEN | 403 | Falta permissão, o número está fora da chave ou o IP não é permitido. | Ajuste a chave (ou crie outra). Não repita. |
NOT_FOUND | 404 | Operação, recurso ou número inexistente ou fora do alcance da chave. | Confira o identificador. |
VALIDATION_FAILED | 400, 413 | Corpo inválido, campo fora do contrato, prazo inválido ou corpo acima de 12 MiB. | Corrija a requisição. Não repita igual. |
CONFLICT | 409 | Conflito com o estado atual (cotação expirada, versão desatualizada...). | Releia o estado e refaça. |
PAYMENT_REQUIRED | 402, 428 | Operação paga sem cotação (428) ou sem saldo (402). | Cote e garanta saldo. Veja Cobrança e cotações. |
RATE_LIMITED | 429 | Limite por minuto da conta ou da chave. | Espere e repita com backoff. Veja Limites. |
UNAVAILABLE | 503, 504 | Indisponibilidade temporária ou prazo excedido. | Repita com backoff. Em operações pagas, confira antes (veja abaixo). |
INTERNAL | 500 | Erro inesperado. | Repita mais tarde e informe o requestId. |
Resultado incerto
Em envios, um 503/504 com reason: OUTCOME_UNCERTAIN ou RPC_DEADLINE_EXCEEDED significa que não sabemos se o WhatsApp aceitou a mensagem. Não reenvie às cegas: consulte o histórico (ListMessages) ou aguarde o evento MessageSent/MessageStatusUpdated. A mesma cotação nunca dispara duas vezes; se precisar reenviar, peça outra cotação. Veja Idempotência.
Erros em streams
Nos streams SSE (/events, /sessions/create, /sessions/resume) os erros depois de aberta a conexão chegam como um evento:
event: error
data: {"error":{"code":"UNAUTHENTICATED","message":"A credencial de API foi revogada.","requestId":"...","reason":"API_AUTH_REVOKED"}}Todos os motivos (reason)
Lista gerada do código do Zynzap. Alguns motivos dependem do recurso (atendimento, CRM, fluxos) e só aparecem nas operações correspondentes.
Autenticação e acesso
| reason | HTTP · code | Mensagem | Como resolver |
|---|---|---|---|
AUTH_REQUIRED | 401 · UNAUTHENTICATED | Sua sessão expirou. Entre novamente para continuar. | Envie a chave no cabeçalho Authorization. |
API_AUTH_REQUIRED | 401 · UNAUTHENTICATED | Credencial de API ausente, inválida ou revogada. | Envie Authorization: Bearer <chave>. Confira se a chave não venceu nem foi revogada e se você não mistura chaves de teste e produção. |
API_AUTH_REVOKED | 401 · UNAUTHENTICATED | A credencial de API foi revogada. | A chave foi revogada (ou o segredo antigo saiu da carência de rotação). Crie ou rotacione a chave no painel. |
AUTH_SESSION_REQUIRED | 403 · FORBIDDEN | Esta ação exige uma sessão do painel. | A chave precisa da permissão/número indicado; crie outra chave com o necessário. |
EMAIL_VERIFICATION_REQUIRED | 403 · FORBIDDEN | Confirme seu e-mail para continuar. | A chave precisa da permissão/número indicado; crie outra chave com o necessário. |
MFA_REQUIRED | 403 · FORBIDDEN | Confirme seu segundo fator para continuar. | A chave precisa da permissão/número indicado; crie outra chave com o necessário. |
REAUTHENTICATION_REQUIRED | 403 · FORBIDDEN | Confirme sua identidade em Perfil e segurança para continuar. | A chave precisa da permissão/número indicado; crie outra chave com o necessário. |
VERIFICATION_AND_MFA_REQUIRED | 403 · FORBIDDEN | Confirme seu e-mail e ative o segundo fator para continuar. | A chave precisa da permissão/número indicado; crie outra chave com o necessário. |
ORIGIN_FORBIDDEN | 403 · FORBIDDEN | Origem não autorizada. | A chave precisa da permissão/número indicado; crie outra chave com o necessário. |
MFA_ENROLLMENT_REQUIRED | 403 · FORBIDDEN | Ative a autenticação em duas etapas antes de continuar. | A chave precisa da permissão/número indicado; crie outra chave com o necessário. |
RATE_LIMITED | 429 · RATE_LIMITED | Muitas solicitações em pouco tempo. Aguarde um instante e tente novamente. | Limite da conta (120 req/min em /rpc; 60/min em cotações e downloads; 10/min em streams). Espere e use backoff exponencial. |
ACCESS_CONTROL_UNAVAILABLE | 503 · UNAVAILABLE | Controle de acesso temporariamente indisponível. | Repita com backoff; em operações pagas, confira antes. |
Requisição
| reason | HTTP · code | Mensagem | Como resolver |
|---|---|---|---|
REQUEST_INVALID | 400 · VALIDATION_FAILED | Requisição inválida. | Corrija o corpo conforme a referência. |
JSON_INVALID | 400 · VALIDATION_FAILED | Corpo da requisição inválido: envie um objeto JSON. | Envie JSON válido com Content-Type: application/json. |
PAYLOAD_TOO_LARGE | 413 · VALIDATION_FAILED | O conteúdo enviado excede o limite permitido. | Reduza o corpo (máximo 12 MiB). Para mídias grandes, use a biblioteca (UploadMedia) e envie por media_asset_id. |
RPC_METHOD_NOT_FOUND | 404 · NOT_FOUND | Operação não disponível. | Confira o nome exato da operação (PascalCase) em GET /v1 ou na referência. |
RPC_METHOD_FORBIDDEN | 403 · FORBIDDEN | Operação não permitida. | A chave precisa da permissão/número indicado; crie outra chave com o necessário. |
RPC_REQUEST_INVALID | 400 · VALIDATION_FAILED | Requisição inválida para esta operação. | O corpo precisa ser {"request": {...}} com campos do contrato em snake_case; arquivos em Base64; até 12 MiB. |
RPC_DEADLINE_INVALID | 400 · VALIDATION_FAILED | Prazo da requisição inválido (1 a 30000 ms). | deadlineMs deve ser um inteiro entre 1 e 30000. |
RPC_DEADLINE_EXCEEDED | 504 · UNAVAILABLE | A operação demorou mais que o esperado. Confira o resultado antes de repetir. | A operação passou do prazo. Consulte o estado (ex.: liste as mensagens/campanhas) antes de repetir. |
OUTCOME_UNCERTAIN | 503 · UNAVAILABLE | Resultado incerto. Confira o estado antes de repetir a operação. | Não sabemos se o WhatsApp aceitou. Não repita às cegas: consulte o estado e só reenvie com uma nova cotação se não houver registro. |
EVENT_CURSOR_INVALID | 400 · VALIDATION_FAILED | Cursor de eventos inválido. | Use apenas o id/cursor numérico recebido de um evento anterior. |
EVENT_SESSION_INVALID | 400 · VALIDATION_FAILED | Lista de sessões inválida. | session_id deve ser UUID (até 1000 repetições). |
EVENT_STREAM_UNAVAILABLE | 503 · UNAVAILABLE | Fluxo de eventos indisponível. | Reconecte com backoff, enviando Last-Event-ID. |
PAIRING_UNAVAILABLE | 503 · UNAVAILABLE | Pareamento temporariamente indisponível. | Tente de novo em alguns segundos. |
NOTICE_INVALID | 400 · VALIDATION_FAILED | Aviso inválido. | Corrija o corpo conforme a referência. |
INVALID_NOTICE | 400 · VALIDATION_FAILED | Aviso inválido. | Corrija o corpo conforme a referência. |
NOTIFICATIONS_UNAVAILABLE | 503 · UNAVAILABLE | Notificações indisponíveis no momento. | Repita com backoff; em operações pagas, confira antes. |
Chaves de API
| reason | HTTP · code | Mensagem | Como resolver |
|---|---|---|---|
API_KEY_INPUT_INVALID | 400 · VALIDATION_FAILED | Nome, permissões e validade são obrigatórios. | Corrija o corpo conforme a referência. |
API_KEY_CREATION_INVALID | 400 · VALIDATION_FAILED | Confira as permissões, dispositivos e quota de criação da chave. | Corrija o corpo conforme a referência. |
API_KEY_DEVICES_INVALID | 400 · VALIDATION_FAILED | Lista de dispositivos da chave inválida. | Corrija o corpo conforme a referência. |
API_KEY_RESTRICTED_SCOPE_INVALID | 400 · VALIDATION_FAILED | Esta permissão não pode ser restrita a dispositivos. | Corrija o corpo conforme a referência. |
API_KEY_EMPTY_DEVICES | 400 · VALIDATION_FAILED | Selecione ao menos um dispositivo. | Corrija o corpo conforme a referência. |
API_KEY_CREATION_SCOPE_REQUIRED | 400 · VALIDATION_FAILED | Criar dispositivos exige a permissão de gerenciar sessões. | Corrija o corpo conforme a referência. |
API_KEY_CREATION_QUOTA_REQUIRED | 400 · VALIDATION_FAILED | Informe a quota de dispositivos que a chave pode criar. | Corrija o corpo conforme a referência. |
API_KEY_INVALID | 400 · VALIDATION_FAILED | Chave inválida. | Corrija o corpo conforme a referência. |
API_KEY_IP_FORBIDDEN | 403 · FORBIDDEN | Este endereço IP não está autorizado a usar esta chave de API. | Chame a partir de um IP da lista da chave ou edite a lista em API e integrações. |
API_KEY_RATE_LIMITED | 429 · RATE_LIMITED | Limite de solicitações por minuto desta chave atingido. Tente novamente em instantes. | Aguarde e tente de novo com intervalo crescente; ou aumente o limite da chave (até 120/min). |
API_KEY_EXPIRY_INVALID | 400 · VALIDATION_FAILED | Escolha uma validade entre 1 dia e 3 anos, ou sem expiração. | Corrija o corpo conforme a referência. |
API_KEY_IPS_INVALID | 400 · VALIDATION_FAILED | Lista de IPs inválida: use endereços ou faixas CIDR (até 50). | Corrija o corpo conforme a referência. |
API_KEY_RATE_INVALID | 400 · VALIDATION_FAILED | Limite por minuto inválido: use de 1 a 120, ou deixe em branco. | Corrija o corpo conforme a referência. |
API_KEY_UPDATE_INVALID | 400 · VALIDATION_FAILED | Confira os dados da chave. | Corrija o corpo conforme a referência. |
API_KEY_ROTATION_INVALID | 400 · VALIDATION_FAILED | Escolha quando a chave atual deve parar de funcionar. | Corrija o corpo conforme a referência. |
Webhooks (cadastro no painel)
| reason | HTTP · code | Mensagem | Como resolver |
|---|---|---|---|
WEBHOOK_INVALID | 400 · VALIDATION_FAILED | Confira os dados do webhook. | Corrija o corpo conforme a referência. |
WEBHOOK_URL_INVALID | 400 · VALIDATION_FAILED | Endereço inválido. Use uma URL https:// completa, sem usuário e senha. | Corrija o corpo conforme a referência. |
WEBHOOK_URL_INSECURE | 400 · VALIDATION_FAILED | Use um endereço https://. | Corrija o corpo conforme a referência. |
WEBHOOK_URL_PORT | 400 · VALIDATION_FAILED | Porta não permitida: use a 443 ou a 8443. | Corrija o corpo conforme a referência. |
WEBHOOK_URL_PRIVATE | 400 · VALIDATION_FAILED | Endereços locais, de rede privada ou reservados não são permitidos. | Corrija o corpo conforme a referência. |
WEBHOOK_URL_UNRESOLVED | 400 · VALIDATION_FAILED | Não foi possível encontrar este endereço (DNS). Confira o domínio. | Corrija o corpo conforme a referência. |
WEBHOOK_EVENTS_INVALID | 400 · VALIDATION_FAILED | Escolha ao menos um evento válido. | Corrija o corpo conforme a referência. |
WEBHOOK_EVENTS_FORBIDDEN | 403 · FORBIDDEN | Esta chave não pode receber um ou mais desses eventos (permissões ou números da chave). | A chave precisa da permissão/número indicado; crie outra chave com o necessário. |
WEBHOOK_KEY_CANNOT_READ_EVENTS | 403 · FORBIDDEN | Esta chave não pode receber eventos: falta a permissão Receber eventos ou ela foi revogada ou expirou. | A chave precisa da permissão/número indicado; crie outra chave com o necessário. |
WEBHOOK_LIMIT_REACHED | 409 · CONFLICT | Cada chave aceita até 5 webhooks. | Releia o estado atual e tente de novo. |
WEBHOOK_DUPLICATE | 409 · CONFLICT | Esta chave já tem um webhook para este endereço. | Releia o estado atual e tente de novo. |
WEBHOOK_NOT_FOUND | 404 · NOT_FOUND | Webhook não encontrado. | Confira o identificador e se ele está no alcance da chave. |
WEBHOOK_DISABLED | 409 · CONFLICT | Ative o webhook antes de enviar um teste. | Releia o estado atual e tente de novo. |
WEBHOOK_TEST_RATE_LIMITED | 429 · RATE_LIMITED | Aguarde um minuto para enviar outro teste a este webhook. | Espere e repita com backoff. |
WEBHOOKS_UNAVAILABLE | 503 · UNAVAILABLE | Webhooks ainda não foram configurados neste servidor. | Repita com backoff; em operações pagas, confira antes. |
DEVICE_UNAVAILABLE | 404 · NOT_FOUND | Dispositivo indisponível. | O número não está pronto. Confira a conexão em GetSession. |
Números
| reason | HTTP · code | Mensagem | Como resolver |
|---|---|---|---|
SESSION_NOT_FOUND | 404 · NOT_FOUND | Este número foi removido ou você não tem mais acesso a ele. Não é possível enviar mensagens por ele. | O número não existe ou não está liberado para a chave. Liste com ListSessions. |
SESSION_DISCONNECTED | 409 · CONFLICT | Este número está desconectado. Reconecte-o em Dispositivos para enviar mensagens. | O número está desconectado. Reconecte com POST /sessions/resume ou pelo painel. |
IA
| reason | HTTP · code | Mensagem | Como resolver |
|---|---|---|---|
AI_CONFIG_INVALID | 400 · VALIDATION_FAILED | Configuração inválida. | Corrija o corpo conforme a referência. |
AI_CONFIG_REJECTED | 400 · VALIDATION_FAILED | Não foi possível salvar. Confira provedor, modelo e credencial. | Corrija o corpo conforme a referência. |
AI_CONFIG_UNAVAILABLE | 503 · UNAVAILABLE | Não foi possível acessar a configuração de IA. | Repita com backoff; em operações pagas, confira antes. |
AI_PROVIDER_NOT_CONFIGURED | 409 · CONFLICT | Configure e ative o provedor de IA da empresa em Assistente IA antes de usar este recurso. | Configure e ative o provedor de IA no painel (Assistente IA) antes de cotar. |
Mídia
| reason | HTTP · code | Mensagem | Como resolver |
|---|---|---|---|
MEDIA_NOT_FOUND | 404 · NOT_FOUND | Mídia não encontrada. | A mídia não existe ou é de outra conta. Use o id de ListMedia/UploadMedia. |
MEDIA_STORAGE_UNAVAILABLE | 503 · UNAVAILABLE | Armazenamento de mídia indisponível. | Repita com backoff; em operações pagas, confira antes. |
MEDIA_DOWNLOAD_UNAVAILABLE | 503 · UNAVAILABLE | Download de mídia indisponível. | Repita com backoff; em operações pagas, confira antes. |
MEDIA_DEADLINE_EXPIRED | 504 · UNAVAILABLE | O download da mídia expirou. | Repita com backoff; em operações pagas, confira antes. |
MEDIA_TOO_LARGE | 413 · VALIDATION_FAILED | A mídia excede o tamanho máximo. | Reduza o arquivo ou use outro formato. |
INVALID_MEDIA_SIZE | 400 · VALIDATION_FAILED | Tamanho de mídia inválido. | Corrija o corpo conforme a referência. |
Atendimento
| reason | HTTP · code | Mensagem | Como resolver |
|---|---|---|---|
ASSIGNMENT_CONFLICT | 409 · CONFLICT | Outra pessoa assumiu esta conversa. Atualizamos os dados; confira antes de continuar. | Outra pessoa mudou o responsável. Releia a conversa e use o assignment_version atual. |
CONVERSATION_HAS_NO_CONTACT | 409 · CONFLICT | Esta conversa não tem um contato com telefone confiável para editar. | Releia o estado atual e tente de novo. |
MEDIA_UNAVAILABLE | 404 · NOT_FOUND | A mídia desta mensagem não está disponível para download. | Confira o identificador e se ele está no alcance da chave. |
AUDIO_TRANSCODE_UNAVAILABLE | 503 · UNAVAILABLE | A conversão de áudio está indisponível no momento. Tente novamente mais tarde. | Repita com backoff; em operações pagas, confira antes. |
AUDIO_TRANSCODE_FAILED | 400 · VALIDATION_FAILED | Não foi possível converter o áudio. Grave novamente. | Corrija o corpo conforme a referência. |
AUDIO_INVALID | 400 · VALIDATION_FAILED | Áudio inválido ou vazio. Grave novamente. | Corrija o corpo conforme a referência. |
AUDIO_TOO_LARGE | 413 · VALIDATION_FAILED | O áudio excede o limite de 16 MB ou 15 minutos. | Corrija o corpo conforme a referência. |
STICKER_FORMAT_INVALID | 400 · VALIDATION_FAILED | Figurinhas precisam ser imagens WebP. | Corrija o corpo conforme a referência. |
STICKER_TOO_LARGE | 413 · VALIDATION_FAILED | Figurinha grande demais: até 5 MB (animadas: 500 KB e 512×512). | Corrija o corpo conforme a referência. |
STICKER_CONVERT_UNAVAILABLE | 503 · UNAVAILABLE | A conversão de figurinhas está indisponível no momento. | Repita com backoff; em operações pagas, confira antes. |
IMAGE_FORMAT_INVALID | 400 · VALIDATION_FAILED | Imagens precisam ser JPEG, PNG ou WebP com até 16 MB. | Corrija o corpo conforme a referência. |
VIDEO_FORMAT_INVALID | 400 · VALIDATION_FAILED | Vídeos precisam ser MP4 com até 64 MB. | Corrija o corpo conforme a referência. |
DOCUMENT_TOO_LARGE | 413 · VALIDATION_FAILED | Documentos podem ter no máximo 64 MB. | Corrija o corpo conforme a referência. |
STORAGE_ALLOWANCE_REACHED | 402 · PAYMENT_REQUIRED | O armazenamento contratado foi atingido. Amplie o pacote ou remova mídias. | O armazenamento do plano acabou. Apague mídias ou contrate mais espaço. |
Cobrança
| reason | HTTP · code | Mensagem | Como resolver |
|---|---|---|---|
BILLING_UNAVAILABLE | 503 · UNAVAILABLE | Cobrança temporariamente indisponível. | Repita com backoff; em operações pagas, confira antes. |
BILLING_INPUT_INVALID | 400 · VALIDATION_FAILED | Dados de cobrança inválidos. | Envie method (string) e request (objeto). |
BILLING_METHOD_INVALID | 400 · VALIDATION_FAILED | Operação sem tarifa definida. | Só operações pagas são cotáveis (veja a lista em Cobrança e cotações). |
BILLING_MODE_INVALID | 400 · VALIDATION_FAILED | Modo de pagamento inválido. | paymentMode aceita budget ou individual. |
BILLING_QUOTE_INVALID | 400 · VALIDATION_FAILED | Cotação inválida. | billing.quoteId deve ser o UUID devolvido pela cotação. |
BILLING_QUOTE_REQUIRED | 428 · PAYMENT_REQUIRED | Revise os custos da operação antes de continuar. | Peça a cotação em POST /billing/quotes e envie billing.quoteId junto. |
BILLING_QUOTE_EXPIRED | 409 · CONFLICT | A cotação expirou. Revise os custos novamente. | Cotações valem 15 minutos. Peça outra. |
BILLING_QUOTE_MISMATCH | 409 · CONFLICT | A cotação não corresponde a esta operação. | O request mudou depois da cotação (texto, destino, número...). Cote de novo com o corpo final. |
BILLING_QUOTE_CAP_EXCEEDED | 409 · CONFLICT | A operação excede o valor revisado. Revise os custos novamente. | Releia o estado atual e tente de novo. |
BILLING_PAYMENT_REQUIRED | 402 · PAYMENT_REQUIRED | Saldo insuficiente. Adicione créditos ou ajuste o plano. | Saldo insuficiente. Compre créditos ou habilite o excedente em Plano e consumo. |
CARD_PAYMENT_METHOD_REQUIRED | 402 · PAYMENT_REQUIRED | Cadastre um cartão para habilitar esta opção. | Cote a operação e garanta saldo. |
MINIMUM_CREDIT_CONFIRMATION_REQUIRED | 402 · PAYMENT_REQUIRED | Confirme a compra do crédito mínimo para continuar. | Cote a operação e garanta saldo. |
BILLING_OPERATION_REJECTED | 403 · FORBIDDEN | A operação foi recusada pela cobrança. | A chave precisa da permissão/número indicado; crie outra chave com o necessário. |
BILLING_TENANT_INVALID | 403 · FORBIDDEN | Conta de cobrança inválida. | A chave precisa da permissão/número indicado; crie outra chave com o necessário. |
BILLING_CATALOG_UNAVAILABLE | 503 · UNAVAILABLE | Catálogo comercial indisponível. | Repita com backoff; em operações pagas, confira antes. |
BILLING_CATALOG_TEST_ONLY | 503 · UNAVAILABLE | Catálogo comercial em modo de teste. | Repita com backoff; em operações pagas, confira antes. |
BILLING_LIVE_NOT_CONFIGURED | 503 · UNAVAILABLE | Cobrança ainda não configurada. | Repita com backoff; em operações pagas, confira antes. |
BILLING_TARIFF_UNAVAILABLE | 503 · UNAVAILABLE | Tarifa indisponível no momento. | Repita com backoff; em operações pagas, confira antes. |
BILLING_AI_TARIFF_UNAVAILABLE | 503 · UNAVAILABLE | Tarifa de IA indisponível no momento. | Repita com backoff; em operações pagas, confira antes. |
BILLING_RECONCILIATION_REQUIRED | 409 · CONFLICT | Há uma operação anterior em conciliação. Aguarde antes de repetir. | Releia o estado atual e tente de novo. |
BILLING_IDEMPOTENCY_CONFLICT | 409 · CONFLICT | Esta operação já foi registrada. | Esta cotação já foi usada com outro conteúdo. Cada cotação executa uma única operação. |
COMMERCIAL_CATALOG_NOT_PUBLISHED | 503 · UNAVAILABLE | Catálogo comercial não publicado. | Repita com backoff; em operações pagas, confira antes. |
CORE_BILLING_NOT_READY | 503 · UNAVAILABLE | Cobrança ainda não está pronta. | Repita com backoff; em operações pagas, confira antes. |
CHECKOUT_EXPIRED | 409 · CONFLICT | O checkout expirou. Inicie um novo pagamento. | Releia o estado atual e tente de novo. |
CHECKOUT_RECONCILIATION_REQUIRED | 409 · CONFLICT | Um pagamento anterior ainda está em conciliação. | Releia o estado atual e tente de novo. |
CHECKOUT_SUBSCRIPTION_CHANGED | 409 · CONFLICT | A assinatura mudou. Revise e tente novamente. | Releia o estado atual e tente de novo. |
CHECKOUT_QUOTE_PAYMENT_CHANGED | 409 · CONFLICT | O pagamento da cotação mudou. Revise novamente. | Releia o estado atual e tente de novo. |
CHECKOUT_CREDIT_PAYMENT_CHANGED | 409 · CONFLICT | O pagamento de crédito mudou. Revise novamente. | Releia o estado atual e tente de novo. |
CREDIT_AMOUNT_INVALID | 400 · VALIDATION_FAILED | Valor de crédito inválido. | Corrija o corpo conforme a referência. |
CREDIT_ALREADY_SUFFICIENT | 400 · VALIDATION_FAILED | O saldo atual já é suficiente. | Corrija o corpo conforme a referência. |
CREDIT_MINT_FORBIDDEN | 403 · FORBIDDEN | Emissão de crédito não permitida. | A chave precisa da permissão/número indicado; crie outra chave com o necessário. |
OFFER_NOT_AVAILABLE | 400 · VALIDATION_FAILED | Oferta indisponível. | Corrija o corpo conforme a referência. |
EXTRA_SLOTS_INVALID | 400 · VALIDATION_FAILED | Quantidade de dispositivos extras inválida. | Corrija o corpo conforme a referência. |
STORAGE_QUANTITY_INVALID | 400 · VALIDATION_FAILED | Quantidade de armazenamento inválida. | Corrija o corpo conforme a referência. |
SUBSCRIPTION_ALREADY_EXISTS | 409 · CONFLICT | Já existe uma assinatura ativa. | Releia o estado atual e tente de novo. |
DEVICE_SUBSCRIPTION_ALREADY_EXISTS | 409 · CONFLICT | Já existe uma assinatura de dispositivos. | Releia o estado atual e tente de novo. |
STORAGE_SUBSCRIPTION_ALREADY_EXISTS | 409 · CONFLICT | Já existe uma assinatura de armazenamento. | Releia o estado atual e tente de novo. |
DEVICE_SLOT_LIMIT_REACHED | 402 · PAYMENT_REQUIRED | Limite de dispositivos do plano atingido. Contrate um plano ou vagas extras; sem plano, os 2 dispositivos gratuitos exigem o segundo fator ativo. | O plano não tem vaga para outro número. Libere uma vaga ou contrate mais. |
OVERAGE_INPUT_INVALID | 400 · VALIDATION_FAILED | Configuração de excedente inválida. | Corrija o corpo conforme a referência. |
OVERAGE_CAP_INVALID | 400 · VALIDATION_FAILED | Limite de excedente inválido. | Corrija o corpo conforme a referência. |
OVERAGE_CAP_BELOW_COMMITTED | 409 · CONFLICT | O limite é menor que o valor já comprometido. | Releia o estado atual e tente de novo. |
OVERAGE_AUTHORIZATION_FORBIDDEN | 403 · FORBIDDEN | Autorização de excedente não permitida. | A chave precisa da permissão/número indicado; crie outra chave com o necessário. |
OVERAGE_IS_BILLED_MONTHLY | 410 · NOT_FOUND | O excedente é cobrado na fatura mensal. | Confira o identificador e se ele está no alcance da chave. |
OPERATION_DRAFT_UNAVAILABLE | 409 · CONFLICT | A operação revisada não está mais disponível. | Releia o estado atual e tente de novo. |
SUPPORT_INPUT_INVALID | 400 · VALIDATION_FAILED | Solicitação de suporte inválida. | Corrija o corpo conforme a referência. |
SUPPORT_REQUEST_UNAVAILABLE | 409 · CONFLICT | Solicitação de suporte indisponível. | Releia o estado atual e tente de novo. |
SUPPORT_TRANSITION_INVALID | 409 · CONFLICT | Esta solicitação já foi decidida. | Releia o estado atual e tente de novo. |
SUPPORT_OWNER_APPROVAL_REQUIRED | 403 · FORBIDDEN | Exige aprovação do titular da conta. | A chave precisa da permissão/número indicado; crie outra chave com o necessário. |
STRIPE_NOT_CONFIGURED | 503 · UNAVAILABLE | Pagamentos indisponíveis no momento. | Repita com backoff; em operações pagas, confira antes. |
STRIPE_DATABASE_NOT_CONFIGURED | 503 · UNAVAILABLE | Pagamentos indisponíveis no momento. | Repita com backoff; em operações pagas, confira antes. |
SESSION_OWNER_MISMATCH | 403 · FORBIDDEN | Este dispositivo pertence a outra conta. | A chave precisa da permissão/número indicado; crie outra chave com o necessário. |
TENANT_CONTEXT_MISMATCH | 403 · FORBIDDEN | Contexto de conta inválido. | A chave precisa da permissão/número indicado; crie outra chave com o necessário. |
Atendimento: anexos, telefones e chamadas
| reason | HTTP · code | Mensagem | Como resolver |
|---|---|---|---|
PHONE_INVALID | 400 · VALIDATION_FAILED | Telefone inválido. Confira o país (DDI), o código de área e o número. | Use só dígitos com DDI e DDD (ex.: 5511987654321). |
UPLOAD_EMPTY | 400 · VALIDATION_FAILED | O arquivo está vazio. | Corrija o corpo conforme a referência. |
UPLOAD_TYPE_INVALID | 415 · VALIDATION_FAILED | Formato de arquivo não aceito para este tipo de anexo. | Corrija o corpo conforme a referência. |
UPLOAD_TOO_LARGE | 413 · VALIDATION_FAILED | Anexo acima do limite: imagem e voz até 16 MB, vídeo e documento até 64 MB. | Corrija o corpo conforme a referência. |
UPLOAD_INVALID | 400 · VALIDATION_FAILED | Envio de anexo inválido. Tente anexar o arquivo de novo. | Corrija o corpo conforme a referência. |
UPLOAD_UNAVAILABLE | 503 · UNAVAILABLE | O envio de anexos está indisponível no momento. Tente novamente em instantes. | Repita com backoff; em operações pagas, confira antes. |
SESSION_OWNER_INVALID | 400 · VALIDATION_FAILED | Escolha um número desta empresa e um membro ativo que atenda por ele. | Corrija o corpo conforme a referência. |
SESSION_OWNER_NO_ACCESS | 409 · CONFLICT | Este membro não tem acesso ao número. Libere o número em Acesso antes de delegar. | Releia o estado atual e tente de novo. |
SESSION_OWNERS_UNAVAILABLE | 503 · UNAVAILABLE | Responsáveis por número ainda não estão disponíveis. Tente novamente mais tarde. | Repita com backoff; em operações pagas, confira antes. |
INBOX_SETTINGS_INVALID | 400 · VALIDATION_FAILED | Confira as configurações do atendimento. | Corrija o corpo conforme a referência. |
INBOX_SETTINGS_UNAVAILABLE | 503 · UNAVAILABLE | As configurações do atendimento estão indisponíveis no momento. | Repita com backoff; em operações pagas, confira antes. |
CONVERSATION_NOT_GROUP | 409 · CONFLICT | Esta conversa não é de um grupo. | Releia o estado atual e tente de novo. |
OWNER_MANAGER_REQUIRED | 403 · FORBIDDEN | Só administradores e gestores definem o responsável por um número. | A chave precisa da permissão/número indicado; crie outra chave com o necessário. |
OWNER_MEMBER_INVALID | 400 · VALIDATION_FAILED | O responsável precisa ser um membro ativo (administrador, gestor ou atendente). | Corrija o corpo conforme a referência. |
OWNER_CHANNEL_REQUIRED | 409 · CONFLICT | Este atendente não tem acesso ao número. Libere o número em Acesso antes de delegar. | Releia o estado atual e tente de novo. |
OWNER_IMMUTABLE | 409 · CONFLICT | Este responsável não pode ser alterado desta forma. | Releia o estado atual e tente de novo. |
INBOX_SETTINGS_MANAGER_REQUIRED | 403 · FORBIDDEN | Só administradores e gestores alteram as configurações do atendimento. | A chave precisa da permissão/número indicado; crie outra chave com o necessário. |
INBOX_SETTINGS_IMMUTABLE | 409 · CONFLICT | Estas configurações não podem ser alteradas desta forma. | Releia o estado atual e tente de novo. |
CALLS_UNAVAILABLE | 503 · UNAVAILABLE | Chamadas indisponíveis no momento. | Repita com backoff; em operações pagas, confira antes. |
CALL_NOT_FOUND | 404 · NOT_FOUND | Esta chamada já terminou. | Confira o identificador e se ele está no alcance da chave. |
CALL_ALREADY_ACCEPTED | 409 · CONFLICT | Outra pessoa já atendeu esta chamada. | Releia o estado atual e tente de novo. |
CALL_OWNER_ONLY | 403 · FORBIDDEN | Este número tem responsável: só ele (ou um administrador) atende as chamadas. | A chave precisa da permissão/número indicado; crie outra chave com o necessário. |
CALL_SESSION_OFFLINE | 409 · CONFLICT | O número desta conversa está desconectado. | Releia o estado atual e tente de novo. |
CALL_GROUP_UNSUPPORTED | 400 · VALIDATION_FAILED | Chamadas em grupo não são atendidas pelo painel. | Corrija o corpo conforme a referência. |
CALL_MEDIA_TOKEN_INVALID | 403 · FORBIDDEN | Acesso à mídia da chamada expirou. Atenda novamente. | A chave precisa da permissão/número indicado; crie outra chave com o necessário. |
CALL_FAILED | 502 · UNAVAILABLE | Não foi possível conectar a chamada. Tente de novo. | Repita com backoff; em operações pagas, confira antes. |
API_KEY_DEVICES_EXCEED_ROLE | 403 · FORBIDDEN | Selecione apenas números liberados para você. | A chave precisa da permissão/número indicado; crie outra chave com o necessário. |
Público: listas e segmentos
| reason | HTTP · code | Mensagem | Como resolver |
|---|---|---|---|
SEGMENT_RULE_INVALID | 400 · VALIDATION_FAILED | Complete a regra do segmento: há uma condição sem valor ou com valor inválido. | Corrija o corpo conforme a referência. |
SEGMENT_INVALID | 400 · VALIDATION_FAILED | Segmento inválido. Revise o nome e as regras. | Corrija o corpo conforme a referência. |
AUDIENCE_LIST_INVALID | 400 · VALIDATION_FAILED | Lista inválida. Revise o nome e os contatos escolhidos. | Corrija o corpo conforme a referência. |
AUDIENCE_EMPTY | 400 · VALIDATION_FAILED | Escolha pelo menos uma lista, segmento, etiqueta ou filtro. | Corrija o corpo conforme a referência. |
AUDIENCE_INVALID | 400 · VALIDATION_FAILED | Público inválido: revise as listas, segmentos e etiquetas escolhidos. | Corrija o corpo conforme a referência. |
AUDIENCE_TOO_LARGE | 400 · VALIDATION_FAILED | O público passou do limite de destinatários por campanha. Restrinja as fontes ou o filtro. | Corrija o corpo conforme a referência. |
AUDIENCE_LIST_ARCHIVED | 409 · CONFLICT | A lista está arquivada. Restaure-a antes de adicionar contatos. | Releia o estado atual e tente de novo. |
AUDIENCE_MEMBERS_INVALID | 400 · VALIDATION_FAILED | Quantidade de contatos fora do limite por operação. Envie em partes menores. | Corrija o corpo conforme a referência. |
AUDIENCE_COMM_INVALID | 400 · VALIDATION_FAILED | Não foi possível alterar o status de comunicação. Revise os contatos e o motivo. | Corrija o corpo conforme a referência. |
AUDIENCE_SETTINGS_INVALID | 400 · VALIDATION_FAILED | Regras de envio inválidas. Revise palavras-chave, frequência e janela de atribuição. | Corrija o corpo conforme a referência. |
AUDIENCE_DUPLICATE_NAME | 409 · CONFLICT | Já existe uma lista ou segmento com esse nome. | Releia o estado atual e tente de novo. |
AUDIENCE_REFERENCE_INVALID | 400 · VALIDATION_FAILED | Uma etiqueta, lista, campo ou etapa usada aqui não existe mais. | Corrija o corpo conforme a referência. |
AUDIENCE_VALUE_INVALID | 400 · VALIDATION_FAILED | Há um valor inválido. Revise os dados informados. | Corrija o corpo conforme a referência. |
Recuperação
| reason | HTTP · code | Mensagem | Como resolver |
|---|---|---|---|
RECOVERY_INVALID | 400 · VALIDATION_FAILED | Sequência inválida. Revise nome, descrição, segmento e contatos. | Corrija o corpo conforme a referência. |
RECOVERY_STEPS_INVALID | 400 · VALIDATION_FAILED | Revise as etapas: cada mensagem precisa de texto e cada tarefa de título e prazo válidos. | Corrija o corpo conforme a referência. |
RECOVERY_ARCHIVED | 409 · CONFLICT | A sequência está arquivada. | Releia o estado atual e tente de novo. |
RECOVERY_NOT_ACTIVE | 409 · CONFLICT | Esta execução já terminou. | Releia o estado atual e tente de novo. |
RECOVERY_NOT_ARCHIVED | 409 · CONFLICT | Arquive a sequência antes de excluí-la permanentemente. | Releia o estado atual e tente de novo. |
RECOVERY_DELETE_CONFIRM_MISMATCH | 400 · VALIDATION_FAILED | Digite o nome da sequência exatamente como aparece para confirmar. | Corrija o corpo conforme a referência. |
CRM
| reason | HTTP · code | Mensagem | Como resolver |
|---|---|---|---|
CRM_UNAVAILABLE | 503 · UNAVAILABLE | CRM indisponível no momento. | Repita com backoff; em operações pagas, confira antes. |
CRM_LOSS_REASON_REQUIRED | 400 · VALIDATION_FAILED | Informe o motivo da perda. | Corrija o corpo conforme a referência. |
CRM_LOSS_REASON_INVALID | 400 · VALIDATION_FAILED | Escolha um motivo de perda da lista. | Corrija o corpo conforme a referência. |
CRM_LOSS_REASON_LABEL_INVALID | 400 · VALIDATION_FAILED | O motivo precisa ter de 1 a 120 caracteres. | Corrija o corpo conforme a referência. |
CRM_LOSS_REASON_EXISTS | 409 · CONFLICT | Já existe um motivo de perda com esse texto. | Releia o estado atual e tente de novo. |
CRM_LOSS_NOTE_TOO_LONG | 400 · VALIDATION_FAILED | A observação da perda aceita até 500 caracteres. | Corrija o corpo conforme a referência. |
CRM_FIELD_REQUIRED | 400 · VALIDATION_FAILED | Preencha os campos obrigatórios. | Corrija o corpo conforme a referência. |
CRM_FIELD_INVALID | 400 · VALIDATION_FAILED | Algum campo personalizado tem um valor inválido para o tipo dele. | Corrija o corpo conforme a referência. |
CRM_FIELD_UNKNOWN | 400 · VALIDATION_FAILED | Campo personalizado desconhecido ou arquivado. | Corrija o corpo conforme a referência. |
CRM_FIELD_KEY_EXISTS | 409 · CONFLICT | Já existe um campo com essa chave. | Releia o estado atual e tente de novo. |
CRM_FIELD_KEY_INVALID | 400 · VALIDATION_FAILED | Use na chave letras minúsculas, números e _ (até 40), começando por letra. | Corrija o corpo conforme a referência. |
CRM_FIELD_LABEL_INVALID | 400 · VALIDATION_FAILED | O nome do campo precisa ter de 1 a 80 caracteres. | Corrija o corpo conforme a referência. |
CRM_FIELD_IMMUTABLE | 409 · CONFLICT | A chave e o tipo de um campo não mudam. Arquive e crie outro. | Releia o estado atual e tente de novo. |
CRM_FIELD_OPTION_REMOVED | 409 · CONFLICT | Opções existentes não podem ser removidas. Arquive o campo para trocar a lista. | Releia o estado atual e tente de novo. |
CRM_FIELD_OPTIONS_REQUIRED | 400 · VALIDATION_FAILED | Listas precisam de 1 a 100 opções. | Corrija o corpo conforme a referência. |
CRM_FIELD_OPTION_DUPLICATE | 400 · VALIDATION_FAILED | Há opções repetidas na lista. | Corrija o corpo conforme a referência. |
CRM_FIELD_OPTION_INVALID | 400 · VALIDATION_FAILED | Opções de lista múltipla não podem conter vírgula. | Corrija o corpo conforme a referência. |
CRM_FIELD_OPTION_TOO_LONG | 400 · VALIDATION_FAILED | Cada opção aceita até 80 caracteres. | Corrija o corpo conforme a referência. |
CRM_FIELD_LIMIT | 400 · VALIDATION_FAILED | Limite de 100 campos personalizados atingido. | Corrija o corpo conforme a referência. |
CRM_TAG_EXISTS | 409 · CONFLICT | Já existe uma etiqueta com esse nome. | Releia o estado atual e tente de novo. |
CRM_TAG_ARCHIVED | 409 · CONFLICT | Essa etiqueta está arquivada. | Releia o estado atual e tente de novo. |
CRM_TAG_UNKNOWN | 400 · VALIDATION_FAILED | Etiqueta não encontrada. | Corrija o corpo conforme a referência. |
CRM_TAG_NAME_REQUIRED | 400 · VALIDATION_FAILED | Informe o nome da etiqueta. | Corrija o corpo conforme a referência. |
CRM_TAG_NAME_TOO_LONG | 400 · VALIDATION_FAILED | O nome da etiqueta aceita até 64 caracteres. | Corrija o corpo conforme a referência. |
CRM_TAG_NAME_INVALID | 400 · VALIDATION_FAILED | Nome de etiqueta inválido. | Corrija o corpo conforme a referência. |
CRM_TAG_TARGET_REQUIRED | 400 · VALIDATION_FAILED | Selecione ao menos um contato ou conversa. | Corrija o corpo conforme a referência. |
CRM_TAGS_REQUIRED | 400 · VALIDATION_FAILED | Selecione ao menos uma etiqueta. | Corrija o corpo conforme a referência. |
CRM_TAG_ADD_AND_REMOVE | 400 · VALIDATION_FAILED | Uma etiqueta não pode ser aplicada e removida ao mesmo tempo. | Corrija o corpo conforme a referência. |
CRM_BULK_LIMIT | 400 · VALIDATION_FAILED | Selecione até 500 contatos e 50 etiquetas por vez. | Corrija o corpo conforme a referência. |
CRM_COLOR_INVALID | 400 · VALIDATION_FAILED | Cor inválida. | Corrija o corpo conforme a referência. |
CRM_DUPLICATE | 409 · CONFLICT | Já existe um item com esse nome. | Releia o estado atual e tente de novo. |
CRM_PIPELINE_EXISTS | 409 · CONFLICT | Já existe um funil com esse nome. | Releia o estado atual e tente de novo. |
CRM_PIPELINE_INVALID | 400 · VALIDATION_FAILED | Funil não encontrado. | Corrija o corpo conforme a referência. |
CRM_PIPELINE_NAME_INVALID | 400 · VALIDATION_FAILED | O nome do funil precisa ter de 1 a 80 caracteres. | Corrija o corpo conforme a referência. |
CRM_PIPELINE_CLOSED_STAGES | 400 · VALIDATION_FAILED | O funil precisa de exatamente uma etapa de ganho e uma de perda. | Corrija o corpo conforme a referência. |
CRM_PIPELINE_OPEN_STAGE_REQUIRED | 400 · VALIDATION_FAILED | O funil precisa de ao menos uma etapa em andamento. | Corrija o corpo conforme a referência. |
CRM_PIPELINE_DEFAULT_ARCHIVED | 409 · CONFLICT | Escolha outro funil padrão antes de arquivar este. | Releia o estado atual e tente de novo. |
CRM_PIPELINE_TOO_MANY_STAGES | 400 · VALIDATION_FAILED | Um funil aceita até 30 etapas. | Corrija o corpo conforme a referência. |
CRM_STAGE_INVALID | 400 · VALIDATION_FAILED | Etapa inválida para este funil. | Corrija o corpo conforme a referência. |
CRM_STAGE_NOT_FOUND | 404 · NOT_FOUND | Etapa não encontrada. | Confira o identificador e se ele está no alcance da chave. |
CRM_STAGE_IN_USE | 409 · CONFLICT | Mova as oportunidades antes de remover a etapa. | Releia o estado atual e tente de novo. |
CRM_STAGE_KIND_IN_USE | 409 · CONFLICT | Mova as oportunidades antes de mudar o tipo da etapa. | Releia o estado atual e tente de novo. |
CRM_STAGE_NAME_DUPLICATE | 400 · VALIDATION_FAILED | Há etapas com o mesmo nome. | Corrija o corpo conforme a referência. |
CRM_STAGE_NAME_INVALID | 400 · VALIDATION_FAILED | O nome da etapa precisa ter de 1 a 60 caracteres. | Corrija o corpo conforme a referência. |
CRM_STAGE_PROBABILITY_INVALID | 400 · VALIDATION_FAILED | Probabilidade de 0 a 100 (ganho = 100, perdido = 0). | Corrija o corpo conforme a referência. |
CRM_OPPORTUNITY_TITLE_INVALID | 400 · VALIDATION_FAILED | O título precisa ter de 1 a 160 caracteres. | Corrija o corpo conforme a referência. |
CRM_OPPORTUNITY_VALUE_INVALID | 400 · VALIDATION_FAILED | Valor inválido. | Corrija o corpo conforme a referência. |
CRM_CURRENCY_INVALID | 400 · VALIDATION_FAILED | Moeda inválida (use o código de 3 letras, como BRL). | Corrija o corpo conforme a referência. |
CRM_DATE_INVALID | 400 · VALIDATION_FAILED | Data inválida. | Corrija o corpo conforme a referência. |
CRM_OWNER_INVALID | 400 · VALIDATION_FAILED | O responsável precisa ser membro da empresa. | Corrija o corpo conforme a referência. |
CRM_REFERENCE_INVALID | 400 · VALIDATION_FAILED | Um dos itens relacionados não existe mais. | Corrija o corpo conforme a referência. |
CRM_VALUE_INVALID | 400 · VALIDATION_FAILED | Valor inválido. | Corrija o corpo conforme a referência. |
CRM_TASK_TITLE_INVALID | 400 · VALIDATION_FAILED | O título da tarefa precisa ter de 1 a 200 caracteres. | Corrija o corpo conforme a referência. |
CRM_TASK_NOTES_TOO_LONG | 400 · VALIDATION_FAILED | As notas da tarefa aceitam até 4.000 caracteres. | Corrija o corpo conforme a referência. |
CRM_TASK_LINK_MISMATCH | 400 · VALIDATION_FAILED | A oportunidade escolhida é de outro contato. | Corrija o corpo conforme a referência. |
CRM_NOT_ARCHIVED | 409 · CONFLICT | Arquive o item antes de excluí-lo permanentemente. | Releia o estado atual e tente de novo. |
CRM_PIPELINE_IN_USE | 409 · CONFLICT | Ainda há oportunidades neste funil. Mova ou exclua as oportunidades antes de excluir o funil. | Releia o estado atual e tente de novo. |
CRM_LOSS_REASON_IN_USE | 409 · CONFLICT | Há oportunidades perdidas com este motivo; ele não pode ser excluído (mantenha-o arquivado). | Releia o estado atual e tente de novo. |
Fluxos
| reason | HTTP · code | Mensagem | Como resolver |
|---|---|---|---|
FLOW_REVISION_CONFLICT | 409 · CONFLICT | Este fluxo foi salvo em outro lugar (outra aba ou outra pessoa) depois que você abriu o editor. | O fluxo mudou desde a leitura. Leia de novo e reaplique a alteração. |
FLOW_NOT_PUBLISHED | 409 · CONFLICT | Publique o fluxo antes de ativá-lo. | Releia o estado atual e tente de novo. |
FLOW_ARCHIVED | 409 · CONFLICT | Desarquive o fluxo antes de publicar. | Releia o estado atual e tente de novo. |
FLOW_NOT_ARCHIVED | 409 · CONFLICT | Arquive o fluxo antes de excluí-lo permanentemente. | Releia o estado atual e tente de novo. |
FLOW_DELETE_CONFIRM_MISMATCH | 400 · VALIDATION_FAILED | Digite o nome do fluxo exatamente como aparece para confirmar. | Corrija o corpo conforme a referência. |