Webhooks and Integrations

Hi.Events webhooks notify your own systems the moment something happens in your account, like a new order, a check-in or a cancellation. They push changes to you. To pull data on your own schedule, or to make changes from another tool, use API keys instead. Most integrations use both.

How to Get There

Webhooks can be set up at two levels:

  • Event level: open your event and click Webhooks in the left sidebar (under Integrations)
  • Organizer level: from the organizer dashboard, click Webhooks in the left sidebar (under Integrations)

An organizer-level webhook fires for every event belonging to that organizer. Event-level webhooks fire only for that one event, and they can’t subscribe to Event Created, Event Updated or Event Archived. Those are only available on organizer-level webhooks.

The Webhooks page is only shown to team members who can see financials, because webhooks send order totals. If you can’t find it, ask an admin on your account. See Managing Your Team.

Creating a Webhook

  1. Click Add Webhook
  2. Enter the Webhook URL: the address on your server that will receive the webhook
  3. Choose the Event Types that should trigger it
  4. Set the Status: Enabled (sends notifications) or Paused (doesn’t)
  5. Click Create Webhook

Hi.Events then shows the Webhook Signing Secret. This is the only time you’ll see it, so copy it and store it somewhere safe.

Event Types

In Event Types you pick them by name. The event_type value is what arrives in the request.

Nameevent_typeSent when
Order Createdorder.createdA new order is placed
Order Updatedorder.updatedAn order is changed
Order Marked as Paidorder.marked_as_paidAn order is marked as paid
Order Refundedorder.refundedAn order is refunded
Order Cancelledorder.cancelledAn order is cancelled
Attendee Createdattendee.createdA new attendee is added
Attendee Updatedattendee.updatedAn attendee is changed
Attendee Cancelledattendee.cancelledAn attendee is cancelled
Product Createdproduct.createdA product is created
Product Updatedproduct.updatedA product is changed
Product Deletedproduct.deletedA product is deleted
Event Createdevent.createdAn event is created (organizer level only)
Event Updatedevent.updatedAn event is changed (organizer level only)
Event Archivedevent.archivedAn event is archived (organizer level only)
Check-in Createdcheckin.createdAn attendee is checked in
Check-in Deletedcheckin.deletedA check-in is undone
Occurrence Cancelledoccurrence.cancelledA date is cancelled on a recurring event

When an order is created or cancelled, a webhook that’s also subscribed to Attendee Created or Attendee Cancelled gets an attendee.created or attendee.cancelled webhook for each attendee on it.

What Hi.Events Sends

When a matching event happens, Hi.Events sends a POST request to your URL with a JSON body:

{
  "event_type": "order.created",
  "event_sent_at": "2025-01-01T12:00:00+00:00",
  "payload": { }
}

payload holds a single resource for whatever triggered the webhook. It isn’t a bundle of everything related to the event: an order.* payload includes the order with its items and attendees, but checkin.created only carries the check-in and its attendee, and product.* only carries the product. The exact fields of each payload are listed in the API reference (My Profile → API keys → API reference).

Box office sales made without a buyer email have email set to null on the order.

Verifying Webhooks

Every request Hi.Events sends is signed with the webhook’s secret. The signature is in the Signature header: a hex-encoded HMAC-SHA256 hash of the raw request body, made with your secret. Requests also carry an X-Webhook-Source: Hi.Events header.

Recompute the signature from the raw request body and your secret, and compare it with the header before trusting a payload.

Delivery, Retries and Logs

  • Hi.Events sends each webhook once, and the attempt times out after 3 seconds
  • A delivery that fails or times out isn’t sent again, so check the logs if something seems to be missing

The webhooks table shows the Last Response code and Last Triggered time for each webhook. To see recent deliveries, open the ⋮ menu and choose View logs. The same menu has Edit webhook and Delete webhook.

Use Cases

  • CRM integration: add new attendees to your CRM as they register
  • Slack notifications: post a message when a ticket is sold
  • Analytics: feed live sales data to your own dashboard
  • Fulfilment: start shipping or preparation when merchandise is bought
  • Zapier and Make: send webhooks to a Zapier or Make webhook trigger to start an automation, and use an API key in their HTTP step when the automation needs to read or change something in Hi.Events

Tips

  • Test your webhook URL with a tool like webhook.site before going live
  • Respond quickly. Your server has 3 seconds before the attempt counts as failed, so queue slow work instead of doing it while Hi.Events waits
  • Always verify the Signature header before acting on a payload
  • Use event-level webhooks for event-specific integrations and organizer-level webhooks for anything that spans events
  • Webhooks can be missed if your server is down or slow to respond. Use the API to catch up, for example by fetching orders since the last one you saw

Last updated