Skip to main content
Webhooks let you receive HTTP POST requests when things happen in your Tickable account, like a new order or a scanned ticket.

Supported Events

EventDescription
order.createdA new order has been placed
order.confirmedAn order payment has been confirmed
ticket.scannedA ticket was scanned at the door
ticket.cancelledA ticket was cancelled

Creating a Webhook

You can create webhooks via the API or from the Tickable dashboard.
curl -X POST https://api.tickable.io/webhooks \
  -H "Authorization: Bearer tk_live_YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "url": "https://yourapp.com/webhook",
    "event_types": ["order.created", "ticket.scanned"],
    "description": "Production webhook"
  }'
Your webhook endpoint must be publicly accessible and respond with a 2xx status code within 10 seconds.

Receiving Webhooks

When an event occurs, Tickable sends a POST request to your URL:
{
  "event_type": "order.created",
  "timestamp": "2026-04-09T14:30:00Z",
  "data": {
    "order_id": "550e8400-e29b-41d4-a716-446655440000",
    "event_id": "7c9e6679-7425-40de-944b-e07fc1f90ae7"
  }
}

Example Handler

app.post('/webhook', express.json(), (req, res) => {
  const { event_type, data } = req.body;

  switch (event_type) {
    case 'order.created':
      console.log('New order:', data.order_id);
      break;
    case 'ticket.scanned':
      console.log('Ticket scanned:', data.ticket_id);
      break;
  }

  res.sendStatus(200);
});

Managing Webhooks

List All Webhooks

curl https://api.tickable.io/webhooks \
  -H "Authorization: Bearer tk_live_YOUR_API_KEY"

Delete a Webhook

curl -X DELETE https://api.tickable.io/webhooks/7c9e6679-7425-40de-944b-e07fc1f90ae7 \
  -H "Authorization: Bearer tk_live_YOUR_API_KEY"

Best Practices

Always respond quickly to webhook requests. If you need to do heavy processing, acknowledge the webhook with a 200 and process the data asynchronously.
  • Respond fast — return 200 immediately, process in the background
  • Handle duplicates — webhooks may be delivered more than once, use the event ID to deduplicate
  • Subscribe only to what you need — reduce noise by selecting specific event types