Buchungen
Endpoints zum Erstellen und Verwalten von Buchungen.
POST
/api/v1/reservas/crear/
Erstellt eine neue Buchung.
Authentifizierung
Dieser Endpoint kann ohne JWT für Gastbuchungen oder mit JWT für authentifizierte Kunden verwendet werden.
Body-Parameter
| Parameter | Typ | Erforderlich | Beschreibung |
|---|---|---|---|
servicio_ids |
array | Ja | Array von Service-IDs |
peluquero_id |
integer | Ja | ID des Fachmanns |
fecha |
string | Ja | Datum (JJJJ-MM-TT) |
hora_inicio |
string | Ja | Startzeit (HH:MM) |
nombre |
string | Ja* | Kundenname (*wenn kein JWT) |
email |
string | Ja* | Kunden-E-Mail (*wenn kein JWT) |
telefono |
string | Ja* | Telefon (*wenn als erforderlich konfiguriert) |
notas |
string | Nein | Zusätzliche Notizen |
usar_puntos |
boolean | Nein | Mit Treuepunkten bezahlen |
Anfrage-Beispiel
cURL
curl -X POST "https://app.salonbookit.com/api/v1/reservas/crear/" \
-H "X-API-Key: hh_pub_live_abc123..." \
-H "Content-Type: application/json" \
-d '{
"servicio_ids": [15],
"peluquero_id": 5,
"fecha": "2024-01-20",
"hora_inicio": "10:30",
"nombre": "Juan Pérez",
"email": "juan@email.com",
"telefono": "+34612345678",
"notas": "Primera visita"
}'
Antwort (201 Created)
JSON
{
"success": true,
"data": {
"id": 12345,
"codigo": "ABC123XY",
"fecha": "2024-01-20",
"hora_inicio": "10:30",
"hora_fin": "11:00",
"servicios": [
{
"id": 15,
"nombre": "Corte Clásico",
"precio": 25.00,
"duracion_minutos": 30
}
],
"profesional": {
"id": 5,
"nombre": "Carlos GarcÃa"
},
"cliente": {
"id": 456,
"nombre": "Juan Pérez",
"email": "juan@email.com",
"telefono": "+34612345678"
},
"subtotal": 25.00,
"descuento": 0.00,
"total": 25.00,
"moneda": "EUR",
"estado": "confirmada",
"pago_requerido": false,
"pago_pendiente": true,
"puntos_ganados": 25,
"created_at": "2024-01-15T14:30:00Z"
}
}
GET
/api/v1/cliente/reservas/
Listet die Buchungen des authentifizierten Kunden auf.
Erfordert JWTQuery-Parameter
| Parameter | Typ | Beschreibung |
|---|---|---|
estado |
string | Filtern: ausstehend, bestätigt, abgeschlossen, storniert |
desde |
string | Datum von (JJJJ-MM-TT) |
hasta |
string | Datum bis (JJJJ-MM-TT) |
Antwort (200 OK)
JSON
{
"success": true,
"data": {
"reservas": [
{
"id": 12345,
"codigo": "ABC123XY",
"fecha": "2024-01-20",
"hora_inicio": "10:30",
"hora_fin": "11:00",
"servicios": [...],
"profesional": {...},
"total": 25.00,
"estado": "confirmada",
"puede_cancelar": true
}
],
"proxima_reserva": {
"id": 12345,
"fecha": "2024-01-20",
"hora_inicio": "10:30"
},
"total": 15
}
}
GET
/api/v1/reservas/{id}/
Ruft die Details einer Buchung ab.
Pfad-Parameter
| Parameter | Typ | Beschreibung |
|---|---|---|
id |
integer | Buchungs-ID |
Abfrage nach Code
Sie können auch mit dem Code abfragen: /reservas/codigo/{codigo}/
POST
/api/v1/reservas/{id}/cancelar/
Storniert eine bestehende Buchung.
Body-Parameter
| Parameter | Typ | Erforderlich | Beschreibung |
|---|---|---|---|
motivo |
string | Nein | Stornierungsgrund |
Anfrage-Beispiel
cURL
curl -X POST "https://app.salonbookit.com/api/v1/reservas/12345/cancelar/" \
-H "X-API-Key: hh_pub_live_abc123..." \
-H "Authorization: Bearer eyJhbG..." \
-H "Content-Type: application/json" \
-d '{"motivo": "Cambio de planes"}'
Antwort (200 OK)
JSON
{
"success": true,
"data": {
"id": 12345,
"estado": "cancelada",
"cancelada_en": "2024-01-15T16:00:00Z",
"reembolso": {
"aplica": true,
"monto": 25.00,
"estado": "pendiente"
}
}
}
Fehler
| Code | HTTP | Beschreibung |
|---|---|---|
BOOKING_NOT_FOUND |
404 | Buchung nicht gefunden |
CANNOT_CANCEL |
400 | Die Buchung kann nicht storniert werden (bereits vergangen oder bereits storniert) |
CANCELLATION_DEADLINE_PASSED |
400 | Stornierungsfrist abgelaufen (z.B.: 24h vorher) |
Buchungsstatus
| Status | Beschreibung |
|---|---|
pendiente |
Buchung erstellt, Bestätigung ausstehend |
confirmada |
Buchung vom Geschäft bestätigt |
completada |
Service durchgeführt |
cancelada |
Von Kunde oder Geschäft storniert |
no_show |
Kunde ist nicht erschienen |