Errores

Todas las respuestas de error siguen un formato uniforme generado por AllExceptionsFilter.

Formato

{
  "statusCode": 400,
  "error": "Bad Request",
  "message": "El componente BODY es obligatorio",
  "timestamp": "2026-05-01T03:42:18.123Z",
  "path": "/organizations/<orgId>/templates"
}

Cuando el origen es un error de Meta Graph, se incluyen code y subcode de Meta cuando estén disponibles, además de un campo error: "MetaGraphError".

Códigos comunes

CódigoTipoSignificado
400Bad RequestValidación falló (DTO inválido, parámetros faltantes, formato incorrecto).
401UnauthorizedFalta el header Authorization, token expirado o inválido.
402Payment RequiredLa operación requiere upgrade de plan o saldo (cuando aplique).
403ForbiddenAutenticación correcta pero no tienes el permiso/scope necesario, o el recurso pertenece a otra organización.
404Not FoundEl recurso no existe o no es visible para ti.
408Request TimeoutLa operación tardó más del límite (típicamente 30 s, 120 s para Embedded Signup).
409ConflictEl recurso ya existe (slug duplicado, número ya conectado a otra org, etc).
422Unprocessable EntityBody válido pero estado del sistema no permite la operación (ej. enviar texto fuera de ventana 24h).
429Too Many RequestsRate limit excedido. Headers X-RateLimit-* indican cuánto esperar.
500Internal Server ErrorError inesperado. Si persiste, contáctanos con el request id del header X-Request-Id.
502Bad GatewayMosend recibió respuesta inválida de un proveedor (Meta, Mercado Pago).
503Service UnavailableMantenimiento o sobrecarga temporal.

Rate limiting

Headers en cada respuesta:

  • X-RateLimit-Limit: máximo en la ventana actual.
  • X-RateLimit-Remaining: cuántas peticiones te quedan.
  • X-RateLimit-Reset: segundos hasta que se resetea.