Skip to main content
Free academy website with paid plans.

Events and webhooks

Events: catalog and polling

The event types you can subscribe to or poll, and how to read GET /v1/events.

Updated

Browse the developer docs

Steps

  1. Call GET /v1/events with the events:read scope. Each item has id, type, schema_version, resource_type, resource_id, occurred_at and data. The data field holds the event envelope (id, type, version, resource, data).
  2. To walk history, page newest first with cursor.
  3. To poll for new events, pass after set to the last next_cursor you saved. Results come oldest first and only include events after that point. Save the new next_cursor each time. When nothing new arrived, next_cursor is null, so keep your previous value.
  4. Do not send after and cursor together. That returns 400.
  5. Filter with type=<event type>. An unknown type returns 400 with a message that starts with "unknown event type".
  6. Use each event’s id to remove duplicates on your side.

Notes

  • Event types you can subscribe to or filter by: campaign_form.submitted, lead.trial_outcome, enrollment.created, enrollment.withdrawn, student.created, payment.received, attendance.marked, invoice.overdue, invoice.paid, credit_note.issued, credit_note.applied, credit_note.refunded, lead.created, lead.stage_changed, lead.trial_booked, lead.updated, makeup.credit_expiring, makeup.credit_pre_expiring, risk.flagged, subscription.cancelled, tournament.published, session.started, session.cancelled, class.summary_published.
  • student.created is currently sent only for students created through POST /v1/students, not for students added in the app.
  • payment.received fires for a payment record. invoice.paid fires when an invoice reaches paid status.
  • Amounts are in minor units (amountCents). Credit note events also include a three-letter currency.
  • Each type has a version. Additive changes keep the version. A breaking change gets a new version.

Still need help?

Email hello@chesscore.io. Using ChessCore day to day? Visit the Help centre.