Kunden
Endpoints zur Verwaltung des Profils und der Punkte des authentifizierten Kunden.
GET
/api/v1/cliente/perfil/
Ruft das Profil des authentifizierten Kunden ab.
Erfordert JWTAnfrage-Beispiel
cURL
curl -X GET "https://app.salonbookit.com/api/v1/cliente/perfil/" \
-H "X-API-Key: hh_pub_live_abc123..." \
-H "Authorization: Bearer eyJhbG..."
Antwort (200 OK)
JSON
{
"success": true,
"data": {
"id": 456,
"nombre": "Juan Pérez",
"email": "juan@email.com",
"telefono": "+34612345678",
"fecha_nacimiento": "1990-05-15",
"genero": "masculino",
"idioma_preferido": "es",
"avatar_url": null,
"direccion": {
"calle": "Calle Mayor 10",
"ciudad": "Alicante",
"codigo_postal": "03001"
},
"preferencias": {
"recordatorios_email": true,
"recordatorios_sms": true,
"ofertas_email": true
},
"estadisticas": {
"total_reservas": 15,
"reservas_completadas": 12,
"gasto_total": 350.00,
"puntos_actuales": 250,
"miembro_desde": "2023-06-01"
},
"profesional_favorito": {
"id": 5,
"nombre": "Carlos García"
}
}
}
PUT
/api/v1/cliente/perfil/
Aktualisiert das Kundenprofil.
Erfordert JWTBody-Parameter
| Parameter | Typ | Beschreibung |
|---|---|---|
nombre |
string | Vollständiger Name |
telefono |
string | Telefon im internationalen Format |
fecha_nacimiento |
string | Datum (JJJJ-MM-TT) |
genero |
string | männlich, weiblich, andere |
idioma_preferido |
string | es, en, ar |
preferencias |
object | Benachrichtigungseinstellungen |
Anfrage-Beispiel
cURL
curl -X PUT "https://app.salonbookit.com/api/v1/cliente/perfil/" \
-H "X-API-Key: hh_pub_live_abc123..." \
-H "Authorization: Bearer eyJhbG..." \
-H "Content-Type: application/json" \
-d '{
"nombre": "Juan Pérez García",
"telefono": "+34612345678",
"preferencias": {
"recordatorios_sms": false
}
}'
GET
/api/v1/cliente/puntos/
Ruft den Punktestand und die Bewegungen des Kunden ab.
Erfordert JWTAntwort (200 OK)
JSON
{
"success": true,
"data": {
"saldo_actual": 250,
"puntos_pendientes": 25,
"total_ganado": 500,
"total_canjeado": 250,
"nivel": {
"nombre": "Oro",
"puntos_siguiente_nivel": 500,
"beneficios": ["10% descuento", "Reserva prioritaria"]
},
"movimientos_recientes": [
{
"id": 100,
"tipo": "ganado",
"puntos": 25,
"concepto": "Reserva #12345 - Corte Clásico",
"fecha": "2024-01-20T11:00:00Z"
},
{
"id": 99,
"tipo": "canjeado",
"puntos": -100,
"concepto": "Descuento en reserva #12340",
"fecha": "2024-01-15T10:00:00Z"
}
],
"canjeables": [
{
"servicio_id": 15,
"servicio_nombre": "Corte Clásico",
"puntos_necesarios": 250,
"puede_canjear": true
},
{
"servicio_id": 16,
"servicio_nombre": "Afeitado Clásico",
"puntos_necesarios": 150,
"puede_canjear": true
}
]
}
}
GET
/api/v1/puntos/paquetes/
Listet die zum Kauf verfügbaren Punktepakete auf.
Antwort (200 OK)
JSON
{
"success": true,
"data": {
"paquetes": [
{
"id": 1,
"nombre": "Paquete Básico",
"puntos": 100,
"precio": 10.00,
"bonus": 0,
"descripcion": "100 puntos para empezar"
},
{
"id": 2,
"nombre": "Paquete Plus",
"puntos": 250,
"precio": 20.00,
"bonus": 25,
"descripcion": "250 puntos + 25 de bonus"
},
{
"id": 3,
"nombre": "Paquete Premium",
"puntos": 500,
"precio": 35.00,
"bonus": 75,
"descripcion": "500 puntos + 75 de bonus"
}
],
"moneda": "EUR"
}
}
POST
/api/v1/puntos/canjear/
Löst Punkte für einen Service oder Rabatt ein.
Erfordert JWTBody-Parameter
| Parameter | Typ | Erforderlich | Beschreibung |
|---|---|---|---|
reserva_id |
integer | Ja | Buchungs-ID zur Anwendung |
servicio_id |
integer | Ja | Service-ID zum Einlösen |
Antwort (200 OK)
JSON
{
"success": true,
"data": {
"canje_id": 50,
"puntos_usados": 250,
"saldo_restante": 0,
"servicio_canjeado": "Corte Clásico",
"aplicado_a_reserva": 12345
}
}