API pública de Reservas
Endpoints para el widget de reservas que embebes en tu sitio. Autenticación por token (header Authorization: Bearer <token>), igual que el resto de las APIs. El workspace se determina siempre desde el token; nunca lo envías en la solicitud.
GET /api/bookings/slots
- Sin parámetros →
{ services: [...] }(servicios activos del workspace). ?serviceId=<id>&date=YYYY-MM-DD→{ service, date, slots: ["09:00", ...] }con los horarios disponibles.
POST /api/bookings/checkout
Body: { serviceId, date, time, customerName, customerEmail, successUrl?, cancelUrl? }
- Vuelve a verificar la disponibilidad al confirmar.
- Servicio gratuito → crea la reserva confirmada y responde
{ free: true, bookingId }. - Servicio con precio → responde
{ url }para redirigir al visitante al pago seguro. Al pagar, la reserva se confirma automáticamente.