4dim / Notas

Cuánto tarda Meta en aprobar una plantilla de WhatsApp

Meta declara un techo de 24 horas y nadie publica una distribución. Los dos relojes que se confunden, cuántas vueltas cuesta un rechazo, y el protocolo para medirlo.

La pregunta tiene dos relojes, no uno

«Cuánto tarda Meta en aprobar una plantilla» mezcla dos cosas que se resuelven en momentos distintos, y solo una de ellas tarda.

La validación de categoría es síncrona: viene dentro de la respuesta a la llamada de creación. Si Meta está de acuerdo te devuelve PENDING; si no, REJECTED con reason: INCORRECT_CATEGORY, en el mismo segundo. La revisión de contenido es la asíncrona, y es la única a la que se refiere el techo de 24 horas. Lo que vuelve PENDING ya pasó la aduana; lo rechazado en la propia llamada nunca llegó a revisarse por contenido.

Hay una tercera puerta. En la biblioteca de plantillas el ejemplo oficial de respuesta de creación ya trae "status": "APPROVED" (13-09-2026). Meta no escribe «aprobación instantánea» en ninguna parte: la conclusión es inferencia nuestra, no declaración suya.

Lo que Meta declara, palabra por palabra

La cuarta columna dice verificado y no «actualizado»: ninguna de estas páginas expuso fecha de actualización.

AfirmaciónCifra declaradaDocumentoVerificado
Decisión de aprobación«up to 24 hours»Revisión de plantillas13-09-2026
Decisión de apelación«within 24 hours»; la muestra es obligatoriaRevisión de plantillas13-09-2026
Plantilla de bibliotecael ejemplo de respuesta ya trae APPROVEDBiblioteca13-09-2026
Entrega pese a la frecuencia«within an hour (99 percentile)»Frecuencia13-09-2026
Percentil de tiempo de revisiónno se publica13-09-2026

Sobre cómo se revisa, Meta dice «a combination of automated systems and manual reviews» y se detiene: no dice qué proporción pasa por cada vía.

Meta publica un percentil 99 —pero es de otra cosa. Para la revisión solo publica un techo, y un techo no es un tiempo: es una promesa de que no será peor.

Lo que el rechazo te dice, y lo que te calla

Un rechazo no detiene el reloj: lo reinicia. Por eso el rechazo entra en una nota sobre tiempos, pero entra por un lado concreto —cuánto te acerca a la siguiente versión— y no por el catálogo de motivos. Los motivos uno a uno, y cómo se evitan antes de someter, están en la nota de los rechazos.

Para ser utilidad hay que cumplir dos condiciones a la vez: ser «non-promotional, not containing any promotional or persuasive intent» y ser específica de lo que el usuario pidió, o esencial para él. El contenido mixto o ininteligible tira hacia marketing; es criterio y no automatismo, porque Meta escribe «might be categorized differently».

El rechazo llega con uno de ocho valores. Contando las cadenas de la tabla de Meta aparece esto (13-09-2026):

rejected_reasonDescripción oficial¿Te dice qué arreglar?
INVALID_FORMAT«template has an invalid format» — el único con rejection_info
INCORRECT_CATEGORY«content doesn't match the category designated…»A medias
TAG_CONTENT_MISMATCHla misma descripción, palabra por palabraA medias
ABUSIVE_CONTENT«content that violates our policies»No
PROMOTIONALla misma descripciónNo
SCAMla misma descripciónNo
NONE«template was paused» — no es un rechazo
CATEGORY_NOT_AVAILABLEobsoleto: autenticación en región no admitida

Cinco de los ocho no distinguen nada. Solo INVALID_FORMAT trae rejection_info, con reason y recommendation en prosa: si te rechazan por formato Meta te dice qué arreglar, y si es por política, no. Los fallos que enumera: llaves desparejadas, parámetros con # o % o no secuenciales, y plantillas que empiezan o terminan con un parámetro.

