¿Cómo se lee un error de la WhatsApp Cloud API?
Un error de la Cloud API es un objeto JSON con un código numérico y una descripción de la causa. Puede llegar en la respuesta inmediata a tu solicitud (síncrono), después en el webhook messages (asíncrono) o por las dos vías, así que Meta recomienda vigilar ambas. Este es el ejemplo que publica Meta:
{
"error": {
"message": "(#130429) Rate limit hit",
"type": "OAuthException",
"code": 130429,
"error_data": {
"messaging_product": "whatsapp",
"details": "Cloud API message throughput has been reached."
},
"fbtrace_id": "Az8or2yhqkZfEZ-_4Qn_Bam"
}
}| Campo | Qué contiene | Cómo usarlo |
|---|---|---|
| code | El código del error | Es la base de tu lógica de manejo de errores, no el código HTTP ni el subcódigo |
| error_data.details | La causa más probable y, a veces, qué parámetro falla o qué valores se aceptan | Regístralo siempre: es lo que más ayuda a depurar |
| message | El código y su título, por ejemplo (#130429) Rate limit hit | Solo para leer: Meta va a deprecar los títulos |
| error_subcode | Subcódigo de Graph API | Deprecado: no se devuelve en respuestas de v16.0 en adelante |
| fbtrace_id | ID de rastreo de la solicitud | Inclúyelo si abres un ticket en Direct Support |
En los webhooks, los errores generales llegan en entry.changes.value.errors y los de cada mensaje o estado, dentro de ese mensaje o estado. Un estado failed trae un arreglo errors con code, title, message, error_data.details y href (el enlace a la página de códigos). Qué significa cada estado: estados de mensajes y webhooks.
¿Cuáles son los códigos de error más frecuentes?
Estos son los códigos que más aparecen al enviar mensajes con la Cloud API. Cada uno tiene su detalle (causa y solución) en la tabla de su familia, más abajo.
| Código | Qué significa | Familia | ¿Conviene reintentar? |
|---|---|---|---|
| 131047 | Pasaron más de 24 h desde el último mensaje del usuario | Envío y entrega | No: envía una plantilla |
| 131026 | El mensaje no se pudo entregar al destinatario | Envío y entrega | No |
| 131050 | El usuario dejó de recibir marketing de tu empresa | Envío y entrega | No |
| 131049 | Límite de plantillas de marketing por usuario | Límites y throughput | Solo después de 24 h |
| 130429 | Se alcanzó el throughput del número | Límites y throughput | Sí, con espera |
| 131056 | Demasiados mensajes al mismo usuario en poco tiempo | Límites y throughput | Sí, con espera |
| 132000 | La cantidad de parámetros no coincide con la plantilla | Plantillas | No, hasta corregir |
| 132001 | La plantilla no existe en ese idioma o no está aprobada | Plantillas | No, hasta corregir |
| 132015 | La plantilla está pausada por baja calidad | Plantillas | Cuando vuelva a estar activa |
| 133010 | El número no está registrado en la plataforma | Registro de números | Después de registrarlo |
| 131042 | Hay un problema con el método de pago | Pagos y facturación | No, hasta corregir |
| 368 131031 | Cuenta restringida o deshabilitada (131031: también un dato que no coincide, como el PIN) | Autorización y cuenta | No |
¿Qué significan los errores de autorización y de cuenta (190, 368, 131031, 130497)?
Son errores de acceso: el token o los permisos no alcanzan, o Meta restringió la cuenta. Ninguno se resuelve reintentando la misma solicitud.
| Código | Qué significa | Causa más común | Cómo resolverlo | ¿Conviene reintentar? |
|---|---|---|---|---|
| 0 | Meta no pudo autenticar al usuario de la app | El token venció o se invalidó, o el usuario impidió que las apps accedan a sus datos | Genera un token nuevo; en producción, usa un token de usuario del sistema | No, hasta renovar el token |
| 190 | El token de acceso venció | Token temporal o sin renovar | Genera un token nuevo | No, hasta renovar el token |
| 3 | Problema de capacidad o de permisos | La app no tiene el permiso que exige el endpoint | Revisa los permisos con el depurador de tokens de acceso | No |
| 10 131005 | El permiso no se otorgó o se retiró | Falta un permiso o la cuenta no es elegible para esa API. En Flows con endpoint, el 10 también aparece si el número con el que configuraste la clave pública no está habilitado | Revisa el token con el depurador y los requisitos de la API que usas | No |
| 200 200-299 | Falta el token o un permiso | En algunos GET (como whatsapp_business_profile) el 200 indica que no enviaste token (“Provide valid app ID”); también aparece al dar de baja un número sin el permiso whatsapp_business_management | Envía un token válido con los permisos whatsapp_business_messaging y whatsapp_business_management | No |
| 368 | La cuenta de WhatsApp Business asociada a la app fue restringida o deshabilitada por incumplir una política | Infracciones repetidas: spam, plantillas mal clasificadas o categorías de alto riesgo | Revisa la infracción en Business Support Home, corrige la causa y apela si crees que cumples la política | No: espera el fin de la restricción o el resultado de la apelación |
| 131031 | La cuenta fue restringida o deshabilitada por una política, o Meta no pudo verificar un dato de la solicitud contra la cuenta (por ejemplo, el PIN de verificación en dos pasos es incorrecto) | Una sanción o un PIN equivocado | Si es el PIN, corrígelo. Si es una sanción, sigue el mismo camino que con 368. La Health Status API puede dar más contexto del bloqueo | Solo después de corregir el dato |
| 130497 | La cuenta no puede enviar mensajes a usuarios de ciertos países | Restricción según la categoría de tu negocio en la Business Messaging Policy | Revisa en la política qué países admite tu categoría | No, a esos países |
| 131037 | El número 555 que usas para enviar no tiene un nombre visible aprobado | Número 555 de Meta (de los que ofrece Embedded Signup) sin nombre aprobado | Cambia el nombre visible y espera su aprobación | No, hasta aprobar el nombre |
| 33 | El número de empresa fue eliminado | Usas un número o un ID de número que ya no existe | Verifica el número y su ID | No |
| 2593079 2593085 | La cuenta no puede transferirse con el modelo OBO | El modelo de propiedad On Behalf Of (OBO) está deprecado | Contacta al soporte de Meta | No |
368 y 131031 comparten causa: la cuenta asociada a la app fue restringida o deshabilitada por incumplir una política. 131031 tiene un segundo significado, más técnico: Meta no pudo verificar un dato de tu solicitud contra la cuenta, como un PIN de verificación en dos pasos incorrecto. Las restricciones crecen con cada reincidencia: bloqueo de 1 o 3 días para enviar plantillas de marketing, utility y authentication; de 5, 7 o 30 días para enviar cualquier mensaje; bloqueo de cuenta que solo se levanta con una apelación, y deshabilitación permanente.
La apelación se pide en Business Support Home y la decisión suele tardar de 24 a 48 horas. Para enterarte de una infracción en tiempo real, con el tipo y la duración de la restricción, suscríbete al webhook account_update. El paso a paso para apelar está en cómo recuperar una cuenta bloqueada.
¿Qué errores aparecen cuando superas un límite (130429, 131056, 131049)?
Son errores de ritmo o de volumen: Meta frena el envío porque superaste un tope. Algunos se resuelven esperando unos segundos; otros, esperando 24 horas o cambiando la estrategia.
| Código | Qué significa | Causa más común | Cómo resolverlo | ¿Conviene reintentar? |
|---|---|---|---|---|
| 4 | La app llegó a su límite de llamadas a la API | Demasiadas consultas de la app en la última hora | Revisa la sección Application Rate Limit en el panel de la app y reduce la frecuencia | Sí, más tarde |
| 80007 | La cuenta de WhatsApp Business llegó a su límite de solicitudes | Más de 200 solicitudes por hora, por app y por Messaging account, a endpoints de gestión (5.000 si la cuenta está activa y tiene un número registrado) | Espacia las consultas de gestión y guarda en caché lo que no cambia | Sí, más tarde |
| 130429 | Se alcanzó el throughput del número | Más mensajes por segundo de los permitidos: 80 por defecto, hasta 1.000 con la mejora automática y 20 en números de Coexistence. Cuentan entrantes y salientes de todo tipo | Encola los envíos y respeta el ritmo de tu nivel | Sí, con espera |
| 131056 | Demasiados mensajes del mismo número de empresa al mismo usuario en poco tiempo | Límite por par: 1 mensaje cada 6 segundos (unos 10 por minuto). Se admiten ráfagas de hasta 45, que se descuentan del cupo siguiente | Espera antes de volver a escribirle a ese usuario; a otros usuarios puedes seguir enviando | Sí, con espera creciente (Meta sugiere 4^X segundos) |
| 131048 | Hay restricciones a cuántos mensajes puede enviar este número | Muchos mensajes anteriores fueron bloqueados o marcados como spam | Revisa la calidad en WhatsApp Manager y la de tus plantillas | No: cambia contenido y segmentación |
| 131049 | El mensaje no se entregó para mantener un ecosistema sano | Límite adaptativo de plantillas de marketing por usuario, o reintentos excesivos a usuarios que ya llegaron a ese límite | Espera al menos 24 horas antes de reenviarle a esa persona; envía menos y mejor | Solo después de 24 h |
| 131064 | La cuenta llegó a su límite de mensajes por violaciones de clasificación de plantillas | Plantillas que se declaran Utility y Meta considera Marketing, de forma sistemática. Aplica a plantillas y a Direct Send | Revisa la categoría de tus plantillas; la restricción se levanta sola al terminar el período de sanción | No, hasta que termine el período |
| 131057 | La cuenta está en modo mantenimiento | Por ejemplo, la mejora automática a 1.000 mps, que deja el número hasta 1 minuto fuera de servicio | Espera unos minutos | Sí, en unos minutos |
| 2494100 | El número está en modo mantenimiento | Mantenimiento del número de empresa | Vuelve a intentar en unos minutos | Sí, en unos minutos |
Cada código corresponde a un límite distinto: el de llamadas a la API (4 y 80007), el throughput de cada número (130429), el ritmo por par empresa–usuario (131056), el límite de marketing por usuario (131049) y las restricciones por calidad o por clasificación (131048 y 131064). El límite de mensajería (cuántos usuarios únicos puedes contactar fuera de la ventana de servicio en 24 horas móviles, fijado por business portfolio) no tiene un código propio en la lista de Meta: consulta tu nivel con el campo whatsapp_business_manager_messaging_limit o en la guía de límites de mensajes.
¿Qué significa el error 131047 y por qué el Free Entry Point no lo evita?
131047 significa que pasaron más de 24 horas desde la última respuesta del usuario: la ventana de servicio de 24 horas está cerrada y Meta rechaza el mensaje sin plantilla. La ventana se abre cuando el usuario te escribe o te llama, y vuelve a 24 horas con cada nuevo mensaje o llamada. Mientras está abierta puedes enviar cualquier mensaje de servicio; cuando se cierra, solo plantillas aprobadas. Reintentar el mismo texto no sirve: hay que enviar una plantilla.
No lo confundas con el Free Entry Point (FEP) de Click to WhatsApp. Son dos relojes distintos. El FEP es una exención de cobro: si respondes dentro de las 24 horas a quien llegó por un anuncio, durante hasta 7 días no se cobran Marketing, Utility, Authentication ni Servicio (Meta Business Agent sí se cobra). La ventana de 24 horas, en cambio, es el permiso para enviar texto libre. El FEP no amplía la ventana: si pasaron 24 horas desde el último mensaje del usuario, el texto libre devuelve 131047 aunque el FEP siga abierto. En ese caso envía una plantilla, que mientras dure el FEP no se cobra. Detalle en Click to WhatsApp: hasta 7 días sin cobro.
Con Direct Send pasa lo mismo si no indicas una categoría: el mensaje sigue el flujo normal y, sin ventana abierta, devuelve 131047.
Si ves picos de 131047, revisa tu lógica de cola: normalmente son respuestas de agentes escritas horas después o automatizaciones que se disparan con retraso. Guarda la hora del último mensaje de cada usuario y decide antes de enviar si corresponde texto libre o plantilla.
¿Por qué un mensaje no se entrega (131026, 131050, 130472)?
Son errores sobre el destinatario o el contenido del envío: la solicitud puede ser válida, pero ese mensaje no puede llegar a esa persona. Casi ninguno se resuelve reintentando.
| Código | Qué significa | Causa más común | Cómo resolverlo | ¿Conviene reintentar? |
|---|---|---|---|---|
| 131047 | Pasaron más de 24 h desde la última respuesta del usuario | Texto libre (o cualquier mensaje sin plantilla) con la ventana de servicio cerrada | Envía una plantilla aprobada | No con texto libre; sí con plantilla |
| 131026 | No se pudo entregar el mensaje | El número no tiene WhatsApp, el usuario no aceptó los términos y la política de privacidad vigentes, o usa una versión de WhatsApp demasiado vieja | Valida el número en formato internacional. Por otro canal, pídele que confirme que puede escribirte, que acepte los términos y que actualice la app | No |
| 131050 | El usuario eligió dejar de recibir mensajes de marketing de tu empresa | Lo decidió desde WhatsApp | No le reenvíes marketing. Suscríbete al webhook user_preferences para saber cuándo deja o vuelve a aceptar | No |
| 130472 | El mensaje no se envió porque el usuario forma parte de un experimento de Meta | Experimento de marketing: un porcentaje muy pequeño de usuarios no recibe plantillas de marketing, salvo que haya una ventana de servicio o un Free Entry Point abiertos | No se cobra y no hay excepciones. Si necesitas que le llegue, pídele por otro canal que te escriba y reenvíalo dentro de la ventana | No: devuelve el mismo error |
| 130403 | Tu empresa bloqueó a ese usuario | Lo bloqueaste desde la API o desde tu bandeja | Desbloquéalo si quieres volver a escribirle | No, hasta desbloquearlo |
| 131021 | El remitente y el destinatario son el mismo número | Prueba enviada al propio número de empresa | Envía a otro número | No |
| 139100 139101 139102 139103 | Errores de la Block Users API: no se pudo bloquear o desbloquear a algunos usuarios del lote (139100), la lista llegó a su tope de 64.000 (139101), la lista cambió mientras la paginabas (139102) o error interno (139103) | En 139100, cada usuario fallido trae su propio código en failed_users, por ejemplo 131047 si no te escribió en las últimas 24 horas | Revisa failed_users, desbloquea a quienes ya no necesites en la lista o vuelve a leerla desde el principio | Solo 139103 |
| 131051 | Tipo de mensaje no admitido | El type del payload no existe o no se admite | Revisa los tipos de mensaje admitidos | No, hasta corregir |
| 131053 | No se pudo subir el archivo multimedia | Tipo de archivo (MIME) no admitido u otro problema con el archivo | Lee error_data.details y comprueba el tipo MIME real del archivo | Solo después de corregir el archivo |
| 100 | Parámetro no admitido o mal escrito | Un campo con error de tipeo, un valor demasiado largo o un ID de número que no coincide con el guardado | Compara el payload con la referencia del endpoint | No, hasta corregir |
| 131008 131009 | Falta un parámetro obligatorio (131008) o un valor no es válido (131009) | Payload incompleto o con valores fuera de lo admitido | Revisa la referencia del endpoint | No, hasta corregir |
| 135000 | Error desconocido con los parámetros de la solicitud; también es el código de los mensajes que Meta descarta por portfolio pacing | Sintaxis incorrecta o, con pacing, señales sospechosas durante la entrega por lotes | Revisa la sintaxis. Si vino por pacing, revisa opt-in, segmentación y contenido | No |
| 131000 | El envío falló por un error desconocido | Falla puntual | Reintenta; si persiste, abre un ticket en Direct Support con el fbtrace_id | Sí, una vez |
| 1 2 131016 | Solicitud inválida o error de servidor (1), caída o sobrecarga (2), servicio no disponible (131016) | Problema temporal de la plataforma o, en el 1, una solicitud mal armada | Revisa el estado de la plataforma en metastatus.com (ver WhatsApp caído); si no hay caída, revisa el formato | Sí, con espera |
No hay un código para "el usuario bloqueó a tu empresa": ese mensaje queda en sent sin pasar a delivered y Meta no informa la causa. La guía de cómo saber si un cliente te bloqueó explica qué hacer.
135000 tiene dos lecturas. En la lista general es un error desconocido con los parámetros de la solicitud. Con el portfolio pacing (la entrega por lotes que Meta aplica a portfolios con menos de 500.000 plantillas enviadas en 365 días o bajo monitoreo), es el código de los mensajes retenidos como held_for_quality_assessment que Meta descarta al detectar señales sospechosas. En ese caso, además, el portfolio no puede enviar ni crear plantillas mientras dura la revisión.
¿Qué significan los errores de plantillas (132000 a 132016)?
Son errores de la plantilla que envías o que intentas crear: parámetros que no coinciden, idioma o estado incorrectos, pausas por calidad y reglas propias de Marketing Messages API y Direct Send.
| Código | Qué significa | Causa más común | Cómo resolverlo | ¿Conviene reintentar? |
|---|---|---|---|---|
| 132000 | La cantidad de parámetros no coincide con la plantilla | Se editó la plantilla y no el código, o se reutiliza el payload en otro idioma | Envía un valor por cada variable que declara la plantilla | No, hasta corregir |
| 132001 | La plantilla no existe en ese idioma o no está aprobada | Nombre o código de idioma equivocado, o plantilla pendiente o rechazada | Revisa nombre, código de idioma y estado de aprobación | No, hasta corregir |
| 132005 | El texto traducido es demasiado largo | La traducción supera el largo admitido | Revisa la traducción en WhatsApp Manager | No, hasta corregir |
| 132007 | El contenido de la plantilla viola una política de WhatsApp | Contenido no permitido | Revisa los motivos de rechazo y edita la plantilla | No |
| 132012 | Los valores de las variables tienen un formato incorrecto | No respetan el formato definido en la plantilla | Ajusta el formato de cada parámetro | No, hasta corregir |
| 132015 | La plantilla está pausada por baja calidad | Llegó a calidad baja: la 1.ª pausa dura 3 horas y la 2.ª, 6 horas | Espera a que vuelva a estar activa o edítala (vuelve a revisión). Las pausadas por template pacing se reactivan a mano | Cuando vuelva a estar activa |
| 132016 | La plantilla quedó deshabilitada para siempre | Se pausó demasiadas veces por baja calidad (la 3.ª vez se deshabilita) | Crea una plantilla nueva con otro contenido | No |
| 131063 | La plantilla es de marketing, pero el marketing está desactivado en tu configuración de Cloud API | La Messaging account tiene disable_marketing_messages_on_cloud_api en true | Envíala por Marketing Messages API o vuelve a activar el marketing en Cloud API | No, hasta cambiar la configuración |
| 132018 | Error de validación de la plantilla (Marketing Messages API) | Problema con los parámetros | Corrige los parámetros y vuelve a enviar | No, hasta corregir |
| 131055 134100 | Marketing Messages API solo admite plantillas de marketing | Enviaste un mensaje sin plantilla o una plantilla Utility o Authentication | Usa una plantilla de marketing o envía lo demás por Cloud API | No |
| 134101 | La plantilla todavía se está sincronizando (Marketing Messages API) | Plantilla recién creada: la sincronización tarda hasta 10 minutos | Espera 10 minutos | Sí, a los 10 minutos |
| 134102 | La plantilla no está disponible (Marketing Messages API) | La sincronización no terminó o la cuenta no es elegible | Revisa el estado de incorporación; si figura ONBOARDED y el error sigue, contacta al soporte | Depende de la causa |
| 132021 | Direct Send: el template_name ya existe con otro contenido en la Messaging account | Nombre repetido | Usa un template_name único (solo minúsculas, números y guion bajo) | No, hasta cambiar el nombre |
| 139200 | Direct Send restringido | Restricción por la revisión de integridad de categorías | Corrige la categoría declarada y espera a que termine la restricción | No |
| 2388019 | Superaste el máximo de plantillas de la cuenta | 250 por Messaging account si el portfolio no está verificado; hasta 6.000 si está verificado y tiene un número con nombre visible aprobado | Borra plantillas que no uses o verifica la empresa | No |
| 2388040 | Un campo supera el límite de caracteres | Texto demasiado largo | El mensaje de error indica el campo y su límite | No, hasta corregir |
| 2388047 2388072 2388073 | Formato incorrecto en el encabezado, el cuerpo o el pie | Formato no admitido | Corrige según el detalle del error | No, hasta corregir |
| 2388293 | Demasiadas variables para el largo de la plantilla | Proporción de variables por palabra demasiado alta | Quita variables o alarga el mensaje | No, hasta corregir |
| 2388299 | Variables al principio o al final | La plantilla empieza o termina con una variable | Agrega texto fijo antes y después | No, hasta corregir |
| 2388039 | No se puede cambiar el estado de la plantilla | Intentas editar una plantilla que sigue en revisión; además, hay un límite diario de ediciones | Espera a que se apruebe o se rechace | Después de la revisión |
| 200005 200006 200007 | Estadísticas de plantillas no disponibles, no se pueden desactivar o no están activadas | Función todavía no disponible para la cuenta, o activada (no se puede revertir) | Actívalas desde la API de analytics cuando estén disponibles | No |
Las pausas siguen una escala fija: la primera dura 3 horas, la segunda 6 horas y la tercera deshabilita la plantilla (132016). Intentar enviar una plantilla pausada no se cobra ni consume tu límite de mensajería, pero la API lo rechaza igual: frena las campañas que dependen de ella. Cómo reactivarlas y qué hacer después: plantillas pausadas.
132000 y 132001 se detectan rápido en un ambiente de pruebas: envía siempre una plantilla de cada tipo antes de liberar un cambio a producción, sobre todo si editaste la plantilla o la reutilizas en otro idioma.
¿Qué errores devuelve WhatsApp Flows (132068, 132069, 139000)?
WhatsApp Flows tiene sus propios códigos: dos que devuelve la Cloud API al enviar (132068 y 132069), los de la API de gestión de Flows (139000 a 139006) y los que genera tu endpoint o llegan como alertas por webhook.
| Código | Qué significa | Causa más común | Cómo resolverlo | ¿Conviene reintentar? |
|---|---|---|---|---|
| 132068 | El Flow está bloqueado | El Flow tiene problemas que Meta detectó | Corrige el Flow | No, hasta corregirlo |
| 132069 | El Flow está limitado y ya se enviaron 10 mensajes con él en la última hora | El Flow quedó en estado limitado (throttled) | Corrige el Flow | No, hasta corregirlo |
| 139000 | Bloqueado por integridad: no puedes crear ni publicar Flows | Meta detectó un problema de integridad en la cuenta | Contacta al soporte | No |
| 139001 | No se puede actualizar el Flow | Ya está publicado, o falló el procesamiento interno del Flow JSON | Clónalo, edítalo y publícalo de nuevo. Si fue un error interno, repite la misma solicitud | Solo si fue un error interno |
| 139002 | No se puede publicar el Flow | No es borrador, tiene errores de validación, falta endpoint_uri, número, clave pública firmada o app conectada, el endpoint no responde el health check o la cuenta no está suscrita a los webhooks de Flows | Resuelve lo que indique el detalle y vuelve a publicar | Después de corregir |
| 139003 139004 | No se puede deprecar un Flow sin publicar (139003) ni borrar uno publicado (139004) | Acción no válida para el estado del Flow | Borra los borradores; depreca los publicados | No |
| 139006 | No hay datos suficientes para las métricas | El Flow todavía tiene poco uso | Espera a tener más respuestas | Más adelante |
| HTTP 421 HTTP 432 HTTP 427 | Respuestas de tu endpoint: no se pudo descifrar (421), falló la firma (432) o el flow_token ya no es válido (427) | Clave pública desactualizada, firma inválida o un Flow que ya no debe usarse | Con 421, el cliente vuelve a pedir la clave y reenvía; con 427, se deshabilita el botón y puedes mostrar un mensaje propio | Lo maneja el cliente de WhatsApp |
| timeout_error | El endpoint tardó más de 10 segundos | Endpoint lento | Optimiza el endpoint para responder en menos de 10 segundos | Sí, tras mejorarlo |
| cannot_be_served | El Flow no se puede enviar ni abrir | No está en DRAFT ni PUBLISHED, la cuenta está bloqueada por integridad o faltan version o data_api_version en el Flow JSON | Revisa el estado del Flow y su Flow JSON | No, hasta corregir |
Si usas un endpoint, dos errores generales también se aplican a Flows: el 10, si el número con el que configuraste la clave pública no está habilitado, y el 100, si la clave no es una clave pública RSA de 2048 bits en formato PEM. Más sobre cómo se arman y se publican: guía de WhatsApp Flows.
¿Qué significan los errores de registro del número (133000 a 133016)?
Aparecen al registrar o dar de baja un número en la Cloud API, al migrarlo o al sincronizar un número de la App conectado a la API (Coexistence). El registro solo se hace por API, con un pin de 6 dígitos, no desde WhatsApp Manager.
| Código | Qué significa | Causa más común | Cómo resolverlo | ¿Conviene reintentar? |
|---|---|---|---|---|
| 133010 | El número no está registrado en la plataforma | Se agregó y verificó el número, pero faltó registrarlo por API | Regístralo con POST /<PHONE_NUMBER_ID>/register y el pin | Después de registrarlo |
| 131045 | El envío falló por un error de registro del número | Número sin registrar o con el registro incompleto | Registra el número | Después de registrarlo |
| 133005 | PIN de verificación en dos pasos incorrecto | PIN equivocado | Usa el PIN correcto. Para cambiarlo, envía uno nuevo con POST /PHONE_NUMBER_ID (campo pin) o usa WhatsApp Manager | Con el PIN correcto |
| 133006 | El número tiene que verificarse antes de registrarse | Faltó verificar que el número es tuyo | Verifica el número y después regístralo | Después de verificarlo |
| 133008 | Demasiados intentos de PIN para este número | Intentos fallidos repetidos | Espera el tiempo que indica details | Después de ese plazo |
| 133009 | El PIN se ingresó demasiado rápido | Intentos muy seguidos | Lee details antes de volver a intentar | Sí, más despacio |
| 133016 | Demasiados intentos de registro o de baja en poco tiempo | Más de 10 solicitudes por número en 72 horas móviles | Espera: el número queda bloqueado para esa operación durante 72 horas | Después de 72 h |
| 133000 | Falló un intento previo de dar de baja el número | Baja (deregister) incompleta | Da de baja el número otra vez y después regístralo | Sí, después de la baja |
| 133015 | El número se borró hace poco y la eliminación no terminó | Borrado reciente | Espera 5 minutos | Sí, a los 5 minutos |
| 133004 | Servidor temporalmente no disponible | Falla de la plataforma | Revisa metastatus.com y el campo details | Sí, con espera |
| 2388103 | No se puede migrar el número (el código tiene varias variantes) | La migración de números no está soportada en el nuevo modelo de cuentas; otras variantes piden un nombre visible aprobado, indican que el número se puede agregar directo o un error transitorio | Lee el texto del error: comparte la WhatsApp account, aprueba el nombre visible o registra el número directamente | Solo en la variante de error transitorio |
| 2388012 | El número ya está en tu WhatsApp account | Intentas migrar un número que ya tienes | Usa otro número | No |
| 2388091 2388093 | El número no puede recibir ni verificar un código porque no se está migrando | Usaste las API de verificación de la migración en un alta normal | Registra y verifica el número por el camino normal | No |
| 2593107 | Ya usaste la sincronización de la App (Coexistence) | Solo se puede sincronizar una vez los contactos y una vez el historial | Desconecta al cliente y vuelve a incorporarlo | No |
| 2593108 | La sincronización solo se puede pedir dentro de las 24 horas del alta | Pasaron más de 24 horas desde la incorporación | Desconecta al cliente y vuelve a incorporarlo | No |
| 1005 | Intento de registrar un número en la On-Premises API | Desde el 1/7/2024 los números solo se registran en Cloud API, y On-Premises dejó de entregar mensajes el 23/10/2025 | Registra el número en Cloud API | No |
El límite que más sorprende es el de 133016: los endpoints de registro y de baja admiten 10 solicitudes por número en 72 horas móviles, y al pasarte el número queda bloqueado para esa operación durante las 72 horas siguientes. No automatices reintentos de registro. Tampoco puedes dar de baja por API un número que se usa a la vez en la App y en Cloud API. Y con el nuevo modelo de cuentas, la migración de números entre cuentas no está soportada: si cambias de proveedor, compartes la WhatsApp account.
Meta está retirando el PIN de los números elegibles. La guía de verificación en dos pasos explica cómo saber si tu número todavía lo usa y qué enviar en pin mientras tanto.
¿Qué errores tienen que ver con pagos y facturación (131042, 134011)?
Son errores de la cuenta de pago de tu Messaging account o de los términos de los pagos dentro del chat. Se corrigen en la configuración de facturación, no en el código.
| Código | Qué significa | Causa más común | Cómo resolverlo | ¿Conviene reintentar? |
|---|---|---|---|---|
| 131042 | Hay un error relacionado con tu método de pago | Cuenta de pago no vinculada a la cuenta, línea de crédito excedida, sin configurar o inactiva, cuenta borrada o suspendida, zona horaria o moneda sin configurar, o solicitud “Messaging For” pendiente o rechazada | Revisa la facturación de la cuenta en Meta Business Suite o, si pagas a través de tu proveedor, su línea de crédito | No, hasta corregir la facturación |
| 134011 | Falta aceptar los términos de WhatsApp Payments | Términos de pagos pendientes en la cuenta | Acéptalos con el enlace que trae el mensaje de error | Después de aceptarlos |
| Sin código documentado | Mensajes de servicio sin entregar por falta de método de pago | Desde el 1/10/2026, sin método de pago Meta entrega los mensajes de servicio del cupo gratis (1.000 por número al mes) pero no los que lo superan | Carga un método de pago en la Messaging account | Después de cargarlo |
Un mensaje que no se entrega no se cobra: Meta cobra por mensaje entregado. Tampoco se cobra el intento de enviar una plantilla pausada ni el mensaje que no sale por el experimento de marketing (130472). Qué cambió en la facturación de Meta: cambio de precios de octubre de 2026.
¿Qué errores llegan por webhook y qué hacer si los webhooks no llegan?
Los webhooks traen los errores asíncronos de tus envíos y también algunos de los mensajes que recibes. Si tu endpoint falla, además, pierdes la señal de todos los demás errores.
| Código o síntoma | Qué significa | Causa más común | Cómo resolverlo | ¿Conviene reintentar? |
|---|---|---|---|---|
| 131051 (mensaje entrante) | El usuario te envió un tipo de mensaje que Cloud API no admite | Por ejemplo, una encuesta | El webhook llega con type unsupported y el detalle en unsupported.type; pídele el contenido en otro formato | No aplica |
| 131060 (mensaje entrante) | El mensaje no está disponible por ahora | Suele pasar cuando un usuario escribe por primera vez a un número de la App conectado a la API (Coexistence) | Tenlo en cuenta en tu lógica de recepción | No aplica |
| 131052 (mensaje entrante) | No se pudo descargar el archivo que envió el usuario | Falla al obtener el multimedia | Lee error_data.details en el webhook y pide el archivo por otro medio | No aplica |
| value.errors | Errores que no dependen de un mensaje puntual | Problemas de la cuenta, la app o el número | Regístralos aparte y alerta por código | Según el código |
| Sin código: no llegan webhooks | Tu endpoint no recibe notificaciones | Endpoint caído o que no responde 200, app en modo Dev o falta el permiso whatsapp_business_messaging (messages y calls) o whatsapp_business_management (el resto) | Envía un payload de prueba desde el panel de la app, pasa la app a Live, revisa permisos y prueba con el endpoint de test de Meta | Meta reintenta sola hasta 7 días |
| Sin código: webhooks lentos | Tu servidor no da abasto | Meta envía webhooks en paralelo: hay que soportar 3 veces el tráfico saliente más el entrante esperado | Apunta a una latencia mediana de 250 ms o menos y a menos del 1 % por encima de 1 segundo: responde 200 rápido y procesa en una cola | No aplica |
| Alertas de Flows | Errores del endpoint o de la clave de un Flow (timeout_error, public-key-missing, response-decryption-error y otros) | Endpoint lento o clave pública mal cargada | Ver la tabla de Flows | Según el caso |
Meta reintenta los webhooks que no reciben un 200 con frecuencia decreciente durante hasta 7 días, y esos reintentos pueden llegar duplicados: responde 200 rápido, procesa en una cola y descarta duplicados por ID. Los payloads pesan hasta 3 MB. Si filtras por IP, ten en cuenta que Meta cambia sus direcciones periódicamente; como alternativa, sugiere usar mTLS.
¿Cómo saber antes de enviar si vas a poder (Health Status API)?
La Health Status API te dice, antes de enviar, si un número, una plantilla o una cuenta pueden mandar mensajes. Se consulta pidiendo el campo health_status sobre la Messaging account (WABA), el número de empresa o la plantilla:
GET /<NODE_ID>?fields=health_statusLa respuesta resume todos los nodos que intervienen en el envío: el número (si consultaste un número), la plantilla (si consultaste una plantilla), la Messaging account, el business portfolio y la app. Cada uno tiene un valor can_send_message:
| Valor | Qué significa | Qué hacer |
|---|---|---|
| AVAILABLE | El nodo cumple todos los requisitos para enviar | Puedes enviar |
| LIMITED | Puede enviar, pero con alguna limitación; la respuesta trae additional_info. Ejemplo de Meta: un número sin nombre visible aprobado tiene un límite de mensajes que sube cuando se aprueba el nombre | Lee additional_info antes de una campaña grande |
| BLOCKED | No cumple uno o más requisitos; la respuesta trae errors con error_code, error_description y possible_solution. Ejemplo de Meta: una plantilla pendiente devuelve 141002 (solo se envían plantillas aprobadas) | No envíes: resuelve lo que indica possible_solution |
El can_send_message general toma el peor valor: BLOCKED si algún nodo está bloqueado, LIMITED si ninguno está bloqueado pero alguno está limitado y AVAILABLE solo si todos están disponibles. Para llamadas por SIP existe can_receive_call_sip, que no tiene valor general. Es el primer chequeo cuando recibes 131031: Meta indica que esta API puede dar más contexto sobre el bloqueo de la cuenta. Ejemplo de respuesta LIMITED (de la documentación de Meta):
{
"health_status": {
"can_send_message": "LIMITED",
"entities": [
{
"entity_type": "PHONE_NUMBER",
"id": "106540352242922",
"can_send_message": "LIMITED",
"additional_info": [
"Your display name has not been approved yet. Your message limit will increase after the display name is approved."
]
},
{ "entity_type": "WABA", "id": "102290129340398", "can_send_message": "AVAILABLE" },
{ "entity_type": "BUSINESS", "id": "506914307656634", "can_send_message": "AVAILABLE" },
{ "entity_type": "APP", "id": "634974688087057", "can_send_message": "AVAILABLE" }
]
},
"id": "106540352242922"
}¿Cómo depurar un error de WhatsApp API paso a paso?
Depurar un error es pasar del código a la causa y de la causa a una acción. Este orden evita reintentos inútiles:
- Guarda la respuesta completa. Registra
code,error_data.detailsyfbtrace_id. No bases tu lógica en el título del error ni en el código HTTP. - Escucha el webhook, no solo la respuesta. Un 200 al enviar solo dice que Meta aceptó la solicitud. Si después llega un estado
failed, el arregloerrorstrae el código real. - Ubica el código en su familia. Autorización, límites, envío, plantillas, Flows, registro, pagos o webhooks: la tabla de cada familia dice si conviene reintentar.
- Consulta la Health Status API del número y, si envías una plantilla, de la plantilla. Si algo figura BLOCKED, no sigas enviando.
- Revisa la ventana. Con 131047, la ventana de 24 horas está cerrada: usa una plantilla, aunque haya un Free Entry Point abierto.
- Revisa la plantilla. Estado aprobado, calidad (
quality_score), categoría, idioma y cantidad de variables. - Revisa los límites. Nivel de mensajería (
whatsapp_business_manager_messaging_limit), throughput (GET /<PHONE_NUMBER_ID>?fields=throughput) y ritmo por usuario. - Revisa las sanciones. Business Support Home y el webhook
account_updatemuestran infracciones y restricciones activas. - Descarta una caída en metastatus.com y, si el error persiste, abre un ticket en Direct Support con el
fbtrace_id.
¿Cuándo conviene reintentar y cuándo no?
| Tipo de error | Códigos | Qué hacer |
|---|---|---|
| Temporal o de ritmo | 1, 2, 4, 80007, 130429, 131000, 131016, 131056, 131057, 133004, 2494100 | Reintenta con espera creciente (para 131056, Meta sugiere 4^X segundos e ir subiendo X); con 131000, una sola vez |
| Con plazo fijo | 131049 (24 h), 133016 (72 h), 133015 (5 min), 134101 (10 min), 133008 (lo que indique details), 132015 (hasta que la plantilla vuelva a estar activa) | Espera el plazo; reintentar antes solo suma errores |
| De regla o de datos | 131047, 131026, 131050, 130472, 130403, 130497, 132000, 132001, 132012, 132016, 131064, 131042, 368, 131031 | No reintentes igual: cambia algo (plantilla, datos, configuración, facturación) o espera una decisión de Meta |
Preguntas relacionadas
¿Puedo reintentar automáticamente un mensaje que falló?
¿Los mensajes fallidos se cobran?
Preguntas Frecuentes
Fuentes oficiales
- Meta for Developers — WhatsApp error codes
- Meta for Developers — Messaging and Calling Health Status
- Meta for Developers — Throughput
- Meta for Developers — Messaging limits
- Meta for Developers — About the platform (rate limits y pair rate limits)
- Meta for Developers — Per-user marketing template message limits
- Meta for Developers — Template pausing
- Meta for Developers — Template fundamentals (límites de plantillas)
- Meta for Developers — Register a business phone number
- Meta for Developers — WhatsApp Flows error codes
- Meta for Developers — WhatsApp webhooks
- Meta for Developers — Status messages webhook reference
- Meta for Developers — Service messages (customer service windows)
- Meta for Developers — Business portfolio pacing
- Meta for Developers — Policy and spam enforcement
- Meta for Developers — Experiments (error 130472)
- Meta for Developers — Pricing
- WhatsApp Business Messaging Policy
Equipo de Cliengo
Cliengo es Meta Business Partner oficial. Ayudamos a empresas de LATAM a vender más con WhatsApp Business, Agentes IA y CRM conversacional.
Cómo verificamos la informaciónConocer más sobre Cliengo →Páginas relacionadas
Ventana de 24 horas
Cuándo puedes escribir texto libre y cuándo necesitas plantilla.
Ver detalles de Ventana de 24 horas →⏸️Plantillas pausadas
Por qué Meta pausa una plantilla y cómo recuperarla.
Ver detalles de Plantillas pausadas →🔓Recuperar una cuenta bloqueada
Avisos de bloqueo, cómo pedir la revisión y plazos.
Ver detalles de Recuperar una cuenta bloqueada →📡Estados de mensajes y webhooks
Enviado, entregado, leído y fallido: qué significa cada uno.
Ver detalles de Estados de mensajes y webhooks →📈Límites de mensajes
Cuántos usuarios puedes contactar por día y cómo subir de nivel.
Ver detalles de Límites de mensajes →🧺Portfolio pacing
Por qué Meta retiene o descarta envíos masivos (error 135000).
Ver detalles de Portfolio pacing →

