Skip to main content

Códigos de Error

Cuando un mensaje falla, Whaapy devuelve información detallada sobre el error incluyendo el código de Meta/WhatsApp, una descripción y pasos para solucionarlo.

Estructura de Error

{
  "error": "message_delivery_failed",
  "message": "Descripción legible del error",
  "code": "131047",
  "action_required": "Acción sugerida",
  "instructions": "Pasos detallados para resolver",
  "data": {
    "id": "uuid-del-mensaje",
    "status": "failed"
  }
}

Errores HTTP de Whaapy

CódigoSignificadoDescripción
200OKMensaje enviado exitosamente
400Bad RequestError de validación en el request
401UnauthorizedAPI Key inválida o faltante
403ForbiddenSin permisos para este scope
404Not FoundRecurso no encontrado
429Too Many RequestsRate limit excedido
500Internal Server ErrorError interno del servidor

Errores de WhatsApp (Meta)

Estos códigos provienen directamente de la API de WhatsApp Cloud y se incluyen en el campo code de la respuesta.

131047 - Ventana de 24 Horas Expirada

Este es el error más común. WhatsApp solo permite enviar mensajes de texto libre dentro de las 24 horas posteriores al último mensaje del usuario.
Causa: Intentaste enviar un mensaje de texto, imagen, video, etc. a un usuario que no te ha escrito en las últimas 24 horas. Solución:
  1. Envía un template message pre-aprobado por Meta
  2. Espera a que el usuario te escriba primero
  3. Usa el endpoint /retry después de que se reabra la ventana
Ejemplo de respuesta
{
  "error": "message_delivery_failed",
  "message": "La ventana de conversación de 24 horas ha expirado",
  "code": "131047",
  "action_required": "Usar template message",
  "instructions": "Para contactar usuarios después de 24h sin respuesta, debes enviar un template aprobado por Meta",
  "data": {
    "id": "550e8400-e29b-41d4-a716-446655440000",
    "status": "failed"
  }
}
El mensaje se guarda en Whaapy con status: failed. Una vez que la ventana se reabra (el usuario responde a tu template), puedes usar POST /messages/v1/{id}/retry para reenviar el mensaje original.

131042 - Pago Requerido

Causa: Tu cuenta de Meta Business no tiene un método de pago configurado o el método de pago falló. Solución:
  1. Ve a Meta Business Suite
  2. Navega a ConfiguraciónPagos
  3. Agrega o actualiza tu método de pago
  4. Verifica que no haya pagos rechazados
Ejemplo de respuesta
{
  "error": "message_delivery_failed",
  "message": "Se requiere configurar método de pago",
  "code": "131042",
  "action_required": "Configurar pago en Meta Business",
  "instructions": "Ve a Meta Business Suite > Configuración > Pagos y agrega un método de pago válido"
}

130472 - Número Inválido

Causa: El número de teléfono proporcionado no está registrado en WhatsApp. Solución:
  1. Verifica que el número incluya código de país (ej: +521 para México)
  2. Confirma que el usuario tiene WhatsApp instalado
  3. El número puede haber sido dado de baja de WhatsApp
Ejemplo de respuesta
{
  "error": "invalid_recipient",
  "message": "El número no está registrado en WhatsApp",
  "code": "130472"
}
Algunos números corporativos o líneas fijas no pueden recibir mensajes de WhatsApp aunque tengan el formato correcto.

131026 - Usuario Bloqueado

Causa: El destinatario ha bloqueado tu número de WhatsApp Business. Solución:
  • No hay solución técnica. El usuario debe desbloquear tu número manualmente.
  • Considera contactar al usuario por otro medio para resolver cualquier problema.
Ejemplo de respuesta
{
  "error": "user_blocked",
  "message": "El destinatario ha bloqueado este número",
  "code": "131026"
}

132000 - Template No Encontrado

Causa: El template que intentas usar no existe, no está aprobado, o el nombre/idioma no coincide. Solución:
  1. Verifica el nombre exacto del template en Meta Business Manager
  2. Confirma que el template está aprobado (no en revisión o rechazado)
  3. Verifica que el código de idioma sea correcto (es_MX, en_US, etc.)
  4. Asegúrate de que el template pertenece a tu número de WhatsApp Business
