O disparo saiu, a Meta devolveu um wamid e, minutos depois, o contato aparece como falhou com um número de seis dígitos que começa com 13 ou 14. A tabela da documentação diz o que o código significa em inglês e para por aí. O que importa na operação é outra pergunta: reenvio ou não reenvio?
Esta página junta os códigos que mais aparecem num disparo, separados por essa pergunta. Para os dois erros de modelo (132012 e 132018) existe um guia à parte, porque eles derrubam a fila inteira e a causa quase nunca está onde se procura.
Primeiro: quando o erro chega
Há dois momentos. O erro síncrono volta na hora, na resposta do envio: token vencido, parâmetro errado, modelo inexistente. O erro assíncrono chega depois, por webhook, num evento de status failed, e é onde moram quase todos os que custam dinheiro: pagamento, qualidade, limite por pessoa, número sem WhatsApp.
Medido em 30 de setembro de 2026: a recusa de pagamento de uma conta (131042) quase nunca chega na hora do envio. A Meta devolve o wamid e só depois manda o failed. Um sistema que só olha a resposta do envio continua mandando pelo mesmo número, contato por contato: foram 715 contatos perdidos assim, em três operações, num único dia.
Os que não adianta reenviar
| Código | O que é | O que fazer |
|---|---|---|
| 131026 | A mensagem não foi entregue: o número não tem WhatsApp, ou a conta dele não pode receber. | Tirar o número da lista. Reenviar gasta tentativa e piora a taxa de entrega do seu número. |
| 131050 | A pessoa pediu para não receber marketing da sua empresa. | Marcar como descadastrado e nunca mais incluir em disparo. Insistir é o caminho para denúncia. |
| 131047 | A janela de 24 horas fechou: texto livre só vale até 24 horas depois da última mensagem do contato. | Não reenvie o texto. Mande um modelo aprovado, que é o único que abre conversa fora da janela. |
O 131026 é o mais comum em base importada de planilha antiga. Quando ele passa de uns 10% do disparo, o problema não é a Meta: é a base, e vale conferir a origem dela e o nono dígito antes do próximo envio.
Os que passam sozinhos, e você reenvia depois
| Código | O que é | O que fazer |
|---|---|---|
| 131049 | A Meta não entregou para preservar a qualidade da conversa: o teto de marketing por pessoa. | Esperar. O teto é por pessoa e soma todas as empresas, na ordem de duas mensagens de marketing por dia. Reenviar na hora é queimar tentativa. |
| 131056 | Muitas mensagens do seu número para a mesma pessoa em pouco tempo. | Esperar e espaçar. É o freio por par número-contato, e não da sua conta inteira. |
| 131000, 131016 | Erro genérico e serviço indisponível do lado da Meta. | Reenviar com espera crescente. Se persiste por horas, abrir chamado, mas o comum é passar. |
O 131049 é o que mais confunde, porque parece defeito seu e é regra do ecossistema: a Meta limita quantas mensagens de marketing uma mesma pessoa recebe por dia, somando todas as empresas. Quem dispara para uma base que outras operações também disparam vê esse código em volume. A saída que funciona é variar o dia e o número, e converter para Utilidade o que de fato é aviso e não oferta.
Os que não são da mensagem: são da conta
Aqui o erro não diz nada sobre o contato. Diz que o número, ou a conta de WhatsApp Business inteira, não consegue enviar. Insistir é o pior gesto: cada tentativa falha, e a fila vai embora contato por contato.
| Código | O que é | O que fazer |
|---|---|---|
| 131042 | Problema de pagamento na conta: forma de pagamento recusada ou sem saldo. | Pausar o disparo por esse número e arrumar a cobrança no Gerenciador da Meta. Reenviar depois: o contato não é o problema. |
| 141006 | Conta sem forma de pagamento válida. | Arrumar a forma de pagamento. O sintoma é traiçoeiro: a Meta aceita o envio, devolve o wamid, e a mensagem nunca é entregue, sem recibo e sem erro por contato. |
| 131031 | Conta bloqueada ou restrita por violação de política. | Parar. Ver o que a Meta acusou na conta, e só então recorrer. |
| 133010 | Número não registrado: alguém desregistrou, e a Cloud API não envia. | Registrar de novo com o PIN do número. Qualquer parceiro com acesso à conta consegue desregistrar. |
| 190 | Token de acesso inválido ou vencido. | Gerar um token novo e reconectar. Se o token é temporário do painel, ele vence em 24 horas. |
O 141006 não aparece no disparo: aparece na falta dele. Numa conta medida em 29 de setembro de 2026, 22 envios saíram com wamid e nenhum chegou, sem recibo de entrega e sem 131042. A única pista foi o campo de saúde da conta dizendo que ela não podia enviar.
Para saber qual desses é o seu caso, o campo que responde é o de saúde do número na Graph API, e não o indicador de qualidade do painel: ele diz se o número pode enviar agora e, quando não pode, o motivo. Quem lê só a qualidade (verde, amarelo, vermelho) não vê esse motivo.
Onde o código aparece no webhook
O status de cada mensagem chega no evento messages do webhook, no campo statuses. Quando falha, o item traz uma lista errors com o código, um título e, em muitos casos, o detalhe que a Meta escreve em error_data:
"statuses": [{
"id": "wamid.HBgM...",
"status": "failed",
"recipient_id": "5551999999999",
"errors": [{
"code": 131049,
"title": "This message was not delivered to maintain healthy ecosystem engagement.",
"error_data": { "details": "..." }
}]
}]Guarde o código e o detalhe na própria linha da mensagem, junto do wamid. Sem isso, a pergunta de amanhã, por que 300 contatos falharam ontem, só se responde abrindo o painel da Meta um a um. O wamid também é o que casa o status com a mensagem: um envio que não gravou o wamid antes de qualquer outra coisa nunca terá recibo de entrega nem erro para mostrar.
Como perguntar se o número pode enviar
Antes de investigar contato por contato, pergunte ao número. O campo health_status do número devolve se ele pode enviar agora (AVAILABLE, LIMITED ou BLOCKED) e, quando não pode, a lista de motivos:
GET /{phone_number_id}?fields=health_statusBLOCKED explica sozinho uma fila inteira que falha.LIMITED costuma ser número novo, nome em análise ou qualidade caindo, e não impede o envio. Vale olhar esse campo de tempos em tempos, e não só quando o disparo quebra.
Uma regra que economiza a fila
Separe o erro do contato do erro da conta. O primeiro derruba uma mensagem e o disparo segue. O segundo tem de tirar o número da roda, e quem está disparando com rodízio entre vários números precisa que a fila daquele número passe para os outros, e não que falhe. É a diferença entre perder um contato e perder o dia.