Traducido a reloj: de cada ocho motivos, cinco te devuelven a adivinar, y adivinar cuesta una revisión entera cada vez. Ahí «cuánto tarda» deja de ser una cifra y pasa a ser un número de vueltas, que es lo que nadie cuenta al dar una mediana.

Quién dice qué, y qué mide cada cifra

FuenteQué publicaQué mide en realidad
Twilio (BSP)«within minutes»; hasta 48 h si va a revisión humanasu plataforma y su umbral de escalado
360dialog (BSP)48 h en un punto y 24 h en otro de la misma páginasu propia documentación, que se contradice
Infobip (BSP)«typically… within 24 hours»su estimación de soporte, sin método
Post de agencia, 11-04-2026«mediana de 1h 12m»; «Meta afirma que baja de 2 h»14 envíos sin método; lo atribuido a Meta no cita fuente

Las tres páginas de BSP respondían el 13-09-2026, y solo Twilio publica fecha de actualización comprobable: 04-05-2026, la única fecha de fuente verificada aquí.

Ninguna mide el mercado: las 48 horas de Twilio son el momento en que te dicen que abras un tíquet. Y la cifra que más circula en 2026 es una anécdota de catorce envíos, sin dispersión ni método. No la citamos como dato, sino como ejemplo de lo que circula.

Aprobada no es para siempre

La calidad empieza en UNKNOWN. Con YELLOW y RED todavía se puede enviar, pero RED dispara la pausa. Y reaparece el vicio de la tabla anterior: las descripciones de YELLOW y RED son idénticas salvo por «medium» y «low» (13-09-2026).

InstanciaDuraciónQué llegaQué se puede hacer
1.ª3 horasother_info.title: FIRST_PAUSEesperar, o POST /{TEMPLATE_ID}/unpause
2.ª6 horasSECOND_PAUSEídem
3.ªinhabilitada, sin relojDISABLED; el envío falla con 132016editar y volver a revisión
(extra) limitación de tasano declaradaRATE_LIMITING_PAUSEno documentada

La escalera está escrita así (verificado el 13-09-2026). La trampa está en el arreglo: «once you edit a message template and resubmit it for approval, its status will change to In Review». Salir editando de una pausa de tres horas cuesta el resto de la pausa más una revisión nueva.

La frecuencia alcanza a marketing y utilidad, con ventana de 7 días para plantillas nuevas, reactivadas o sin GREEN. El envío devuelve accepted o held_for_quality_assessment: «aceptado» no es «enviado», y los retenidos se tiran con el código 132015. El umbral es «an unspecified threshold». Se estrenó el 12-09-2023 en Brasil, Colombia y Singapur; en el resto, el 12-10-2023.

Y una cuarta forma de perderla: la recategorización

Si una utilidad debía ser marketing, la categoría cambia y «there is no change to template status; it remains APPROVED»: sigues enviando, y pagando como marketing. El efecto va más allá de la tarifa, porque desde el 01-07-2025 Meta cobra por mensaje entregado y «utility templates delivered within an open customer service window are free». Recategorizar no solo encarece: elimina una gratuidad. Si el cambio es hacia autenticación, el estado pasa a REJECTED el primer día del mes siguiente. Se ve venir con GET /{WABA_ID}/message_templates?fields=category,correct_category.

Y aquí Meta se contradice consigo misma. Para el paso de utilidad a marketing, la guía de categorización dice «A 1-day advance notice is provided» y, párrafos más abajo, «on the first day of the next month». La contradicción es interna a una sola página. El webhook template_category_update habla de «in 24 hours» y desempata contra la segunda. Reportamos la discrepancia; no la resolvemos. Verificado el 13-09-2026.

Cuatro cosas que comprobamos contra la API

Medido contra nuestra cuenta con la Graph API v23.0. Muestras pequeñas de una sola cuenta: cada fila lleva su n y su hora porque sin eso no valen.

