Codes d'erreur

Référence complète de tous les codes d'erreur de l'API.

Format de réponse d'erreur

Lorsqu'une erreur se produit, l'API renvoie une réponse avec le format suivant :

JSON
{
    "success": false,
    "error": {
        "code": "ERROR_CODE",
        "message": "Description lisible de l'erreur",
        "details": {
            // Informations supplémentaires (optionnel)
        }
    }
}

Champs

Champ Type Description
code string Code unique de l'erreur (pour programmer la logique)
message string Message descriptif (peut être affiché à l'utilisateur)
details object Détails supplémentaires (champs invalides, etc.)

Erreurs d'authentification (401, 403)

Code HTTP Description
MISSING_API_KEY 401 Le header X-API-Key n'a pas été inclus
INVALID_API_KEY 401 Clé API invalide ou non trouvée
API_KEY_DISABLED 403 La clé API a été désactivée
API_KEY_EXPIRED 403 La clé API a expiré
ORIGIN_NOT_ALLOWED 403 Le domaine d'origine n'est pas autorisé
TENANT_INACTIVE 403 Le compte du commerce n'est pas actif
MISSING_TOKEN 401 Un token JWT est requis mais n'a pas été fourni
INVALID_TOKEN 401 Token JWT invalide ou malformé
TOKEN_EXPIRED 401 Token JWT expiré
INVALID_CREDENTIALS 401 Email ou mot de passe incorrect (connexion)

Erreurs de rate limiting (429)

Code HTTP Description
RATE_LIMIT_EXCEEDED 429 Trop de requêtes, attendez avant de réessayer
LOGIN_ATTEMPTS_EXCEEDED 429 Trop de tentatives de connexion échouées
REGISTRATION_LIMIT_EXCEEDED 429 Trop de tentatives d'inscription

Lorsque vous recevez une erreur 429, vérifiez les en-têtes de la réponse :

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

Erreurs de validation (400)

Code HTTP Description
VALIDATION_ERROR 400 Un ou plusieurs champs ont des valeurs invalides
MISSING_REQUIRED_FIELD 400 Un champ obligatoire est manquant
INVALID_EMAIL 400 Format d'email invalide
INVALID_PHONE 400 Format de téléphone invalide
INVALID_DATE 400 Format de date invalide (doit être AAAA-MM-JJ)
INVALID_TIME 400 Format d'heure invalide (doit être HH:MM)
DATE_IN_PAST 400 La date est antérieure à aujourd'hui
DATE_TOO_FAR 400 La date dépasse la limite de réservation anticipée

Exemple avec détails

JSON
{
    "success": false,
    "error": {
        "code": "VALIDATION_ERROR",
        "message": "Les données envoyées ne sont pas valides",
        "details": {
            "email": ["Format d'email invalide"],
            "telefono": ["Ce champ est obligatoire"],
            "fecha": ["La date ne peut pas être antérieure à aujourd'hui"]
        }
    }
}

Erreurs de ressources (404)

Code HTTP Description
SERVICE_NOT_FOUND 404 Service non trouvé
PROFESSIONAL_NOT_FOUND 404 Professionnel non trouvé
BOOKING_NOT_FOUND 404 Réservation non trouvée
CLIENT_NOT_FOUND 404 Client non trouvé
CATEGORY_NOT_FOUND 404 Catégorie non trouvée

Erreurs de réservations

Code HTTP Description
SLOT_UNAVAILABLE 400 L'horaire n'est plus disponible
PROFESSIONAL_NOT_WORKING 400 Le professionnel ne travaille pas ce jour/heure
SERVICE_NOT_OFFERED 400 Le professionnel n'offre pas ce service
BUSINESS_CLOSED 400 Le commerce est fermé à cette date
CANNOT_CANCEL 400 La réservation ne peut pas être annulée (déjà passée ou déjà annulée)
CANCELLATION_DEADLINE_PASSED 400 Le délai d'annulation est passé
BOOKING_ALREADY_PAID 400 La réservation a déjà été payée

Erreurs de paiement

Code HTTP Description
STRIPE_NOT_CONFIGURED 400 Le commerce n'a pas Stripe configuré
INVALID_AMOUNT 400 Montant invalide (doit être positif)
PAYMENT_FAILED 400 Erreur lors du traitement du paiement
CARD_DECLINED 400 Carte refusée
INSUFFICIENT_FUNDS 400 Fonds insuffisants

Erreurs de points

Code HTTP Description
INSUFFICIENT_POINTS 400 Vous n'avez pas assez de points
POINTS_NOT_ENABLED 400 Le programme de points n'est pas actif
SERVICE_NOT_REDEEMABLE 400 Ce service n'est pas échangeable avec des points

Erreurs serveur (500)

Code HTTP Description
INTERNAL_ERROR 500 Erreur interne du serveur
SERVICE_UNAVAILABLE 503 Service temporairement indisponible
Erreurs 500

Si vous recevez des erreurs 500 de manière récurrente, contactez le support à developers@salonbookit.com