API Reference

API REST completa para integrar todas las funcionalidades de SalonBookIt en tu aplicaci贸n.

Introducci贸n

La API de SalonBookIt te permite:

  • Consultar informaci贸n del negocio, servicios y profesionales
  • Verificar disponibilidad de horarios
  • Crear y gestionar reservas
  • Gestionar clientes y su programa de puntos
  • Procesar pagos con Stripe

Base URL

https://app.salonbookit.com/api/v1

Formato de respuesta

Todas las respuestas siguen el mismo formato:

JSON (脡xito)
{
    "success": true,
    "data": {
        // Datos de la respuesta
    }
}
JSON (Error)
{
    "success": false,
    "error": {
        "code": "ERROR_CODE",
        "message": "Descripci贸n del error"
    }
}

Autenticaci贸n

La API usa dos m茅todos de autenticaci贸n:

API Key (Requerido siempre)

Identifica tu negocio. Se env铆a en el header X-API-Key.

X-API-Key: hh_pub_live_abc123...

JWT Token (Endpoints privados)

Autentica al cliente. Se env铆a en el header Authorization.

Authorization: Bearer eyJhbG...

Ver la gu铆a completa de autenticaci贸n.

Endpoints disponibles

Cat谩logo (P煤blicos)

M茅todo Endpoint Descripci贸n
GET /negocio/ Informaci贸n del negocio
GET /servicios/ Lista de servicios
GET /servicios/{id}/ Detalle de servicio
GET /peluqueros/ Lista de profesionales
GET /peluqueros/{id}/ Detalle de profesional
GET /disponibilidad/{peluquero}/{fecha}/ Horarios disponibles
GET /categorias/ Categor铆as de servicios
GET /productos/ Productos de la tienda

Autenticaci贸n

M茅todo Endpoint Descripci贸n
POST /auth/registro/ Registrar nuevo cliente
POST /auth/login/ Iniciar sesi贸n
POST /auth/verify-otp/ Verificar OTP
POST /auth/refresh/ Renovar token JWT

Reservas (Autenticado)

M茅todo Endpoint Descripci贸n
POST /reservas/crear/ Crear reserva
GET /cliente/reservas/ Mis reservas
GET /reservas/{id}/ Detalle de reserva
POST /reservas/{id}/cancelar/ Cancelar reserva

Pagos

M茅todo Endpoint Descripci贸n
POST /pagos/intent/ Crear PaymentIntent
POST /pagos/confirmar/ Confirmar pago

Cliente (Autenticado)

M茅todo Endpoint Descripci贸n
GET /cliente/perfil/ Mi perfil
PUT /cliente/perfil/ Actualizar perfil
GET /cliente/puntos/ Mis puntos

Paginaci贸n

Los endpoints que devuelven listas soportan paginaci贸n:

Par谩metros de query

Par谩metro Tipo Defecto Descripci贸n
page integer 1 N煤mero de p谩gina
page_size integer 20 Items por p谩gina (m谩x 100)

Respuesta paginada

JSON
{
    "success": true,
    "data": {
        "items": [...],
        "pagination": {
            "page": 1,
            "page_size": 20,
            "total_items": 45,
            "total_pages": 3,
            "has_next": true,
            "has_prev": false
        }
    }
}

Filtros

Muchos endpoints soportan filtros mediante query parameters. Consulta la documentaci贸n de cada endpoint para ver los filtros disponibles.

Ejemplo

HTTP
GET /api/v1/servicios/?categoria=1&activo=true&lang=es

C贸digos HTTP

C贸digo Significado
200 OK Petici贸n exitosa
201 Created Recurso creado exitosamente
400 Bad Request Error en los par谩metros enviados
401 Unauthorized Autenticaci贸n requerida o inv谩lida
403 Forbidden Sin permisos para esta acci贸n
404 Not Found Recurso no encontrado
429 Too Many Requests Rate limit excedido
500 Internal Server Error Error del servidor

Ver la referencia completa de errores.