Skip to main content
WEBHOOK

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.

Headers

webhook-id
string
required

El id del evento (evt_…), el mismo en todos los reintentos.

webhook-timestamp
string
required

Segundos Unix del intento.

webhook-signature
string
required

v1,<firma>; durante un cambio de secreto, dos separadas por un espacio, la nueva primero.

Body

application/json

Algo que cambió en tu estudio: una reserva, una sesión, un cliente, un pago. Trae qué cambió y el id del objeto, nunca sus datos: para ver cómo quedó, pide el objeto con su ruta (GET /bookings/{id}, por ejemplo) y el permiso de ese recurso. Un mismo evento puede llegarte más de una vez y no hay un orden garantizado entre eventos: usa id para no procesarlo dos veces.

id
string
required

Id de un evento.

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

"evt_79p14jhbsm8gaaj1bwvqa5jfg5"

object
string
required
Allowed value: "event"
type
enum<string>
required

Qué pasó, como <recurso>.<cambio>. La lista puede crecer: ignora un tipo que no conoces.

  • Clientes: client.created, client.updated (nombre, contacto o sede), client.deactivated, client.reactivated.
  • Reservas: booking.created (también al volver a reservar una reserva cancelada), booking.cancelled, booking.waitlisted, booking.promoted (de la lista de espera a la clase), booking.attended, booking.no_show, booking.attendance_undone.
  • Sesiones: session.created, session.cancelled (también por un cierre del estudio), session.restored, session.deleted, session.rescheduled, session.teacher_changed.
  • Créditos: credit_grant.created, credit_grant.revoked, credit_grant.expired.
  • Membresías: membership.created, membership.activated, membership.renewed, membership.suspended, membership.cancellation_scheduled, membership.cancellation_undone, membership.ended, membership.frozen, membership.unfrozen.
  • Cobros: fee.created, fee.overdue, fee.paid, payment.created, refund.created.

Dos cambios iguales del mismo objeto en una misma operación dejan un solo evento.

Available options:
client.created,
client.updated,
client.deactivated,
client.reactivated,
booking.created,
booking.cancelled,
booking.waitlisted,
booking.promoted,
booking.attended,
booking.no_show,
booking.attendance_undone,
session.created,
session.cancelled,
session.restored,
session.deleted,
session.rescheduled,
session.teacher_changed,
credit_grant.created,
credit_grant.revoked,
credit_grant.expired,
membership.created,
membership.activated,
membership.renewed,
membership.suspended,
membership.cancellation_scheduled,
membership.cancellation_undone,
membership.ended,
membership.frozen,
membership.unfrozen,
fee.created,
fee.overdue,
fee.paid,
payment.created,
refund.created
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"

livemode
boolean
required

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

data
object
required
previous_attributes
object
required

Los valores públicos que el objeto tenía antes del cambio, solo los que cambiaron y tienen forma pública: status en reservas, clientes, sesiones, membresías y cuotas; waitlist_position en booking.promoted; starts_at y ends_at en session.rescheduled; current_period_start y current_period_end en membership.renewed. Vacío ({}) si no hay nada que contar. Nunca trae datos personales: client.updated no dice qué tenía antes.

Response

200

Cualquier 2xx confirma la entrega.