Errores de autenticacion (401, 403)
| Codigo |
HTTP |
Descripcion |
MISSING_API_KEY |
401 |
No se incluyo el header X-API-Key |
INVALID_API_KEY |
401 |
API Key no valida o no encontrada |
API_KEY_DISABLED |
403 |
La API Key ha sido desactivada |
API_KEY_EXPIRED |
403 |
La API Key ha expirado |
ORIGIN_NOT_ALLOWED |
403 |
El dominio de origen no esta autorizado |
TENANT_INACTIVE |
403 |
La cuenta del negocio no esta activa |
MISSING_TOKEN |
401 |
Se requiere token JWT pero no se proporciono |
INVALID_TOKEN |
401 |
Token JWT invalido o malformado |
TOKEN_EXPIRED |
401 |
Token JWT expirado |
INVALID_CREDENTIALS |
401 |
Email o contraseƱa incorrectos (login) |
Errores de rate limiting (429)
| Codigo |
HTTP |
Descripcion |
RATE_LIMIT_EXCEEDED |
429 |
Demasiadas peticiones, espera antes de reintentar |
LOGIN_ATTEMPTS_EXCEEDED |
429 |
Demasiados intentos de login fallidos |
REGISTRATION_LIMIT_EXCEEDED |
429 |
Demasiados intentos de registro |
Cuando recibes un error 429, revisa los headers de la respuesta:
X-RateLimit-Limit: 120
X-RateLimit-Remaining: 0
X-RateLimit-Reset: 1704067260
Retry-After: 45
Errores de validacion (400)
| Codigo |
HTTP |
Descripcion |
VALIDATION_ERROR |
400 |
Uno o mas campos tienen valores invalidos |
MISSING_REQUIRED_FIELD |
400 |
Falta un campo obligatorio |
INVALID_EMAIL |
400 |
Formato de email invalido |
INVALID_PHONE |
400 |
Formato de telefono invalido |
INVALID_DATE |
400 |
Formato de fecha invalido (debe ser YYYY-MM-DD) |
INVALID_TIME |
400 |
Formato de hora invalido (debe ser HH:MM) |
DATE_IN_PAST |
400 |
La fecha es anterior a hoy |
DATE_TOO_FAR |
400 |
La fecha excede el limite de reserva anticipada |
Ejemplo con detalles
{
"success": false,
"error": {
"code": "VALIDATION_ERROR",
"message": "Los datos enviados no son validos",
"details": {
"email": ["Formato de email invalido"],
"telefono": ["Este campo es obligatorio"],
"fecha": ["La fecha no puede ser anterior a hoy"]
}
}
}
Errores de recursos (404)
| Codigo |
HTTP |
Descripcion |
SERVICE_NOT_FOUND |
404 |
Servicio no encontrado |
PROFESSIONAL_NOT_FOUND |
404 |
Profesional no encontrado |
BOOKING_NOT_FOUND |
404 |
Reserva no encontrada |
CLIENT_NOT_FOUND |
404 |
Cliente no encontrado |
CATEGORY_NOT_FOUND |
404 |
Categoria no encontrada |
Errores de reservas
| Codigo |
HTTP |
Descripcion |
SLOT_UNAVAILABLE |
400 |
El horario ya no esta disponible |
PROFESSIONAL_NOT_WORKING |
400 |
El profesional no trabaja ese dia/hora |
SERVICE_NOT_OFFERED |
400 |
El profesional no ofrece ese servicio |
BUSINESS_CLOSED |
400 |
El negocio esta cerrado en esa fecha |
CANNOT_CANCEL |
400 |
La reserva no puede cancelarse (ya paso o ya cancelada) |
CANCELLATION_DEADLINE_PASSED |
400 |
Paso el plazo de cancelacion |
BOOKING_ALREADY_PAID |
400 |
La reserva ya fue pagada |
Errores de pagos
| Codigo |
HTTP |
Descripcion |
STRIPE_NOT_CONFIGURED |
400 |
El negocio no tiene Stripe configurado |
INVALID_AMOUNT |
400 |
Monto invalido (debe ser positivo) |
PAYMENT_FAILED |
400 |
Error al procesar el pago |
CARD_DECLINED |
400 |
Tarjeta rechazada |
INSUFFICIENT_FUNDS |
400 |
Fondos insuficientes |
Errores de puntos
| Codigo |
HTTP |
Descripcion |
INSUFFICIENT_POINTS |
400 |
No tienes suficientes puntos |
POINTS_NOT_ENABLED |
400 |
El programa de puntos no esta activo |
SERVICE_NOT_REDEEMABLE |
400 |
Este servicio no es canjeable con puntos |
Errores de servidor (500)
| Codigo |
HTTP |
Descripcion |
INTERNAL_ERROR |
500 |
Error interno del servidor |
SERVICE_UNAVAILABLE |
503 |
Servicio temporalmente no disponible |