API reference
Webhook events
What each webhook event type means, what its signed body carries and an example. Endpoints are added in the workspace under Integrations, Webhooks, or through the API.
attendee.registered
A registration was created. Somebody holds a ticket that lets them in: a free registration, a paid order once it is paid, or a ticket the organiser issued. Sent to webhook endpoints signed the Standard Webhooks way; an automation subscription (POST /hooks) gets the same with data lifted to the top, unsigned. Subscribing through /hooks needs attendees:read and people:read.
- Subscribing needs
attendees:readpeople:read
Headers
webhook-idstringThe message's id, msg_ and 32 hex characters: the same on every attempt, so a repeat can be recognised.
webhook-timestampintegerWhen it was sent, in Unix seconds. Refuse one more than five minutes old.
webhook-signaturestringv1, and the Base64 HMAC-SHA256 of id.timestamp.body under the endpoint's secret; several, separated by spaces, while a secret is being replaced.
Body
typestringrequiredWhat happened.
timestampstring (date-time)requiredWhen, in UTC.
dataAttendeeDatarequiredWhat a webhook of this family carries in data: a registration that was made, changed or cancelled.
Show the fields
eventEventReferenceThe event something happened at.
Show the fields
eventIdstring (uuid)The event's id.
slugstringThe event's address: /e/{slug}.
namestringThe event's name.
attendeeAttendeeSomebody holding a ticket, or who held one.
Show the fields
attendeeIdstring (uuid)The attendee's id.
eventIdstring (uuid)The event's id.
orderIdstring (uuid)The order's id.
orderReferencestringThe order's six-character reference.
ticketTypeIdstring (uuid)The ticket type's id.
ticketTypeNamestringThe ticket type's name.
firstNamestring or nullFirst name. Null without people:read, or when erased.
lastNamestring or nullLast name. Null without people:read, or when erased.
emailstring (email) or nullEmail address. Null without people:read, or when erased.
companystring or nullCompany. Null without people:read, or when erased.
jobTitlestring or nullJob title. Null without people:read, or when erased.
languagestringThe language they registered in.
answersobject or nullAnswers to the event's registration questions, by question id. Null without people:read, or when erased.
statusstringActive, or cancelled.
One of:
active,cancelledorderStatusstringThe order's status.
One of:
pending,paid,free,onAccount,transfer,requested,declined,cancelled,expired,refundedvalidbooleanWhether the ticket lets them in: not cancelled, and the order paid or free.
checkedInUtcstring (date-time) or nullWhen they were first checked in, in UTC.
createdUtcstring (date-time)When they registered, in UTC.
changedUtcstring (date-time) or nullWhen anything about the attendee or their order last changed. Pass the latest you have as updatedSince.
updatedUtcstring (date-time) or nullWhen anything about the attendee or their order last changed, in UTC: the same as changedUtc.
erasedbooleanWhether the person deleted their data from the event app; then nothing personal is returned, whatever the key may read.
personalDatastringWhether the personal fields are here: included, withheld (the key lacks people:read) or erased (the person deleted their data).
One of:
included,withheld,erased
Example
{
"type": "attendee.registered",
"timestamp": "2026-10-14T12:00:00.000Z",
"data": {
"event": {
"eventId": "b3ac0000-0000-4000-8000-000000000001",
"slug": "beacon-summit",
"name": "Beacon Summit"
},
"attendee": {
"attendeeId": "b3ac0008-0000-4000-8000-000000000000",
"eventId": "b3ac0000-0000-4000-8000-000000000001",
"orderId": "b3ac0007-0000-4000-8000-000000000000",
"orderReference": "DEMOAA",
"ticketTypeId": "b3ac0006-0000-4000-8000-000000000001",
"ticketTypeName": "Conference pass",
"firstName": "Emma",
"lastName": "Bakker",
"email": "emma.bakker0@example.com",
"company": "Contoso",
"jobTitle": "Engineer",
"language": "nl",
"answers": {
"dietary": "none",
"terms": true,
"photos": true
},
"status": "active",
"orderStatus": "paid",
"valid": true,
"checkedInUtc": null,
"createdUtc": "2026-10-13T21:40:47.963Z",
"changedUtc": "2026-10-14T21:40:48.226Z",
"updatedUtc": "2026-10-14T21:40:48.226Z",
"erased": false,
"personalData": "included"
}
}
}attendee.updated
A registration was changed. An attendee's name, company, job title or answers were corrected, at the badge desk or by an import. Not sent for a check-in, a payment or a cancellation. Sent to webhook endpoints signed the Standard Webhooks way; an automation subscription (POST /hooks) gets the same with data lifted to the top, unsigned. Subscribing through /hooks needs attendees:read and people:read.
- Subscribing needs
attendees:readpeople:read
Headers
webhook-idstringThe message's id, msg_ and 32 hex characters: the same on every attempt, so a repeat can be recognised.
webhook-timestampintegerWhen it was sent, in Unix seconds. Refuse one more than five minutes old.
webhook-signaturestringv1, and the Base64 HMAC-SHA256 of id.timestamp.body under the endpoint's secret; several, separated by spaces, while a secret is being replaced.
Body
typestringrequiredWhat happened.
timestampstring (date-time)requiredWhen, in UTC.
dataAttendeeDatarequiredWhat a webhook of this family carries in data: a registration that was made, changed or cancelled.
Show the fields
eventEventReferenceThe event something happened at.
Show the fields
eventIdstring (uuid)The event's id.
slugstringThe event's address: /e/{slug}.
namestringThe event's name.
attendeeAttendeeSomebody holding a ticket, or who held one.
Show the fields
attendeeIdstring (uuid)The attendee's id.
eventIdstring (uuid)The event's id.
orderIdstring (uuid)The order's id.
orderReferencestringThe order's six-character reference.
ticketTypeIdstring (uuid)The ticket type's id.
ticketTypeNamestringThe ticket type's name.
firstNamestring or nullFirst name. Null without people:read, or when erased.
lastNamestring or nullLast name. Null without people:read, or when erased.
emailstring (email) or nullEmail address. Null without people:read, or when erased.
companystring or nullCompany. Null without people:read, or when erased.
jobTitlestring or nullJob title. Null without people:read, or when erased.
languagestringThe language they registered in.
answersobject or nullAnswers to the event's registration questions, by question id. Null without people:read, or when erased.
statusstringActive, or cancelled.
One of:
active,cancelledorderStatusstringThe order's status.
One of:
pending,paid,free,onAccount,transfer,requested,declined,cancelled,expired,refundedvalidbooleanWhether the ticket lets them in: not cancelled, and the order paid or free.
checkedInUtcstring (date-time) or nullWhen they were first checked in, in UTC.
createdUtcstring (date-time)When they registered, in UTC.
changedUtcstring (date-time) or nullWhen anything about the attendee or their order last changed. Pass the latest you have as updatedSince.
updatedUtcstring (date-time) or nullWhen anything about the attendee or their order last changed, in UTC: the same as changedUtc.
erasedbooleanWhether the person deleted their data from the event app; then nothing personal is returned, whatever the key may read.
personalDatastringWhether the personal fields are here: included, withheld (the key lacks people:read) or erased (the person deleted their data).
One of:
included,withheld,erased
Example
{
"type": "attendee.updated",
"timestamp": "2026-10-14T12:00:00.000Z",
"data": {
"event": {
"eventId": "b3ac0000-0000-4000-8000-000000000001",
"slug": "beacon-summit",
"name": "Beacon Summit"
},
"attendee": {
"attendeeId": "b3ac0008-0000-4000-8000-000000000000",
"eventId": "b3ac0000-0000-4000-8000-000000000001",
"orderId": "b3ac0007-0000-4000-8000-000000000000",
"orderReference": "DEMOAA",
"ticketTypeId": "b3ac0006-0000-4000-8000-000000000001",
"ticketTypeName": "Conference pass",
"firstName": "Emma",
"lastName": "Bakker",
"email": "emma.bakker0@example.com",
"company": "Contoso",
"jobTitle": "Engineer",
"language": "nl",
"answers": {
"dietary": "none",
"terms": true,
"photos": true
},
"status": "active",
"orderStatus": "paid",
"valid": true,
"checkedInUtc": null,
"createdUtc": "2026-10-13T21:40:47.963Z",
"changedUtc": "2026-10-14T21:40:48.226Z",
"updatedUtc": "2026-10-14T21:40:48.226Z",
"erased": false,
"personalData": "included"
}
}
}attendee.cancelled
A registration was cancelled. A ticket was cancelled, by the attendee, the organiser or the API. Sent to webhook endpoints signed the Standard Webhooks way; an automation subscription (POST /hooks) gets the same with data lifted to the top, unsigned. Subscribing through /hooks needs attendees:read and people:read.
- Subscribing needs
attendees:readpeople:read
Headers
webhook-idstringThe message's id, msg_ and 32 hex characters: the same on every attempt, so a repeat can be recognised.
webhook-timestampintegerWhen it was sent, in Unix seconds. Refuse one more than five minutes old.
webhook-signaturestringv1, and the Base64 HMAC-SHA256 of id.timestamp.body under the endpoint's secret; several, separated by spaces, while a secret is being replaced.
Body
typestringrequiredWhat happened.
timestampstring (date-time)requiredWhen, in UTC.
dataAttendeeDatarequiredWhat a webhook of this family carries in data: a registration that was made, changed or cancelled.
Show the fields
eventEventReferenceThe event something happened at.
Show the fields
eventIdstring (uuid)The event's id.
slugstringThe event's address: /e/{slug}.
namestringThe event's name.
attendeeAttendeeSomebody holding a ticket, or who held one.
Show the fields
attendeeIdstring (uuid)The attendee's id.
eventIdstring (uuid)The event's id.
orderIdstring (uuid)The order's id.
orderReferencestringThe order's six-character reference.
ticketTypeIdstring (uuid)The ticket type's id.
ticketTypeNamestringThe ticket type's name.
firstNamestring or nullFirst name. Null without people:read, or when erased.
lastNamestring or nullLast name. Null without people:read, or when erased.
emailstring (email) or nullEmail address. Null without people:read, or when erased.
companystring or nullCompany. Null without people:read, or when erased.
jobTitlestring or nullJob title. Null without people:read, or when erased.
languagestringThe language they registered in.
answersobject or nullAnswers to the event's registration questions, by question id. Null without people:read, or when erased.
statusstringActive, or cancelled.
One of:
active,cancelledorderStatusstringThe order's status.
One of:
pending,paid,free,onAccount,transfer,requested,declined,cancelled,expired,refundedvalidbooleanWhether the ticket lets them in: not cancelled, and the order paid or free.
checkedInUtcstring (date-time) or nullWhen they were first checked in, in UTC.
createdUtcstring (date-time)When they registered, in UTC.
changedUtcstring (date-time) or nullWhen anything about the attendee or their order last changed. Pass the latest you have as updatedSince.
updatedUtcstring (date-time) or nullWhen anything about the attendee or their order last changed, in UTC: the same as changedUtc.
erasedbooleanWhether the person deleted their data from the event app; then nothing personal is returned, whatever the key may read.
personalDatastringWhether the personal fields are here: included, withheld (the key lacks people:read) or erased (the person deleted their data).
One of:
included,withheld,erased
Example
{
"type": "attendee.cancelled",
"timestamp": "2026-10-14T12:00:00.000Z",
"data": {
"event": {
"eventId": "b3ac0000-0000-4000-8000-000000000001",
"slug": "beacon-summit",
"name": "Beacon Summit"
},
"attendee": {
"attendeeId": "b3ac0008-0000-4000-8000-000000000000",
"eventId": "b3ac0000-0000-4000-8000-000000000001",
"orderId": "b3ac0007-0000-4000-8000-000000000000",
"orderReference": "DEMOAA",
"ticketTypeId": "b3ac0006-0000-4000-8000-000000000001",
"ticketTypeName": "Conference pass",
"firstName": "Emma",
"lastName": "Bakker",
"email": "emma.bakker0@example.com",
"company": "Contoso",
"jobTitle": "Engineer",
"language": "nl",
"answers": {
"dietary": "none",
"terms": true,
"photos": true
},
"status": "active",
"orderStatus": "paid",
"valid": true,
"checkedInUtc": null,
"createdUtc": "2026-10-13T21:40:47.963Z",
"changedUtc": "2026-10-14T21:40:48.226Z",
"updatedUtc": "2026-10-14T21:40:48.226Z",
"erased": false,
"personalData": "included"
}
}
}attendee.erased
An attendee deleted their data. An attendee deleted their data from the event app. Ids only: delete or anonymise your own copy of them. When the event was still to come the ticket is cancelled too, and no attendee.cancelled is sent for it. Sent to webhook endpoints signed the Standard Webhooks way; an automation subscription (POST /hooks) gets the same with data lifted to the top, unsigned. Subscribing through /hooks needs attendees:read.
- Subscribing needs
attendees:read
Headers
webhook-idstringThe message's id, msg_ and 32 hex characters: the same on every attempt, so a repeat can be recognised.
webhook-timestampintegerWhen it was sent, in Unix seconds. Refuse one more than five minutes old.
webhook-signaturestringv1, and the Base64 HMAC-SHA256 of id.timestamp.body under the endpoint's secret; several, separated by spaces, while a secret is being replaced.
Body
typestringrequiredWhat happened.
timestampstring (date-time)requiredWhen, in UTC.
dataErasureDatarequiredWhat a webhook of this family carries in data: an attendee who deleted their data from the event app. Ids only: delete or anonymise your own copy of this attendee.
Show the fields
eventEventReferenceThe event something happened at.
Show the fields
eventIdstring (uuid)The event's id.
slugstringThe event's address: /e/{slug}.
namestringThe event's name.
attendeeobjectThe attendee, by id only.
Show the fields
attendeeIdstring (uuid)The attendee's id, as in Attendee.
orderIdstring (uuid)Their order's id.
ticketCancelledbooleanWhether the ticket was cancelled too: the event was still to come.
erasedUtcstring (date-time)When the data was deleted, in UTC.
Example
{
"type": "attendee.erased",
"timestamp": "2026-10-14T12:00:00.000Z",
"data": {
"event": {
"eventId": "b3ac0000-0000-4000-8000-000000000001",
"slug": "beacon-summit",
"name": "Beacon Summit"
},
"attendee": {
"attendeeId": "b3ac0008-0000-4000-8000-000000000000",
"orderId": "b3ac0007-0000-4000-8000-000000000000",
"ticketCancelled": true,
"erasedUtc": "2026-10-14T12:00:00.000Z"
}
}
}order.paid
An order was paid. The payment provider confirmed an order is paid, or the organiser recorded a bank transfer. Sent to webhook endpoints signed the Standard Webhooks way; an automation subscription (POST /hooks) gets the same with data lifted to the top, unsigned. Subscribing through /hooks needs orders:read and people:read.
- Subscribing needs
orders:readpeople:read
Headers
webhook-idstringThe message's id, msg_ and 32 hex characters: the same on every attempt, so a repeat can be recognised.
webhook-timestampintegerWhen it was sent, in Unix seconds. Refuse one more than five minutes old.
webhook-signaturestringv1, and the Base64 HMAC-SHA256 of id.timestamp.body under the endpoint's secret; several, separated by spaces, while a secret is being replaced.
Body
typestringrequiredWhat happened.
timestampstring (date-time)requiredWhen, in UTC.
dataOrderDatarequiredWhat a webhook of this family carries in data: an order that was paid, with its attendees.
Show the fields
eventEventReferenceThe event something happened at.
Show the fields
eventIdstring (uuid)The event's id.
slugstringThe event's address: /e/{slug}.
namestringThe event's name.
orderOrderAn order.
Show the fields
orderIdstring (uuid)The order's id.
eventIdstring (uuid)The event's id.
referencestringThe six-character reference.
statusstringIts status.
One of:
pending,paid,free,onAccount,transfer,requested,declined,cancelled,expired,refundedbuyerNamestring or nullWho it is for. Null without people:read, or when erased.
buyerEmailstring (email) or nullTheir email address. Null without people:read, or when erased.
buyerCompanystring or nullTheir company. Null without people:read, or when erased.
languagestringThe language it was placed in.
totalnumberThe total, VAT included, with the currency's own decimals: 147.00 in EUR, 147 in JPY, 147.000 in KWD.
vatnumberThe VAT in the total, with the currency's own decimals.
currencystringThe currency, as ISO 4217.
paymentProviderstring or nullWho took the payment.
paidUtcstring (date-time) or nullWhen it was paid, in UTC.
sourcestringWhere it was placed: registration, workspace or door.
attendeesintegerHow many tickets it holds.
createdUtcstring (date-time)When it was placed, in UTC.
updatedUtcstring (date-time)When it last changed, in UTC.
erasedbooleanWhether the person deleted their data from the event app; then nothing personal is returned, whatever the key may read.
personalDatastringWhether the personal fields are here: included, withheld (the key lacks people:read) or erased (the person deleted their data).
One of:
included,withheld,erased
attendeesAttendee[]The order's attendees.
Show the fields
attendeeIdstring (uuid)The attendee's id.
eventIdstring (uuid)The event's id.
orderIdstring (uuid)The order's id.
orderReferencestringThe order's six-character reference.
ticketTypeIdstring (uuid)The ticket type's id.
ticketTypeNamestringThe ticket type's name.
firstNamestring or nullFirst name. Null without people:read, or when erased.
lastNamestring or nullLast name. Null without people:read, or when erased.
emailstring (email) or nullEmail address. Null without people:read, or when erased.
companystring or nullCompany. Null without people:read, or when erased.
jobTitlestring or nullJob title. Null without people:read, or when erased.
languagestringThe language they registered in.
answersobject or nullAnswers to the event's registration questions, by question id. Null without people:read, or when erased.
statusstringActive, or cancelled.
One of:
active,cancelledorderStatusstringThe order's status.
One of:
pending,paid,free,onAccount,transfer,requested,declined,cancelled,expired,refundedvalidbooleanWhether the ticket lets them in: not cancelled, and the order paid or free.
checkedInUtcstring (date-time) or nullWhen they were first checked in, in UTC.
createdUtcstring (date-time)When they registered, in UTC.
changedUtcstring (date-time) or nullWhen anything about the attendee or their order last changed. Pass the latest you have as updatedSince.
updatedUtcstring (date-time) or nullWhen anything about the attendee or their order last changed, in UTC: the same as changedUtc.
erasedbooleanWhether the person deleted their data from the event app; then nothing personal is returned, whatever the key may read.
personalDatastringWhether the personal fields are here: included, withheld (the key lacks people:read) or erased (the person deleted their data).
One of:
included,withheld,erased
Example
{
"type": "order.paid",
"timestamp": "2026-10-14T12:00:00.000Z",
"data": {
"event": {
"eventId": "b3ac0000-0000-4000-8000-000000000001",
"slug": "beacon-summit",
"name": "Beacon Summit"
},
"order": {
"orderId": "b3ac0007-0000-4000-8000-000000000000",
"eventId": "b3ac0000-0000-4000-8000-000000000001",
"reference": "DEMOAA",
"status": "paid",
"buyerName": "Emma Bakker",
"buyerEmail": "emma.bakker0@example.com",
"buyerCompany": "Contoso",
"language": "nl",
"total": 320,
"vat": 55.54,
"currency": "EUR",
"paymentProvider": null,
"paidUtc": "2026-10-13T21:44:47.963Z",
"source": "registration",
"attendees": 1,
"createdUtc": "2026-10-13T21:40:47.963Z",
"updatedUtc": "2026-10-14T21:40:48.226Z",
"erased": false,
"personalData": "included"
},
"attendees": [
{
"attendeeId": "b3ac0008-0000-4000-8000-000000000000",
"eventId": "b3ac0000-0000-4000-8000-000000000001",
"orderId": "b3ac0007-0000-4000-8000-000000000000",
"orderReference": "DEMOAA",
"ticketTypeId": "b3ac0006-0000-4000-8000-000000000001",
"ticketTypeName": "Conference pass",
"firstName": "Emma",
"lastName": "Bakker",
"email": "emma.bakker0@example.com",
"company": "Contoso",
"jobTitle": "Engineer",
"language": "nl",
"answers": {
"dietary": "none",
"terms": true,
"photos": true
},
"status": "active",
"orderStatus": "paid",
"valid": true,
"checkedInUtc": null,
"createdUtc": "2026-10-13T21:40:47.963Z",
"changedUtc": "2026-10-14T21:40:48.226Z",
"updatedUtc": "2026-10-14T21:40:48.226Z",
"erased": false,
"personalData": "included"
}
]
}
}checkin.created
Somebody was let in. Somebody was let in at the main entrance or another door. Sent to webhook endpoints signed the Standard Webhooks way; an automation subscription (POST /hooks) gets the same with data lifted to the top, unsigned. Subscribing through /hooks needs checkins:read and people:read.
- Subscribing needs
checkins:readpeople:read
Headers
webhook-idstringThe message's id, msg_ and 32 hex characters: the same on every attempt, so a repeat can be recognised.
webhook-timestampintegerWhen it was sent, in Unix seconds. Refuse one more than five minutes old.
webhook-signaturestringv1, and the Base64 HMAC-SHA256 of id.timestamp.body under the endpoint's secret; several, separated by spaces, while a secret is being replaced.
Body
typestringrequiredWhat happened.
timestampstring (date-time)requiredWhen, in UTC.
dataCheckInDatarequiredWhat a webhook of this family carries in data: somebody let in at a door.
Show the fields
eventEventReferenceThe event something happened at.
Show the fields
eventIdstring (uuid)The event's id.
slugstringThe event's address: /e/{slug}.
namestringThe event's name.
attendeeAttendeeSomebody holding a ticket, or who held one.
Show the fields
attendeeIdstring (uuid)The attendee's id.
eventIdstring (uuid)The event's id.
orderIdstring (uuid)The order's id.
orderReferencestringThe order's six-character reference.
ticketTypeIdstring (uuid)The ticket type's id.
ticketTypeNamestringThe ticket type's name.
firstNamestring or nullFirst name. Null without people:read, or when erased.
lastNamestring or nullLast name. Null without people:read, or when erased.
emailstring (email) or nullEmail address. Null without people:read, or when erased.
companystring or nullCompany. Null without people:read, or when erased.
jobTitlestring or nullJob title. Null without people:read, or when erased.
languagestringThe language they registered in.
answersobject or nullAnswers to the event's registration questions, by question id. Null without people:read, or when erased.
statusstringActive, or cancelled.
One of:
active,cancelledorderStatusstringThe order's status.
One of:
pending,paid,free,onAccount,transfer,requested,declined,cancelled,expired,refundedvalidbooleanWhether the ticket lets them in: not cancelled, and the order paid or free.
checkedInUtcstring (date-time) or nullWhen they were first checked in, in UTC.
createdUtcstring (date-time)When they registered, in UTC.
changedUtcstring (date-time) or nullWhen anything about the attendee or their order last changed. Pass the latest you have as updatedSince.
updatedUtcstring (date-time) or nullWhen anything about the attendee or their order last changed, in UTC: the same as changedUtc.
erasedbooleanWhether the person deleted their data from the event app; then nothing personal is returned, whatever the key may read.
personalDatastringWhether the personal fields are here: included, withheld (the key lacks people:read) or erased (the person deleted their data).
One of:
included,withheld,erased
checkInobjectThe scan.
Show the fields
checkInListIdstring (uuid)The door's id.
listNamestringThe door's name.
listKindstringEntrance, session or area.
sessionIdstring (uuid)The session the door belongs to.
directionstringAlways in.
resultstringWelcome (first time) or again.
scannedUtcstring (date-time)When, in UTC.
offlinebooleanWhether the scanner was offline.
Example
{
"type": "checkin.created",
"timestamp": "2026-10-14T12:00:00.000Z",
"data": {
"event": {
"eventId": "b3ac0000-0000-4000-8000-000000000001",
"slug": "beacon-summit",
"name": "Beacon Summit"
},
"attendee": {
"attendeeId": "b3ac0008-0000-4000-8000-000000000000",
"eventId": "b3ac0000-0000-4000-8000-000000000001",
"orderId": "b3ac0007-0000-4000-8000-000000000000",
"orderReference": "DEMOAA",
"ticketTypeId": "b3ac0006-0000-4000-8000-000000000001",
"ticketTypeName": "Conference pass",
"firstName": "Emma",
"lastName": "Bakker",
"email": "emma.bakker0@example.com",
"company": "Contoso",
"jobTitle": "Engineer",
"language": "nl",
"answers": {
"dietary": "none",
"terms": true,
"photos": true
},
"status": "active",
"orderStatus": "paid",
"valid": true,
"checkedInUtc": null,
"createdUtc": "2026-10-13T21:40:47.963Z",
"changedUtc": "2026-10-14T21:40:48.226Z",
"updatedUtc": "2026-10-14T21:40:48.226Z",
"erased": false,
"personalData": "included"
},
"checkIn": {
"checkInListId": "b3ac0010-0000-4000-8000-000000000000",
"listName": "Main entrance",
"listKind": "entrance",
"sessionId": null,
"direction": "in",
"result": "welcome",
"scannedUtc": "2026-11-12T07:58:12.000Z",
"offline": false
}
}
}feedback.given
A rating was given. An attendee rated a session or the event, the first time. Sent to webhook endpoints signed the Standard Webhooks way; an automation subscription (POST /hooks) gets the same with data lifted to the top, unsigned. Subscribing through /hooks needs surveys:read and people:read.
- Subscribing needs
surveys:readpeople:read
Headers
webhook-idstringThe message's id, msg_ and 32 hex characters: the same on every attempt, so a repeat can be recognised.
webhook-timestampintegerWhen it was sent, in Unix seconds. Refuse one more than five minutes old.
webhook-signaturestringv1, and the Base64 HMAC-SHA256 of id.timestamp.body under the endpoint's secret; several, separated by spaces, while a secret is being replaced.
Body
typestringrequiredWhat happened.
timestampstring (date-time)requiredWhen, in UTC.
dataFeedbackDatarequiredWhat a webhook of this family carries in data: an attendee's first rating of a session or the event.
Show the fields
eventEventReferenceThe event something happened at.
Show the fields
eventIdstring (uuid)The event's id.
slugstringThe event's address: /e/{slug}.
namestringThe event's name.
attendeeAttendeeSomebody holding a ticket, or who held one.
Show the fields
attendeeIdstring (uuid)The attendee's id.
eventIdstring (uuid)The event's id.
orderIdstring (uuid)The order's id.
orderReferencestringThe order's six-character reference.
ticketTypeIdstring (uuid)The ticket type's id.
ticketTypeNamestringThe ticket type's name.
firstNamestring or nullFirst name. Null without people:read, or when erased.
lastNamestring or nullLast name. Null without people:read, or when erased.
emailstring (email) or nullEmail address. Null without people:read, or when erased.
companystring or nullCompany. Null without people:read, or when erased.
jobTitlestring or nullJob title. Null without people:read, or when erased.
languagestringThe language they registered in.
answersobject or nullAnswers to the event's registration questions, by question id. Null without people:read, or when erased.
statusstringActive, or cancelled.
One of:
active,cancelledorderStatusstringThe order's status.
One of:
pending,paid,free,onAccount,transfer,requested,declined,cancelled,expired,refundedvalidbooleanWhether the ticket lets them in: not cancelled, and the order paid or free.
checkedInUtcstring (date-time) or nullWhen they were first checked in, in UTC.
createdUtcstring (date-time)When they registered, in UTC.
changedUtcstring (date-time) or nullWhen anything about the attendee or their order last changed. Pass the latest you have as updatedSince.
updatedUtcstring (date-time) or nullWhen anything about the attendee or their order last changed, in UTC: the same as changedUtc.
erasedbooleanWhether the person deleted their data from the event app; then nothing personal is returned, whatever the key may read.
personalDatastringWhether the personal fields are here: included, withheld (the key lacks people:read) or erased (the person deleted their data).
One of:
included,withheld,erased
feedbackobjectThe rating.
Show the fields
sessionIdstring (uuid)The session rated; empty for the event.
ratingintegerOne to five.
commentstringWhat they wrote.
Example
{
"type": "feedback.given",
"timestamp": "2026-10-14T12:00:00.000Z",
"data": {
"event": {
"eventId": "b3ac0000-0000-4000-8000-000000000001",
"slug": "beacon-summit",
"name": "Beacon Summit"
},
"attendee": {
"attendeeId": "b3ac0008-0000-4000-8000-000000000000",
"eventId": "b3ac0000-0000-4000-8000-000000000001",
"orderId": "b3ac0007-0000-4000-8000-000000000000",
"orderReference": "DEMOAA",
"ticketTypeId": "b3ac0006-0000-4000-8000-000000000001",
"ticketTypeName": "Conference pass",
"firstName": "Emma",
"lastName": "Bakker",
"email": "emma.bakker0@example.com",
"company": "Contoso",
"jobTitle": "Engineer",
"language": "nl",
"answers": {
"dietary": "none",
"terms": true,
"photos": true
},
"status": "active",
"orderStatus": "paid",
"valid": true,
"checkedInUtc": null,
"createdUtc": "2026-10-13T21:40:47.963Z",
"changedUtc": "2026-10-14T21:40:48.226Z",
"updatedUtc": "2026-10-14T21:40:48.226Z",
"erased": false,
"personalData": "included"
},
"feedback": {
"sessionId": "b3ac0004-0000-4000-8000-000000000000",
"rating": 5,
"comment": "Clear and practical, thank you."
}
}
}lead.captured
A lead was captured. A sponsor's booth scanned somebody's badge, and the visitor agreed to share their details. Sent to webhook endpoints signed the Standard Webhooks way; an automation subscription (POST /hooks) gets the same with data lifted to the top, unsigned. Subscribing through /hooks needs sponsors:read and people:read.
- Subscribing needs
sponsors:readpeople:read
Headers
webhook-idstringThe message's id, msg_ and 32 hex characters: the same on every attempt, so a repeat can be recognised.
webhook-timestampintegerWhen it was sent, in Unix seconds. Refuse one more than five minutes old.
webhook-signaturestringv1, and the Base64 HMAC-SHA256 of id.timestamp.body under the endpoint's secret; several, separated by spaces, while a secret is being replaced.
Body
typestringrequiredWhat happened.
timestampstring (date-time)requiredWhen, in UTC.
dataLeadDatarequiredWhat a webhook of this family carries in data: a lead a sponsor captured, with the visitor's consent.
Show the fields
eventEventReferenceThe event something happened at.
Show the fields
eventIdstring (uuid)The event's id.
slugstringThe event's address: /e/{slug}.
namestringThe event's name.
sponsorSponsorA sponsor of the event.
Show the fields
sponsorIdstring (uuid)The sponsor's id.
namestringThe sponsor's name.
leadLeadA lead a sponsor captured, with the visitor's details only when they share them.
Show the fields
leadIdstring (uuid)The lead's id.
sharedbooleanWhether the visitor's details are included.
firstNamestringFirst name, when shared.
lastNamestringLast name, when shared.
companystringCompany, when shared.
jobTitlestringJob title, when shared.
emailstring (email)Email address, when the visitor shares it too.
originstringHow the lead began: booth, request or session.
ratingintegerThe booth staff's rating: 1 cold, 2 warm, 3 hot.
answersobjectAnswers to the sponsor's own questions, by question id.
notestringThe booth staff's note.
capturedBystringWho scanned the badge first.
capturedUtcstring (date-time)When, in UTC.
Example
{
"type": "lead.captured",
"timestamp": "2026-10-14T12:00:00.000Z",
"data": {
"event": {
"eventId": "b3ac0000-0000-4000-8000-000000000001",
"slug": "beacon-summit",
"name": "Beacon Summit"
},
"sponsor": {
"sponsorId": "b3ac0005-0000-4000-8000-000000000000",
"name": "Northwind Cloud"
},
"lead": {
"leadId": "b3ac0018-0000-4000-8000-000000000009",
"shared": true,
"firstName": "Julia",
"lastName": "de Boer",
"company": "Litware",
"jobTitle": "Engineer",
"email": null,
"origin": "booth",
"attendedSessionId": null,
"rating": 2,
"answers": {
"interest": "platform",
"followUp": true
},
"note": "Interested in the startup credits.",
"capturedBy": "lotte.devries42@example.com",
"capturedUtc": "2026-10-08T18:03:00.000Z",
"updatedUtc": "2026-10-08T18:05:00.000Z"
}
}
}certificate.issued
A certificate was issued. A certificate of attendance was issued. Ids, its number and when only: never the name on it. Sent to webhook endpoints signed the Standard Webhooks way; an automation subscription (POST /hooks) gets the same with data lifted to the top, unsigned. Subscribing through /hooks needs attendees:read.
- Subscribing needs
attendees:read
Headers
webhook-idstringThe message's id, msg_ and 32 hex characters: the same on every attempt, so a repeat can be recognised.
webhook-timestampintegerWhen it was sent, in Unix seconds. Refuse one more than five minutes old.
webhook-signaturestringv1, and the Base64 HMAC-SHA256 of id.timestamp.body under the endpoint's secret; several, separated by spaces, while a secret is being replaced.
Body
typestringrequiredWhat happened.
timestampstring (date-time)requiredWhen, in UTC.
dataCertificateDatarequiredWhat a webhook of this family carries in data: a certificate of attendance that was issued. Ids, its number and when only: never the name printed on it.
Show the fields
eventEventReferenceThe event something happened at.
Show the fields
eventIdstring (uuid)The event's id.
slugstringThe event's address: /e/{slug}.
namestringThe event's name.
certificateobjectThe certificate.
Show the fields
certificateIdstring (uuid)The certificate's id.
attendeeIdstring (uuid)The attendee it was issued to, as in Attendee.
numberstringIts number, which its public verification page at /verify/{number} is found by.
issuedUtcstring (date-time)When it was issued, in UTC.
Example
{
"type": "certificate.issued",
"timestamp": "2026-10-14T12:00:00.000Z",
"data": {
"event": {
"eventId": "b3ac0000-0000-4000-8000-000000000001",
"slug": "beacon-summit",
"name": "Beacon Summit"
},
"certificate": {
"certificateId": "6f0b1d2a-4c3e-4b8a-9d7e-1a2b3c4d5e6f",
"attendeeId": "b3ac0008-0000-4000-8000-000000000000",
"number": "BS26-0042",
"issuedUtc": "2026-11-14T09:00:00.000Z"
}
}
}content.published
Session slides were published. A session's slides and resources reached attendees, once per session. Ids only. Sent to webhook endpoints signed the Standard Webhooks way; an automation subscription (POST /hooks) gets the same with data lifted to the top, unsigned. Subscribing through /hooks needs program:read.
- Subscribing needs
program:read
Headers
webhook-idstringThe message's id, msg_ and 32 hex characters: the same on every attempt, so a repeat can be recognised.
webhook-timestampintegerWhen it was sent, in Unix seconds. Refuse one more than five minutes old.
webhook-signaturestringv1, and the Base64 HMAC-SHA256 of id.timestamp.body under the endpoint's secret; several, separated by spaces, while a secret is being replaced.
Body
typestringrequiredWhat happened.
timestampstring (date-time)requiredWhen, in UTC.
dataContentDatarequiredWhat a webhook of this family carries in data: a session's slides and resources that reached attendees, once per session. Ids only.
Show the fields
eventEventReferenceThe event something happened at.
Show the fields
eventIdstring (uuid)The event's id.
slugstringThe event's address: /e/{slug}.
namestringThe event's name.
contentobjectThe session and its material.
Show the fields
sessionIdstring (uuid)The session's id, as in the event's programme.
materialIdsstring (uuid)[]The ids of the session's files and links.
publishedUtcstring (date-time)When it was published, in UTC.
Example
{
"type": "content.published",
"timestamp": "2026-10-14T12:00:00.000Z",
"data": {
"event": {
"eventId": "b3ac0000-0000-4000-8000-000000000001",
"slug": "beacon-summit",
"name": "Beacon Summit"
},
"content": {
"sessionId": "b3ac0004-0000-4000-8000-000000000000",
"materialIds": [
"2a7c9e1b-3d5f-4a6b-8c9d-0e1f2a3b4c5d"
],
"publishedUtc": "2026-11-13T18:15:00.000Z"
}
}
}member.joined
Somebody joined a community. Somebody became a member of one of the workspace's communities. Ids only. Sent to webhook endpoints signed the Standard Webhooks way; an automation subscription (POST /hooks) gets the same with data lifted to the top, unsigned. Subscribing through /hooks needs communities:read.
- Subscribing needs
communities:read
Headers
webhook-idstringThe message's id, msg_ and 32 hex characters: the same on every attempt, so a repeat can be recognised.
webhook-timestampintegerWhen it was sent, in Unix seconds. Refuse one more than five minutes old.
webhook-signaturestringv1, and the Base64 HMAC-SHA256 of id.timestamp.body under the endpoint's secret; several, separated by spaces, while a secret is being replaced.
Body
typestringrequiredWhat happened.
timestampstring (date-time)requiredWhen, in UTC.
dataMemberDatarequiredWhat a webhook of this family carries in data: somebody joined one of the workspace's communities, or left it (left, removed by an organiser, or deleted their data). Ids only: never a name or an address.
Show the fields
communityobjectThe community.
Show the fields
communityIdstring (uuid)The community's id.
slugstringIts address after /c/.
namestringIts name.
memberobjectThe member.
Show the fields
memberIdstring (uuid)The member's id; gone after member.left.
communityIdstring (uuid)The community's id.
joinedUtcstring (date-time)Member.joined: when they became a member, in UTC.
reasonstringMember.left: left, removed or erased.
leftUtcstring (date-time)Member.left: when, in UTC.
Example
{
"type": "member.joined",
"timestamp": "2026-10-14T12:00:00.000Z",
"data": {
"community": {
"communityId": "b3ac6200-0000-4000-8000-000000000001",
"slug": "beacon-community-amsterdam",
"name": "Beacon Community Amsterdam"
},
"member": {
"memberId": "8d2e4f6a-1b3c-4d5e-9f0a-2b4c6d8e0f1a",
"communityId": "b3ac6200-0000-4000-8000-000000000001",
"joinedUtc": "2026-10-14T19:20:00.000Z"
}
}
}member.left
A member left a community. A member left, was removed or deleted their data. Ids only. Sent to webhook endpoints signed the Standard Webhooks way; an automation subscription (POST /hooks) gets the same with data lifted to the top, unsigned. Subscribing through /hooks needs communities:read.
- Subscribing needs
communities:read
Headers
webhook-idstringThe message's id, msg_ and 32 hex characters: the same on every attempt, so a repeat can be recognised.
webhook-timestampintegerWhen it was sent, in Unix seconds. Refuse one more than five minutes old.
webhook-signaturestringv1, and the Base64 HMAC-SHA256 of id.timestamp.body under the endpoint's secret; several, separated by spaces, while a secret is being replaced.
Body
typestringrequiredWhat happened.
timestampstring (date-time)requiredWhen, in UTC.
dataMemberDatarequiredWhat a webhook of this family carries in data: somebody joined one of the workspace's communities, or left it (left, removed by an organiser, or deleted their data). Ids only: never a name or an address.
Show the fields
communityobjectThe community.
Show the fields
communityIdstring (uuid)The community's id.
slugstringIts address after /c/.
namestringIts name.
memberobjectThe member.
Show the fields
memberIdstring (uuid)The member's id; gone after member.left.
communityIdstring (uuid)The community's id.
joinedUtcstring (date-time)Member.joined: when they became a member, in UTC.
reasonstringMember.left: left, removed or erased.
leftUtcstring (date-time)Member.left: when, in UTC.
Example
{
"type": "member.left",
"timestamp": "2026-10-14T12:00:00.000Z",
"data": {
"community": {
"communityId": "b3ac6200-0000-4000-8000-000000000001",
"slug": "beacon-community-amsterdam",
"name": "Beacon Community Amsterdam"
},
"member": {
"memberId": "8d2e4f6a-1b3c-4d5e-9f0a-2b4c6d8e0f1a",
"communityId": "b3ac6200-0000-4000-8000-000000000001",
"joinedUtc": "2026-10-14T19:20:00.000Z"
}
}
}stay.requested
A hotel stay was asked for. A hotel stay the organiser arranges was asked for: by a speaker's answer, a guest in the app, or added by the organiser. Ids and dates only. Sent to webhook endpoints signed the Standard Webhooks way; an automation subscription (POST /hooks) gets the same with data lifted to the top, unsigned. Subscribing through /hooks needs events:read.
- Subscribing needs
events:read
Headers
webhook-idstringThe message's id, msg_ and 32 hex characters: the same on every attempt, so a repeat can be recognised.
webhook-timestampintegerWhen it was sent, in Unix seconds. Refuse one more than five minutes old.
webhook-signaturestringv1, and the Base64 HMAC-SHA256 of id.timestamp.body under the endpoint's secret; several, separated by spaces, while a secret is being replaced.
Body
typestringrequiredWhat happened.
timestampstring (date-time)requiredWhen, in UTC.
dataStayDatarequiredWhat a webhook of this family carries in data: a hotel stay the organiser arranges (a speaker's, crew's or guest's room) that was requested, assigned to a hotel, changed or cancelled. Ids, role, status and dates only, never the guest's name or address.
Show the fields
eventEventReferenceThe event something happened at.
Show the fields
eventIdstring (uuid)The event's id.
slugstringThe event's address: /e/{slug}.
namestringThe event's name.
stayobjectThe stay, by its ids and dates.
Show the fields
stayIdstring (uuid)The stay's id.
hotelIdstring (uuid)Its hotel, when it has one.
rolestringWhose stay: speaker, crew, vip, sponsor, team or other.
statusstringRequested, approved, assigned, confirmed, changed or cancelled.
arrivalstring (date)The first night, the venue's date.
departurestring (date)The morning the guest leaves.
nightsinteger (int32)How many nights.
attendeeIdstring (uuid)The guest's ticket, as in Attendee, when they have one.
speakerIdstring (uuid)The guest as a speaker, when they are one.
crewMemberIdstring (uuid)The guest as crew, when they are.
Example
{
"type": "stay.requested",
"timestamp": "2026-10-14T12:00:00.000Z",
"data": {
"event": {
"eventId": "b3ac0000-0000-4000-8000-000000000001",
"slug": "beacon-summit",
"name": "Beacon Summit"
},
"stay": {
"stayId": "1c3e5a7b-9d0f-4b2c-8e4a-6c8e0a2b4d6f",
"hotelId": "7e9a1c3b-5d7f-4a0b-9c2d-4e6f8a0b2c4d",
"role": "speaker",
"status": "assigned",
"arrival": "2026-11-11",
"departure": "2026-11-14",
"nights": 3,
"speakerId": "b3ac0003-0000-4000-8000-000000000000"
}
}
}stay.assigned
A hotel stay was assigned. A stay was put in a hotel's room. Ids and dates only. Sent to webhook endpoints signed the Standard Webhooks way; an automation subscription (POST /hooks) gets the same with data lifted to the top, unsigned. Subscribing through /hooks needs events:read.
- Subscribing needs
events:read
Headers
webhook-idstringThe message's id, msg_ and 32 hex characters: the same on every attempt, so a repeat can be recognised.
webhook-timestampintegerWhen it was sent, in Unix seconds. Refuse one more than five minutes old.
webhook-signaturestringv1, and the Base64 HMAC-SHA256 of id.timestamp.body under the endpoint's secret; several, separated by spaces, while a secret is being replaced.
Body
typestringrequiredWhat happened.
timestampstring (date-time)requiredWhen, in UTC.
dataStayDatarequiredWhat a webhook of this family carries in data: a hotel stay the organiser arranges (a speaker's, crew's or guest's room) that was requested, assigned to a hotel, changed or cancelled. Ids, role, status and dates only, never the guest's name or address.
Show the fields
eventEventReferenceThe event something happened at.
Show the fields
eventIdstring (uuid)The event's id.
slugstringThe event's address: /e/{slug}.
namestringThe event's name.
stayobjectThe stay, by its ids and dates.
Show the fields
stayIdstring (uuid)The stay's id.
hotelIdstring (uuid)Its hotel, when it has one.
rolestringWhose stay: speaker, crew, vip, sponsor, team or other.
statusstringRequested, approved, assigned, confirmed, changed or cancelled.
arrivalstring (date)The first night, the venue's date.
departurestring (date)The morning the guest leaves.
nightsinteger (int32)How many nights.
attendeeIdstring (uuid)The guest's ticket, as in Attendee, when they have one.
speakerIdstring (uuid)The guest as a speaker, when they are one.
crewMemberIdstring (uuid)The guest as crew, when they are.
Example
{
"type": "stay.assigned",
"timestamp": "2026-10-14T12:00:00.000Z",
"data": {
"event": {
"eventId": "b3ac0000-0000-4000-8000-000000000001",
"slug": "beacon-summit",
"name": "Beacon Summit"
},
"stay": {
"stayId": "1c3e5a7b-9d0f-4b2c-8e4a-6c8e0a2b4d6f",
"hotelId": "7e9a1c3b-5d7f-4a0b-9c2d-4e6f8a0b2c4d",
"role": "speaker",
"status": "assigned",
"arrival": "2026-11-11",
"departure": "2026-11-14",
"nights": 3,
"speakerId": "b3ac0003-0000-4000-8000-000000000000"
}
}
}stay.changed
A hotel stay changed. A stay's dates, room or hotel changed. Ids and dates only. Sent to webhook endpoints signed the Standard Webhooks way; an automation subscription (POST /hooks) gets the same with data lifted to the top, unsigned. Subscribing through /hooks needs events:read.
- Subscribing needs
events:read
Headers
webhook-idstringThe message's id, msg_ and 32 hex characters: the same on every attempt, so a repeat can be recognised.
webhook-timestampintegerWhen it was sent, in Unix seconds. Refuse one more than five minutes old.
webhook-signaturestringv1, and the Base64 HMAC-SHA256 of id.timestamp.body under the endpoint's secret; several, separated by spaces, while a secret is being replaced.
Body
typestringrequiredWhat happened.
timestampstring (date-time)requiredWhen, in UTC.
dataStayDatarequiredWhat a webhook of this family carries in data: a hotel stay the organiser arranges (a speaker's, crew's or guest's room) that was requested, assigned to a hotel, changed or cancelled. Ids, role, status and dates only, never the guest's name or address.
Show the fields
eventEventReferenceThe event something happened at.
Show the fields
eventIdstring (uuid)The event's id.
slugstringThe event's address: /e/{slug}.
namestringThe event's name.
stayobjectThe stay, by its ids and dates.
Show the fields
stayIdstring (uuid)The stay's id.
hotelIdstring (uuid)Its hotel, when it has one.
rolestringWhose stay: speaker, crew, vip, sponsor, team or other.
statusstringRequested, approved, assigned, confirmed, changed or cancelled.
arrivalstring (date)The first night, the venue's date.
departurestring (date)The morning the guest leaves.
nightsinteger (int32)How many nights.
attendeeIdstring (uuid)The guest's ticket, as in Attendee, when they have one.
speakerIdstring (uuid)The guest as a speaker, when they are one.
crewMemberIdstring (uuid)The guest as crew, when they are.
Example
{
"type": "stay.changed",
"timestamp": "2026-10-14T12:00:00.000Z",
"data": {
"event": {
"eventId": "b3ac0000-0000-4000-8000-000000000001",
"slug": "beacon-summit",
"name": "Beacon Summit"
},
"stay": {
"stayId": "1c3e5a7b-9d0f-4b2c-8e4a-6c8e0a2b4d6f",
"hotelId": "7e9a1c3b-5d7f-4a0b-9c2d-4e6f8a0b2c4d",
"role": "speaker",
"status": "assigned",
"arrival": "2026-11-11",
"departure": "2026-11-14",
"nights": 3,
"speakerId": "b3ac0003-0000-4000-8000-000000000000"
}
}
}stay.cancelled
A hotel stay was cancelled. A stay was cancelled. Ids and dates only. Sent to webhook endpoints signed the Standard Webhooks way; an automation subscription (POST /hooks) gets the same with data lifted to the top, unsigned. Subscribing through /hooks needs events:read.
- Subscribing needs
events:read
Headers
webhook-idstringThe message's id, msg_ and 32 hex characters: the same on every attempt, so a repeat can be recognised.
webhook-timestampintegerWhen it was sent, in Unix seconds. Refuse one more than five minutes old.
webhook-signaturestringv1, and the Base64 HMAC-SHA256 of id.timestamp.body under the endpoint's secret; several, separated by spaces, while a secret is being replaced.
Body
typestringrequiredWhat happened.
timestampstring (date-time)requiredWhen, in UTC.
dataStayDatarequiredWhat a webhook of this family carries in data: a hotel stay the organiser arranges (a speaker's, crew's or guest's room) that was requested, assigned to a hotel, changed or cancelled. Ids, role, status and dates only, never the guest's name or address.
Show the fields
eventEventReferenceThe event something happened at.
Show the fields
eventIdstring (uuid)The event's id.
slugstringThe event's address: /e/{slug}.
namestringThe event's name.
stayobjectThe stay, by its ids and dates.
Show the fields
stayIdstring (uuid)The stay's id.
hotelIdstring (uuid)Its hotel, when it has one.
rolestringWhose stay: speaker, crew, vip, sponsor, team or other.
statusstringRequested, approved, assigned, confirmed, changed or cancelled.
arrivalstring (date)The first night, the venue's date.
departurestring (date)The morning the guest leaves.
nightsinteger (int32)How many nights.
attendeeIdstring (uuid)The guest's ticket, as in Attendee, when they have one.
speakerIdstring (uuid)The guest as a speaker, when they are one.
crewMemberIdstring (uuid)The guest as crew, when they are.
Example
{
"type": "stay.cancelled",
"timestamp": "2026-10-14T12:00:00.000Z",
"data": {
"event": {
"eventId": "b3ac0000-0000-4000-8000-000000000001",
"slug": "beacon-summit",
"name": "Beacon Summit"
},
"stay": {
"stayId": "1c3e5a7b-9d0f-4b2c-8e4a-6c8e0a2b4d6f",
"hotelId": "7e9a1c3b-5d7f-4a0b-9c2d-4e6f8a0b2c4d",
"role": "speaker",
"status": "assigned",
"arrival": "2026-11-11",
"departure": "2026-11-14",
"nights": 3,
"speakerId": "b3ac0003-0000-4000-8000-000000000000"
}
}
}shift.signed_up
A volunteer took a shift. A volunteer took a crew shift themselves: signed up, approved, from the waiting list or by a swap. Ids only. Sent to webhook endpoints signed the Standard Webhooks way; an automation subscription (POST /hooks) gets the same with data lifted to the top, unsigned. Subscribing through /hooks needs crew:read.
- Subscribing needs
crew:read
Headers
webhook-idstringThe message's id, msg_ and 32 hex characters: the same on every attempt, so a repeat can be recognised.
webhook-timestampintegerWhen it was sent, in Unix seconds. Refuse one more than five minutes old.
webhook-signaturestringv1, and the Base64 HMAC-SHA256 of id.timestamp.body under the endpoint's secret; several, separated by spaces, while a secret is being replaced.
Body
typestringrequiredWhat happened.
timestampstring (date-time)requiredWhen, in UTC.
dataShiftDatarequiredWhat a webhook of this family carries in data: a volunteer took a crew shift themselves (signed up, approved by the organiser, from the waiting list or by a swap), or came off one (dropped it, a drop approved, or swapped it away). Ids only, never a name or an address.
Show the fields
eventEventReferenceThe event something happened at.
Show the fields
eventIdstring (uuid)The event's id.
slugstringThe event's address: /e/{slug}.
namestringThe event's name.
shiftobjectThe shift and the volunteer, by id.
Show the fields
shiftIdstring (uuid)The crew shift's id.
crewMemberIdstring (uuid)The crew member's id.
howstringFor shift.signed_up: signUp, approved, waitlist or swap. For shift.dropped: dropped, approved or swap.
atUtcstring (date-time)When, in UTC.
Example
{
"type": "shift.signed_up",
"timestamp": "2026-10-14T12:00:00.000Z",
"data": {
"event": {
"eventId": "b3ac0000-0000-4000-8000-000000000001",
"slug": "beacon-summit",
"name": "Beacon Summit"
},
"shift": {
"shiftId": "b3ac6705-0000-4000-8000-000000000000",
"crewMemberId": "b3ac0020-0000-4000-8000-000000000000",
"how": "signUp",
"atUtc": "2026-10-14T15:02:00.000Z"
}
}
}shift.dropped
A volunteer came off a shift. A volunteer came off a shift they were on: dropped it, a drop was approved, or swapped it away. Ids only. Sent to webhook endpoints signed the Standard Webhooks way; an automation subscription (POST /hooks) gets the same with data lifted to the top, unsigned. Subscribing through /hooks needs crew:read.
- Subscribing needs
crew:read
Headers
webhook-idstringThe message's id, msg_ and 32 hex characters: the same on every attempt, so a repeat can be recognised.
webhook-timestampintegerWhen it was sent, in Unix seconds. Refuse one more than five minutes old.
webhook-signaturestringv1, and the Base64 HMAC-SHA256 of id.timestamp.body under the endpoint's secret; several, separated by spaces, while a secret is being replaced.
Body
typestringrequiredWhat happened.
timestampstring (date-time)requiredWhen, in UTC.
dataShiftDatarequiredWhat a webhook of this family carries in data: a volunteer took a crew shift themselves (signed up, approved by the organiser, from the waiting list or by a swap), or came off one (dropped it, a drop approved, or swapped it away). Ids only, never a name or an address.
Show the fields
eventEventReferenceThe event something happened at.
Show the fields
eventIdstring (uuid)The event's id.
slugstringThe event's address: /e/{slug}.
namestringThe event's name.
shiftobjectThe shift and the volunteer, by id.
Show the fields
shiftIdstring (uuid)The crew shift's id.
crewMemberIdstring (uuid)The crew member's id.
howstringFor shift.signed_up: signUp, approved, waitlist or swap. For shift.dropped: dropped, approved or swap.
atUtcstring (date-time)When, in UTC.
Example
{
"type": "shift.dropped",
"timestamp": "2026-10-14T12:00:00.000Z",
"data": {
"event": {
"eventId": "b3ac0000-0000-4000-8000-000000000001",
"slug": "beacon-summit",
"name": "Beacon Summit"
},
"shift": {
"shiftId": "b3ac6705-0000-4000-8000-000000000000",
"crewMemberId": "b3ac0020-0000-4000-8000-000000000000",
"how": "signUp",
"atUtc": "2026-10-14T15:02:00.000Z"
}
}
}travel.changed
A guest's travel changed. A guest's travel was asked for, approved, booked, changed, delayed, put on a pickup or cancelled. Ids, statuses and times only. Sent to webhook endpoints signed the Standard Webhooks way; an automation subscription (POST /hooks) gets the same with data lifted to the top, unsigned. Subscribing through /hooks needs events:read.
- Subscribing needs
events:read
Headers
webhook-idstringThe message's id, msg_ and 32 hex characters: the same on every attempt, so a repeat can be recognised.
webhook-timestampintegerWhen it was sent, in Unix seconds. Refuse one more than five minutes old.
webhook-signaturestringv1, and the Base64 HMAC-SHA256 of id.timestamp.body under the endpoint's secret; several, separated by spaces, while a secret is being replaced.
Body
typestringrequiredWhat happened.
timestampstring (date-time)requiredWhen, in UTC.
dataTravelDatarequiredWhat a webhook of this family carries in data: a guest's travel the organiser arranges (a speaker's, crew's or guest's journeys) that was asked for, approved, booked, changed, delayed, put on a pickup or cancelled. Ids, statuses and times only, never the guest's name, address or phone.
Show the fields
eventEventReferenceThe event something happened at.
Show the fields
eventIdstring (uuid)The event's id.
slugstringThe event's address: /e/{slug}.
namestringThe event's name.
travelobjectThe plan and, when one changed, its journey.
Show the fields
planIdstring (uuid)The guest's travel plan.
legIdstring (uuid)The journey that changed, when one did.
changestringWhat changed: requested, approved, cancelled, leg, delay, pickup or deleted.
rolestringWhose travel: speaker, crew, vip, sponsor, team or other.
planStatusstringThe plan: requested, approved or cancelled.
legStatusstringThe journey: requested, booked, confirmed, changed or cancelled.
directionstringArrival or departure.
modestringFlight, train, car, bus or other.
departsUtcstring (date-time)When the journey leaves, in UTC.
arrivesUtcstring (date-time)When it arrives, in UTC: the delay when one was marked.
attendeeIdstring (uuid)The guest's ticket, as in Attendee, when they have one.
speakerIdstring (uuid)The guest as a speaker, when they are one.
crewMemberIdstring (uuid)The guest as crew, when they are.
Example
{
"type": "travel.changed",
"timestamp": "2026-10-14T12:00:00.000Z",
"data": {
"event": {
"eventId": "b3ac0000-0000-4000-8000-000000000001",
"slug": "beacon-summit",
"name": "Beacon Summit"
},
"travel": {
"planId": "3b5d7f9a-1c2e-4a4b-8d6f-0a2c4e6a8b0d",
"legId": "5d7f9b1c-3e4a-4c6d-8f0a-2c4e6a8c0e2f",
"change": "delay",
"role": "speaker",
"planStatus": "approved",
"legStatus": "confirmed",
"direction": "arrival",
"mode": "flight",
"departsUtc": "2026-11-11T13:05:00.000Z"
}
}
}claim.submitted
An expense claim was sent in. An expense claim was sent in. Ids and amounts only. Sent to webhook endpoints signed the Standard Webhooks way; an automation subscription (POST /hooks) gets the same with data lifted to the top, unsigned. Subscribing through /hooks needs finance:read.
- Subscribing needs
finance:read
Headers
webhook-idstringThe message's id, msg_ and 32 hex characters: the same on every attempt, so a repeat can be recognised.
webhook-timestampintegerWhen it was sent, in Unix seconds. Refuse one more than five minutes old.
webhook-signaturestringv1, and the Base64 HMAC-SHA256 of id.timestamp.body under the endpoint's secret; several, separated by spaces, while a secret is being replaced.
Body
typestringrequiredWhat happened.
timestampstring (date-time)requiredWhen, in UTC.
dataClaimDatarequiredWhat a webhook of this family carries in data: an expense claim a speaker, crew member or guest sent in, that was approved (in full or in part) or paid. Ids, status and amounts only: never the name of the claimant or the account paid to.
Show the fields
eventEventReferenceThe event something happened at.
Show the fields
eventIdstring (uuid)The event's id.
slugstringThe event's address: /e/{slug}.
namestringThe event's name.
claimobjectThe claim, by its ids and amounts.
Show the fields
claimIdstring (uuid)The claim's id.
numberinteger (int32)The event's own number for the claim.
rolestringThe claimant's role: speaker, crew, vip, sponsor, team or other.
statusstringSubmitted, inReview, approved, paid or rejected.
currencystringThe currency it is paid in, three letters.
claimednumber (double)What was asked for, in the claim's currency with its own decimals.
approvednumber (double)What was approved, once decided, in the claim's currency with its own decimals.
paidOnstring (date)The day it was paid, once paid.
planIdstring (uuid)The claimant's travel plan, when they have one.
attendeeIdstring (uuid)The claimant's ticket, when known.
speakerIdstring (uuid)The claimant as a speaker, when they are one.
crewMemberIdstring (uuid)The claimant as crew, when they are.
Example
{
"type": "claim.submitted",
"timestamp": "2026-10-14T12:00:00.000Z",
"data": {
"event": {
"eventId": "b3ac0000-0000-4000-8000-000000000001",
"slug": "beacon-summit",
"name": "Beacon Summit"
},
"claim": {
"claimId": "9f1b3d5e-7a9c-4e0f-8b2d-4f6a8c0e2a4c",
"number": 12,
"role": "speaker",
"status": "approved",
"currency": "EUR",
"claimed": 186.4,
"approved": 186.4
}
}
}claim.approved
An expense claim was approved. An expense claim was approved, in full or in part. Ids and amounts only. Sent to webhook endpoints signed the Standard Webhooks way; an automation subscription (POST /hooks) gets the same with data lifted to the top, unsigned. Subscribing through /hooks needs finance:read.
- Subscribing needs
finance:read
Headers
webhook-idstringThe message's id, msg_ and 32 hex characters: the same on every attempt, so a repeat can be recognised.
webhook-timestampintegerWhen it was sent, in Unix seconds. Refuse one more than five minutes old.
webhook-signaturestringv1, and the Base64 HMAC-SHA256 of id.timestamp.body under the endpoint's secret; several, separated by spaces, while a secret is being replaced.
Body
typestringrequiredWhat happened.
timestampstring (date-time)requiredWhen, in UTC.
dataClaimDatarequiredWhat a webhook of this family carries in data: an expense claim a speaker, crew member or guest sent in, that was approved (in full or in part) or paid. Ids, status and amounts only: never the name of the claimant or the account paid to.
Show the fields
eventEventReferenceThe event something happened at.
Show the fields
eventIdstring (uuid)The event's id.
slugstringThe event's address: /e/{slug}.
namestringThe event's name.
claimobjectThe claim, by its ids and amounts.
Show the fields
claimIdstring (uuid)The claim's id.
numberinteger (int32)The event's own number for the claim.
rolestringThe claimant's role: speaker, crew, vip, sponsor, team or other.
statusstringSubmitted, inReview, approved, paid or rejected.
currencystringThe currency it is paid in, three letters.
claimednumber (double)What was asked for, in the claim's currency with its own decimals.
approvednumber (double)What was approved, once decided, in the claim's currency with its own decimals.
paidOnstring (date)The day it was paid, once paid.
planIdstring (uuid)The claimant's travel plan, when they have one.
attendeeIdstring (uuid)The claimant's ticket, when known.
speakerIdstring (uuid)The claimant as a speaker, when they are one.
crewMemberIdstring (uuid)The claimant as crew, when they are.
Example
{
"type": "claim.approved",
"timestamp": "2026-10-14T12:00:00.000Z",
"data": {
"event": {
"eventId": "b3ac0000-0000-4000-8000-000000000001",
"slug": "beacon-summit",
"name": "Beacon Summit"
},
"claim": {
"claimId": "9f1b3d5e-7a9c-4e0f-8b2d-4f6a8c0e2a4c",
"number": 12,
"role": "speaker",
"status": "approved",
"currency": "EUR",
"claimed": 186.4,
"approved": 186.4
}
}
}claim.paid
An expense claim was paid. An expense claim was paid. Ids, amounts and the day only. Sent to webhook endpoints signed the Standard Webhooks way; an automation subscription (POST /hooks) gets the same with data lifted to the top, unsigned. Subscribing through /hooks needs finance:read.
- Subscribing needs
finance:read
Headers
webhook-idstringThe message's id, msg_ and 32 hex characters: the same on every attempt, so a repeat can be recognised.
webhook-timestampintegerWhen it was sent, in Unix seconds. Refuse one more than five minutes old.
webhook-signaturestringv1, and the Base64 HMAC-SHA256 of id.timestamp.body under the endpoint's secret; several, separated by spaces, while a secret is being replaced.
Body
typestringrequiredWhat happened.
timestampstring (date-time)requiredWhen, in UTC.
dataClaimDatarequiredWhat a webhook of this family carries in data: an expense claim a speaker, crew member or guest sent in, that was approved (in full or in part) or paid. Ids, status and amounts only: never the name of the claimant or the account paid to.
Show the fields
eventEventReferenceThe event something happened at.
Show the fields
eventIdstring (uuid)The event's id.
slugstringThe event's address: /e/{slug}.
namestringThe event's name.
claimobjectThe claim, by its ids and amounts.
Show the fields
claimIdstring (uuid)The claim's id.
numberinteger (int32)The event's own number for the claim.
rolestringThe claimant's role: speaker, crew, vip, sponsor, team or other.
statusstringSubmitted, inReview, approved, paid or rejected.
currencystringThe currency it is paid in, three letters.
claimednumber (double)What was asked for, in the claim's currency with its own decimals.
approvednumber (double)What was approved, once decided, in the claim's currency with its own decimals.
paidOnstring (date)The day it was paid, once paid.
planIdstring (uuid)The claimant's travel plan, when they have one.
attendeeIdstring (uuid)The claimant's ticket, when known.
speakerIdstring (uuid)The claimant as a speaker, when they are one.
crewMemberIdstring (uuid)The claimant as crew, when they are.
Example
{
"type": "claim.paid",
"timestamp": "2026-10-14T12:00:00.000Z",
"data": {
"event": {
"eventId": "b3ac0000-0000-4000-8000-000000000001",
"slug": "beacon-summit",
"name": "Beacon Summit"
},
"claim": {
"claimId": "9f1b3d5e-7a9c-4e0f-8b2d-4f6a8c0e2a4c",
"number": 12,
"role": "speaker",
"status": "approved",
"currency": "EUR",
"claimed": 186.4,
"approved": 186.4
}
}
}The guides and this site are in your language. The API reference's own descriptions are in English, as the API itself speaks.