Skip to main content
POST
Revocar un pack

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

credits:write

Asignar y revocar packs de créditos.

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 del pack asignado (cgr_…). Id de un lote de créditos (un pack, una oferta o el período de una membresía).

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

"cgr_01jdwsxvjgc7y12y0h12f43149"

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

Los dos campos son obligatorios: la API no decide qué pasa con las reservas ni con la cuota.

cancel_bookings
boolean
required

true cancela las reservas que usan créditos de ese pack; false las mantiene.

fee_action
enum<string>
required

retire da de baja la cuota sin pagar del pack; keep la mantiene para cobrar (solo si el cliente ya usó créditos del pack: 422 fee_action_not_available si no).

Available options:
retire,
keep

Response

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

Un lote de créditos de un cliente: un pack que compró, una oferta de bienvenida o los créditos de un período de su membresía. Los créditos se usan del lote que vence primero.

id
string
required

Id de un lote de créditos (un pack, una oferta o el período de una membresía).

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

"cgr_01jdwsxvjgc7y12y0h12f43149"

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

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

client_id
string | null
required

El cliente. null si el lote es de alguien que no es cliente del estudio (por ejemplo, alguien del equipo).

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

"cli_01jatfha5h4nkg77c3wfrvd3cw"

kind
enum<string> | null
required

pack, intro_offer o membership_period. null solo en lotes muy viejos sin tipo. La lista puede crecer.

Available options:
pack,
intro_offer,
membership_period,
null
credit_pack_id
string | null
required

El pack que se compró, solo si kind es pack.

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

"cpk_01j63ec7mff1rr7pbk3z1b8ke1"

credits_granted
integer
required

Los créditos que dio el lote.

credits_remaining
integer
required

Los créditos que le quedan.

granted_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"

revoked_at
string<date-time> | null
required

Cuándo el estudio anuló el lote; null si no se anuló.

Example:

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

expires_at
string<date-time> | null
required

Cuándo vencen los créditos, con los días de gracia ya sumados. null si no vencen.

Example:

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

status
enum<string>
required

revoked si se anuló; si no, expired si venció; si no, depleted si no le quedan créditos; si no, active. La lista puede crecer: trata un valor que no conoces como un lote que no se puede usar.

Available options:
active,
depleted,
expired,
revoked
course_ids
string[] | null
required

Las disciplinas en las que sirven los créditos; null si sirven en todas.

Id de una disciplina.

Pattern: ^crs_[0-7][0-9a-hjkmnp-tv-z]{25}$
fee_id
string | null
required

La cuota con la que se cobró el lote; null si no tiene (por ejemplo, créditos de regalo).

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

"fee_01jxycdc0zf2nxw7n2azer6wqp"

price
object | null
required

Lo que se pagó por el lote; null si no se registró un precio.

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"