Introduction

Webhooks allow FIXR to send updates to clients in response to certain triggers. Once a webhook has been configured, a client will be sent data directly rather than having to poll an API for changes.

Configuration

Webhooks are triggered by events in FIXR. At the moment, we support the following events:

Event NameEvent Description
Event createdFires a webhook when an event is created.
Event updatedFires a webhook when an event is updated.
Event publishedFires a webhook when an event is changed to Live.
Event endedFires a webhook when an event has ended.
Ticket soldFires a webhook whenever a ticket is purchased.
Ticket scannedFires a webhook whenever a ticket is scanned (admitting the attendee to the venue).
Customer updatedFires a webhook whenever a customer updates their profile details and/or contact preferences.

Security

Authentication

Currently, the only supported authentication type is bearer token. This will be sent in the Authorization header in the form Bearer <token> where <token> is the configured token. This token is fixed.

For example, if the token was abcdef, the header would be Authorization: Bearer abcdef.

When data is received via webhook, your endpoint should check the token is provided and is correct.

HTTPS

All configured webhook URLs must use HTTPS.

Data Structures

Data is sent as an application/json POST request.

  • Date/time strings are in the format "2023-08-25T16:58:00Z"
  • Monetary amounts are returned as strings, e.g "15.25"
  • Contact preference option strings can be one of the following:
    • "opt_in"
      • User has positively opted in to receiving marketing communications
    • "opt_out"
      • User has positively opted out of receiving marketing communications
    • "soft_opt_in"
      • User has not explicitly opted in or out of receiving marketing communications and defaults to true
    • "soft_opt_out"
      • User has not explicitly opted in or out of receiving marketing communications and defaults to false

Trigger Response Structure

All responses to triggers will respond with the same structure outline:

{
  "event": "Trigger e.g. event_created",
  "payload": {"Examples":  "see below"},
  "created": "String timestamp of when the message was sent",
  "message_id": "ID of the message",
  "fixr_account_id": "Specific ID of the FIXR Event Organiser account from where the webhook was configured"
}

Example Trigger Responses

The following are examples of what the body of a fired webhook POST request may contain for each trigger.
Not all fields will be populated. If a field is not applicable (for instance if a ticket holder does not disclose a gender), the field will be null.

Event Created

{
  "event": "event_created", 
  "payload": {
    "capacity": 150, 
    "category": "Courses, Training and Workshops", 
    "close_time": "2023-09-22T22:59:00UTC", 
    "created_at": "2023-09-20T10:57:14UTC", 
    "created_by": {
      "user_uuid": "f68475c8-5a8e-4b1e-841f-13f37cc8a66b", 
      "first_name": "Harry", 
      "last_name": "Potter", 
      "email": "harry.potter@hogwarts.co"
    }, 
    "description": "Event Created Webhook Response Description", 
    "event_id": "919509149", 
    "event_url": "https://eventurl.com", 
    "last_entry": "2023-09-22T18:00:00UTC", 
    "name": "FIXR Event Created Webhook Response", 
    "open_time": "2023-09-22T04:00:00UTC", 
    "status": "Draft", 
    "tags": ["special-event", "lecture"], 
    "location": {
      "location_id": "15128", 
      "name": "02 Arena", 
      "address": "London SE10 0DX", 
      "online": false, 
      "postcode": "SE10 0DX", 
      "country": "United Kingdom", 
      "city": "London", 
      "timezone": "Europe/London"
    }
  }, 
  "created": "2023-09-20T10:57:15UTC", 
  "message_id": "8552615258943695",
  "fixr_account_id": "930327450"
}

Event Updated

The entire event metadata is sent on an event update, even if only a single field is updated

{
  "event": "event_updated", 
  "payload": {
    "capacity": 150, 
    "category": "Courses, Training and Workshops", 
    "close_time": "2023-09-22T22:59:00UTC", 
    "created_at": "2023-09-20T10:57:14UTC", 
    "created_by": {
      "user_uuid": "f68475c8-5a8e-4b1e-841f-13f37cc8a66b", 
      "first_name": "Harry", 
      "last_name": "Potter", 
      "email": "harry.potter@hogwarts.co"
    }, 
    "description": "Updated Description",
    "event_id": "919509149", 
    "event_url": "https://eventurl.com", 
    "last_entry": "2023-09-22T18:00:00UTC", 
    "name": "FIXR Event Created Webhook Response", 
    "open_time": "2023-09-22T04:00:00UTC", 
    "status": "Draft", 
    "tags": ["special-event", "lecture"], 
    "location": {
      "location_id": "15128", 
      "name": "02 Arena", 
      "address": "London SE10 0DX", 
      "online": false, 
      "postcode": "SE10 0DX", 
      "country": "United Kingdom", 
      "city": "London", 
      "timezone": "Europe/London"
    }
  }, 
  "created": "2023-09-20T10:57:15UTC", 
  "message_id": "8552615258943696",
  "fixr_account_id": "930327450"
}

Event Published

{
  "event": "event_published", 
  "payload": {
    "event_id": "919509149",
    "name": "FIXR Event Created Webhook Response",
    "status": "Live"
  },
  "created": "2023-09-20T12:57:15UTC",
  "message_id": "8552615258943697",
  "fixr_account_id": "930327450"
}

Event Ended

