← Blog

·

Límite de marketing por usuario: por qué tu mensaje de WhatsApp no se entregó

Actualizado el 25/10/2026

El error 131049 significa que Meta no entregó una plantilla de marketing porque el destinatario alcanzó el límite de mensajes de marketing por usuario. Ese límite es adaptativo: WhatsApp reduce cuántos mensajes de marketing recibe una persona, de cualquier empresa, cuando es menos probable que los lea. El mensaje con este error no se cobra, y la recomendación oficial es esperar al menos 24 horas antes de intentarlo de nuevo.

Este artículo explica cómo funciona el límite, cómo llega el error al webhook, qué cuenta y qué no, y cómo ajustar tus campañas para perder menos mensajes.

Qué es el límite de marketing por usuario

La página Per-user marketing template message limits indica que WhatsApp puede limitar la cantidad de plantillas de marketing que un usuario recibe de cualquier empresa en un período, cuando es menos probable que interactúe. La decisión considera, entre otros factores:

  • la tasa de lectura reciente de mensajes de marketing de esa persona;
  • cuántos mensajes tiene en su bandeja de entrada, de amigos, familia y empresas.

Tres puntos cambian la forma de pensar las campañas:

  1. El límite es del usuario, no de tu empresa. Si la persona recibió mucho marketing de otras marcas, el tuyo puede ser el que quede fuera.
  2. Es dinámico. Meta no publica un número fijo. El límite se adapta a la interacción reciente de cada persona.
  3. Es distinto del límite de mensajes del portafolio. El límite del portafolio controla cuántos destinatarios únicos alcanzas en 24 horas fuera de la ventana de atención (250, 2.000, 10.000, 100.000 o ilimitado). El límite por usuario controla cuántos mensajes de marketing recibe cada persona.

Cómo aparece el error 131049

La llamada de envío responde 200 con normalidad. El fallo aparece después, en el webhook de estado, con status: "failed" y el código 131049. La tabla de errores de Meta lo describe así: «This message was not delivered to maintain healthy ecosystem engagement.» (el mensaje no se entregó para mantener una interacción saludable en el ecosistema).

Un estado con este error llega en este formato:

{
  "object": "whatsapp_business_account",
  "entry": [{
    "id": "<WABA_ID>",
    "changes": [{
      "field": "messages",
      "value": {
        "messaging_product": "whatsapp",
        "metadata": {
          "display_phone_number": "5511999999999",
          "phone_number_id": "<PHONE_NUMBER_ID>"
        },
        "statuses": [{
          "id": "wamid.HBgLNTUx...",
          "status": "failed",
          "timestamp": "1761400000",
          "recipient_id": "5511888888888",
          "errors": [{
            "code": 131049,
            "title": "This message was not delivered to maintain healthy ecosystem engagement."
          }]
        }]
      }
    }]
  }]
}

Por eso, nunca des una campaña por «entregada» solo por la respuesta de la API. Guarda el wamid de cada envío y crúzalo con los estados que llegan después. El ciclo completo está en estados de mensaje por webhook.

Qué cuenta en el límite y qué no

Situación¿Cuenta en el límite por usuario?
Plantilla de marketing entregadaSí, cada una cuenta
Plantilla de marketing enviada dentro de la ventana de 24 horas abierta por la respuesta del usuario a un mensaje de marketingNo
Plantilla fallida (no entregada)No es una entrega; no se cobra
Plantillas de utilidad y autenticaciónLa regla de Meta se refiere a plantillas de marketing

La segunda fila es la más útil en la práctica. Cuando el usuario responde a un mensaje de marketing, se abre la ventana de atención de 24 horas, y los mensajes de marketing enviados dentro de ella no cuentan. Las campañas que generan conversación real sufren menos con el límite.

Sobre el cobro: la página de precios indica que Meta solo cobra mensajes entregados. Un mensaje con estado failed por 131049 no se entregó y, por lo tanto, no se cobra.

Cuánto esperar antes de reenviar

La recomendación oficial es esperar al menos 24 horas antes de reenviar una plantilla de marketing a quien alcanzó el límite. Meta agrega dos advertencias:

  • reenviar antes suele generar nuevos errores y reduce la precisión de los informes de entrega de la campaña;
  • si la cuenta intenta reenviar varias veces, dentro de 24 horas, a usuarios que ya alcanzaron el límite, los nuevos intentos a esos usuarios pueden quedar no disponibles hasta por 24 horas, también con el error 131049. Esto no afecta el envío a otros usuarios.

En código, la regla es sencilla: al recibir 131049, programa el siguiente intento para dentro de 24 horas o más y limita la cantidad de intentos.

const UN_DIA_MS = 24 * 60 * 60 * 1000;
const MAX_INTENTOS = 2;

