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

NomeEmObrigatórioTipoDescrição
customer_idqueryNãostring (uuid)
statusqueryNãostring active, cancelled
limitqueryNãointeger default 25
cursorqueryNãostring

Respostas

StatusDescrição
200OK (object)
defaultError (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

NomeEmObrigatórioTipoDescrição
Idempotency-KeyheaderSimstringUUID ú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

StatusDescrição
201Creado (BookingSeries)
409Error (RFC 9457) (Problem)
422Error (RFC 9457) (Problem)
defaultError (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

NomeEmObrigatórioTipoDescrição
idpathSimstring

Respostas

StatusDescrição
200OK (BookingSeries)
defaultError (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

NomeEmObrigatórioTipoDescrição
idpathSimstring

Corpo da solicitação (obrigatório)

  • application/json: BookingSeriesPatch

Respostas

StatusDescrição
200OK (BookingSeries)
409Error (RFC 9457) (Problem)
defaultError (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

NomeEmObrigatórioTipoDescrição
idpathSimstring

Corpo da solicitação (opcional)

  • application/json: object

Respostas

StatusDescrição
200OK (BookingSeries)
defaultError (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

StatusDescrição
200OK (BookingSeriesPreview)
defaultError (RFC 9457) (Problem)