API · booking-series
Operações de booking-series do contrato OpenAPI que aceitam uma chave de API.
Atualizado:
Turnos fijos (F3-620): reservas que se repiten cada 1-4 semanas. Cada fecha es una tarea normal.
GET /booking-series
Listar turnos fijos
Turnos fijos (F3-620): reservas que se repiten. Owner y manager (permiso tasks:series); API key con bookings:read. Sin dates (están en el detalle).
- Autenticação: Chave de API ou sessão do painel
- Escopos:
bookings:read
Parâmetros
| Nome | Em | Obrigatório | Tipo | Descrição |
|---|---|---|---|---|
customer_id | query | Não | string (uuid) | |
status | query | Não | string active, cancelled | |
limit | query | Não | integer default 25 | |
cursor | query | Não | string |
Respostas
| Status | Descrição |
|---|---|
200 | OK (object) |
default | Error (RFC 9457) (Problem) |
POST /booking-series
Crear un turno fijo (y sus próximas fechas)
Crea la serie y materializa como tareas normales las fechas de las próximas 8 semanas (el resto lo suma un proceso periódico). Cada fecha pasa por las mismas reglas que una reserva: disponibilidad, capacidad, feriados, excepciones y cierres; el precio lo fija el servidor al crear cada fecha y se cobra el día de esa tarea (no se pide seña por adelantado). Si alguna fecha no entra responde 409 series_conflicts con conflicts: [{date, start, reasons}], salvo que esté en skip_dates o se pida skip_conflicts: quedan registradas como salteadas. La confirmación al cliente sale solo con la primera fecha. Owner y manager; API key con bookings:write.
- Autenticação: Chave de API ou sessão do painel
- Escopos:
bookings:write
Parâmetros
| Nome | Em | Obrigatório | Tipo | Descrição |
|---|---|---|---|---|
Idempotency-Key | header | Sim | string | UUID único por operación; reintentos con la misma key devuelven el mismo resultado durante 24 h. |
Corpo da solicitação (obrigatório)
application/json: BookingSeriesInput
Respostas
| Status | Descrição |
|---|---|
201 | Creado (BookingSeries) |
409 | Error (RFC 9457) (Problem) |
422 | Error (RFC 9457) (Problem) |
default | Error (RFC 9457) (Problem) |
GET /booking-series/{id}
Leer un turno fijo y sus fechas
- Autenticação: Chave de API ou sessão do painel
- Escopos: Nenhum
Parâmetros
| Nome | Em | Obrigatório | Tipo | Descrição |
|---|---|---|---|---|
id | path | Sim | string |
Respostas
| Status | Descrição |
|---|---|
200 | OK (BookingSeries) |
default | Error (RFC 9457) (Problem) |
PATCH /booking-series/{id}
Editar toda la serie o «esta y las siguientes» (con from_date)
Sin from_date: toda la serie. Con from_date posterior al inicio: «esta y las siguientes», que parte la serie (la original termina el día anterior y la respuesta es la serie nueva, con split_from_id). Las fechas futuras que todavía se pueden mover (no iniciadas, sin cobro, sin falta) se cancelan sin aviso y se vuelven a crear con la regla nueva; lo pasado, iniciado, cobrado o con falta no se toca. Cambiar solo la nota o el fin no mueve las fechas existentes. Mismos choques que el alta (409 series_conflicts, skip_dates, skip_conflicts); expected_version da 409 version_conflict si la serie cambió. «Solo esta» es reprogramar o cancelar esa tarea (/bookings/{id}/…).
- Autenticação: Chave de API ou sessão do painel
- Escopos: Nenhum
Parâmetros
| Nome | Em | Obrigatório | Tipo | Descrição |
|---|---|---|---|---|
id | path | Sim | string |
Corpo da solicitação (obrigatório)
application/json: BookingSeriesPatch
Respostas
| Status | Descrição |
|---|---|
200 | OK (BookingSeries) |
409 | Error (RFC 9457) (Problem) |
default | Error (RFC 9457) (Problem) |
POST /booking-series/{id}/cancel
Cancelar el turno fijo (todo o desde una fecha)
Sin from_date (o desde el inicio) cancela la serie; con from_date la serie termina el día anterior. Las fechas futuras que se pueden mover se cancelan sin aviso al cliente; lo pasado, iniciado, cobrado o con falta queda como está. Cancelar algo ya cancelado devuelve lo mismo.
- Autenticação: Chave de API ou sessão do painel
- Escopos: Nenhum
Parâmetros
| Nome | Em | Obrigatório | Tipo | Descrição |
|---|---|---|---|---|
id | path | Sim | string |
Corpo da solicitação (opcional)
application/json: object
Respostas
| Status | Descrição |
|---|---|
200 | OK (BookingSeries) |
default | Error (RFC 9457) (Problem) |
POST /booking-series/preview
Vista previa de las fechas y sus choques (no guarda)
Las fechas de las próximas 8 semanas con status ok, conflict (con reasons) o skipped (pedidas en skip_dates). Usa exactamente las reglas del alta y no guarda nada.
- Autenticação: Chave de API ou sessão do painel
- Escopos: Nenhum
Corpo da solicitação (obrigatório)
application/json: BookingSeriesInput
Respostas
| Status | Descrição |
|---|---|
200 | OK (BookingSeriesPreview) |
default | Error (RFC 9457) (Problem) |