Ejemplo de respuesta
{
  "error": "template_not_found",
  "message": "El template no existe o no está aprobado",
  "code": "132000",
  "details": {
    "template_name": "orden_confirmada",
    "language": "es_MX"
  }
}
Los templates pueden tardar hasta 24 horas en aprobarse. Si acabas de crear uno, espera a que Meta lo apruebe antes de usarlo.

131048 - Spam Rate Limit

Causa: Demasiados mensajes de tu número han sido reportados como spam por los usuarios. Solución:
  1. Reduce la frecuencia de envío de mensajes
  2. Mejora la calidad y relevancia de tus mensajes
  3. Asegúrate de que los usuarios hayan dado consentimiento para recibir mensajes
  4. Espera 24-48 horas antes de intentar nuevamente
Ejemplo de respuesta
{
  "error": "spam_rate_limit",
  "message": "Tu cuenta ha excedido el límite de spam",
  "code": "131048",
  "action_required": "Reducir frecuencia de envío"
}
Si continúas recibiendo este error, Meta puede restringir permanentemente tu cuenta de WhatsApp Business.

131052 - Media No Descargable

Causa: Meta no pudo descargar el archivo multimedia desde la URL proporcionada. Solución:
  1. Verifica que la URL sea pública y accesible
  2. Asegúrate de que el servidor no bloquee requests de Meta
  3. Para archivos privados o grandes, usa POST /media/v1 para subirlos primero
Ejemplo de respuesta
{
  "error": "media_download_failed",
  "message": "No se pudo descargar el archivo multimedia",
  "code": "131052",
  "action_required": "Usar URL pública o subir via /media/v1"
}
Proxy Automático de Whaapy: Si Meta no puede descargar tu archivo, Whaapy automáticamente intenta descargarlo y re-subirlo a Meta CDN. Sin embargo, esto tiene un límite de 5MB. Para archivos más grandes, usa /media/v1.

131051 - Tipo de Media No Soportado

Causa: El formato del archivo no es compatible con WhatsApp. Formatos soportados:
TipoFormatos
ImagenJPEG, PNG, WebP
VideoMP4, 3GPP
AudioAAC, MP3, OGG, AMR
DocumentoPDF, DOC, DOCX, XLS, XLSX, PPT, PPTX, TXT
StickerWebP

131053 - Archivo Demasiado Grande

Causa: El archivo excede el tamaño máximo permitido. Límites de tamaño:
TipoMáximo
Imagen5 MB
Video16 MB
Audio16 MB
Documento100 MB
Sticker500 KB

Tabla Resumen de Errores

CódigoErrorCausaSolución Rápida
131047Ventana Expirada>24h sin respuesta del usuarioEnviar template
131042Pago RequeridoSin método de pago en MetaConfigurar pago
130472Número InválidoNo tiene WhatsAppVerificar número
131026BloqueadoUsuario te bloqueóContactar por otro medio
132000Template No ExisteNombre incorrecto o no aprobadoVerificar en Meta
131048Spam Rate LimitMuchos reportes de spamReducir envíos
131052Media No DescargableURL privada o bloqueadaUsar /media/v1
131051Formato No SoportadoArchivo incompatibleConvertir formato
131053Archivo GrandeExcede límiteComprimir o usar /media/v1

Manejo de Errores en Código

const response = await fetch('https://api.whaapy.com/messages/v1', {
  method: 'POST',
  headers: {
    'Authorization': 'Bearer wha_TU_API_KEY',
    'Content-Type': 'application/json'
  },
  body: JSON.stringify({
    to: '+5215512345678',
    content: 'Hola!'
  })
});

const data = await response.json();

if (data.error) {
  switch (data.code) {
    case '131047':
      // Enviar template en su lugar
      await sendTemplate(data.data.conversationId);
      break;
    case '131052':
      // Re-subir media via /media/v1
      const mediaId = await uploadMedia(mediaUrl);
      await sendWithMediaId(mediaId);
      break;
    default:
      console.error('Error:', data.message);
  }
} else {
  console.log('Mensaje enviado:', data.data.id);
}

Reintentar Mensajes Fallidos

Cuando un mensaje falla, Whaapy lo guarda con status: failed. Una vez que las condiciones permitan su envío, puedes reintentarlo:
POST /messages/v1/{message_id}/retry
Ver Reintentar Mensaje para más detalles.