Skip to main content

Documentation Index

Fetch the complete documentation index at: https://docs.jointoevent.io/llms.txt

Use this file to discover all available pages before exploring further.

Webhooks let your server receive automatic notifications when something happens to an attendee in your event. Instead of polling the JTE Panel API for changes, JTE Panel sends an HTTP POST request to a URL you control as soon as an event occurs. This makes it straightforward to trigger workflows, sync attendee data to other systems, or send custom notifications.

Supported events

You choose which event types trigger a webhook delivery. The available event types are:
Event typeWhen it fires
AttendeeRegisteredAn attendee completes the registration form
AttendeeImportedAn attendee is added via bulk import
AttendeeUpdatedAn attendee’s details are modified
AttendeeDeletedAn attendee record is removed
AttendeeCheckedInAn attendee is checked in at the event
AttendeeCheckedOutAn attendee is checked out
AttendeePaymentConfirmedAn attendee’s payment is confirmed
You can subscribe to any combination of these events in a single webhook configuration.

Configuring your webhook endpoint

1

Create a receiving endpoint

Set up an HTTPS endpoint on your server that accepts POST requests with a JSON body. Your endpoint must return a 2xx status code to indicate successful receipt.
2

Open webhook settings

Navigate to your event, open Settings, and select Webhooks.
3

Enter your endpoint URL

Paste your endpoint URL into the Webhook URL field. Use a fully qualified HTTPS URL, for example https://your-app.com/webhooks/jte.
4

Set a webhook secret

Enter a secret string in the Webhook secret field. JTE Panel includes this value in the request so your server can verify that the payload came from JTE Panel and was not tampered with.
5

Select event types

Open the Webhook events dropdown and select all the event types you want to receive.
6

Save

Click Save to activate your webhook configuration.
Your endpoint must be publicly accessible over the internet. Localhost or private network URLs will not receive deliveries.

Webhook configuration reference

webhookUrl
string
required
The HTTPS URL JTE Panel will POST to when a subscribed event occurs.
webhookSecret
string
A shared secret used to sign or validate the webhook payload. Include this in your server’s validation logic to confirm the request is authentic.
webhooks
string[]
required
An array of event type strings specifying which events trigger a delivery. Must contain at least one value. Accepted values: AttendeeRegistered, AttendeeImported, AttendeeUpdated, AttendeeDeleted, AttendeeCheckedIn, AttendeeCheckedOut, AttendeePaymentConfirmed.

Webhook payload

JTE Panel sends a JSON payload in the POST body with details about the event that occurred. The payload includes the event type and attendee data relevant to the triggered event.
{
  "eventType": "AttendeeRegistered",
  "attendee": {
    "id": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
    "email": "attendee@example.com",
    "firstName": "Jane",
    "lastName": "Smith",
    "registeredAt": "2026-05-22T10:30:00Z"
  }
}
The exact fields included in the attendee object depend on which fields are configured on your registration form. Fields the attendee filled in are included in the payload.

Validating webhook requests

Use the webhook secret to verify that incoming requests are genuine. A common pattern is to check a signature header included in the request against an HMAC of the raw request body computed using your secret.
const crypto = require('crypto')

function isValidWebhook(rawBody, signature, secret) {
  const expected = crypto
    .createHmac('sha256', secret)
    .update(rawBody)
    .digest('hex')
  return crypto.timingSafeEqual(
    Buffer.from(signature),
    Buffer.from(expected)
  )
}
Always validate the webhook secret before processing the payload. This prevents your system from acting on forged or replayed requests.