Erro 131047 no WhatsApp: janela de 24 horas fechada
O 131047 aparece quando a empresa manda uma mensagem livre — texto, mídia, botões, qualquer coisa que não seja template — para um contato que não falou com ela nas últimas 24 horas. É a regra da janela de atendimento da Meta, e costuma pegar quem está integrando pela primeira vez: a mesma chamada funciona no teste e é recusada no dia seguinte.
O que a Meta diz
Na tradução oficial: “mais de 24 horas se passaram desde que o destinatário respondeu pela última vez ao número do remetente”. A solução que a Meta indica é uma só: enviar um template.
Descrição na tabela de códigos da MetaMore than 24 hours have passed since the recipient last replied to the sender number.
Como a janela funciona
- Ela abre quando o contato manda uma mensagem ou liga para o número da empresa.
- Dura 24 horas e reinicia a cada nova mensagem ou ligação do contato.
- Com ela aberta, a empresa manda o que quiser: texto, mídia, botões, listas.
- Com ela fechada, só sai template aprovado pela Meta.
A janela é contada a partir da mensagem do contato, não da sua. Responder não estica o prazo: se o contato escreveu às 10h de segunda e você respondeu às 18h, a janela fecha às 10h de terça do mesmo jeito.
Por que integrações caem nele
- O teste mascara a regra. Quem testa acabou de mandar mensagem para o número, então a janela está sempre aberta durante o desenvolvimento.
- Atendimento que responde no dia seguinte. O contato escreveu na sexta à noite, o atendente responde na segunda pela API — e a resposta volta recusada.
- Follow-up agendado. Lembrete, pesquisa de satisfação ou recuperação de carrinho disparados dias depois precisam ser template.
- Coexistência. O que a equipe responde pelo celular não abre nem estende a janela da API. E quem escreveu antes da conexão do número não tem janela aberta: a primeira resposta pela API precisa ser template.
A Meta registra ainda um problema conhecido: em casos raros, a empresa recebe a mensagem do contato e mesmo assim não consegue responder dentro da janela. Se o erro aparecer com a janela claramente aberta, guarde o message_id e o horário para o suporte.
Como resolver
Envie um template aprovado. Quando o contato responder, a janela reabre e a conversa volta a ser livre. O passo a passo, com criação, aprovação e envio, está em enviar template. Para não depender do erro, decida o tipo da mensagem antes de enviar, guardando a hora da última mensagem de cada contato:
// Guarde a hora da ultima mensagem de cada contato a partir do
// message.received (occurred_at) e decida o tipo antes de enviar.
const JANELA_MS = 24 * 60 * 60 * 1000
const margem = 5 * 60 * 1000 // fila e relogio: nao arrisque o ultimo minuto
function corpoDoEnvio(contato, texto) {
const aberta = Date.now() - contato.ultimaMensagemEm < JANELA_MS - margem
if (aberta) return { to: contato.wa_id, type: 'text', text: { body: texto } }
return {
to: contato.wa_id,
type: 'template',
template: { name: 'retomar_atendimento', language: { code: 'pt_BR' } },
}
}A resposta dentro da janela também tem custo próprio desde outubro de 2026, depois de uma franquia mensal por número; os detalhes estão em preços.
Como o 131047 aparece no CRPRO Hub
O CRPRO Hub não bloqueia o envio por causa da janela: quem decide é a Meta. A Meta não informa se este código vem na resposta da chamada ou depois, por webhook, e recomenda tratar as duas vias. Na chamada, o envio responde 502:
{
"error": {
"code": "META_SEND_FAILED",
"message": "A Meta recusou o envio da mensagem.",
"details": {
"meta_code": 131047
}
}
}Depois do 202, a recusa chega no message.status com status: "failed". O objeto de erro também traz title e message, cujo texto a Meta não publica para este código:
{
"id": "7a2c9e10-4b3d-4f5e-8a6b-1c2d3e4f5a6b",
"event": "message.status",
"channel_id": "9f6a9c1e-2f3d-4a5b-8c7d-1e2f3a4b5c6d",
"occurred_at": "2026-10-03T12:00:00.000Z",
"data": {
"message_id": "wamid.EXEMPLO456",
"status": "failed",
"recipient_id": "5521999999999",
"conversation": null,
"pricing": null,
"errors": [
{
"code": 131047,
"error_data": {
"details": "More than 24 hours have passed since the recipient last replied to the sender number."
},
"href": "https://developers.facebook.com/documentation/business-messaging/whatsapp/support/error-codes/"
}
]
}
}Perguntas frequentes
Uma ligação abre a janela de 24 horas?
Sim. Segundo a Meta, a janela de atendimento começa quando o contato manda uma mensagem ou faz uma ligação, e reinicia a cada nova mensagem ou ligação dele.
Mensagem enviada pelo celular, em coexistência, abre ou estende a janela?
Não. Na coexistência, a janela vale só para o que sai pela Cloud API; mensagens enviadas pelo aplicativo WhatsApp Business não abrem, não estendem e não afetam a janela da API.
Qual template usar depois do 131047?
Um template aprovado da categoria certa: utilidade para continuar um atendimento ou avisar sobre um pedido, marketing para conteúdo promocional. Quando o contato responder, a janela reabre e a conversa segue livre.
Erros parecidos
- 132001 — O template não existe nesse idioma ou não está aprovado.
- 132000 — O número de variáveis enviadas não bate com o template.
- 131026 — A mensagem não pôde ser entregue ao contato.
- 131049 — O WhatsApp segurou um template de marketing pelo limite por contato.
A lista completa, com o que fazer em cada caso, está em códigos de erro da Meta. Os erros do próprio CRPRO Hub, como META_SEND_FAILED, estão em erros da API.
Fontes
Fonte: códigos de erro da Cloud API, janela de atendimento, documentação da Meta conferida em 3 de outubro de 2026.