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.