export async function tratarEstado(estado, db) {
  if (estado.status !== 'failed') {
    return db.actualizarEnvio(estado.id, estado.status);
  }

  const codigo = estado.errors?.[0]?.code;
  await db.actualizarEnvio(estado.id, 'failed', codigo);

  if (codigo === 131049) {
    const envio = await db.buscarEnvio(estado.id);
    if (envio.intentos < MAX_INTENTOS) {
      await db.programarReenvio({
        contacto: estado.recipient_id,
        plantilla: envio.plantilla,
        noAntesDe: Date.now() + UN_DIA_MS + 60 * 60 * 1000, // margen de 25 h
        intentos: envio.intentos + 1,
      });
    }
  }

  if (codigo === 131050) {
    await db.marcarBaja(estado.recipient_id, 'marketing'); // no reenviar
  }
}

Conviene preguntarse si el reenvío tiene sentido. Una oferta vencida no se debe reenviar. Y quien alcanza el límite con frecuencia es, por definición, alguien que lee poco marketing: tal vez lo mejor sea sacarlo de esa secuencia.

131049 y otros errores parecidos

CódigoQué significaQué hacer
131049No entregado para mantener una interacción saludable (límite de marketing por usuario)Esperar 24 h o más antes de reenviar
131050El usuario eligió dejar de recibir marketing de tu empresaNo reenviar; marcar la baja
131048Restricción de envío en el número, por ejemplo por bloqueos y denuncias de spamRevisar la calidad en WhatsApp Manager
131047Pasaron más de 24 h desde el último mensaje del usuarioEnviar una plantilla en lugar de un mensaje libre
131026No se pudo entregar (número sin WhatsApp, versión antigua, términos no aceptados)Confirmar el número por otro canal

Fuente: códigos de error de Meta. Para la lista completa y cómo tratar cada uno, consulta errores de la API de WhatsApp.

Números de Estados Unidos

La misma página de límites por usuario indica que, por ahora, WhatsApp no entrega plantillas de marketing a números de EE. UU. (código +1 con código de área estadounidense). Si tu base tiene clientes en EE. UU., filtra esos números antes de las campañas de marketing.

Cómo reducir el 131049 en tus campañas

No hay forma de saltarse el límite, y no vale la pena intentarlo. Lo que sí puedes hacer es enviar mensajes que la gente lea:

  • Segmenta por interacción. Separa a quien leyó o respondió hace poco de quien no abre nada desde hace meses. Envía primero al grupo activo.
  • Reduce la frecuencia. Una oferta fuerte por semana suele rendir más que tres regulares.
  • Personaliza de verdad. Nombre, producto de interés, último pedido. Los mensajes genéricos se leen menos.
  • Invita a responder. Los botones de respuesta rápida («Quiero verlo», «Ahora no») generan interacción y abren la ventana de atención, dentro de la cual los mensajes de marketing no cuentan en el límite.
  • No disfraces marketing de utilidad. Meta puede recategorizar la plantilla y restringir nuevas plantillas de utilidad. Consulta cómo Meta clasifica las plantillas.
  • Cuida tu base. Un opt-in claro y una baja sencilla mantienen alta la lectura. Consulta cómo armar una lista opt-in.
  • Mide la tasa de 131049 por campaña. Si sube, el problema suele ser la segmentación o la frecuencia, no la API.

Al estimar el costo de una campaña, recuerda que los mensajes no entregados por este error no se cobran, pero tampoco generan resultados. La guía cuánto cuesta una campaña en WhatsApp muestra cómo calcularlo.

El error 131049 con Vectalk

Vectalk es un proxy de la Cloud API oficial y los webhooks son los de Meta: el estado failed con errors[0].code = 131049 llega en el mismo formato a las URL que registres con POST /api/webhooks. Las plantillas se envían con POST /api/messages, con el mismo payload de Meta. La documentación de webhooks muestra el formato de los estados. Para empezar, crea tu cuenta en apps.vectalk.com.br/register.

Preguntas frecuentes

¿El error 131049 se cobra?

No. Meta solo cobra mensajes entregados, y un mensaje con estado failed no se entregó.

¿Cuánto debo esperar para reenviar?

Al menos 24 horas, según Meta. Reenviar antes suele generar el mismo error y puede bloquear nuevos intentos a ese usuario hasta por 24 horas.

¿El límite aplica a plantillas de utilidad?

La documentación de Meta describe el límite para plantillas de marketing. Clasificar marketing como utilidad para evitarlo infringe las reglas de categorización y puede llevar a recategorizaciones y restricciones.

¿El error 131049 baja la calidad del número?

El error en sí no es una señal negativa del usuario, como un bloqueo o una denuncia. Pero insistir en enviar a quien no lee aumenta la probabilidad de bloqueos, y eso afecta la calidad del número.

¿Puedo saber el límite de cada usuario?

No. Meta no informa el límite individual; cambia según la interacción reciente de cada persona. La única señal es el error 131049 en el webhook.


Fuentes oficiales consultadas el 25/10/2026: Límites de plantillas de marketing por usuario, Códigos de error, Límites de mensajes, Precios, Envío de mensajes y ventana de atención.

Integre o WhatsApp oficial ao seu sistema

A Vectalk entrega a Cloud API da Meta com os mesmos payloads e webhooks, um token para todas as contas e documentação completa.