Disponibilité
Endpoints pour consulter les horaires disponibles pour les réservations.
GET
/api/v1/disponibilidad/{peluquero_id}/{fecha}/
Obtient les créneaux horaires disponibles pour un professionnel à une date spécifique.
Paramètres de chemin
| Paramètre | Type | Description |
|---|---|---|
peluquero_id |
integer | ID du professionnel |
fecha |
string | Date au format AAAA-MM-JJ |
Paramètres de requête
| Paramètre | Type | Description |
|---|---|---|
servicio_id |
integer | ID du service (pour calculer la durée) |
servicios |
string | IDs des services séparés par virgule (pour plusieurs) |
duracion |
integer | Durée personnalisée en minutes |
Exemple de requête
cURL
curl -X GET "https://app.salonbookit.com/api/v1/disponibilidad/5/2024-01-20/?servicio_id=15" \
-H "X-API-Key: hh_pub_live_abc123..."
Réponse (200 OK)
JSON
{
"success": true,
"data": {
"fecha": "2024-01-20",
"profesional": {
"id": 5,
"nombre": "Carlos García"
},
"duracion_solicitada": 30,
"slots": [
{
"hora_inicio": "09:00",
"hora_fin": "09:30",
"disponible": true
},
{
"hora_inicio": "09:30",
"hora_fin": "10:00",
"disponible": true
},
{
"hora_inicio": "10:00",
"hora_fin": "10:30",
"disponible": false,
"motivo": "ocupado"
},
{
"hora_inicio": "10:30",
"hora_fin": "11:00",
"disponible": false,
"motivo": "ocupado"
},
{
"hora_inicio": "11:00",
"hora_fin": "11:30",
"disponible": true
}
// ... reste des créneaux de la journée
],
"slots_disponibles_count": 18,
"proximo_disponible": "09:00",
"ultimo_disponible": "19:30"
}
}
Champs de réponse
| Champ | Type | Description |
|---|---|---|
fecha |
string | Date consultée |
profesional |
object | Info du professionnel |
duracion_solicitada |
integer | Durée utilisée pour calculer les créneaux |
slots |
array | Liste des créneaux horaires |
slots[].hora_inicio |
string | Heure de début (HH:MM) |
slots[].hora_fin |
string | Heure de fin (HH:MM) |
slots[].disponible |
boolean | S'il est disponible pour réserver |
slots[].motivo |
string | Raison si non disponible |
Intervalle des créneaux
Les créneaux sont générés par intervalles de 15 ou 30 minutes selon la configuration du commerce.
GET
/api/v1/disponibilidad/dias/
Obtient les jours avec disponibilité dans une plage de dates.
Paramètres de requête
| Paramètre | Type | Description |
|---|---|---|
peluquero_id |
integer | ID du professionnel (optionnel) |
servicio_id |
integer | ID du service |
desde |
string | Date de début (AAAA-MM-JJ). Par défaut : aujourd'hui |
hasta |
string | Date de fin (AAAA-MM-JJ). Par défaut : +30 jours |
Exemple de requête
cURL
curl -X GET "https://app.salonbookit.com/api/v1/disponibilidad/dias/?peluquero_id=5&servicio_id=15&desde=2024-01-15&hasta=2024-02-15" \
-H "X-API-Key: hh_pub_live_abc123..."
Réponse (200 OK)
JSON
{
"success": true,
"data": {
"desde": "2024-01-15",
"hasta": "2024-02-15",
"dias": [
{
"fecha": "2024-01-15",
"disponible": true,
"slots_libres": 12,
"primer_slot": "09:00",
"ultimo_slot": "18:30"
},
{
"fecha": "2024-01-16",
"disponible": true,
"slots_libres": 8,
"primer_slot": "11:00",
"ultimo_slot": "19:00"
},
{
"fecha": "2024-01-17",
"disponible": false,
"slots_libres": 0,
"motivo": "completo"
},
{
"fecha": "2024-01-18",
"disponible": false,
"slots_libres": 0,
"motivo": "festivo"
}
// ... reste des jours
],
"dias_disponibles_count": 22
}
}
Cet endpoint est utile pour afficher un calendrier où les jours sans disponibilité apparaissent désactivés.
Erreurs courantes
| Code | HTTP | Description |
|---|---|---|
PROFESSIONAL_NOT_FOUND |
404 | Le professionnel n'existe pas |
INVALID_DATE |
400 | Format de date invalide (doit être AAAA-MM-JJ) |
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 |
PROFESSIONAL_NOT_WORKING |
200 | Le professionnel ne travaille pas ce jour (créneaux vides) |