Formato padrão
Todas as respostas de erro seguem o mesmo formato:code é estável e legível por máquina — programe suas checagens contra ele, não contra o texto de error (que pode mudar e varia de idioma entre endpoints). O hint aparece só em alguns erros.
Códigos HTTP
Erros comuns
400 — phone is required
phone é obrigatório em todas as requisições.
400 — Invalid phone number
401 — API key expired
402 — Limite do plano atingido
Quando um limite do plano é atingido, a resposta é402 com um code específico do recurso. Os registros já existentes continuam acessíveis — só a criação de novos é bloqueada.
Consulte os tetos de cada plano em Planos e Limites.
402 — API access not available
402 — Subscription inactive
code com a mensagem em português — por isso, cheque sempre o code.
422 — No WhatsApp instance
Erros dos endpoints de mensagem
Códigos específicos dePOST /messages (número novo) e POST /conversations/{id}/messages (conversa existente).
400 — INVALID_PHONE
phone precisa vir no formato internacional brasileiro completo: 55 + DDD + número. Sem o 55/DDD ou com número ambíguo, o CRM recusa para não criar contato duplicado. Aceita o celular com ou sem o 9º dígito.
422 — INSTANCE_REQUIRED
instanceId no corpo. Liste as conexões em GET /instances.
404 — INSTANCE_NOT_FOUND
instanceId informado não existe (ou não pertence a este workspace).
422 — NO_INSTANCE
403 — OPTED_OUT
429 — COLD_LIMIT_REACHED
409 — IN_PROGRESS
Idempotency-Key. Aguarde a primeira concluir — quando ela termina, uma nova chamada com a mesma chave devolve a resposta memoizada (200) em vez de reenviar.
Retry seguro
Os seguintes erros são seguros para retry:429 Too Many Requests— aguarde oRetry-Afterantes de tentar novamente409 IN_PROGRESS— aguarde e repita com o mesmoIdempotency-Key(nunca reenvia em dobro)500 Internal Server Error/502 SEND_FAILED— use backoff exponencial (1s, 2s, 4s…)
400— corrija o payload401,402,403— corrija a autenticação, o plano ou o opt-out do contato422— verifique a configuração do workspace, a instância ou a janela de 24h