{
  "event": "event_ended", 
  "payload": {
    "capacity": 150, 
    "category": "Courses, Training and Workshops", 
    "close_time": "2023-09-22T22:59:00UTC", 
    "created_at": "2023-09-20T10:57:14UTC", 
    "created_by": {
      "user_uuid": "f68475c8-5a8e-4b1e-841f-13f37cc8a66b", 
      "first_name": "Harry", 
      "last_name": "Potter", 
      "email": "harry.potter@hogwarts.co"
    }, 
    "description": "Updated Description",
    "event_id": "919509149", 
    "event_url": "https://eventurl.com", 
    "last_entry": "2023-09-22T18:00:00UTC", 
    "name": "FIXR Event Created Webhook Response", 
    "open_time": "2023-09-22T04:00:00UTC", 
    "status": "Live", 
    "tags": ["special-event", "lecture"], 
    "location": {
      "location_id": "15128", 
      "name": "02 Arena", 
      "address": "London SE10 0DX", 
      "online": false, 
      "postcode": "SE10 0DX", 
      "country": "United Kingdom", 
      "city": "London", 
      "timezone": "Europe/London"
    },
    "total_revenue": [
      {"currency": "GBP", "amount": "150.75"},
      {"currency": "USD", "amount": "52.00"}
    ],
    "tickets_sold": 150,
    "tickets_transferred": 10,
    "total_orders": 120
  },
  "created": "2023-09-22T22:59:00UTC",
  "message_id": "8552615258943698",
  "fixr_account_id": "930327450"
}

Ticket Sold

{
  "event": "ticket_sold",
  "payload": {
    "booking_fee": {
      "amount": "0.82",
      "currency": "GBP"
    },
    "event_id": "919509149",
    "event_name": "FIXR Event Created Webhook Response",
    "event_url": "https://eventurl.com", 
    "order_reference": "604bdd96",
    "price": {
      "amount": "8.0",
      "currency": "GBP"
    },
    "promo_code": "PROMOCODE",
    "reserved_at": "2023-09-20T11:11:05UTC",
    "sold_at": "2023-09-20T11:11:17UTC",
    "ticket_holders": [
      {
        "first_name": "Ron",
        "last_name": "Weasley",
        "email": "ron.weasley@hogwarts.co",
        "date_of_birth": "1991-05-11",
        "mobile_number": "+44726730425",
        "gender": "m",
        "gender_self_describe": null,
        "user_uuid": "f68475c8-5a8e-4b1e-841f-13f37cc8a66b",
        "contact_preferences_user_response": "opt_in"
      }
    ],
    "ticket_reference": "XHWFtRfJe3QTvkCsagzff3",
    "ticket_type": "General Admission",
    "ticket_type_category": null,
    "ticket_type_id": "540568",
    "timeslot": null,
    "quantity": 3,
    "location": {
      "location_id": "15128",
      "name": "02 Arena",
      "address": "London SE10 0DX",
      "online": false,
      "postcode": "SE10 0DX",
      "country": "United Kingdom",
      "city": "London",
      "timezone": "Europe/London"
    }
  },
  "created": "2023-09-20T11:11:19UTC",
  "message_id": "8552135679096150",
  "fixr_account_id": "930327450"
}

Ticket Scanned

{
  "event": "ticket_scanned",
  "payload": {
    "entry_status": "Confirmed",
    "event_id": "919509149",
    "event_name": "FIXR Event Created Webhook Response",
    "event_url": "https://eventurl.com", 
    "people_in": 3,
    "ticket_holders": [
      {
        "first_name": "Ron",
        "last_name": "Weasley",
        "email": "ron.weasley@hogwarts.co",
        "date_of_birth": "1991-05-11",
        "mobile_number": "+44726730425",
        "gender": "m",
        "gender_self_describe": null,
        "user_uuid": "f68475c8-5a8e-4b1e-841f-13f37cc8a66b",
        "contact_preferences_user_response": "opt_in"
      }
    ],
    "ticket_reference": "XHWFtRfJe3QTvkCsagzff3",
    "ticket_type": "General Admission",
    "ticket_type_id": "540568",
    "ticket_type_category": null,
    "time_in": "2023-09-20T11:16:11UTC",
    "timeslot": null,
    "location": {
      "location_id": "15128",
      "name": "02 Arena",
      "address": "London SE10 0DX",
      "online": false,
      "postcode": "SE10 0DX",
      "country": "United Kingdom",
      "city": "London",
      "timezone": "Europe/London"
    }
  },
  "created": "2023-09-20T11:16:11UTC",
  "message_id": "8552296675518248",
  "fixr_account_id": "930327450"
}

Customer Updated

{
  "event": "customer_updated", 
  "payload": {
    "date_of_birth": "1991-11-05",
    "email": "user@email.com",
    "first_name": "Harry",
    "gender": "m",
    "gender_self_describe": null,
    "last_name": "Potter",
    "mobile_number": "+4445678910",
    "preferred_language": "en",
    "contact_preferences_user_response": "opt_in",
    "user_uuid": "f68475c8-5a8e-4b1e-841f-13f37cc8a66b"
  }, 
  "created": "2023-09-20T10:57:15UTC", 
  "message_id": "8552615258943696",
  "fixr_account_id": "930327450"
}

Copyright © 2013-2021 VIPR Digital Limited