C贸digos de Error

Referencia completa de todos los c贸digos de error de la API.

Formato de respuesta de error

Cuando ocurre un error, la API devuelve una respuesta con el siguiente formato:

JSON
{
    "success": false,
    "error": {
        "code": "ERROR_CODE",
        "message": "Descripci贸n legible del error",
        "details": {
            // Informaci贸n adicional (opcional)
        }
    }
}

Campos

Campo Tipo Descripci贸n
code string C贸digo 煤nico del error (para programar l贸gica)
message string Mensaje descriptivo (puede mostrarse al usuario)
details object Detalles adicionales (campos inv谩lidos, etc)

Errores de autenticaci贸n (401, 403)

C贸digo HTTP Descripci贸n
MISSING_API_KEY 401 No se incluy贸 el header X-API-Key
INVALID_API_KEY 401 API Key no v谩lida 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 est谩 autorizado
TENANT_INACTIVE 403 La cuenta del negocio no est谩 activa
MISSING_TOKEN 401 Se requiere token JWT pero no se proporcion贸
INVALID_TOKEN 401 Token JWT inv谩lido o malformado
TOKEN_EXPIRED 401 Token JWT expirado
INVALID_CREDENTIALS 401 Email o contrase帽a incorrectos (login)

Errores de rate limiting (429)

C贸digo HTTP Descripci贸n
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:

Headers
X-RateLimit-Limit: 120
X-RateLimit-Remaining: 0
X-RateLimit-Reset: 1704067260
Retry-After: 45

Errores de validaci贸n (400)

C贸digo HTTP Descripci贸n
VALIDATION_ERROR 400 Uno o m谩s campos tienen valores inv谩lidos
MISSING_REQUIRED_FIELD 400 Falta un campo obligatorio
INVALID_EMAIL 400 Formato de email inv谩lido
INVALID_PHONE 400 Formato de tel茅fono inv谩lido
INVALID_DATE 400 Formato de fecha inv谩lido (debe ser YYYY-MM-DD)
INVALID_TIME 400 Formato de hora inv谩lido (debe ser HH:MM)
DATE_IN_PAST 400 La fecha es anterior a hoy
DATE_TOO_FAR 400 La fecha excede el l铆mite de reserva anticipada

Ejemplo con detalles

JSON
{
    "success": false,
    "error": {
        "code": "VALIDATION_ERROR",
        "message": "Los datos enviados no son v谩lidos",
        "details": {
            "email": ["Formato de email inv谩lido"],
            "telefono": ["Este campo es obligatorio"],
            "fecha": ["La fecha no puede ser anterior a hoy"]
        }
    }
}

Errores de recursos (404)

C贸digo HTTP Descripci贸n
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 Categor铆a no encontrada

Errores de reservas

C贸digo HTTP Descripci贸n
SLOT_UNAVAILABLE 400 El horario ya no est谩 disponible
PROFESSIONAL_NOT_WORKING 400 El profesional no trabaja ese d铆a/hora
SERVICE_NOT_OFFERED 400 El profesional no ofrece ese servicio
BUSINESS_CLOSED 400 El negocio est谩 cerrado en esa fecha
CANNOT_CANCEL 400 La reserva no puede cancelarse (ya pas贸 o ya cancelada)
CANCELLATION_DEADLINE_PASSED 400 Pas贸 el plazo de cancelaci贸n
BOOKING_ALREADY_PAID 400 La reserva ya fue pagada

Errores de pagos

C贸digo HTTP Descripci贸n
STRIPE_NOT_CONFIGURED 400 El negocio no tiene Stripe configurado
INVALID_AMOUNT 400 Monto inv谩lido (debe ser positivo)
PAYMENT_FAILED 400 Error al procesar el pago
CARD_DECLINED 400 Tarjeta rechazada
INSUFFICIENT_FUNDS 400 Fondos insuficientes

Errores de puntos

C贸digo HTTP Descripci贸n
INSUFFICIENT_POINTS 400 No tienes suficientes puntos
POINTS_NOT_ENABLED 400 El programa de puntos no est谩 activo
SERVICE_NOT_REDEEMABLE 400 Este servicio no es canjeable con puntos

Errores de servidor (500)

C贸digo HTTP Descripci贸n
INTERNAL_ERROR 500 Error interno del servidor
SERVICE_UNAVAILABLE 503 Servicio temporalmente no disponible
Errores 500

Si recibes errores 500 de forma recurrente, contacta con soporte en developers@salonbookit.com