Lo que Craqui le manda a cada URL de avisos: un POST con un event en el cuerpo (el mismo objeto de
GET /events) y los headers de Standard Webhooks. Para comprobar que viene de Craqui, calcula
HMAC-SHA256 con tu secreto (los bytes del base64 que sigue a whsec_) sobre
<webhook-id>.<webhook-timestamp>.<cuerpo> y compáralo con cada firma de webhook-signature. Las
librerías de Standard Webhooks lo hacen por ti.
Responde 2xx en menos de 10 segundos y procesa después. Si no, se reintenta a los 1 y 5 minutos, a la media
hora, a las 2, 5, 10, 14, 20 y 24 horas (10 intentos, unos 3 días). Una redirección no se sigue. Si tu
sistema falla durante 3 días, la URL se desactiva y se le avisa al propietario del estudio.
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.
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.
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.
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.
Show child attributes
Response
200
Cualquier 2xx confirma la entrega.
{"docsConfig":{"theme":"mint","$schema":"https://mintlify.com/docs.json","name":"API de Craqui","colors":{"primary":"#1F33C7","light":"#8E9CFF","dark":"#1F33C7"},"logo":{"light":"https://mintcdn.com/craqui/oYoj2lAgh2Jk1Qcv/logo/light.png?fit=max\u0026auto=format\u0026n=oYoj2lAgh2Jk1Qcv\u0026q=85\u0026s=e96edbf5621b5bc4068b5ad8dee910c7","dark":"https://mintcdn.com/craqui/oYoj2lAgh2Jk1Qcv/logo/dark.png?fit=max\u0026auto=format\u0026n=oYoj2lAgh2Jk1Qcv\u0026q=85\u0026s=119f3ccfb48eb398b9a41837114157f1","href":"https://docs.craqui.com"},"favicon":"https://mintcdn.com/craqui/oYoj2lAgh2Jk1Qcv/favicon.png?fit=max\u0026auto=format\u0026n=oYoj2lAgh2Jk1Qcv\u0026q=85\u0026s=9b21e70461f095f51069e525e11ed743","api":{"playground":{"display":"interactive"}},"footer":{"socials":{"website":"https://craqui.com"}},"styling":{"latex":false},"navigation":{"pages":[]}},"deployment":{"deploymentMetadataValue":{"subdomain":"craqui","hasAudioNarration":false,"actualSubdomain":"craqui","customDomains":["docs.craqui.com"],"gitSource":{"type":"github","owner":"javicraqui-build","repo":"craqui-api-docs","deployBranch":"main","contentDirectory":"","isPrivate":true,"mountPath":"","label":"","_id":"6aee011a2f669b27f0303a49"},"entitlements":{"AI_CHAT":{"status":"ENABLED"},"WEB_MCP":{"status":"ENABLED"},"NARRATION":{"status":"ENABLED"}},"buildId":"6af22f0027110864ba94823c","clientVersion":"0.0.4094","searchFilterCounts":[{"language":"default","tag":"Guías","count":129},{"language":"default","tag":"Errores","count":108},{"language":"default","tag":"Referencia","count":57},{"language":"default","tag":"Apps de terceros","count":8},{"language":"default","tag":"webhook_endpoints","count":8},{"language":"default","tag":"Conceptos","count":7},{"language":"default","tag":"memberships","count":7},{"language":"default","tag":"clients","count":6},{"language":"default","tag":"Empezar","count":5},{"language":"default","tag":"bookings","count":5}]},"assistantConfig":{"enableAskAiButton":false,"enableStarterQuestions":false,"enableContextualStarterQuestions":false,"enableAskAiSearchBar":true},"basePath":"","hasChatPermissions":true,"hasWebMcpPermissions":true,"toggles":[{"name":"kill-isr","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"agent-mintlify-slack","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"agent-integrations-settings","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"rbac-expansion","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"automations-pr-grouping","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"custom-prefix","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"analytics-v7","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"user-flows-analytics","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"no-publish-flow","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-onboarding","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"llms-txt-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"snapshot-serving-live","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"stripTemperatureMiddleware","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"support-platform-pylon-zendesk","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"snapshot-serving","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"instant-rollback","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"granular-notifications-server","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"granular-notifications","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"automations-fable","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"fixed-ai-action-pricing","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"automation-resolve-merge-conflict","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"scoped-publishing","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"mintql","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"page-level-analytics","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"editor-version-history-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"billing-page-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"full-page-search","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workspace-projects","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"assistant-v5","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"fork-pr-previews","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"revalidation-jwt","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-sso-scim","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"hobby-abuse-scan","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"dashboard-inbox","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-signup","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"turbopuffer-dual-write","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-enabled","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"approve-review-flow","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"editor-metadata","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"sso-setup-deadline-banner","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"turbopuffer-serve","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"live-agents","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"comment-mode","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false}],"googleFontsInlined":false},"customCss":[],"page":{"pagePath":"estudios/api-reference/webhook_endpoints/el-aviso-que-recibe-tu-sistema","slug":"/estudios/api-reference/webhook_endpoints/el-aviso-que-recibe-tu-sistema","pageMetadata":{"title":"El aviso que recibe tu sistema","description":"Lo que Craqui le manda a cada URL de avisos: un `POST` con un `event` en el cuerpo (el mismo objeto de\n`GET /events`) y los headers de Standard Webhooks. Para comprobar que viene de Craqui, calcula\nHMAC-SHA256 con tu secreto (los bytes del base64 que sigue a `whsec_`) sobre\n`\u003cwebhook-id>.\u003cwebhook-timestamp>.\u003ccuerpo>` y compáralo con cada firma de `webhook-signature`. Las\nlibrerías de Standard Webhooks lo hacen por ti.\n\nResponde 2xx en menos de 10 segundos y procesa después. Si no, se reintenta a los 1 y 5 minutos, a la media\nhora, a las 2, 5, 10, 14, 20 y 24 horas (10 intentos, unos 3 días). Una redirección no se sigue. Si tu\nsistema falla durante 3 días, la URL se desactiva y se le avisa al propietario del estudio.\n","version":null,"deprecated":null,"openapi":"/estudios/openapi.yaml webhook event","href":"/estudios/api-reference/webhook_endpoints/el-aviso-que-recibe-tu-sistema","autogeneratedByOpenApi":true},"description":{"compiledSource":"\"use strict\";\nconst {Fragment: _Fragment, jsx: _jsx, jsxs: _jsxs} = arguments[0];\nconst {useMDXComponents: _provideComponents} = arguments[0];\nfunction _createMdxContent(props) {\n const _components = {\n code: \"code\",\n p: \"p\",\n ..._provideComponents(),\n ...props.components\n };\n return _jsxs(_Fragment, {\n children: [_jsxs(_components.p, {\n children: [\"Lo que Craqui le manda a cada URL de avisos: un \", _jsx(_components.code, {\n children: \"POST\"\n }), \" con un \", _jsx(_components.code, {\n children: \"event\"\n }), \" en el cuerpo (el mismo objeto de\\n\", _jsx(_components.code, {\n children: \"GET /events\"\n }), \") y los headers de Standard Webhooks. Para comprobar que viene de Craqui, calcula\\nHMAC-SHA256 con tu secreto (los bytes del base64 que sigue a \", _jsx(_components.code, {\n children: \"whsec_\"\n }), \") sobre\\n\", _jsx(_components.code, {\n children: \"\u003cwebhook-id>.\u003cwebhook-timestamp>.\u003ccuerpo>\"\n }), \" y compáralo con cada firma de \", _jsx(_components.code, {\n children: \"webhook-signature\"\n }), \". Las\\nlibrerías de Standard Webhooks lo hacen por ti.\"]\n }), \"\\n\", _jsx(_components.p, {\n children: \"Responde 2xx en menos de 10 segundos y procesa después. Si no, se reintenta a los 1 y 5 minutos, a la media\\nhora, a las 2, 5, 10, 14, 20 y 24 horas (10 intentos, unos 3 días). Una redirección no se sigue. Si tu\\nsistema falla durante 3 días, la URL se desactiva y se le avisa al propietario del estudio.\"\n })]\n });\n}\nfunction MDXContent(props = {}) {\n const {wrapper: MDXLayout} = {\n ..._provideComponents(),\n ...props.components\n };\n return MDXLayout ? _jsx(MDXLayout, {\n ...props,\n children: _jsx(_createMdxContent, {\n ...props\n })\n }) : _createMdxContent(props);\n}\nreturn {\n default: MDXContent\n};\n","frontmatter":{},"scope":{}},"pageType":"default","mdx":{"mdxSource":{"compiledSource":"\"use strict\";const{Fragment:_Fragment,jsx:_jsx}=arguments[0];const{useMDXComponents:_provideComponents}=arguments[0];function _createMdxContent(props){return _jsx(_Fragment,{})}function MDXContent(props={}){const{wrapper:MDXLayout}={..._provideComponents(),...props.components};return MDXLayout?_jsx(MDXLayout,{...props,children:_jsx(_createMdxContent,{...props})}):_createMdxContent(props)}return{default:MDXContent}","frontmatter":{},"scope":{"config":{},"pageMetadata":{"title":"El aviso que recibe tu sistema","description":"Lo que Craqui le manda a cada URL de avisos: un `POST` con un `event` en el cuerpo (el mismo objeto de\n`GET /events`) y los headers de Standard Webhooks. Para comprobar que viene de Craqui, calcula\nHMAC-SHA256 con tu secreto (los bytes del base64 que sigue a `whsec_`) sobre\n`\u003cwebhook-id>.\u003cwebhook-timestamp>.\u003ccuerpo>` y compáralo con cada firma de `webhook-signature`. Las\nlibrerías de Standard Webhooks lo hacen por ti.\n\nResponde 2xx en menos de 10 segundos y procesa después. Si no, se reintenta a los 1 y 5 minutos, a la media\nhora, a las 2, 5, 10, 14, 20 y 24 horas (10 intentos, unos 3 días). Una redirección no se sigue. Si tu\nsistema falla durante 3 días, la URL se desactiva y se le avisa al propietario del estudio.\n","version":null,"deprecated":null,"openapi":"/estudios/openapi.yaml webhook event","href":"/estudios/api-reference/webhook_endpoints/el-aviso-que-recibe-tu-sistema","autogeneratedByOpenApi":true}}},"mdxSourceWithNoJs":null},"mdxExtracts":{"tableOfContents":[],"codeExamples":{}},"jsLinks":[],"openApiReferenceData":{"operation":{"operationId":"receiveEvent","tags":["webhook_endpoints"],"summary":"El aviso que recibe tu sistema","description":"Lo que Craqui le manda a cada URL de avisos: un `POST` con un `event` en el cuerpo (el mismo objeto de\n`GET /events`) y los headers de Standard Webhooks. Para comprobar que viene de Craqui, calcula\nHMAC-SHA256 con tu secreto (los bytes del base64 que sigue a `whsec_`) sobre\n`\u003cwebhook-id>.\u003cwebhook-timestamp>.\u003ccuerpo>` y compáralo con cada firma de `webhook-signature`. Las\nlibrerías de Standard Webhooks lo hacen por ti.\n\nResponde 2xx en menos de 10 segundos y procesa después. Si no, se reintenta a los 1 y 5 minutos, a la media\nhora, a las 2, 5, 10, 14, 20 y 24 horas (10 intentos, unos 3 días). Una redirección no se sigue. Si tu\nsistema falla durante 3 días, la URL se desactiva y se le avisa al propietario del estudio.\n","x-craqui-scope":"events:read","security":["dc90ea9d-e7f5-44fa-ac33-da2bb0ac2288","158a80df-7a96-4439-aa26-cbdc1287a9d7"],"parameters":["1d17531c-c27f-4a29-833d-f6bc106db4c2","c4ab9844-65ed-4164-87cb-55b445b52f80","c7ca94d6-d4ed-4867-859b-30871c9964c9"],"requestBody":"e796f215-5278-487b-a3e1-62fa12bf700a","responses":{"200":"7286d483-3f35-4fe8-9dac-286c902c4506"},"method":"post","type":"webhook","servers":["bb48cfac-2655-4314-90fd-28cc11e87988"],"path":"event","baseUrlOptions":["https://api.craqui.com/v1"],"title":"El aviso que recibe tu sistema","codeSamples":[],"requiredOnlyExamples":false,"requestExamples":[{"language":"json","filename":"Example","code":"{\n \"id\": \"evt_79p14jhbsm8gaaj1bwvqa5jfg5\",\n \"object\": \"event\",\n \"type\": \"booking.attended\",\n \"created_at\": \"2026-12-01T09:05:12-03:00\",\n \"livemode\": true,\n \"data\": {\n \"object_id\": \"bkg_01j5cceh8fkntbjm406cvh2kwm\",\n \"object_type\": \"booking\"\n },\n \"previous_attributes\": {\n \"status\": \"confirmed\"\n }\n}"}],"requestExampleType":"webhook","responseExampleType":"generated"},"dependencies":{"parameters":{"1d17531c-c27f-4a29-833d-f6bc106db4c2":{"name":"webhook-id","in":"header","required":true,"description":"El id del evento (`evt_…`), el mismo en todos los reintentos.","schema":{"type":"string","isRequired":true,"description":"El id del evento (`evt_…`), el mismo en todos los reintentos.","uniqueKey":"","typeLabel":"string"}},"c4ab9844-65ed-4164-87cb-55b445b52f80":{"name":"webhook-timestamp","in":"header","required":true,"description":"Segundos Unix del intento.","schema":{"type":"string","isRequired":true,"description":"Segundos Unix del intento.","uniqueKey":"","typeLabel":"string"}},"c7ca94d6-d4ed-4867-859b-30871c9964c9":{"name":"webhook-signature","in":"header","required":true,"description":"`v1,\u003cfirma>`; durante un cambio de secreto, dos separadas por un espacio, la nueva primero.","schema":{"type":"string","isRequired":true,"description":"`v1,\u003cfirma>`; durante un cambio de secreto, dos separadas por un espacio, la nueva primero.","uniqueKey":"","typeLabel":"string"}}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","description":"Algo que cambió en tu estudio: una reserva, una sesión, un cliente, un pago. Trae qué cambió y el id del\nobjeto, nunca sus datos: para ver cómo quedó, pide el objeto con su ruta (`GET /bookings/{id}`, por\nejemplo) y el permiso de ese recurso. Un mismo evento puede llegarte más de una vez y no hay un orden\ngarantizado entre eventos: usa `id` para no procesarlo dos veces.\n","required":["id","object","type","created_at","livemode","data","previous_attributes"],"properties":{"id":{"type":"string","description":"Id de un evento.","pattern":"^evt_[0-7][0-9a-hjkmnp-tv-z]{25}$","examples":["evt_79p14jhbsm8gaaj1bwvqa5jfg5"],"isRequired":true,"uniqueKey":"id","typeLabel":"string"},"object":{"type":"string","const":"event","isRequired":true,"uniqueKey":"object","typeLabel":"string"},"type":{"type":"string","description":"Qué pasó, como `\u003crecurso>.\u003ccambio>`. La lista puede crecer: ignora un tipo que no conoces.\n\n- Clientes: `client.created`, `client.updated` (nombre, contacto o sede), `client.deactivated`,\n `client.reactivated`.\n- Reservas: `booking.created` (también al volver a reservar una reserva cancelada),\n `booking.cancelled`, `booking.waitlisted`, `booking.promoted` (de la lista de espera a la clase),\n `booking.attended`, `booking.no_show`, `booking.attendance_undone`.\n- Sesiones: `session.created`, `session.cancelled` (también por un cierre del estudio),\n `session.restored`, `session.deleted`, `session.rescheduled`, `session.teacher_changed`.\n- Créditos: `credit_grant.created`, `credit_grant.revoked`, `credit_grant.expired`.\n- Membresías: `membership.created`, `membership.activated`, `membership.renewed`,\n `membership.suspended`, `membership.cancellation_scheduled`, `membership.cancellation_undone`,\n `membership.ended`, `membership.frozen`, `membership.unfrozen`.\n- Cobros: `fee.created`, `fee.overdue`, `fee.paid`, `payment.created`, `refund.created`.\n\nDos cambios iguales del mismo objeto en una misma operación dejan un solo evento.\n","enum":["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"],"x-extensible-enum":true,"isRequired":true,"uniqueKey":"type","typeLabel":"enum\u003cstring>"},"created_at":{"type":"string","format":"date-time","description":"Instante en RFC 3339 con el offset del negocio en ese momento.","examples":["2026-12-02T19:00:00-03:00"],"isRequired":true,"uniqueKey":"created_at","typeLabel":"string\u003cdate-time>"},"livemode":{"type":"boolean","description":"`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.","isRequired":true,"uniqueKey":"livemode","typeLabel":"boolean"},"data":{"type":"object","required":["object_id","object_type"],"properties":{"object_id":{"type":"string","description":"El id público del objeto, con el prefijo de su recurso (`bkg_…`, `ses_…`, `cli_…`).","pattern":"^(cli|bkg|ses|cgr|mem|fee|pay|rfd)_[0-7][0-9a-hjkmnp-tv-z]{25}$","isRequired":true,"uniqueKey":"data.object_id","typeLabel":"string"},"object_type":{"type":"string","description":"El recurso: `client`, `booking`, `session`, `credit_grant`, `membership`, `fee`, `payment` o `refund`. La lista puede crecer.","enum":["client","booking","session","credit_grant","membership","fee","payment","refund"],"x-extensible-enum":true,"isRequired":true,"uniqueKey":"data.object_type","typeLabel":"enum\u003cstring>"}},"isRequired":true,"uniqueKey":"data","typeLabel":"object"},"previous_attributes":{"type":"object","description":"Los valores públicos que el objeto tenía antes del cambio, solo los que cambiaron y tienen forma pública:\n`status` en reservas, clientes, sesiones, membresías y cuotas; `waitlist_position` en\n`booking.promoted`; `starts_at` y `ends_at` en `session.rescheduled`; `current_period_start` y\n`current_period_end` en `membership.renewed`. Vacío (`{}`) si no hay nada que contar. Nunca trae datos\npersonales: `client.updated` no dice qué tenía antes.\n","properties":{"status":{"type":"string","description":"El estado anterior, con los mismos valores que el campo `status` del objeto.","uniqueKey":"previous_attributes.status","typeLabel":"string"},"waitlist_position":{"oneOf":[{"type":"integer","uniqueKey":"previous_attributes.waitlist_position.oneOf.0","typeLabel":"integer"},{"type":"null","uniqueKey":"previous_attributes.waitlist_position.oneOf.1","typeLabel":"null"}],"uniqueKey":"previous_attributes.waitlist_position","typeLabel":"integer | null"},"starts_at":{"type":"string","format":"date-time","description":"Instante en RFC 3339 con el offset del negocio en ese momento.","examples":["2026-12-02T19:00:00-03:00"],"uniqueKey":"previous_attributes.starts_at","typeLabel":"string\u003cdate-time>"},"ends_at":{"type":"string","format":"date-time","description":"Instante en RFC 3339 con el offset del negocio en ese momento.","examples":["2026-12-02T19:00:00-03:00"],"uniqueKey":"previous_attributes.ends_at","typeLabel":"string\u003cdate-time>"},"current_period_start":{"type":"string","format":"date-time","description":"Instante en RFC 3339 con el offset del negocio en ese momento.","examples":["2026-12-02T19:00:00-03:00"],"uniqueKey":"previous_attributes.current_period_start","typeLabel":"string\u003cdate-time>"},"current_period_end":{"type":"string","format":"date-time","description":"Instante en RFC 3339 con el offset del negocio en ese momento.","examples":["2026-12-02T19:00:00-03:00"],"uniqueKey":"previous_attributes.current_period_end","typeLabel":"string\u003cdate-time>"}},"isRequired":true,"uniqueKey":"previous_attributes","typeLabel":"object"}},"uniqueKey":"","typeLabel":"object"},"example":{"id":"evt_79p14jhbsm8gaaj1bwvqa5jfg5","object":"event","type":"booking.attended","created_at":"2026-12-01T09:05:12-03:00","livemode":true,"data":{"object_id":"bkg_01j5cceh8fkntbjm406cvh2kwm","object_type":"booking"},"previous_attributes":{"status":"confirmed"}},"examples":{"Example":{"title":"Example","value":{"id":"evt_79p14jhbsm8gaaj1bwvqa5jfg5","object":"event","type":"booking.attended","created_at":"2026-12-01T09:05:12-03:00","livemode":true,"data":{"object_id":"bkg_01j5cceh8fkntbjm406cvh2kwm","object_type":"booking"},"previous_attributes":{"status":"confirmed"}}}},"exampleType":"examples"}},"exampleType":"examples"},"responses":{"7286d483-3f35-4fe8-9dac-286c902c4506":{"description":"Cualquier 2xx confirma la entrega.","content":{"_mintlify/placeholder":{"schema":{"type":"object","description":""}}}}},"security":{"dc90ea9d-e7f5-44fa-ac33-da2bb0ac2288":{"bearerAuth":{"type":"http","scheme":"bearer","bearerFormat":"crq_live_sk_… / crq_live_rk_…","description":"Clave del negocio. `sk` es una clave completa (todo lo que el rol de quien la creó puede dar)\ny `rk` una restringida a los permisos que se eligieron al crearla. Solo se usa desde un\nservidor: un pedido desde un navegador se rechaza con `browser_not_allowed`.\n","scopes":[],"schemeName":"bearerAuth"}},"158a80df-7a96-4439-aa26-cbdc1287a9d7":{"oauth2":{"type":"oauth2","description":"Una app de terceros conectada a un negocio por su propietario (OAuth 2.1, Authorization Code con PKCE). El\naccess token (`crq_oat_…`) vale 1 hora, va solo en el header `Authorization: Bearer` y es de un solo negocio.\nUna app nunca recibe `notifications:suppress` ni `webhooks:manage`. Ver https://docs.craqui.com/apps.\n","flows":{"authorizationCode":{"authorizationUrl":"https://www.craqui.com/oauth/authorize","tokenUrl":"https://api.craqui.com/oauth/token","refreshUrl":"https://api.craqui.com/oauth/token","scopes":{"business:read":"Ver los datos básicos del negocio (siempre incluido).","centers:read":"Ver las sedes.","rooms:read":"Ver los salones.","teachers:read":"Ver a quienes dan clases.","courses:read":"Ver las disciplinas.","classes:read":"Ver las clases y su horario.","sessions:read":"Ver el horario, sesión por sesión.","sessions:write":"Cancelar sesiones.","clients:read":"Ver los clientes.","clients.pii:read":"Ver el email y el teléfono de los clientes.","clients:write":"Crear, cambiar, dar de baja y reactivar clientes.","bookings:read":"Ver las reservas.","bookings:write":"Reservar, cancelar reservas y marcar asistencia.","credits:read":"Ver los créditos de los clientes.","credits:write":"Asignar y revocar packs de créditos.","memberships:read":"Ver las membresías.","memberships:write":"Asignar, cancelar, congelar y descongelar membresías.","fees:read":"Ver las cuotas.","payments:read":"Ver los pagos.","refunds:read":"Ver los reembolsos.","payments:write":"Registrar pagos.","events:read":"Ver la lista de cambios recientes."}}},"scopes":["events:read"],"schemeName":"oauth2"}}},"servers":{"bb48cfac-2655-4314-90fd-28cc11e87988":{"url":"https://api.craqui.com/v1","description":"Producción"}},"processedSecurityOptions":[{"schemes":[{"scheme":{"type":"http","scheme":"bearer","bearerFormat":"crq_live_sk_… / crq_live_rk_…","description":"Clave del negocio. `sk` es una clave completa (todo lo que el rol de quien la creó puede dar)\ny `rk` una restringida a los permisos que se eligieron al crearla. Solo se usa desde un\nservidor: un pedido desde un navegador se rechaza con `browser_not_allowed`.\n","scopes":[],"schemeName":"bearerAuth"},"schema":{"title":"Bearer Auth","type":"string","isRequired":true,"description":"Clave del negocio. `sk` es una clave completa (todo lo que el rol de quien la creó puede dar)\ny `rk` una restringida a los permisos que se eligieron al crearla. Solo se usa desde un\nservidor: un pedido desde un navegador se rechaza con `browser_not_allowed`.\n","format":"bearer","typeLabel":"string\u003cbearer>","deprecated":false},"schemeName":"bearerAuth","name":"Authorization"}],"title":"bearerAuth"},{"schemes":[{"scheme":{"type":"oauth2","description":"Una app de terceros conectada a un negocio por su propietario (OAuth 2.1, Authorization Code con PKCE). El\naccess token (`crq_oat_…`) vale 1 hora, va solo en el header `Authorization: Bearer` y es de un solo negocio.\nUna app nunca recibe `notifications:suppress` ni `webhooks:manage`. Ver https://docs.craqui.com/apps.\n","flows":{"authorizationCode":{"authorizationUrl":"https://www.craqui.com/oauth/authorize","tokenUrl":"https://api.craqui.com/oauth/token","refreshUrl":"https://api.craqui.com/oauth/token","scopes":{"business:read":"Ver los datos básicos del negocio (siempre incluido).","centers:read":"Ver las sedes.","rooms:read":"Ver los salones.","teachers:read":"Ver a quienes dan clases.","courses:read":"Ver las disciplinas.","classes:read":"Ver las clases y su horario.","sessions:read":"Ver el horario, sesión por sesión.","sessions:write":"Cancelar sesiones.","clients:read":"Ver los clientes.","clients.pii:read":"Ver el email y el teléfono de los clientes.","clients:write":"Crear, cambiar, dar de baja y reactivar clientes.","bookings:read":"Ver las reservas.","bookings:write":"Reservar, cancelar reservas y marcar asistencia.","credits:read":"Ver los créditos de los clientes.","credits:write":"Asignar y revocar packs de créditos.","memberships:read":"Ver las membresías.","memberships:write":"Asignar, cancelar, congelar y descongelar membresías.","fees:read":"Ver las cuotas.","payments:read":"Ver los pagos.","refunds:read":"Ver los reembolsos.","payments:write":"Registrar pagos.","events:read":"Ver la lista de cambios recientes."}}},"scopes":["events:read"],"schemeName":"oauth2"},"schema":{"title":"OAuth2 Auth","type":"string","isRequired":true,"description":"Una app de terceros conectada a un negocio por su propietario (OAuth 2.1, Authorization Code con PKCE). El\naccess token (`crq_oat_…`) vale 1 hora, va solo en el header `Authorization: Bearer` y es de un solo negocio.\nUna app nunca recibe `notifications:suppress` ni `webhooks:manage`. Ver https://docs.craqui.com/apps.\n","format":"bearer","typeLabel":"string\u003cbearer>","deprecated":false},"schemeName":"oauth2","name":"Authorization"}],"title":"oauth2"}]},"originalFileLocation":"estudios/openapi.yaml"},"subdomain":"craqui","siteName":"API de Craqui","title":"El aviso que recibe tu sistema - API de Craqui","navMaps":{"firstHrefInVersion":{},"firstHrefInLanguage":{}},"lastModified":"2026-11-09T20:37:27.045Z","originalFileLocation":"estudios/api-reference/webhook_endpoints/el-aviso-que-recibe-tu-sistema.mdx"},"headHtml":"\u003cscript data-mint-head>(function(){var d=document.documentElement,p=null;if(!p){try{p=localStorage.getItem(\"isDarkMode\")}catch(e){}if(p==='true')p='dark';else if(p==='false')p='light';if(p!=='light'\u0026\u0026p!=='dark'\u0026\u0026p!=='system')p=\"system\"}var r=p==='system'?(matchMedia(\"(prefers-color-scheme: dark)\").matches?'dark':'light'):p;d.classList.remove(r==='dark'?'light':'dark');d.classList.add(r);d.setAttribute(\"data-theme-preference\",p)})();\u003c/script>\u003cmeta data-mint-head name=\"description\" content=\"Lo que Craqui le manda a cada URL de avisos: un POST con un event en el cuerpo (el mismo objeto de GET /events) y los headers de Standard Webhooks. Para comprobar que viene de Craqui, calcula HMAC-SHA256 con tu secreto (los bytes del base64 que sigue a whsec_) sobre .. y compáralo con cada firma de webhook-signature. Las librerías de Standard Webhooks lo hacen por ti. Responde 2xx en menos de 10 segundos y procesa después. Si no, se reintenta a los 1 y 5 minutos, a la media hora, a las 2, 5, 10, 14, 20 y 24 horas (10 intentos, unos 3 días). Una redirección no se sigue. Si tu sistema falla durante 3 días, la URL se desactiva y se le avisa al propietario del estudio.\">\u003cmeta data-mint-head name=\"application-name\" content=\"API de Craqui\">\u003cmeta data-mint-head name=\"generator\" content=\"Mintlify\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"192x192\" href=\"/mintlify-assets/_mintlify/favicons/craqui/ptsKlgDyHJpLj3bc/_generated/favicon/android-chrome-192x192.png\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"apple-touch-icon\" type=\"image/png\" sizes=\"180x180\" href=\"/mintlify-assets/_mintlify/favicons/craqui/ptsKlgDyHJpLj3bc/_generated/favicon/apple-touch-icon.png\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"16x16\" href=\"/mintlify-assets/_mintlify/favicons/craqui/ptsKlgDyHJpLj3bc/_generated/favicon/favicon-16x16.png\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"32x32\" href=\"/mintlify-assets/_mintlify/favicons/craqui/ptsKlgDyHJpLj3bc/_generated/favicon/favicon-32x32.png\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"shortcut icon\" type=\"image/x-icon\" href=\"/mintlify-assets/_mintlify/favicons/craqui/ptsKlgDyHJpLj3bc/_generated/favicon/favicon.ico\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"192x192\" href=\"/mintlify-assets/_mintlify/favicons/craqui/ptsKlgDyHJpLj3bc/_generated/favicon-dark/android-chrome-192x192.png\" media=\"(prefers-color-scheme: dark)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"16x16\" href=\"/mintlify-assets/_mintlify/favicons/craqui/ptsKlgDyHJpLj3bc/_generated/favicon-dark/favicon-16x16.png\" media=\"(prefers-color-scheme: dark)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"32x32\" href=\"/mintlify-assets/_mintlify/favicons/craqui/ptsKlgDyHJpLj3bc/_generated/favicon-dark/favicon-32x32.png\" media=\"(prefers-color-scheme: dark)\">\u003clink data-mint-head rel=\"shortcut icon\" type=\"image/x-icon\" href=\"/mintlify-assets/_mintlify/favicons/craqui/ptsKlgDyHJpLj3bc/_generated/favicon-dark/favicon.ico\" media=\"(prefers-color-scheme: dark)\">\u003cmeta data-mint-head property=\"og:title\" content=\"El aviso que recibe tu sistema - API de Craqui\">\u003cmeta data-mint-head property=\"og:description\" content=\"Lo que Craqui le manda a cada URL de avisos: un POST con un event en el cuerpo (el mismo objeto de GET /events) y los headers de Standard Webhooks. Para comprobar que viene de Craqui, calcula HMAC-SHA256 con tu secreto (los bytes del base64 que sigue a whsec_) sobre .. y compáralo con cada firma de webhook-signature. Las librerías de Standard Webhooks lo hacen por ti. Responde 2xx en menos de 10 segundos y procesa después. Si no, se reintenta a los 1 y 5 minutos, a la media hora, a las 2, 5, 10, 14, 20 y 24 horas (10 intentos, unos 3 días). Una redirección no se sigue. Si tu sistema falla durante 3 días, la URL se desactiva y se le avisa al propietario del estudio.\">\u003cmeta data-mint-head property=\"og:site_name\" content=\"API de Craqui\">\u003cmeta data-mint-head property=\"og:url\" content=\"https://docs.craqui.com/estudios/api-reference/webhook_endpoints/el-aviso-que-recibe-tu-sistema\">\u003cmeta data-mint-head property=\"og:type\" content=\"website\">\u003cmeta data-mint-head property=\"og:image\" content=\"https://craqui.mintlify.site/_mintlify/api/og/v2?division=webhook_endpoints\u0026amp;title=El+aviso+que+recibe+tu+sistema\u0026amp;description=Lo+que+Craqui+le+manda+a+cada+URL+de+avisos%3A+un+%60POST%60+con+un+%60event%60+en+el+cuerpo+%28el+mismo+objeto+de%0A%60GET+%2Fevents%60%29+y+los+headers+de+Standard+Webhooks.+Para+c\u0026amp;theme=176da6da42441ffcb9f627fc\u0026amp;signature=c625efde4deabab5eef241a58825cf1802857aa4a8475579602a7a28c9abea62\">\u003cmeta data-mint-head property=\"og:image:width\" content=\"1200\">\u003cmeta data-mint-head property=\"og:image:height\" content=\"630\">\u003cmeta data-mint-head name=\"twitter:card\" content=\"summary_large_image\">\u003cmeta data-mint-head name=\"twitter:title\" content=\"El aviso que recibe tu sistema - API de Craqui\">\u003cmeta data-mint-head name=\"twitter:description\" content=\"Lo que Craqui le manda a cada URL de avisos: un POST con un event en el cuerpo (el mismo objeto de GET /events) y los headers de Standard Webhooks. Para comprobar que viene de Craqui, calcula HMAC-SHA256 con tu secreto (los bytes del base64 que sigue a whsec_) sobre .. y compáralo con cada firma de webhook-signature. Las librerías de Standard Webhooks lo hacen por ti. Responde 2xx en menos de 10 segundos y procesa después. Si no, se reintenta a los 1 y 5 minutos, a la media hora, a las 2, 5, 10, 14, 20 y 24 horas (10 intentos, unos 3 días). Una redirección no se sigue. Si tu sistema falla durante 3 días, la URL se desactiva y se le avisa al propietario del estudio.\">\u003cmeta data-mint-head name=\"twitter:image\" content=\"https://craqui.mintlify.site/_mintlify/api/og/v2?division=webhook_endpoints\u0026amp;title=El+aviso+que+recibe+tu+sistema\u0026amp;description=Lo+que+Craqui+le+manda+a+cada+URL+de+avisos%3A+un+%60POST%60+con+un+%60event%60+en+el+cuerpo+%28el+mismo+objeto+de%0A%60GET+%2Fevents%60%29+y+los+headers+de+Standard+Webhooks.+Para+c\u0026amp;theme=176da6da42441ffcb9f627fc\u0026amp;signature=c625efde4deabab5eef241a58825cf1802857aa4a8475579602a7a28c9abea62\">\u003cmeta data-mint-head name=\"twitter:image:width\" content=\"1200\">\u003cmeta data-mint-head name=\"twitter:image:height\" content=\"630\">\u003cmeta data-mint-head name=\"msapplication-config\" content=\"/mintlify-assets/_mintlify/favicons/craqui/ptsKlgDyHJpLj3bc/_generated/favicon/browserconfig.xml\">\u003cmeta data-mint-head name=\"apple-mobile-web-app-title\" content=\"API de Craqui\">\u003cmeta data-mint-head name=\"msapplication-TileColor\" content=\"#1F33C7\">\u003clink data-mint-head rel=\"canonical\" href=\"https://docs.craqui.com/estudios/api-reference/webhook_endpoints/el-aviso-que-recibe-tu-sistema\">\u003clink data-mint-head rel=\"alternate\" type=\"application/xml\" href=\"/sitemap.xml\">\u003clink data-mint-head rel=\"alternate\" type=\"text/markdown\" href=\"/estudios/api-reference/webhook_endpoints/el-aviso-que-recibe-tu-sistema.md\">\u003cscript data-mint-head type=\"application/ld+json\">{\"@context\":\"https://schema.org\",\"@graph\":[{\"@type\":\"Organization\",\"@id\":\"https://docs.craqui.com/#organization\",\"name\":\"API de Craqui\",\"url\":\"https://docs.craqui.com\",\"logo\":{\"@type\":\"ImageObject\",\"url\":\"https://mintcdn.com/craqui/oYoj2lAgh2Jk1Qcv/logo/light.png?fit=max\u0026auto=format\u0026n=oYoj2lAgh2Jk1Qcv\u0026q=85\u0026s=e96edbf5621b5bc4068b5ad8dee910c7\"}},{\"@type\":\"WebSite\",\"@id\":\"https://docs.craqui.com#website\",\"name\":\"API de Craqui\",\"url\":\"https://docs.craqui.com\",\"publisher\":{\"@id\":\"https://docs.craqui.com/#organization\"}},{\"@type\":\"WebPage\",\"@id\":\"https://docs.craqui.com/estudios/api-reference/webhook_endpoints/el-aviso-que-recibe-tu-sistema#webpage\",\"url\":\"https://docs.craqui.com/estudios/api-reference/webhook_endpoints/el-aviso-que-recibe-tu-sistema\",\"name\":\"El aviso que recibe tu sistema\",\"description\":\"Lo que Craqui le manda a cada URL de avisos: un POST con un event en el cuerpo (el mismo objeto de GET /events) y los headers de Standard Webhooks. Para comprobar que viene de Craqui, calcula HMAC-SHA256 con tu secreto (los bytes del base64 que sigue a whsec_) sobre .. y compáralo con cada firma de webhook-signature. Las librerías de Standard Webhooks lo hacen por ti. Responde 2xx en menos de 10 segundos y procesa después. Si no, se reintenta a los 1 y 5 minutos, a la media hora, a las 2, 5, 10, 14, 20 y 24 horas (10 intentos, unos 3 días). Una redirección no se sigue. Si tu sistema falla durante 3 días, la URL se desactiva y se le avisa al propietario del estudio.\",\"dateModified\":\"2026-11-09T20:37:27.045Z\",\"isPartOf\":{\"@id\":\"https://docs.craqui.com#website\"},\"breadcrumb\":{\"@id\":\"https://docs.craqui.com/estudios/api-reference/webhook_endpoints/el-aviso-que-recibe-tu-sistema#breadcrumb\"}},{\"@type\":\"BreadcrumbList\",\"@id\":\"https://docs.craqui.com/estudios/api-reference/webhook_endpoints/el-aviso-que-recibe-tu-sistema#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"webhook_endpoints\",\"item\":\"https://docs.craqui.com/estudios/api-reference/webhook_endpoints/listar-urls-de-avisos\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"El aviso que recibe tu sistema\",\"item\":\"https://docs.craqui.com/estudios/api-reference/webhook_endpoints/el-aviso-que-recibe-tu-sistema\"}]},{\"@type\":[\"TechArticle\",\"APIReference\"],\"@id\":\"https://docs.craqui.com/estudios/api-reference/webhook_endpoints/el-aviso-que-recibe-tu-sistema#apireference\",\"headline\":\"El aviso que recibe tu sistema\",\"name\":\"El aviso que recibe tu sistema\",\"description\":\"Lo que Craqui le manda a cada URL de avisos: un POST con un event en el cuerpo (el mismo objeto de GET /events) y los headers de Standard Webhooks. Para comprobar que viene de Craqui, calcula HMAC-SHA256 con tu secreto (los bytes del base64 que sigue a whsec_) sobre .. y compáralo con cada firma de webhook-signature. Las librerías de Standard Webhooks lo hacen por ti. Responde 2xx en menos de 10 segundos y procesa después. Si no, se reintenta a los 1 y 5 minutos, a la media hora, a las 2, 5, 10, 14, 20 y 24 horas (10 intentos, unos 3 días). Una redirección no se sigue. Si tu sistema falla durante 3 días, la URL se desactiva y se le avisa al propietario del estudio.\",\"url\":\"https://docs.craqui.com/estudios/api-reference/webhook_endpoints/el-aviso-que-recibe-tu-sistema\",\"mainEntityOfPage\":{\"@id\":\"https://docs.craqui.com/estudios/api-reference/webhook_endpoints/el-aviso-que-recibe-tu-sistema#webpage\"},\"dateModified\":\"2026-11-09T20:37:27.045Z\",\"publisher\":{\"@id\":\"https://docs.craqui.com/#organization\"},\"isPartOf\":{\"@id\":\"https://docs.craqui.com#website\"}}]}\u003c/script>\u003cscript data-mint-head type=\"application/ld+json\">{\"@context\":\"https://schema.org\",\"@type\":\"WebSite\",\"name\":\"API de Craqui\",\"creator\":{\"@type\":\"Organization\",\"name\":\"Mintlify\",\"url\":\"https://mintlify.com\"}}\u003c/script>","siteName":"API de Craqui","nav":{"global":null,"tabs":[{"tab":"Guías","pages":[{"title":"Guías","href":""}]},{"tab":"Referencia","groups":[{"group":"business","pages":[{"title":"Ver el negocio de la clave","deprecated":null,"version":null,"openapi":"/estudios/openapi.yaml get /business","href":"/estudios/api-reference/business/ver-el-negocio-de-la-clave"}]},{"group":"booking_policy","pages":[{"title":"Ver las reglas de reserva","deprecated":null,"version":null,"openapi":"/estudios/openapi.yaml get /booking_policy","href":"/estudios/api-reference/booking_policy/ver-las-reglas-de-reserva"}]},{"group":"centers","pages":[{"title":"Listar sedes","deprecated":null,"version":null,"openapi":"/estudios/openapi.yaml get /centers","href":"/estudios/api-reference/centers/listar-sedes"},{"title":"Ver una sede","deprecated":null,"version":null,"openapi":"/estudios/openapi.yaml get /centers/{id}","href":"/estudios/api-reference/centers/ver-una-sede"}]},{"group":"rooms","pages":[{"title":"Listar salones","deprecated":null,"version":null,"openapi":"/estudios/openapi.yaml get /rooms","href":"/estudios/api-reference/rooms/listar-salones"},{"title":"Ver un salón","deprecated":null,"version":null,"openapi":"/estudios/openapi.yaml get /rooms/{id}","href":"/estudios/api-reference/rooms/ver-un-salón"}]},{"group":"teachers","pages":[{"title":"Listar instructores","deprecated":null,"version":null,"openapi":"/estudios/openapi.yaml get /teachers","href":"/estudios/api-reference/teachers/listar-instructores"},{"title":"Ver un instructor","deprecated":null,"version":null,"openapi":"/estudios/openapi.yaml get /teachers/{id}","href":"/estudios/api-reference/teachers/ver-un-instructor"}]},{"group":"courses","pages":[{"title":"Listar disciplinas","deprecated":null,"version":null,"openapi":"/estudios/openapi.yaml get /courses","href":"/estudios/api-reference/courses/listar-disciplinas"}]},{"group":"classes","pages":[{"title":"Listar clases","deprecated":null,"version":null,"openapi":"/estudios/openapi.yaml get /classes","href":"/estudios/api-reference/classes/listar-clases"},{"title":"Ver una clase","deprecated":null,"version":null,"openapi":"/estudios/openapi.yaml get /classes/{id}","href":"/estudios/api-reference/classes/ver-una-clase"}]},{"group":"credit_packs","pages":[{"title":"Listar packs de créditos","deprecated":null,"version":null,"openapi":"/estudios/openapi.yaml get /credit_packs","href":"/estudios/api-reference/credit_packs/listar-packs-de-créditos"}]},{"group":"membership_plans","pages":[{"title":"Listar planes de membresía","deprecated":null,"version":null,"openapi":"/estudios/openapi.yaml get /membership_plans","href":"/estudios/api-reference/membership_plans/listar-planes-de-membresía"}]},{"group":"intro_offers","pages":[{"title":"Listar ofertas de bienvenida","deprecated":null,"version":null,"openapi":"/estudios/openapi.yaml get /intro_offers","href":"/estudios/api-reference/intro_offers/listar-ofertas-de-bienvenida"}]},{"group":"sessions","pages":[{"title":"Listar sesiones","deprecated":null,"version":null,"openapi":"/estudios/openapi.yaml get /sessions","href":"/estudios/api-reference/sessions/listar-sesiones"},{"title":"Ver una sesión","deprecated":null,"version":null,"openapi":"/estudios/openapi.yaml get /sessions/{id}","href":"/estudios/api-reference/sessions/ver-una-sesión"},{"title":"Listar las reservas de una sesión","deprecated":null,"version":null,"openapi":"/estudios/openapi.yaml get /sessions/{id}/bookings","href":"/estudios/api-reference/sessions/listar-las-reservas-de-una-sesión"},{"title":"Cancelar una sesión","deprecated":null,"version":null,"openapi":"/estudios/openapi.yaml post /sessions/{id}/cancel","href":"/estudios/api-reference/sessions/cancelar-una-sesión"}]},{"group":"clients","pages":[{"title":"Listar clientes","deprecated":null,"version":null,"openapi":"/estudios/openapi.yaml get /clients","href":"/estudios/api-reference/clients/listar-clientes"},{"title":"Dar de alta a un cliente","deprecated":null,"version":null,"openapi":"/estudios/openapi.yaml post /clients","href":"/estudios/api-reference/clients/dar-de-alta-a-un-cliente"},{"title":"Ver un cliente","deprecated":null,"version":null,"openapi":"/estudios/openapi.yaml get /clients/{id}","href":"/estudios/api-reference/clients/ver-un-cliente"},{"title":"Cambiar los datos de un cliente","deprecated":null,"version":null,"openapi":"/estudios/openapi.yaml patch /clients/{id}","href":"/estudios/api-reference/clients/cambiar-los-datos-de-un-cliente"},{"title":"Reactivar a un cliente","deprecated":null,"version":null,"openapi":"/estudios/openapi.yaml post /clients/{id}/reactivate","href":"/estudios/api-reference/clients/reactivar-a-un-cliente"},{"title":"Dar de baja a un cliente","deprecated":null,"version":null,"openapi":"/estudios/openapi.yaml post /clients/{id}/deactivate","href":"/estudios/api-reference/clients/dar-de-baja-a-un-cliente"}]},{"group":"bookings","pages":[{"title":"Listar reservas","deprecated":null,"version":null,"openapi":"/estudios/openapi.yaml get /bookings","href":"/estudios/api-reference/bookings/listar-reservas"},{"title":"Reservar una sesión","deprecated":null,"version":null,"openapi":"/estudios/openapi.yaml post /bookings","href":"/estudios/api-reference/bookings/reservar-una-sesión"},{"title":"Ver una reserva","deprecated":null,"version":null,"openapi":"/estudios/openapi.yaml get /bookings/{id}","href":"/estudios/api-reference/bookings/ver-una-reserva"},{"title":"Cancelar una reserva","deprecated":null,"version":null,"openapi":"/estudios/openapi.yaml post /bookings/{id}/cancel","href":"/estudios/api-reference/bookings/cancelar-una-reserva"},{"title":"Marcar la asistencia","deprecated":null,"version":null,"openapi":"/estudios/openapi.yaml post /bookings/{id}/attendance","href":"/estudios/api-reference/bookings/marcar-la-asistencia"}]},{"group":"credits","pages":[{"title":"Ver el saldo de créditos de un cliente","deprecated":null,"version":null,"openapi":"/estudios/openapi.yaml get /clients/{id}/credit_balance","href":"/estudios/api-reference/credits/ver-el-saldo-de-créditos-de-un-cliente"},{"title":"Listar lotes de créditos","deprecated":null,"version":null,"openapi":"/estudios/openapi.yaml get /credit_grants","href":"/estudios/api-reference/credits/listar-lotes-de-créditos"},{"title":"Asignar un pack ya vendido","deprecated":null,"version":null,"openapi":"/estudios/openapi.yaml post /credit_grants","href":"/estudios/api-reference/credits/asignar-un-pack-ya-vendido"},{"title":"Revocar un pack","deprecated":null,"version":null,"openapi":"/estudios/openapi.yaml post /credit_grants/{id}/revoke","href":"/estudios/api-reference/credits/revocar-un-pack"},{"title":"Listar movimientos de créditos","deprecated":null,"version":null,"openapi":"/estudios/openapi.yaml get /credit_transactions","href":"/estudios/api-reference/credits/listar-movimientos-de-créditos"}]},{"group":"memberships","pages":[{"title":"Listar membresías","deprecated":null,"version":null,"openapi":"/estudios/openapi.yaml get /memberships","href":"/estudios/api-reference/memberships/listar-membresías"},{"title":"Asignar una membresía ya vendida","deprecated":null,"version":null,"openapi":"/estudios/openapi.yaml post /memberships","href":"/estudios/api-reference/memberships/asignar-una-membresía-ya-vendida"},{"title":"Ver una membresía","deprecated":null,"version":null,"openapi":"/estudios/openapi.yaml get /memberships/{id}","href":"/estudios/api-reference/memberships/ver-una-membresía"},{"title":"Listar los congelamientos de una membresía","deprecated":null,"version":null,"openapi":"/estudios/openapi.yaml get /memberships/{id}/freezes","href":"/estudios/api-reference/memberships/listar-los-congelamientos-de-una-membresía"},{"title":"Dar de baja una membresía","deprecated":null,"version":null,"openapi":"/estudios/openapi.yaml post /memberships/{id}/cancel","href":"/estudios/api-reference/memberships/dar-de-baja-una-membresía"},{"title":"Congelar una membresía","deprecated":null,"version":null,"openapi":"/estudios/openapi.yaml post /memberships/{id}/freeze","href":"/estudios/api-reference/memberships/congelar-una-membresía"},{"title":"Descongelar una membresía","deprecated":null,"version":null,"openapi":"/estudios/openapi.yaml post /memberships/{id}/unfreeze","href":"/estudios/api-reference/memberships/descongelar-una-membresía"}]},{"group":"fees","pages":[{"title":"Listar cuotas","deprecated":null,"version":null,"openapi":"/estudios/openapi.yaml get /fees","href":"/estudios/api-reference/fees/listar-cuotas"},{"title":"Ver una cuota","deprecated":null,"version":null,"openapi":"/estudios/openapi.yaml get /fees/{id}","href":"/estudios/api-reference/fees/ver-una-cuota"}]},{"group":"payments","pages":[{"title":"Listar pagos","deprecated":null,"version":null,"openapi":"/estudios/openapi.yaml get /payments","href":"/estudios/api-reference/payments/listar-pagos"},{"title":"Registrar un pago","deprecated":null,"version":null,"openapi":"/estudios/openapi.yaml post /payments","href":"/estudios/api-reference/payments/registrar-un-pago"},{"title":"Ver un pago","deprecated":null,"version":null,"openapi":"/estudios/openapi.yaml get /payments/{id}","href":"/estudios/api-reference/payments/ver-un-pago"}]},{"group":"refunds","pages":[{"title":"Listar reembolsos","deprecated":null,"version":null,"openapi":"/estudios/openapi.yaml get /refunds","href":"/estudios/api-reference/refunds/listar-reembolsos"}]},{"group":"events","pages":[{"title":"Listar eventos","deprecated":null,"version":null,"openapi":"/estudios/openapi.yaml get /events","href":"/estudios/api-reference/events/listar-eventos"},{"title":"Ver un evento","deprecated":null,"version":null,"openapi":"/estudios/openapi.yaml get /events/{id}","href":"/estudios/api-reference/events/ver-un-evento"}]},{"group":"webhook_endpoints","pages":[{"title":"Listar URLs de avisos","deprecated":null,"version":null,"openapi":"/estudios/openapi.yaml get /webhook_endpoints","href":"/estudios/api-reference/webhook_endpoints/listar-urls-de-avisos"},{"title":"Agregar una URL de avisos","deprecated":null,"version":null,"openapi":"/estudios/openapi.yaml post /webhook_endpoints","href":"/estudios/api-reference/webhook_endpoints/agregar-una-url-de-avisos"},{"title":"Ver una URL de avisos","deprecated":null,"version":null,"openapi":"/estudios/openapi.yaml get /webhook_endpoints/{id}","href":"/estudios/api-reference/webhook_endpoints/ver-una-url-de-avisos"},{"title":"Borrar una URL de avisos","deprecated":null,"version":null,"openapi":"/estudios/openapi.yaml delete /webhook_endpoints/{id}","href":"/estudios/api-reference/webhook_endpoints/borrar-una-url-de-avisos"},{"title":"Editar una URL de avisos","deprecated":null,"version":null,"openapi":"/estudios/openapi.yaml patch /webhook_endpoints/{id}","href":"/estudios/api-reference/webhook_endpoints/editar-una-url-de-avisos"},{"title":"Enviar un aviso de prueba","deprecated":null,"version":null,"openapi":"/estudios/openapi.yaml post /webhook_endpoints/{id}/test","href":"/estudios/api-reference/webhook_endpoints/enviar-un-aviso-de-prueba"},{"title":"Cambiar el secreto de una URL de avisos","description":"Craqui empieza a firmar con un secreto nuevo, que viene en la respuesta (es la única vez). Durante\n`expire_previous_in_hours` (de 0 a 168, 24 si no lo mandas) firma con los dos, el nuevo primero, para que actualices\ntu sistema sin perder avisos. Si repites el pedido con la misma `Idempotency-Key`, la respuesta guardada trae\n`secret: null`.\n\nSolo para estudios: en una academia responde `wrong_vertical`. Solo con una clave `crq_live_`: una `crq_test_`\nresponde `scope_required` (tu estudio de prueba no envía avisos).\n","deprecated":null,"version":null,"openapi":"/estudios/openapi.yaml post /webhook_endpoints/{id}/rotate_secret","href":"/estudios/api-reference/webhook_endpoints/cambiar-el-secreto-de-una-url-de-avisos"},{"title":"El aviso que recibe tu sistema","version":null,"deprecated":null,"openapi":"/estudios/openapi.yaml webhook event","href":"/estudios/api-reference/webhook_endpoints/el-aviso-que-recibe-tu-sistema"}]}]}]},"basePath":"","title":"El aviso que recibe tu sistema - API de Craqui","buildId":"dpl_42LwxxU1kGN114H4XzwGYXa9ZDah","deploymentId":"dpl_42LwxxU1kGN114H4XzwGYXa9ZDah","dynamics":["c2aa737661","2b790eda92","b0f84f53ff","a9bb46feb3"],"chunks":["OpenApiReferenceProvider-C-hEh3I2.js","utils-CnF4QiUD.js","cloneDeep-izs3Hzxb.js","_Uint8Array-BVIqJ90l.js","isObjectLike-C8vmzPEN.js","isArray-Dcu1dQ5t.js","utils-C7PVNbel.js","toString-BX-iyh8G.js","isSymbol-CSH9U2Gm.js","addUniqueKeysToSchema-8ytevL2A.js","snippetPresets-BT1alx3v.js","style-to-object-BY3JEAdk.js","v4-DIgz8zy6.js","conditional-requirements-CFM0id0Q.js","ApiExamples-BLXC0i_W.js","isEqual-BfaiBbcl.js","usePlaygroundInputsStore-CyLIGI9_.js","shallow-DC0lGVIW.js","getApiPlaygroundDisplay-CgDQ85tN.js","CodeSnippet-6-I-Gpv9.js","CodeSnippets-BAk1kDdu.js","Page-C945cI-W.js","getPastedJson-B276RuWN.js","icon-BqP8etTm.js","MethodPill-DM6sbxG1.js","DuplicateIcon-PyJglOaE.js","createIcon-CMeOMAc_.js","DynamicMarkdown-BoyYAA8K.js","SectionHeading-DAYv3gvZ.js","axios-vUo_bRtp.js","Markdown-BhTTmazV.js","clsx-CR-RHrVC.js","lib-DuNMoZ05.js","lib-B8HbPgcC.js","html-void-elements-mCSPHezU.js","dist-CBUH0-zX.js","katex-YMM-FMeD.js","marked.esm-CZWythHk.js","AssistantPageLink-BmARFYNC.js"]}