Lo que dice la documentaciónLo que devolvió la APICuándo, y con qué n
quality_score trae «the date it was last updated»devolvió 1789311702 y 1789311761 en dos llamadas separadas por 59 s, con el score inmóvil: es la hora de la petición13-09-2026, 15:01:42 y 15:02:41 UTC, v23.0, n=2, una plantilla
last_updated_time es «integer (int64) — Unix timestamp»devolvió la cadena ISO "2026-02-24T21:18:38+0000"13-09-2026, 15:32:23 UTC, v23.0, una plantilla
la prosa nombra message_template_status_changeese nombre no tiene página de referencia; el real es message_template_status_update13-09-2026
health_status trae can_send_messageMESSAGE_TEMPLATE en AVAILABLE, pero el agregado en LIMITED por el error 141010 de la entidad BUSINESS13-09-2026, 15:32:23 UTC, v23.0

La primera: no cronometres nada con quality_score.date. La segunda rompe cualquier parseador escrito contra la referencia. La tercera va con cuidado: ese nombre no tiene página propia y ningún BSP lo usa, pero no pudimos enumerar todos los campos suscribibles, así que no decimos que no exista.

La cuarta es la más útil: aprobada no es enviable. La plantilla estaba APPROVED y el agregado decía LIMITED, porque el negocio no ha pasado la verificación de Meta. Lo que no está documentado no es el campo: es el desglose por entidad y el código 141010, que no figura en la referencia pública de errores.

El protocolo para medirlo con datos propios

El método está listo; los números no: esta medición no se ha ejecutado.

Qué medirDe dónde sale el relojError que arrastra
t0, envío a revisióntu propio reloj: la API no expone marca de envíolatencia de red, despreciable
validación de categoríastatus de la respuesta de creaciónninguno: es síncrono
t1, decisión de contenidoentry[].time del webhook message_template_status_updateninguno, si el campo suscrito es el correcto
t1 sin webhooksondeo de GET /{TEMPLATE_ID}?fields=status cada 30 sel intervalo entero; hay que declararlo
nuncaquality_score.datedevuelve la hora de tu propia petición

Lo demás es disciplina: una variable cada vez, y mediana y p90 con su n, nunca la media. Los límites (13-09-2026): 100 plantillas por cuenta y hora; 250 por cuenta sin portafolio verificado, 6.000 con él; y «if you delete an approved template, you cannot create a new template with the same name for 30 days». Cada iteración quema un nombre. Archivar en vez de borrar sería la salida, pero no pudimos verificar ese endpoint.

Que es la razón por la que medir esto sale caro, y por la que conviene no gastar vueltas en lo evitable: lo que se valida antes de someter no entra en ninguna medición, porque no llega a pasar.

Lo que no sabemos, y conviene decirlo

Lo grande primero. No existe ninguna distribución pública de tiempos de aprobación con método publicado: ni de Meta, ni de ningún BSP, ni de un tercero. Lo comprobamos el 13-09-2026 buscando en inglés y en castellano por mediana, p90 y distribución. Es refutable por construcción: si alguien publica esa distribución, esta frase cae, y mejor.

Y las lagunas de este trabajo, que son contenido y no vergüenza:

  • No pudimos confirmar la fecha de actualización de ninguna página de Meta. Por eso las tablas dicen «verificado».
  • No se sabe qué proporción resuelve la máquina y cuál llega a un revisor humano.
  • No se sabe cuál de los dos plazos de recategorización rige: no hemos visto una carga real de ese webhook.
  • No se sabe si la categoría, el idioma o la hora del día cambian el tiempo de revisión. Es plausible; nadie lo ha medido publicando el método.
  • No hay ninguna cifra observada de cuánto tarda una apelación, y el registro de cambios oficial devolvía HTTP 500 el 13-09-2026.

El número exacto es alcanzable, y el método está en el apartado 08. Mientras nadie lo mida, cualquier cifra sobre cuánto tarda Meta en aprobar una plantilla es un techo declarado o una anécdota, y lo honesto es decir cuál de las dos.

Esta nota sale de nuestro trabajo en AI-CRM Connection.

← todas las notas