Actualizado el 29/10/2026
La ventana de 24 horas de WhatsApp, que Meta llama ventana de atención al cliente, se abre cuando el usuario escribe o llama a la empresa y se reinicia con cada nuevo mensaje suyo. Mientras está abierta, puedes enviar mensajes libres (texto, multimedia, botones, listas) y también plantillas; cuando se cierra, solo plantillas aprobadas. La ventana de punto de entrada gratuito es otra cosa: aplica a quien llega por un anuncio de clic a WhatsApp, dura hasta 7 días y solo cambia el cobro, no el tipo de mensaje permitido.
Este artículo explica las dos ventanas, muestra cómo controlar la de 24 horas en tu código y resume qué se cobra en cada caso, con las reglas vigentes desde el 1/10/2026.
Dos ventanas con funciones distintas
Muchas integraciones mezclan las dos. La tabla separa lo que controla cada una:
| Ventana de atención (24 horas) | Ventana de punto de entrada gratuito (FEP) | |
|---|---|---|
| Cómo se abre | El usuario escribe o llama a la empresa | El usuario llega por un anuncio de clic a WhatsApp (app de Android o iOS) y la empresa responde dentro de la ventana de atención |
| Duración | 24 horas, reiniciadas con cada mensaje o llamada del usuario | Hasta 7 días desde la respuesta de la empresa |
| Qué controla | Qué mensajes se pueden enviar | Cuánto cobra Meta |
| Efecto | Habilita mensajes libres (no plantilla) | Marketing, utilidad, autenticación y servicio no se cobran |
| Fuera de ella | Solo plantillas | Cobro normal por categoría |
La ventana de atención de 24 horas
El cronómetro empieza con el mensaje (o la llamada) del usuario. Si vuelve a escribir antes de que termine, el plazo vuelve a 24 horas. Los mensajes de la empresa no reinician nada: solo el usuario abre y renueva la ventana.
Dos observaciones de la documentación de Meta:
- La ventana no reemplaza el consentimiento. Sigues necesitando el opt-in para enviar mensajes al usuario.
- En casos raros, Meta reconoce que un mensaje recibido puede no permitir respuesta dentro de la ventana. Maneja el error en lugar de suponer que la ventana siempre existe.
Qué puedes enviar con la ventana abierta
Con la ventana abierta, puedes enviar cualquier mensaje de servicio, sin aprobación previa:
- texto, con o sin vista previa de enlace;
- imagen, video, audio, documento y sticker;
- ubicación, contactos y reacciones;
- mensajes interactivos: botones de respuesta, listas, botón de enlace (CTA URL), solicitud de ubicación, solicitud de dirección y Flows;
- mensajes de catálogo, como producto único y multiproducto.
Las plantillas también se pueden usar como respuesta. Lo contrario no vale: un mensaje libre nunca sirve para iniciar el contacto. Los payloads de cada tipo interactivo están en la guía de mensajes interactivos.
Qué pasa cuando la ventana se cierra
Fuera de la ventana, la API solo acepta mensajes type: "template" con plantilla aprobada. Si envías texto libre, el envío falla con el código 131047, que Meta describe como «han pasado más de 24 horas desde la última respuesta del destinatario». La falla llega por el webhook de estado (fragmento simplificado):
{
"statuses": [{
"id": "wamid.HBgLNTU4NDk5OTk5OTk5OQ...",
"status": "failed",
"recipient_id": "5584999999999",
"errors": [{ "code": 131047 }]
}]
}
La solución es reenviar como plantilla. Por eso, todo flujo que pueda quedar fuera de la ventana necesita una plantilla equivalente aprobada. La guía de plantillas de la API de WhatsApp muestra cómo crearla y por qué importa la categoría.
¿Quieres probar mientras lees? Crea tu cuenta en Vectalk y envía el primer mensaje por la API oficial. Crear cuenta gratis →
Cómo controlar la ventana en tu sistema
La forma más directa es registrar, a partir del webhook, la hora del último mensaje recibido de cada contacto y calcular la ventana localmente.
El webhook de mensaje recibido trae timestamp (Unix, en segundos) y from (el wa_id del usuario). En Vectalk, este payload llega igual al de Meta en las URL que registraste:
// Al procesar el webhook de mensajes recibidos
async function registrarMensajeRecibido(msg) {
await db.contactos.upsert({
wa_id: msg.from,
ultimo_mensaje_en: new Date(Number(msg.timestamp) * 1000),
});
}
// Antes de enviar
const VENTANA_MS = 24 * 60 * 60 * 1000;
const MARGEN_MS = 5 * 60 * 1000; // holgura para colas y relojes
function ventanaAbierta(contacto, ahora = Date.now()) {
if (!contacto?.ultimo_mensaje_en) return false;
return ahora - contacto.ultimo_mensaje_en.getTime() < VENTANA_MS - MARGEN_MS;
}
async function responder(contacto, texto) {
const cuerpo = ventanaAbierta(contacto)
? { type: "text", text: { body: texto } }
: { type: "template", template: { name: "retomar_atencion", language: { code: "es" } } };
return fetch("https://apis.vectalk.com.br/api/messages", {
method: "POST",
headers: {
Authorization: `Bearer ${process.env.VECTALK_TOKEN}`,
"Content-Type": "application/json",
},
body: JSON.stringify({ messaging_product: "whatsapp", to: contacto.wa_id, ...cuerpo }),
});
}
Tres cuidados:
- Usa la hora del webhook, no la hora en que tu servidor procesó el evento. Las colas atrasadas acortan la ventana real.
- Deja margen. Una respuesta que un agente escribe a las 23:58 de la ventana puede salir después del plazo.
- Las llamadas también abren la ventana. Si usas la API de llamadas, registra la llamada recibida de la misma forma.
Si tu equipo atiende desde una cola, muestra el tiempo restante de la ventana en la pantalla del agente. Cuando falte poco, puede enviar una pregunta con botones para animar al cliente a responder y renovar el plazo.
La ventana de punto de entrada gratuito (FEP)
La FEP existe para conversaciones que empiezan en anuncios de clic a WhatsApp. El flujo que describe Meta es este:
- El usuario toca el anuncio y envía el mensaje desde la app en Android o iOS (escritorio y web no cuentan).
- Eso abre la ventana de atención normal.
- Si la empresa responde dentro de esa ventana con un mensaje de marketing, utilidad, autenticación o servicio, esa respuesta no se cobra y abre la FEP desde ese momento.
- La FEP puede quedar abierta hasta 7 días. En ese período, Meta no cobra marketing, utilidad, autenticación ni servicio.
El punto que genera confusión: la FEP no extiende la ventana de 24 horas. Los mensajes libres siguen permitidos solo con la ventana de atención abierta. Si el usuario deja de responder, después de 24 horas vuelves a necesitar una plantilla, y esa plantilla sale sin cobro mientras la FEP esté abierta.
Otros detalles:
- La FEP se controla por el par empresa y usuario, no por cuenta. Si varias cuentas de mensajes envían desde el mismo número de la empresa, todas comparten la misma ventana, aunque otra cuenta haya pagado el anuncio.
- Los mensajes del Meta Business Agent (el agente de IA de la propia Meta) se siguen cobrando dentro de la FEP.
- En el webhook de estado, el objeto
pricingtraetype: "free_entry_point"para los mensajes que no se cobraron por estar dentro de esta ventana.
{
"pricing": {
"billable": false,
"pricing_model": "PMP",
"type": "free_entry_point",
"category": "marketing"
}
}
Para relacionar los clics del anuncio con las ventas, consulta cómo rastrear anuncios de clic a WhatsApp.
Qué se cobra en cada situación
El 1/10/2026, Meta volvió a cobrar dos tipos de mensajes que eran gratuitos: los mensajes de servicio (libres) y las plantillas de utilidad enviadas dentro de la ventana de atención. Para servicio, cada número tiene 1.000 mensajes de servicio entregados gratis por mes, sin acumulación; el cobro empieza en el mensaje 1.001. Los detalles del cambio están en mensajes de utilidad dentro de la ventana de atención.
| Situación | Qué puedes enviar | Cobro de Meta |
|---|---|---|
| Ventana de 24 horas abierta, sin FEP | Mensaje libre o plantilla | Servicio: 1.000 gratis por número/mes, después se cobra. Plantillas: se cobran por categoría, incluida utilidad |
| Ventana de 24 horas abierta, con FEP | Mensaje libre o plantilla | Sin cobro (excepto Meta Business Agent) |
| Ventana cerrada, FEP abierta | Solo plantilla | Sin cobro |
| Ventana cerrada, sin FEP | Solo plantilla | Se cobra por categoría |
Las tarifas por categoría para destinatarios en Brasil están en precio de la API de WhatsApp en Brasil; para otros mercados, consulta precio de la API de WhatsApp por país, porque la tarifa de Meta depende del código de país del destinatario. El webhook de estado indica qué se cobró en pricing.billable y pricing.type (regular para lo cobrado, free_customer_service para servicio dentro de la franquicia mensual, free_entry_point para mensajes dentro de una ventana FEP abierta). Meta anunció que billable se descontinuará en una versión futura, así que básate en pricing.type y pricing.category. Desde el 12/10/2026, el objeto pricing también puede traer un campo subtype con el valor paid_exempt para mensajes de servicio gratuitos de organizaciones gubernamentales y sin fines de lucro elegibles.
Meta también advierte que, sin un método de pago registrado, entrega los mensajes de servicio de la franquicia gratuita y deja de entregar los siguientes. En Vectalk, el cobro funciona con una mensualidad más saldo prepago: Vectalk coloca su propia línea de crédito en tu número y cada mensaje entregado se descuenta del saldo, así que no necesitas registrar una tarjeta en Meta para que las respuestas sigan saliendo después del mensaje mil.
Cómo mantener la conversación dentro de la ventana
Algunas prácticas reducen la cantidad de plantillas que necesitas enviar:
- Haz que el cliente inicie. Los enlaces
wa.mecon texto prellenado y los códigos QR en el sitio, la factura o el empaque llevan al usuario a abrir la conversación. Puedes crear esos enlaces con el generador de enlaces de WhatsApp. En Vectalk, los códigos QR con mensaje prellenado se crean conPOST /api/qr-codes, que devuelve el enlace corto y la imagen. - Pide una respuesta, no un clic hacia afuera. Los botones de respuesta rápida envían un mensaje del usuario cuando se tocan y, con eso, abren o renuevan la ventana. Un botón de enlace solo abre el navegador.
- Responde rápido. Un bot que responde en segundos aprovecha toda la ventana para resolver el caso. El artículo sobre chatbot con IA en la API de WhatsApp trata esto, y mensajes de bienvenida y ausencia ayuda fuera del horario de atención.
- Agrupa la información. En vez de tres mensajes separados después de que la ventana se cerró, una sola plantilla con la información principal y un botón para que el cliente continúe.
Errores comunes de integración
Algunos problemas aparecen en casi todo proyecto que maneja la ventana:
- Calcular la ventana por el último envío de la empresa. Solo cuenta el mensaje del usuario. Un contacto que recibió diez mensajes tuyos hoy pero no respondió ninguno tiene la ventana cerrada.
- Guardar la hora por conversación y no por contacto y número. Si operas varios números, la ventana vale para el par formado por el número de la empresa y el usuario. Registra ambos.
- Ignorar el webhook de falla. La API responde con éxito cuando acepta la solicitud; el
failedcon131047llega después, por el webhook. Si no manejas ese evento, el mensaje desaparece sin que el agente se entere. - No tener una plantilla para retomar. Ten al menos una plantilla de utilidad aprobada para retomar atenciones abiertas, con texto ligado al caso del cliente (número de caso, pedido) para que no se clasifique como marketing.
Preguntas frecuentes
¿Un mensaje enviado por la empresa reinicia la ventana de 24 horas?
No. Solo los mensajes o llamadas del usuario abren y reinician la ventana de atención.
Si el cliente toca un botón de respuesta rápida de una plantilla, ¿se abre la ventana?
Sí. El toque envía un mensaje del usuario a la empresa, y un mensaje del usuario abre la ventana de atención. La documentación de Meta sobre límites de marketing por usuario confirma que la respuesta del usuario a un mensaje de marketing inicia una ventana de atención de 24 horas.
¿La ventana de punto de entrada gratuito aplica a quien toca el botón de WhatsApp en mi página de Facebook?
La documentación de precios de Meta, actualizada para las reglas de octubre de 2026, describe la FEP solo para anuncios de clic a WhatsApp abiertos en la app de Android o iOS.
¿Puedo enviar texto libre durante los 7 días de la FEP?
Solo mientras la ventana de 24 horas también esté abierta. La FEP cambia el cobro; lo que habilita el mensaje libre es la ventana de atención.
¿La regla cambia con la coexistencia con la app WhatsApp Business?
El artículo sobre coexistencia tiene una sección sobre precios y ventana de atención cuando el mismo número se usa en la app y en la API.
Aprovecha la ventana con Vectalk
Con Vectalk, los webhooks llegan en el formato de la documentación de Meta, así que el timestamp y el objeto pricing que usas para controlar ventana y costo son los mismos. Usas un token para todas tus cuentas, tienes coexistencia con la app WhatsApp Business y pagas con una mensualidad más saldo prepago, sin tarjeta registrada en Meta. Crea tu cuenta en apps.vectalk.com.br/register, consulta los endpoints en docs.vectalk.com.br o resuelve dudas en el Centro de Ayuda.
Fuentes oficiales consultadas el 29/10/2026: Envío de mensajes y ventana de atención, Precios en la plataforma de WhatsApp Business, Actualizaciones de precio para servicio, utilidad y Meta Business Agent, Códigos de error, Referencia del webhook de estado, Límites de plantillas de marketing por usuario.
Pon a funcionar el WhatsApp oficial de tu empresa
Crea tu cuenta, conecta tu número a la API oficial (puedes mantener la app con coexistencia) y empieza a atender y enviar mensajes.
