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 :
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
{
"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 |