Référence API
API REST complète pour intégrer toutes les fonctionnalités de SalonBookIt dans votre application.
Introduction
L'API SalonBookIt vous permet de :
- Consulter les informations du commerce, services et professionnels
- Vérifier la disponibilité des horaires
- Créer et gérer des réservations
- Gérer les clients et leur programme de points
- Traiter les paiements avec Stripe
URL de base
https://app.salonbookit.com/api/v1
Format de réponse
Toutes les réponses suivent le même format :
JSON (Succès)
{
"success": true,
"data": {
// Données de la réponse
}
}
JSON (Erreur)
{
"success": false,
"error": {
"code": "ERROR_CODE",
"message": "Description de l'erreur"
}
}
Authentification
L'API utilise deux méthodes d'authentification :
Clé API (Toujours requise)
Identifie votre commerce. S'envoie dans le header X-API-Key.
X-API-Key: hh_pub_live_abc123...
Token JWT (Endpoints privés)
Authentifie le client. S'envoie dans le header Authorization.
Authorization: Bearer eyJhbG...
Voir la guide complet d'authentification.
Endpoints disponibles
Catalogue (Publics)
| Méthode | Endpoint | Description |
|---|---|---|
| GET | /negocio/ |
Informations du commerce |
| GET | /servicios/ |
Liste des services |
| GET | /servicios/{id}/ |
Détail du service |
| GET | /peluqueros/ |
Liste des professionnels |
| GET | /peluqueros/{id}/ |
Détail du professionnel |
| GET | /disponibilidad/{peluquero}/{fecha}/ |
Horaires disponibles |
| GET | /categorias/ |
Catégories de services |
| GET | /productos/ |
Produits de la boutique |
Authentification
| Méthode | Endpoint | Description |
|---|---|---|
| POST | /auth/registro/ |
Inscrire un nouveau client |
| POST | /auth/login/ |
Se connecter |
| POST | /auth/verify-otp/ |
Vérifier OTP |
| POST | /auth/refresh/ |
Renouveler le token JWT |
Réservations (Authentifié)
| Méthode | Endpoint | Description |
|---|---|---|
| POST | /reservas/crear/ |
Créer une réservation |
| GET | /cliente/reservas/ |
Mes réservations |
| GET | /reservas/{id}/ |
Détail de la réservation |
| POST | /reservas/{id}/cancelar/ |
Annuler une réservation |
Paiements
| Méthode | Endpoint | Description |
|---|---|---|
| POST | /pagos/intent/ |
Créer un PaymentIntent |
| POST | /pagos/confirmar/ |
Confirmer le paiement |
Client (Authentifié)
| Méthode | Endpoint | Description |
|---|---|---|
| GET | /cliente/perfil/ |
Mon profil |
| PUT | /cliente/perfil/ |
Mettre à jour le profil |
| GET | /cliente/puntos/ |
Mes points |
Pagination
Les endpoints qui renvoient des listes supportent la pagination :
Paramètres de requête
| Paramètre | Type | Défaut | Description |
|---|---|---|---|
page |
integer | 1 | Numéro de page |
page_size |
integer | 20 | Éléments par page (max 100) |
Réponse paginée
JSON
{
"success": true,
"data": {
"items": [...],
"pagination": {
"page": 1,
"page_size": 20,
"total_items": 45,
"total_pages": 3,
"has_next": true,
"has_prev": false
}
}
}
Filtres
De nombreux endpoints supportent les filtres via query parameters. Consultez la documentation de chaque endpoint pour voir les filtres disponibles.
Exemple
HTTP
GET /api/v1/servicios/?categoria=1&activo=true&lang=es
Codes HTTP
| Code | Signification |
|---|---|
200 OK |
Requête réussie |
201 Created |
Ressource créée avec succès |
400 Bad Request |
Erreur dans les paramètres envoyés |
401 Unauthorized |
Authentification requise ou invalide |
403 Forbidden |
Pas de permissions pour cette action |
404 Not Found |
Ressource non trouvée |
429 Too Many Requests |
Limite de requêtes dépassée |
500 Internal Server Error |
Erreur serveur |
Voir la référence complète des erreurs.