Erros da Cloud API do WhatsApp: códigos e soluções
·7 min de leitura
Resposta rápida
A maioria dos erros da Cloud API cai em três famílias: janela de 24 horas fechada (131047), problema no template (132000, 132001, 132015) e credencial ou identificador errado (190, 33, 100). O código vem no campo error.code da resposta, e quase sempre a mensagem que o acompanha descreve o sintoma, não a causa.
A resposta da Cloud API quando algo falha é curta e pouco generosa: um número e uma frase em inglês que costuma descrever o sintoma, não a causa. Message undeliverable pode significar cinco coisas diferentes, e nenhuma delas está escrita ali.
Esta é a tradução. Os códigos estão agrupados por família, porque diagnosticar por família é mais rápido do que decorar número por número.
Onde o código aparece
Todo erro vem no corpo da resposta HTTP, dentro de error. O campo que importa é code; o error_data.details costuma trazer a informação real, e é o que a maioria dos logs joga fora.
{
"error": {
"message": "(#131047) Re-engagement message",
"type": "OAuthException",
"code": 131047,
"error_data": {
"messaging_product": "whatsapp",
"details": "Message failed to send because more than 24 hours have passed since the customer last replied to this number."
},
"fbtrace_id": "A1bCdEfGhIjKlMnOpQr"
}
}fbtrace_id. É o único identificador que o suporte da Meta aceita para investigar um caso específico.Registre code, details e fbtrace_id juntos. Log que guarda só a mensagem em inglês transforma um diagnóstico de dois minutos numa tarde de tentativa e erro.
Família 1: a janela de 24 horas
É a causa mais comum de mensagem que não sai, e a que mais confunde quem está começando — porque o mesmo código funciona de manhã e falha à tarde.
| Código | O que significa | Correção |
|---|---|---|
| 131047 | Passaram mais de 24h desde a última mensagem do cliente | Enviar um template aprovado. Texto livre não sai fora da janela |
| 131026 | Mensagem não entregável: número sem WhatsApp, ou que não pode receber | Conferir o número; não insistir, porque a falha é do destinatário |
| 131021 | Remetente e destinatário são o mesmo número | Erro de teste. Use outro número para receber |
- 1
Mensagem falhou
Comece pelo error.code
- 2
131047?
Janela fechada — envie template
- 3
13200x?
Problema no template
- 4
190, 33, 100?
Credencial ou identificador
Família 2: templates
A segunda maior fonte de falha, e a que mais aparece em produção — porque template funciona no teste e quebra quando as variáveis reais chegam.
| Código | O que significa | Correção |
|---|---|---|
| 132000 | Número de parâmetros enviados ≠ número de variáveis do template | A causa nº 1: variável vazia. {{2}} com string vazia continua contando |
| 132001 | Template não existe com esse nome/idioma | Conferir o idioma: pt_BR e pt são templates diferentes |
| 132005 | Texto final passou do limite depois de substituir as variáveis | Truncar a variável antes de enviar |
| 132007 | Violação de formatação: quebra de linha, tab ou espaços seguidos na variável | Sanitizar a variável — trocar \n e \t por espaço |
| 132012 | Formato do parâmetro não bate com o declarado | Conferir tipos, especialmente data e moeda |
| 132015 | Template pausado por baixa qualidade | Não é bug: muita gente bloqueou. Reescrever e reduzir frequência |
| 132016 | Template desabilitado | Foi reprovado depois de aprovado. Criar nova versão |
O 132015 merece leitura diferente dos outros: ele não é erro técnico, é sinal de que as pessoas estão bloqueando. Tratá-lo como bug e reenviar acelera o caminho para a restrição do número. O que fazer está em qualidade do número.
Família 3: credencial e identificador
| Código | O que significa | Correção |
|---|---|---|
| 190 | Token expirado ou inválido | Token temporário dura 24h. Produção exige token de usuário do sistema |
| 33 | Objeto não encontrado | Quase sempre phone-number-id trocado pelo ID da conta comercial |
| 100 | Parâmetro inválido | Ler error_data.details: o campo específico está nomeado lá |
| 10 / 200 | Permissão negada | Faltou whatsapp_business_messaging no app |
| 131008 | Parâmetro obrigatório ausente | messaging_product: "whatsapp" é o mais esquecido |
Família 4: conta, limite e política
| Código | O que significa | Correção |
|---|---|---|
| 130429 | Taxa de envio excedida (throughput) | Reduzir a velocidade e implementar repetição com espera crescente |
| 131048 | Limite de qualidade atingido | A conta está restringida por qualidade baixa. Parar o envio ativo |
| 131042 | Problema de cobrança na conta comercial | Método de pagamento ausente ou recusado no Meta Business |
| 131031 | Conta bloqueada por violação de política | Não é técnico. Ver política comercial e banimento |
| 368 | Bloqueio temporário por violação | Aguardar e revisar o que gerou denúncia |
| 133010 | Número não registrado | Faltou concluir o registro do número na Cloud API |
131042 é o erro mais frustrante da lista: tudo está tecnicamente correto e nada sai, porque o cartão da conta comercial venceu. Vale um alerta próprio no seu monitoramento.
Família 5: mídia
| Código | O que significa | Correção |
|---|---|---|
| 131052 | Falha ao baixar a mídia recebida | Baixar assim que o webhook chegar; o link expira |
| 131053 | Falha ao enviar a mídia | Formato ou tamanho fora do aceito |
| 131051 | Tipo de mensagem não suportado | Conferir o type enviado |
As faixas de envio, que produzem outra família de falhas, estão em limites de envio.
O diagnóstico, em ordem
Seis passos antes de abrir chamado
- Ler o
error.code— não a mensagem em inglês, que descreve o sintoma. - Ler
error_data.details, que é onde mora a causa real. - Conferir se o cliente respondeu nas últimas 24 horas (elimina toda a família 1).
- Testar o mesmo envio para outro número, para separar problema de conta de problema de destinatário.
- Conferir se o token é permanente e se o
phone-number-idé o do número, não o da conta. - Guardar o
fbtrace_id— é o único identificador que o suporte da Meta investiga.
Como evitar metade destes erros
- 1Sanitize toda variável de template. Remova quebra de linha, tabulação e espaços seguidos, e trunque o tamanho. Resolve 132007, 132005 e boa parte do 132000.
- 2Nunca envie variável vazia. Se o dado não existe, use um valor padrão — string vazia continua contando como parâmetro.
- 3Guarde o horário da última mensagem de cada cliente. Antes de enviar, compare com agora: menos de 24h, texto livre; mais, template. Elimina o 131047 na origem.
- 4Use token de usuário do sistema desde o primeiro dia de produção. O temporário só serve para o primeiro teste.
- 5Implemente repetição com espera crescente para 130429 e 131016 — são transitórios, e insistir na mesma velocidade piora.
- 6Monitore 131042 e 132015 como alerta, não como log. Os dois param a operação em silêncio.
Um erro que não é erro
Vale registrar porque gera chamado toda semana: mensagem entregue e não lida não é falha. O webhook de status entrega sent, delivered e read em momentos diferentes, e read só chega se o destinatário tiver a confirmação de leitura ligada. Ausência de read não significa que a mensagem não chegou — significa que você não tem como saber.
Perguntas frequentes
O que significa o erro 131047 do WhatsApp?
Que passaram mais de 24 horas desde a última mensagem do cliente e, portanto, a janela de atendimento fechou. Fora dela só sai template aprovado — texto livre é recusado. Não é falha da integração: é a regra central da plataforma.
Por que recebo 132000 se o template está certo?
Na maioria das vezes porque alguma variável foi enviada vazia. Uma string vazia continua contando como parâmetro, então o número enviado deixa de bater com o declarado no template. Use um valor padrão quando o dado não existir.
Minha integração parou sozinha. O que aconteceu?
Se ninguém mexeu no código, os dois suspeitos são o token temporário, que expira em 24 horas, e o método de pagamento da conta comercial, que gera o erro 131042 quando é recusado. O mesmo vale para automação montada em ferramenta visual — o token é a causa número um, como está em integrar com n8n, Make e Zapier.
O que é o fbtrace_id?
Um identificador único da requisição, devolvido em toda resposta de erro. É o que o suporte da Meta usa para investigar um caso específico — sem ele, o chamado costuma não sair do genérico.
Meu template foi pausado (132015). É bug?
Não. Significa que uma parcela relevante de quem recebeu bloqueou ou denunciou. Reenviar acelera a restrição do número. O caminho é reescrever a mensagem, reduzir a frequência e segmentar melhor a base.
Como testar erros sem afetar clientes reais?
A Meta oferece um número de teste e permite cadastrar alguns destinatários de desenvolvimento, sem custo. É onde se reproduzem os erros de template e de credencial antes de qualquer envio real.
Termos deste artigo
- Cloud API
- Versão da API oficial do WhatsApp hospedada pela própria Meta, sem custo de hospedagem. É o caminho atual para integrar o WhatsApp a um sistema; a alternativa antiga, On-Premises, foi descontinuada.
- Template de mensagem(HSM)
- Mensagem escrita antes, submetida à Meta e aprovada, com espaços para variáveis. É a única forma de falar com quem não escreveu para a empresa nas últimas 24 horas. Classificado pela Meta em marketing, utilidade, autenticação ou serviço — e o preço varia conforme a categoria.
- Janela de 24 horas
- Período em que uma empresa pode responder livremente a um cliente pela API oficial do WhatsApp. Abre a cada mensagem que o cliente envia e dura 24 horas a partir dela. Dentro da janela, a conversa não é cobrada; fora dela, só sai template aprovado, que é cobrado.
- Webhook
- URL pública onde a Meta entrega os eventos do seu número: mensagem recebida, confirmação de entrega e de leitura. Não existe consulta sob demanda na API do WhatsApp — receber mensagem exige um servidor sempre no ar.
- Qualidade do número
- Nota que a Meta atribui a um número na API oficial, calculada principalmente a partir de bloqueios e denúncias de quem recebe. Qualidade baixa derruba o limite de envio e pode restringir o número.
- Conta comercial do WhatsApp(WABA)
- WhatsApp Business Account — o objeto dentro do Meta Business que agrupa os números de telefone, os templates e os limites de envio de uma empresa na API oficial. Deve ficar no Meta Business da própria empresa, não no do fornecedor.
Resumo
- Leia
error.codeeerror_data.details— a mensagem em inglês descreve o sintoma, não a causa. - 131047 é janela fechada: fora dela só template.
- 132000 quase sempre é variável vazia contando como parâmetro.
- 190 e 33 são credencial e identificador — os dois erros de quem está começando.
- 131042 e 132015 param a operação em silêncio: monitore como alerta.
- Guarde o
fbtrace_id. Sem ele, o suporte da Meta não investiga.
Referências oficiais
- Cloud API — referência de códigos de erro — consultado em 18 de setembro de 2026
- Cloud API — envio de mensagens — consultado em 18 de setembro de 2026
- WhatsApp Business Platform — templates de mensagem — consultado em 18 de setembro de 2026
Leia também
Webhooks do WhatsApp: como receber mensagens no seu sistema
Como configurar o webhook da Cloud API, o que a Meta envia, como validar a assinatura, por que mensagens chegam repetidas e o que fazer quando o endpoint cai.
12 de setembro de 2026 · 5 min
Janela de 24 horas do WhatsApp: o que é e como usar
A regra que define quando você pode escrever livremente e quando só sai template aprovado. Como a janela abre, quando fecha e as táticas para não perder o cliente.
4 de julho de 2026 · 5 min
Templates de mensagem do WhatsApp: criar e ser aprovado
Como escrever um template que a Meta aprova de primeira, as regras de variável, os motivos de recusa mais comuns e como não cair na categoria mais cara.
31 de julho de 2026 · 6 min