Skip to main content
POST
Cancelar una sesión

Authorizations

Authorization
string
header
required

Clave del negocio. sk es una clave completa (todo lo que el rol de quien la creó puede dar) y rk una restringida a los permisos que se eligieron al crearla. Solo se usa desde un servidor: un pedido desde un navegador se rechaza con browser_not_allowed.

Scopes

sessions:write

Cancelar sesiones.

Headers

Craqui-Version
string

Versión de la API para este pedido (YYYY-MM-DD). Si no la mandas, se usa la versión fijada en la clave cuando se creó.

Pattern: ^\d{4}-\d{2}-\d{2}$
Example:

"2026-12-01"

Idempotency-Key
string

Obligatorio en todo pedido que crea o cambia algo, salvo con dry_run=true. Un valor único por operación (por ejemplo un UUID). Si repites el pedido con la misma clave y el mismo cuerpo dentro de 24 horas, recibes la misma respuesta (con el header Idempotent-Replayed: true) sin que se repita el efecto, también la misma respuesta de error: para intentar de nuevo algo que se rechazó, usa una clave nueva. Con un dry_run=true la clave se ignora y no se guarda: el pedido real puede usar la misma. Pasadas las 24 horas, repetir una reserva con la misma clave y el mismo cuerpo sigue devolviendo la reserva que se hizo (como está ahora), y la misma clave con otro cuerpo responde idempotency_key_reused.

Required string length: 1 - 255

Path Parameters

id
string
required

El id de la sesión (ses_…). Id de una sesión (una fecha de una clase).

Pattern: ^ses_[0-7][0-9a-hjkmnp-tv-z]{25}$
Example:

"ses_01jnb07m4yxxe0s687jf750tkv"

Query Parameters

dry_run
boolean

true para ver qué pasaría sin hacerlo: Craqui evalúa el pedido con las mismas reglas que el real y responde 200 con un objeto preview, sin escribir nada ni avisarle a nadie. Cuenta para el límite de escrituras. false (o sin el parámetro) hace el pedido real. Es el único parámetro de consulta de una escritura.

Body

application/json

El cuerpo es opcional. No lleva notify: cancelar una sesión siempre avisa a quienes iban a ir (400 notify_not_supported).

reason
string | null

El motivo, en una frase. Les llega a las personas avisadas.

Maximum string length: 200

Response

La sesión como quedó, o con dry_run=true la vista previa (object dice cuál).

Una sesión: una fecha de una clase, con su horario, quién la da y sus lugares. Solo sesiones de clases: los workshops no están en esta versión.

id
string
required

Id de una sesión (una fecha de una clase).

Pattern: ^ses_[0-7][0-9a-hjkmnp-tv-z]{25}$
Example:

"ses_01jnb07m4yxxe0s687jf750tkv"

object
string
required
Allowed value: "session"
livemode
boolean
required

false si el objeto es de tu estudio de prueba (claves crq_test_); true con claves crq_live_.

class_id
string
required

Id de una clase (el grupo con su horario semanal).

Pattern: ^cls_[0-7][0-9a-hjkmnp-tv-z]{25}$
Example:

"cls_01jryg07jeazdbx61dnx96ckmv"

course_id
string
required

Id de una disciplina.

Pattern: ^crs_[0-7][0-9a-hjkmnp-tv-z]{25}$
Example:

"crs_01jff81dk7rxtacmye5nanfp0h"

center_id
string | null
required

Id de una sede.

Pattern: ^ctr_[0-7][0-9a-hjkmnp-tv-z]{25}$
Example:

"ctr_01j65pdnq74qvnh0953pzvtczg"

room_id
string | null
required

El salón de esta sesión, si tiene uno asignado.

Pattern: ^room_[0-7][0-9a-hjkmnp-tv-z]{25}$
Example:

"room_01jhweg897s9npa0tasfgt6a65"

teacher_id
string | null
required

Quien da esta sesión, con la suplencia aplicada (igual que el calendario del estudio). null si no tiene instructor asignado.

Pattern: ^tch_[0-7][0-9a-hjkmnp-tv-z]{25}$
Example:

"tch_01jmwqh91chk154n8xwnaw5ynd"

starts_at
string<date-time>
required

El inicio, con el offset del estudio en ese momento. Una hora local que no existe por el cambio de horario (por ejemplo 00:30 la noche en que se adelanta el reloj) se corre una hora, igual que al reservar: en ese caso starts_at y local_start_time no coinciden.

Example:

"2026-12-02T19:00:00-03:00"

ends_at
string<date-time>
required

El fin. Una clase que cruza la medianoche termina al día siguiente.

Example:

"2026-12-02T19:00:00-03:00"

local_date
string<date>
required

Fecha local del negocio, YYYY-MM-DD.

Pattern: ^\d{4}-\d{2}-\d{2}$
Example:

"2026-12-02"

local_start_time
string
required

Hora local del negocio, HH:MM (24 horas).

Pattern: ^\d{2}:\d{2}$
Example:

"19:00"

local_end_time
string
required

Hora local del negocio, HH:MM (24 horas).

Pattern: ^\d{2}:\d{2}$
Example:

"19:00"

time_zone
string | null
required

La zona horaria del estudio (IANA). null si el estudio no eligió una; los instantes salen en +00:00.

Example:

"America/Montevideo"

status
enum<string>
required

scheduled, cancelled (el estudio la canceló) o studio_closed (el estudio cerró ese día). La lista puede crecer: trata un valor que no conoces como una sesión que no se da.

Available options:
scheduled,
cancelled,
studio_closed
capacity
integer | null
required

El cupo de la sesión. null si la clase no tiene cupo.

booked_count
integer
required

Los lugares tomados: reservas confirmadas, asistidas y ausentes hasta que la sesión empieza. Es la misma cuenta que usa Craqui al reservar.

Required range: x >= 0
waitlist_count
integer
required

Cuántas personas esperan en la lista de espera.

Required range: x >= 0
available_spots
integer | null
required

capacity - booked_count, nunca menos de 0. null si la clase no tiene cupo.

Required range: x >= 0
created_at
string<date-time>
required

Instante en RFC 3339 con el offset del negocio en ese momento.

Example:

"2026-12-02T19:00:00-03:00"

updated_at
string<date-time>
required

Instante en RFC 3339 con el offset del negocio en ese momento.

Example:

"2026-12-02T19:00:00-03:00"