Skip to content

Erros

Toda resposta de erro segue o mesmo formato:

json
{
  "error": {
    "code": "outside_24h_window",
    "message": "A janela de 24 horas desta conversa está fechada. Envie com um template aprovado (fallback_template).",
    "details": { "approved_templates": [] },
    "docs_url": "https://docs.konversia.com.br/api/erros/outside_24h_window"
  }
}

Ramifique sempre em error.code, nunca em error.message: a mensagem pode mudar de texto, o código não. error.details varia por código, ver a coluna "O que aconteceu" na tabela abaixo; quando não há detalhe extra, vem como objeto vazio.

Tabela completa

CódigoStatus HTTPO que aconteceuO que fazer
unauthenticated401Cabeçalho Authorization ausente, ou chave inválida/revogadaConferir o cabeçalho; se a chave foi revogada, gerar uma nova
forbidden_scope403A chave não tem o escopo exigido pelo endpoint (error.details.required_scope)Pedir ao dono da empresa uma chave, ou um escopo, com essa permissão
subscription_inactive403Assinatura da empresa inativa, ou com pagamento pendenteAguardar a regularização do pagamento; a chave continua a mesma
rate_limited429Mais de 120 requisições por minuto para esta chaveEsperar e repetir, com um intervalo crescente entre tentativas
quota_exceeded429Cota mensal de envios da empresa atingidaFalar com o suporte para aumentar o limite, ou esperar o próximo mês
circuit_open429Envio automático pausado por volume anormal na última horaEsperar; a pausa se desfaz sozinha
request_in_progress409Outra chamada com a mesma Idempotency-Key ainda está sendo processadaEsperar alguns segundos e repetir
idempotency_key_reused409A mesma Idempotency-Key chegou com um corpo diferente do da primeira vezUsar uma chave nova para um pedido de negócio diferente
validation_failed422Corpo da requisição inválido: campo ausente, formato errado, ou Idempotency-Key faltandoCorrigir os campos apontados em error.details
invalid_phone_number422O campo to não é um telefone reconhecívelConferir o formato do telefone
contact_blocked422O contato de destino está bloqueadoDesbloquear na tela, se fizer sentido para o caso
channel_not_found422Não foi possível determinar o canal: channel_id inexistente, ou nenhum/mais de um canal utilizável sem um channel_id explícitoInformar um channel_id de error.details.available_channels
channel_disconnected400O canal existe, mas não está conectado no momentoReconectar o canal na tela, ou usar outro
channel_without_default_department422O canal não tem um setor padrão configuradoConfigurar um setor padrão para o canal na tela
file_not_found404file_id inexistente, ou pertencente a outra empresaSubir o arquivo de novo e usar o id devolvido
media_too_large413Arquivo maior que 15 MBReduzir o arquivo antes de subir
unsupported_media_type415Tipo de arquivo fora da lista aceita (error.details.detected_mime)Usar um dos tipos aceitos, ver Enviar mídia
outside_24h_window422Janela de 24 horas fechada e nenhum fallback_template informado (error.details.approved_templates traz as opções)Reenviar com fallback_template, ou usar POST /v1/messages/template
media_requires_active_window422Mídia fora da janela de 24 horas: o fallback substituiria o anexo por um template de textoEnviar dentro da janela, ou trocar para POST /v1/messages/text
template_not_approved422O template não existe, ou não está aprovado no canal resolvido para este envioConferir nome, idioma e canal em GET /v1/templates
template_requires_header_media422O template exige um arquivo de cabeçalho (imagem, vídeo ou documento) escolhido a cada envio, e a API ainda não tem campo para informá-loUsar um template sem cabeçalho de mídia dinâmica, ou com cabeçalho de mídia fixa
template_variables_mismatch422Quantidade de variables diferente da exigida pelo template (error.details.expected/received)Ajustar a quantidade de variáveis enviada
not_found404Recurso não encontrado: rota inexistente, ou um id totalmente desconhecidoConferir a URL ou o id usado
server_error500Erro interno do KonversiaTentar de novo mais tarde; se persistir, falar com o suporte informando o horário

Relacionado