AttendBeacon
Open the workspace

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:read people:read

Headers

  • webhook-idstring

    The message's id, msg_ and 32 hex characters: the same on every attempt, so a repeat can be recognised.

  • webhook-timestampinteger

    When it was sent, in Unix seconds. Refuse one more than five minutes old.

  • webhook-signaturestring

    v1, 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

  • typestringrequired

    What happened.

  • timestampstring (date-time)required

    When, in UTC.

  • dataAttendeeDatarequired

    What a webhook of this family carries in data: a registration that was made, changed or cancelled.

    Show the fields
    • eventEventReference

      The event something happened at.

      Show the fields
      • eventIdstring (uuid)

        The event's id.

      • slugstring

        The event's address: /e/{slug}.

      • namestring

        The event's name.

    • attendeeAttendee

      Somebody 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.

      • orderReferencestring

        The order's six-character reference.

      • ticketTypeIdstring (uuid)

        The ticket type's id.

      • ticketTypeNamestring

        The ticket type's name.

      • firstNamestring or null

        First name. Null without people:read, or when erased.

      • lastNamestring or null

        Last name. Null without people:read, or when erased.

      • emailstring (email) or null

        Email address. Null without people:read, or when erased.

      • companystring or null

        Company. Null without people:read, or when erased.

      • jobTitlestring or null

        Job title. Null without people:read, or when erased.

      • languagestring

        The language they registered in.

      • answersobject or null

        Answers to the event's registration questions, by question id. Null without people:read, or when erased.

      • statusstring

        Active, or cancelled.

        One of: active, cancelled

      • orderStatusstring

        The order's status.

        One of: pending, paid, free, onAccount, transfer, requested, declined, cancelled, expired, refunded

      • validboolean

        Whether the ticket lets them in: not cancelled, and the order paid or free.

      • checkedInUtcstring (date-time) or null

        When they were first checked in, in UTC.

      • createdUtcstring (date-time)

        When they registered, in UTC.

      • changedUtcstring (date-time) or null

        When anything about the attendee or their order last changed. Pass the latest you have as updatedSince.

      • updatedUtcstring (date-time) or null

        When anything about the attendee or their order last changed, in UTC: the same as changedUtc.

      • erasedboolean

        Whether the person deleted their data from the event app; then nothing personal is returned, whatever the key may read.

      • personalDatastring

        Whether 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

