Dashboard

API Reference

API REST completa para integrar todas las funcionalidades de SalonBookIt en tu aplicacion.

Introduccion

La API de SalonBookIt te permite:

  • Consultar informacion 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 (Exito)
{
    "success": true,
    "data": {
        // Datos de la respuesta
    }
}
JSON (Error)
{
    "success": false,
    "error": {
        "code": "ERROR_CODE",
        "message": "Descripcion del error"
    }
}

Autenticacion

La API usa dos metodos de autenticacion:

API Key (Requerido siempre)

Identifica tu negocio. Se envia en el header X-API-Key.

X-API-Key: hh_live_abc123...

JWT Token (Endpoints privados)

Autentica al cliente. Se envia en el header Authorization.

Authorization: Bearer eyJhbG...

Ver la guia completa de autenticacion.

Endpoints disponibles

Catalogo (Publicos)

Metodo Endpoint Descripcion
GET /negocio/ Informacion 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/ Categorias de servicios
GET /productos/ Productos de la tienda

Autenticacion

Metodo Endpoint Descripcion
POST /auth/registro/ Registrar nuevo cliente
POST /auth/login/ Iniciar sesion
POST /auth/verify-otp/ Verificar OTP
POST /auth/refresh/ Renovar token JWT

Reservas (Autenticado)

Metodo Endpoint Descripcion
POST /reservas/crear/ Crear reserva
GET /cliente/reservas/ Mis reservas
GET /reservas/{id}/ Detalle de reserva
POST /reservas/{id}/cancelar/ Cancelar reserva

Pagos

Metodo Endpoint Descripcion
POST /pagos/intent/ Crear PaymentIntent
POST /pagos/confirmar/ Confirmar pago

Cliente (Autenticado)

Metodo Endpoint Descripcion
GET /cliente/perfil/ Mi perfil
PUT /cliente/perfil/ Actualizar perfil
GET /cliente/puntos/ Mis puntos

Paginacion

Los endpoints que devuelven listas soportan paginacion:

Parametros de query

Parametro Tipo Defecto Descripcion
page integer 1 Numero de pagina
page_size integer 20 Items por pagina (max 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 documentacion de cada endpoint para ver los filtros disponibles.

Ejemplo

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

Codigos HTTP

Codigo Significado
200 OK Peticion exitosa
201 Created Recurso creado exitosamente
400 Bad Request Error en los parametros enviados
401 Unauthorized Autenticacion requerida o invalida
403 Forbidden Sin permisos para esta accion
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.