Reglas de WhatsApp
La ventana de 24 horas, los frenos contra spam y el ritmo por número que aplica Funnelchat a cada envío, los errores que devuelve y lo que todavía no hacemos (bajas).
Meta castiga a los números que rompen sus reglas: les baja la calidad, les limita los envíos o los bloquea. La capa de Funnelchat aplica estas reglas a cada envío con tu clave, antes de mandarlo, y no se pueden apagar. Así armás lo tuyo sin aprenderte las reglas de memoria y sin poner en riesgo tu número.
Cuando una regla frena un envío, la respuesta es { "error": "<código>", "message": "<explicación>" } y no se envía ni se registra nada. Cada operación de envío de la referencia dice qué códigos puede responder.
Ventana de 24 horas
Con un número de WhatsApp Cloud (el oficial de Meta) solo podés mandar mensajes que no son plantilla a un contacto que te escribió en las últimas 24 horas. Fuera de esa ventana, solo plantillas aprobadas, que no tienen esta restricción. Los números por QR no tienen ventana.
- Antes de mandar, la capa mira la ventana. Si el mensaje no es una plantilla y la ventana está cerrada, no lo manda: responde
422 window_closed. Para retomar la conversación, mandá una plantilla aprobada.
Para decidir antes de mandar, consultá Ver la ventana de 24 horas de un contacto: responde is_open.
{
"error": "window_closed",
"message": "<explicación>"
}Frenos contra spam
Lo que más rápido hace que WhatsApp marque un número es repetir el mismo mensaje e insistirle a quien no contesta. Los envíos con tu clave pasan por dos frenos, en modo cortar: el envío que se pasa no sale y la llamada responde con un error claro. No se encola en silencio.
| Freno | Límite, por contacto y en 24 horas | Respuesta |
|---|---|---|
| Mismo mensaje repetido | Hasta 2 mensajes con el mismo contenido; el tercero se frena | 422 antiblock_duplicate_content |
| Insistir sin respuesta | Hasta 5 mensajes seguidos sin que el contacto conteste; el sexto se frena | 422 antiblock_unanswered_limit |
Cuando el contacto responde, los dos contadores vuelven a cero. Los frenos valen para mensajes y plantillas, no para reacciones.
422: no reintentes el mismo envío. Cambiá el contenido o esperá a que el contacto responda.
Ritmo por número
Los envíos con tu clave se limitan solo por el número que manda, según su tipo. No hay un límite por minuto por clave ni por cuenta y conversations no tiene tope diario de llamadas: todas las claves de tu cuenta que mandan por el mismo número comparten su ritmo. Las reacciones solo tienen esta regla.
| Tipo de número | Mensajes por segundo | Al mismo contacto |
|---|---|---|
| WhatsApp Cloud (el oficial de Meta) | Hasta 60 | Hasta 10 por minuto |
| Coexistencia (el mismo teléfono en WhatsApp Cloud y en la app WhatsApp Business del celular) | Hasta 15 entre las dos conexiones, mandes por la que mandes | Hasta 10 por minuto en lo que mandás por WhatsApp Cloud |
| Por QR, sin coexistencia | Sin límite | Sin límite |
- Al pasarte, la llamada responde
429 rate_limitedconRetry-After: los segundos que tenés que esperar antes de reintentar. El envío frenado no sale y no queda registrado. - Repartí tus envíos en el tiempo en lugar de mandarlos todos juntos y esperar el
429. - Sin límite no quiere decir sin riesgo: a un número por QR se le aplican igual los frenos contra spam, y mandar mucho y muy rápido es de lo que más rápido bloquea un número.
Bajas: todavía no las registramos
Lo que todavía no hacemos
Funnelchat todavía no registra bajas: si un contacto te pide que no le escriban más, la capa no frena los envíos a ese contacto. Respetalo vos en tu sistema: guardá el pedido y dejá de escribirle por todos tus canales. Es un tema que vamos a resolver para toda la plataforma.
Qué hacer con estos errores
| Respuesta | Qué hacer |
|---|---|
422 window_closed | Mandá una plantilla aprobada (Mensajes). |
422 antiblock_duplicate_content | No repitas el contenido. |
422 antiblock_unanswered_limit | Esperá a que el contacto responda. |
429 rate_limited | Esperá lo que indica Retry-After y reintentá. Si se repite, bajá el ritmo de ese número (Ritmo por número). |
422 recipient_unsupported | El contacto es un grupo, una lista de difusión o un canal: por la API solo se les escribe a personas. |
422 recipient_mismatch | El teléfono o el identificador de WhatsApp del cuerpo no es el del contacto de la ruta. Revisá a quién le mandás. |
422 device_unavailable | El número no es de tu cuenta o no está conectado. Reconectalo en Funnelchat y volvé a mandar. |
Decidí por el código HTTP y por error, nunca por el texto de message. Los demás errores de la API, los del portero, están en Autenticación y permisos.
Por qué recomendamos el número oficial
Un número oficial de Meta usa la conexión que WhatsApp admite para empresas; un número por QR se conecta como un WhatsApp Web. La API es la misma para los dos y las reglas de esta página se aplican igual, pero el oficial es el que recomendamos para lo que armes. Ver Números.