JSON
{
  "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:read people:read

Headers

  • webhook-idstring

    The message's id, msg_ and 32 hex characters: the same on every attempt, so a repeat can be recognised.

  • webhook-timestampinteger

    When it was sent, in Unix seconds. Refuse one more than five minutes old.

  • webhook-signaturestring

    v1, 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

  • typestringrequired

    What happened.

  • timestampstring (date-time)required

    When, in UTC.

  • dataAttendeeDatarequired

    What a webhook of this family carries in data: a registration that was made, changed or cancelled.

    Show the fields
    • eventEventReference

      The event something happened at.

      Show the fields
      • eventIdstring (uuid)

        The event's id.

      • slugstring

        The event's address: /e/{slug}.

      • namestring

        The event's name.

    • attendeeAttendee

      Somebody 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.

      • orderReferencestring

        The order's six-character reference.

      • ticketTypeIdstring (uuid)

        The ticket type's id.

      • ticketTypeNamestring

        The ticket type's name.

      • firstNamestring or null

        First name. Null without people:read, or when erased.

      • lastNamestring or null

        Last name. Null without people:read, or when erased.

      • emailstring (email) or null

        Email address. Null without people:read, or when erased.

      • companystring or null

        Company. Null without people:read, or when erased.

      • jobTitlestring or null

        Job title. Null without people:read, or when erased.

      • languagestring

        The language they registered in.

      • answersobject or null

        Answers to the event's registration questions, by question id. Null without people:read, or when erased.

      • statusstring

        Active, or cancelled.

        One of: active, cancelled

      • orderStatusstring

        The order's status.

        One of: pending, paid, free, onAccount, transfer, requested, declined, cancelled, expired, refunded

      • validboolean

        Whether the ticket lets them in: not cancelled, and the order paid or free.

      • checkedInUtcstring (date-time) or null

        When they were first checked in, in UTC.

      • createdUtcstring (date-time)

        When they registered, in UTC.

      • changedUtcstring (date-time) or null

        When anything about the attendee or their order last changed. Pass the latest you have as updatedSince.

      • updatedUtcstring (date-time) or null

        When anything about the attendee or their order last changed, in UTC: the same as changedUtc.

      • erasedboolean

        Whether the person deleted their data from the event app; then nothing personal is returned, whatever the key may read.

      • personalDatastring

        Whether 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

JSON
{
  "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:read people:read

Headers

  • webhook-idstring

    The message's id, msg_ and 32 hex characters: the same on every attempt, so a repeat can be recognised.

  • webhook-timestampinteger

    When it was sent, in Unix seconds. Refuse one more than five minutes old.

  • webhook-signaturestring

    v1, 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

  • typestringrequired

    What happened.

  • timestampstring (date-time)required

    When, in UTC.

  • dataAttendeeDatarequired

    What a webhook of this family carries in data: a registration that was made, changed or cancelled.

    Show the fields
    • eventEventReference

      The event something happened at.

      Show the fields
      • eventIdstring (uuid)

        The event's id.

      • slugstring

        The event's address: /e/{slug}.

      • namestring

        The event's name.

    • attendeeAttendee

      Somebody 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.

      • orderReferencestring

        The order's six-character reference.

      • ticketTypeIdstring (uuid)

        The ticket type's id.

      • ticketTypeNamestring

        The ticket type's name.

      • firstNamestring or null

        First name. Null without people:read, or when erased.

      • lastNamestring or null

        Last name. Null without people:read, or when erased.

      • emailstring (email) or null

        Email address. Null without people:read, or when erased.

      • companystring or null

        Company. Null without people:read, or when erased.

      • jobTitlestring or null

        Job title. Null without people:read, or when erased.

      • languagestring

        The language they registered in.

      • answersobject or null

        Answers to the event's registration questions, by question id. Null without people:read, or when erased.

      • statusstring

        Active, or cancelled.

        One of: active, cancelled

      • orderStatusstring

        The order's status.

        One of: pending, paid, free, onAccount, transfer, requested, declined, cancelled, expired, refunded

      • validboolean

        Whether the ticket lets them in: not cancelled, and the order paid or free.

      • checkedInUtcstring (date-time) or null

        When they were first checked in, in UTC.

      • createdUtcstring (date-time)

        When they registered, in UTC.

      • changedUtcstring (date-time) or null

        When anything about the attendee or their order last changed. Pass the latest you have as updatedSince.

      • updatedUtcstring (date-time) or null

        When anything about the attendee or their order last changed, in UTC: the same as changedUtc.

      • erasedboolean

        Whether the person deleted their data from the event app; then nothing personal is returned, whatever the key may read.

      • personalDatastring

        Whether 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

JSON
{
  "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-idstring

    The message's id, msg_ and 32 hex characters: the same on every attempt, so a repeat can be recognised.

  • webhook-timestampinteger

    When it was sent, in Unix seconds. Refuse one more than five minutes old.

  • webhook-signaturestring

    v1, 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

  • typestringrequired

    What happened.

  • timestampstring (date-time)required

    When, in UTC.

  • dataErasureDatarequired

    What 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
    • eventEventReference

      The event something happened at.

      Show the fields
      • eventIdstring (uuid)

        The event's id.

      • slugstring

        The event's address: /e/{slug}.

      • namestring

        The event's name.

    • attendeeobject

      The attendee, by id only.

      Show the fields
      • attendeeIdstring (uuid)

        The attendee's id, as in Attendee.

      • orderIdstring (uuid)

        Their order's id.

      • ticketCancelledboolean

        Whether the ticket was cancelled too: the event was still to come.

      • erasedUtcstring (date-time)

        When the data was deleted, in UTC.

Example

JSON
{
  "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:read people:read

Headers

  • webhook-idstring

    The message's id, msg_ and 32 hex characters: the same on every attempt, so a repeat can be recognised.

  • webhook-timestampinteger

    When it was sent, in Unix seconds. Refuse one more than five minutes old.

  • webhook-signaturestring

    v1, 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

  • typestringrequired

    What happened.

  • timestampstring (date-time)required

    When, in UTC.

  • dataOrderDatarequired

    What a webhook of this family carries in data: an order that was paid, with its attendees.

    Show the fields
    • eventEventReference

      The event something happened at.

      Show the fields
      • eventIdstring (uuid)

        The event's id.

      • slugstring

        The event's address: /e/{slug}.

      • namestring

        The event's name.

    • orderOrder

      An order.

      Show the fields
      • orderIdstring (uuid)

        The order's id.

      • eventIdstring (uuid)

        The event's id.

      • referencestring

        The six-character reference.

      • statusstring

        Its status.

        One of: pending, paid, free, onAccount, transfer, requested, declined, cancelled, expired, refunded

      • buyerNamestring or null

        Who it is for. Null without people:read, or when erased.

      • buyerEmailstring (email) or null

        Their email address. Null without people:read, or when erased.

      • buyerCompanystring or null

        Their company. Null without people:read, or when erased.

      • languagestring

        The language it was placed in.

      • totalnumber

        The total, VAT included, with the currency's own decimals: 147.00 in EUR, 147 in JPY, 147.000 in KWD.

      • vatnumber

        The VAT in the total, with the currency's own decimals.

      • currencystring

        The currency, as ISO 4217.

      • paymentProviderstring or null

        Who took the payment.

      • paidUtcstring (date-time) or null

        When it was paid, in UTC.

      • sourcestring

        Where it was placed: registration, workspace or door.

      • attendeesinteger

        How many tickets it holds.

      • createdUtcstring (date-time)

        When it was placed, in UTC.

      • updatedUtcstring (date-time)

        When it last changed, in UTC.

      • erasedboolean

        Whether the person deleted their data from the event app; then nothing personal is returned, whatever the key may read.

      • personalDatastring

        Whether 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.

      • orderReferencestring

        The order's six-character reference.

      • ticketTypeIdstring (uuid)

        The ticket type's id.

      • ticketTypeNamestring

        The ticket type's name.

      • firstNamestring or null

        First name. Null without people:read, or when erased.

      • lastNamestring or null

        Last name. Null without people:read, or when erased.

      • emailstring (email) or null

        Email address. Null without people:read, or when erased.

      • companystring or null

        Company. Null without people:read, or when erased.

      • jobTitlestring or null

        Job title. Null without people:read, or when erased.

      • languagestring

        The language they registered in.

      • answersobject or null

        Answers to the event's registration questions, by question id. Null without people:read, or when erased.

      • statusstring

        Active, or cancelled.

        One of: active, cancelled

      • orderStatusstring

        The order's status.

        One of: pending, paid, free, onAccount, transfer, requested, declined, cancelled, expired, refunded

      • validboolean

        Whether the ticket lets them in: not cancelled, and the order paid or free.

      • checkedInUtcstring (date-time) or null

        When they were first checked in, in UTC.

      • createdUtcstring (date-time)

        When they registered, in UTC.

      • changedUtcstring (date-time) or null

        When anything about the attendee or their order last changed. Pass the latest you have as updatedSince.

      • updatedUtcstring (date-time) or null

        When anything about the attendee or their order last changed, in UTC: the same as changedUtc.

      • erasedboolean

        Whether the person deleted their data from the event app; then nothing personal is returned, whatever the key may read.

      • personalDatastring

        Whether 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

JSON
{
  "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:read people:read

Headers

  • webhook-idstring

    The message's id, msg_ and 32 hex characters: the same on every attempt, so a repeat can be recognised.

  • webhook-timestampinteger

    When it was sent, in Unix seconds. Refuse one more than five minutes old.

  • webhook-signaturestring

    v1, 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

  • typestringrequired

    What happened.

  • timestampstring (date-time)required

    When, in UTC.

  • dataCheckInDatarequired

    What a webhook of this family carries in data: somebody let in at a door.

    Show the fields
    • eventEventReference

      The event something happened at.

      Show the fields
      • eventIdstring (uuid)

        The event's id.

      • slugstring

        The event's address: /e/{slug}.

      • namestring

        The event's name.

    • attendeeAttendee

      Somebody 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.

      • orderReferencestring

        The order's six-character reference.

      • ticketTypeIdstring (uuid)

        The ticket type's id.

      • ticketTypeNamestring

        The ticket type's name.

      • firstNamestring or null

        First name. Null without people:read, or when erased.

      • lastNamestring or null

        Last name. Null without people:read, or when erased.

      • emailstring (email) or null

        Email address. Null without people:read, or when erased.

      • companystring or null

        Company. Null without people:read, or when erased.

      • jobTitlestring or null

        Job title. Null without people:read, or when erased.

      • languagestring

        The language they registered in.

      • answersobject or null

        Answers to the event's registration questions, by question id. Null without people:read, or when erased.

      • statusstring

        Active, or cancelled.

        One of: active, cancelled

      • orderStatusstring

        The order's status.

        One of: pending, paid, free, onAccount, transfer, requested, declined, cancelled, expired, refunded

      • validboolean

        Whether the ticket lets them in: not cancelled, and the order paid or free.

      • checkedInUtcstring (date-time) or null

        When they were first checked in, in UTC.

      • createdUtcstring (date-time)

        When they registered, in UTC.

      • changedUtcstring (date-time) or null

        When anything about the attendee or their order last changed. Pass the latest you have as updatedSince.

      • updatedUtcstring (date-time) or null

        When anything about the attendee or their order last changed, in UTC: the same as changedUtc.

      • erasedboolean

        Whether the person deleted their data from the event app; then nothing personal is returned, whatever the key may read.

      • personalDatastring

        Whether the personal fields are here: included, withheld (the key lacks people:read) or erased (the person deleted their data).

        One of: included, withheld, erased

    • checkInobject

      The scan.

      Show the fields
      • checkInListIdstring (uuid)

        The door's id.

      • listNamestring

        The door's name.

      • listKindstring

        Entrance, session or area.

      • sessionIdstring (uuid)

        The session the door belongs to.

      • directionstring

        Always in.

      • resultstring

        Welcome (first time) or again.

      • scannedUtcstring (date-time)

        When, in UTC.

      • offlineboolean

        Whether the scanner was offline.

Example

JSON
{
  "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:read people:read

Headers

  • webhook-idstring

    The message's id, msg_ and 32 hex characters: the same on every attempt, so a repeat can be recognised.

  • webhook-timestampinteger

    When it was sent, in Unix seconds. Refuse one more than five minutes old.

  • webhook-signaturestring

    v1, 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

  • typestringrequired

    What happened.

  • timestampstring (date-time)required

    When, in UTC.

  • dataFeedbackDatarequired

    What a webhook of this family carries in data: an attendee's first rating of a session or the event.

    Show the fields
    • eventEventReference

      The event something happened at.

      Show the fields
      • eventIdstring (uuid)

        The event's id.

      • slugstring

        The event's address: /e/{slug}.

      • namestring

        The event's name.

    • attendeeAttendee

      Somebody 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.

      • orderReferencestring

        The order's six-character reference.

      • ticketTypeIdstring (uuid)

        The ticket type's id.

      • ticketTypeNamestring

        The ticket type's name.

      • firstNamestring or null

        First name. Null without people:read, or when erased.

      • lastNamestring or null

        Last name. Null without people:read, or when erased.

      • emailstring (email) or null

        Email address. Null without people:read, or when erased.

      • companystring or null

        Company. Null without people:read, or when erased.

      • jobTitlestring or null

        Job title. Null without people:read, or when erased.

      • languagestring

        The language they registered in.

      • answersobject or null

        Answers to the event's registration questions, by question id. Null without people:read, or when erased.

      • statusstring

        Active, or cancelled.

        One of: active, cancelled

      • orderStatusstring

        The order's status.

        One of: pending, paid, free, onAccount, transfer, requested, declined, cancelled, expired, refunded

      • validboolean

        Whether the ticket lets them in: not cancelled, and the order paid or free.

      • checkedInUtcstring (date-time) or null

        When they were first checked in, in UTC.

      • createdUtcstring (date-time)

        When they registered, in UTC.

      • changedUtcstring (date-time) or null

        When anything about the attendee or their order last changed. Pass the latest you have as updatedSince.

      • updatedUtcstring (date-time) or null

        When anything about the attendee or their order last changed, in UTC: the same as changedUtc.

      • erasedboolean

        Whether the person deleted their data from the event app; then nothing personal is returned, whatever the key may read.

      • personalDatastring

        Whether the personal fields are here: included, withheld (the key lacks people:read) or erased (the person deleted their data).

        One of: included, withheld, erased

    • feedbackobject

      The rating.

      Show the fields
      • sessionIdstring (uuid)

        The session rated; empty for the event.

      • ratinginteger

        One to five.

      • commentstring

        What they wrote.

Example

JSON
{
  "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:read people:read

Headers

  • webhook-idstring

    The message's id, msg_ and 32 hex characters: the same on every attempt, so a repeat can be recognised.

  • webhook-timestampinteger

    When it was sent, in Unix seconds. Refuse one more than five minutes old.

  • webhook-signaturestring

    v1, 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

  • typestringrequired

    What happened.

  • timestampstring (date-time)required

    When, in UTC.

  • dataLeadDatarequired

    What a webhook of this family carries in data: a lead a sponsor captured, with the visitor's consent.

    Show the fields
    • eventEventReference

      The event something happened at.

      Show the fields
      • eventIdstring (uuid)

        The event's id.

      • slugstring

        The event's address: /e/{slug}.

      • namestring

        The event's name.

    • sponsorSponsor

      A sponsor of the event.

      Show the fields
      • sponsorIdstring (uuid)

        The sponsor's id.

      • namestring

        The sponsor's name.

    • leadLead

      A lead a sponsor captured, with the visitor's details only when they share them.

      Show the fields
      • leadIdstring (uuid)

        The lead's id.

      • sharedboolean

        Whether the visitor's details are included.

      • firstNamestring

        First name, when shared.

      • lastNamestring

        Last name, when shared.

      • companystring

        Company, when shared.

      • jobTitlestring

        Job title, when shared.

      • emailstring (email)

        Email address, when the visitor shares it too.

      • originstring

        How the lead began: booth, request or session.

      • ratinginteger

        The booth staff's rating: 1 cold, 2 warm, 3 hot.

      • answersobject

        Answers to the sponsor's own questions, by question id.

      • notestring

        The booth staff's note.

      • capturedBystring

        Who scanned the badge first.

      • capturedUtcstring (date-time)

        When, in UTC.

Example

JSON
{
  "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-idstring

    The message's id, msg_ and 32 hex characters: the same on every attempt, so a repeat can be recognised.

  • webhook-timestampinteger

    When it was sent, in Unix seconds. Refuse one more than five minutes old.

  • webhook-signaturestring

    v1, 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

  • typestringrequired

    What happened.

  • timestampstring (date-time)required

    When, in UTC.

  • dataCertificateDatarequired

    What 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
    • eventEventReference

      The event something happened at.

      Show the fields
      • eventIdstring (uuid)

        The event's id.

      • slugstring

        The event's address: /e/{slug}.

      • namestring

        The event's name.

    • certificateobject

      The certificate.

      Show the fields
      • certificateIdstring (uuid)

        The certificate's id.

      • attendeeIdstring (uuid)

        The attendee it was issued to, as in Attendee.

      • numberstring

        Its number, which its public verification page at /verify/{number} is found by.

      • issuedUtcstring (date-time)

        When it was issued, in UTC.

Example

JSON
{
  "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-idstring

    The message's id, msg_ and 32 hex characters: the same on every attempt, so a repeat can be recognised.

  • webhook-timestampinteger

    When it was sent, in Unix seconds. Refuse one more than five minutes old.

  • webhook-signaturestring

    v1, 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

  • typestringrequired

    What happened.

  • timestampstring (date-time)required

    When, in UTC.

  • dataContentDatarequired

    What 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
    • eventEventReference

      The event something happened at.

      Show the fields
      • eventIdstring (uuid)

        The event's id.

      • slugstring

        The event's address: /e/{slug}.

      • namestring

        The event's name.

    • contentobject

      The 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

JSON
{
  "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-idstring

    The message's id, msg_ and 32 hex characters: the same on every attempt, so a repeat can be recognised.

  • webhook-timestampinteger

    When it was sent, in Unix seconds. Refuse one more than five minutes old.

  • webhook-signaturestring

    v1, 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

  • typestringrequired

    What happened.

  • timestampstring (date-time)required

    When, in UTC.

  • dataMemberDatarequired

    What 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
    • communityobject

      The community.

      Show the fields
      • communityIdstring (uuid)

        The community's id.

      • slugstring

        Its address after /c/.

      • namestring

        Its name.

    • memberobject

      The 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.

      • reasonstring

        Member.left: left, removed or erased.

      • leftUtcstring (date-time)

        Member.left: when, in UTC.

Example

JSON
{
  "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-idstring

    The message's id, msg_ and 32 hex characters: the same on every attempt, so a repeat can be recognised.

  • webhook-timestampinteger

    When it was sent, in Unix seconds. Refuse one more than five minutes old.

  • webhook-signaturestring

    v1, 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

  • typestringrequired

    What happened.

  • timestampstring (date-time)required

    When, in UTC.

  • dataMemberDatarequired

    What 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
    • communityobject

      The community.

      Show the fields
      • communityIdstring (uuid)

        The community's id.

      • slugstring

        Its address after /c/.

      • namestring

        Its name.

    • memberobject

      The 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.

      • reasonstring

        Member.left: left, removed or erased.

      • leftUtcstring (date-time)

        Member.left: when, in UTC.

Example

JSON
{
  "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-idstring

    The message's id, msg_ and 32 hex characters: the same on every attempt, so a repeat can be recognised.

  • webhook-timestampinteger

    When it was sent, in Unix seconds. Refuse one more than five minutes old.

  • webhook-signaturestring

    v1, 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

  • typestringrequired

    What happened.

  • timestampstring (date-time)required

    When, in UTC.

  • dataStayDatarequired

    What 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
    • eventEventReference

      The event something happened at.

      Show the fields
      • eventIdstring (uuid)

        The event's id.

      • slugstring

        The event's address: /e/{slug}.

      • namestring

        The event's name.

    • stayobject

      The stay, by its ids and dates.

      Show the fields
      • stayIdstring (uuid)

        The stay's id.

      • hotelIdstring (uuid)

        Its hotel, when it has one.

      • rolestring

        Whose stay: speaker, crew, vip, sponsor, team or other.

      • statusstring

        Requested, 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

JSON
{
  "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-idstring

    The message's id, msg_ and 32 hex characters: the same on every attempt, so a repeat can be recognised.

  • webhook-timestampinteger

    When it was sent, in Unix seconds. Refuse one more than five minutes old.

  • webhook-signaturestring

    v1, 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

  • typestringrequired

    What happened.

  • timestampstring (date-time)required

    When, in UTC.

  • dataStayDatarequired

    What 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
    • eventEventReference

      The event something happened at.

      Show the fields
      • eventIdstring (uuid)

        The event's id.

      • slugstring

        The event's address: /e/{slug}.

      • namestring

        The event's name.

    • stayobject

      The stay, by its ids and dates.

      Show the fields
      • stayIdstring (uuid)

        The stay's id.

      • hotelIdstring (uuid)

        Its hotel, when it has one.

      • rolestring

        Whose stay: speaker, crew, vip, sponsor, team or other.

      • statusstring

        Requested, 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

JSON
{
  "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-idstring

    The message's id, msg_ and 32 hex characters: the same on every attempt, so a repeat can be recognised.

  • webhook-timestampinteger

    When it was sent, in Unix seconds. Refuse one more than five minutes old.

  • webhook-signaturestring

    v1, 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

  • typestringrequired

    What happened.

  • timestampstring (date-time)required

    When, in UTC.

  • dataStayDatarequired

    What 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
    • eventEventReference

      The event something happened at.

      Show the fields
      • eventIdstring (uuid)

        The event's id.

      • slugstring

        The event's address: /e/{slug}.

      • namestring

        The event's name.

    • stayobject

      The stay, by its ids and dates.

      Show the fields
      • stayIdstring (uuid)

        The stay's id.

      • hotelIdstring (uuid)

        Its hotel, when it has one.

      • rolestring

        Whose stay: speaker, crew, vip, sponsor, team or other.

      • statusstring

        Requested, 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

JSON
{
  "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-idstring

    The message's id, msg_ and 32 hex characters: the same on every attempt, so a repeat can be recognised.

  • webhook-timestampinteger

    When it was sent, in Unix seconds. Refuse one more than five minutes old.

  • webhook-signaturestring

    v1, 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

  • typestringrequired

    What happened.

  • timestampstring (date-time)required

    When, in UTC.

  • dataStayDatarequired

    What 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
    • eventEventReference

      The event something happened at.

      Show the fields
      • eventIdstring (uuid)

        The event's id.

      • slugstring

        The event's address: /e/{slug}.

      • namestring

        The event's name.

    • stayobject

      The stay, by its ids and dates.

      Show the fields
      • stayIdstring (uuid)

        The stay's id.

      • hotelIdstring (uuid)

        Its hotel, when it has one.

      • rolestring

        Whose stay: speaker, crew, vip, sponsor, team or other.

      • statusstring

        Requested, 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

JSON
{
  "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-idstring

    The message's id, msg_ and 32 hex characters: the same on every attempt, so a repeat can be recognised.

  • webhook-timestampinteger

    When it was sent, in Unix seconds. Refuse one more than five minutes old.

  • webhook-signaturestring

    v1, 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

  • typestringrequired

    What happened.

  • timestampstring (date-time)required

    When, in UTC.

  • dataShiftDatarequired

    What 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
    • eventEventReference

      The event something happened at.

      Show the fields
      • eventIdstring (uuid)

        The event's id.

      • slugstring

        The event's address: /e/{slug}.

      • namestring

        The event's name.

    • shiftobject

      The shift and the volunteer, by id.

      Show the fields
      • shiftIdstring (uuid)

        The crew shift's id.

      • crewMemberIdstring (uuid)

        The crew member's id.

      • howstring

        For shift.signed_up: signUp, approved, waitlist or swap. For shift.dropped: dropped, approved or swap.

      • atUtcstring (date-time)

        When, in UTC.

Example

JSON
{
  "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-idstring

    The message's id, msg_ and 32 hex characters: the same on every attempt, so a repeat can be recognised.

  • webhook-timestampinteger

    When it was sent, in Unix seconds. Refuse one more than five minutes old.

  • webhook-signaturestring

    v1, 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

  • typestringrequired

    What happened.

  • timestampstring (date-time)required

    When, in UTC.

  • dataShiftDatarequired

    What 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
    • eventEventReference

      The event something happened at.

      Show the fields
      • eventIdstring (uuid)

        The event's id.

      • slugstring

        The event's address: /e/{slug}.

      • namestring

        The event's name.

    • shiftobject

      The shift and the volunteer, by id.

      Show the fields
      • shiftIdstring (uuid)

        The crew shift's id.

      • crewMemberIdstring (uuid)

        The crew member's id.

      • howstring

        For shift.signed_up: signUp, approved, waitlist or swap. For shift.dropped: dropped, approved or swap.

      • atUtcstring (date-time)

        When, in UTC.

Example

JSON
{
  "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-idstring

    The message's id, msg_ and 32 hex characters: the same on every attempt, so a repeat can be recognised.

  • webhook-timestampinteger

    When it was sent, in Unix seconds. Refuse one more than five minutes old.

  • webhook-signaturestring

    v1, 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

  • typestringrequired

    What happened.

  • timestampstring (date-time)required

    When, in UTC.

  • dataTravelDatarequired

    What 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
    • eventEventReference

      The event something happened at.

      Show the fields
      • eventIdstring (uuid)

        The event's id.

      • slugstring

        The event's address: /e/{slug}.

      • namestring

        The event's name.

    • travelobject

      The 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.

      • changestring

        What changed: requested, approved, cancelled, leg, delay, pickup or deleted.

      • rolestring

        Whose travel: speaker, crew, vip, sponsor, team or other.

      • planStatusstring

        The plan: requested, approved or cancelled.

      • legStatusstring

        The journey: requested, booked, confirmed, changed or cancelled.

      • directionstring

        Arrival or departure.

      • modestring

        Flight, 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

JSON
{
  "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-idstring

    The message's id, msg_ and 32 hex characters: the same on every attempt, so a repeat can be recognised.

  • webhook-timestampinteger

    When it was sent, in Unix seconds. Refuse one more than five minutes old.

  • webhook-signaturestring

    v1, 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

  • typestringrequired

    What happened.

  • timestampstring (date-time)required

    When, in UTC.

  • dataClaimDatarequired

    What 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
    • eventEventReference

      The event something happened at.

      Show the fields
      • eventIdstring (uuid)

        The event's id.

      • slugstring

        The event's address: /e/{slug}.

      • namestring

        The event's name.

    • claimobject

      The 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.

      • rolestring

        The claimant's role: speaker, crew, vip, sponsor, team or other.

      • statusstring

        Submitted, inReview, approved, paid or rejected.

      • currencystring

        The 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

JSON
{
  "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-idstring

    The message's id, msg_ and 32 hex characters: the same on every attempt, so a repeat can be recognised.

  • webhook-timestampinteger

    When it was sent, in Unix seconds. Refuse one more than five minutes old.

  • webhook-signaturestring

    v1, 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

  • typestringrequired

    What happened.

  • timestampstring (date-time)required

    When, in UTC.

  • dataClaimDatarequired

    What 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
    • eventEventReference

      The event something happened at.

      Show the fields
      • eventIdstring (uuid)

        The event's id.

      • slugstring

        The event's address: /e/{slug}.

      • namestring

        The event's name.

    • claimobject

      The 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.

      • rolestring

        The claimant's role: speaker, crew, vip, sponsor, team or other.

      • statusstring

        Submitted, inReview, approved, paid or rejected.

      • currencystring

        The 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

JSON
{
  "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-idstring

    The message's id, msg_ and 32 hex characters: the same on every attempt, so a repeat can be recognised.

  • webhook-timestampinteger

    When it was sent, in Unix seconds. Refuse one more than five minutes old.

  • webhook-signaturestring

    v1, 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

  • typestringrequired

    What happened.

  • timestampstring (date-time)required

    When, in UTC.

  • dataClaimDatarequired

    What 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
    • eventEventReference

      The event something happened at.

      Show the fields
      • eventIdstring (uuid)

        The event's id.

      • slugstring

        The event's address: /e/{slug}.

      • namestring

        The event's name.

    • claimobject

      The 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.

      • rolestring

        The claimant's role: speaker, crew, vip, sponsor, team or other.

      • statusstring

        Submitted, inReview, approved, paid or rejected.

      • currencystring

        The 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

JSON
{
  "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.