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 JWT

Query-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