Organiser Help Centre
How can we help? πŸ‘‹

Fan Data

You are able to configure a separate webhook integration for fan activity data to be sent to. Once configured, we will send data to this endpoint when a fan interacts with your event β€” such as listing a ticket, purchasing a ticket, or joining the waitlist.

The data is sent in JSON format and an example of what is sent can be found below.

How to set it up

Data is sent as a POST request and is JSON formatted. The fields that are sent are:

Field
Field Type
Description
action
string
The type of fan activity. Possible values: PURCHASE, LISTING, WAITLIST, AUTO_PURCHASE
metadata
object
An object containing event and transaction metadata
metadata.currency
string
The currency code for the event (e.g. AUD, USD, GBP)
metadata.eventTitle
string
The title of the event on Tixel
metadata.eventCity
string
The city where the event takes place (can be empty)
metadata.eventCountry
string
The ISO country code for the event (e.g. AU, US) (can be empty)
metadata.href
string
The full URL to the event page on Tixel
metadata.totalPrice
number optional
The price in cents associated with the transaction, in the event's currency. For PURCHASE, this is the Tixel sale price. For AUTO_PURCHASE, this is the maximum auto-buy price the buyer configured. For LISTING, this is the listing price on Tixel. Not included for WAITLIST.
user
object
An object containing the fan's information
user.firstName
string
The first name of the fan
user.lastName
string
The last name of the fan
user.userState
string or null
The state/province code for the fan (e.g. VIC, CA, NSW). Extracted from Geographer state ISO code. Can be null if not available.
user.userCountry
string or null
The 2-letter ISO country code for the fan (e.g. AU, US, CA). Can be null if not available.
user.marketingConsent
boolean
Whether the fan has opted in to share their contact information with the promoter
user.email
string
The email of the fan. Always populated.
user.phone
string or null
The phone number of the fan. Always included; null if the user has no phone number.

Actions

The action field indicates what type of fan activity triggered the webhook:

Action
Description
PURCHASE
A fan purchased a ticket for your event
AUTO_PURCHASE
A fan automatically purchased a ticket via the Dibs (auto-buy) feature
LISTING
A fan listed a ticket for sale for your event
WAITLIST
A fan joined the waitlist for your event

Sample Payload β€” Purchase (with marketing consent)

{
    "action": "PURCHASE",
    "metadata": {
        "currency": "AUD",
        "eventTitle": "Summer Music Festival 2025",
        "eventCity": "Melbourne",
        "eventCountry": "AU",
        "href": "https://tixel.com/au/music-tickets/summer-music-festival-2025",
        "totalPrice": 12550
    },
    "user": {
        "firstName": "Jane",
        "lastName": "Doe",
        "userState": "VIC",
        "userCountry": "AU",
        "marketingConsent": true,
        "email": "jane.doe@example.com",
        "phone": "+61474000111"
    }
}

Sample Payload β€” Waitlist (without marketing consent)

{
    "action": "WAITLIST",
    "metadata": {
        "currency": "AUD",
        "eventTitle": "Summer Music Festival 2025",
        "eventCity": "Melbourne",
        "eventCountry": "AU",
        "href": "https://tixel.com/au/music-tickets/summer-music-festival-2025"
    },
    "user": {
        "firstName": "John",
        "lastName": "Smith",
        "userState": "NSW",
        "userCountry": "AU",
        "marketingConsent": false,
        "email": "john.smith@example.com",
        "phone": "+61412345678"
    }
}

Sample Payload β€” Listing

{
    "action": "LISTING",
    "metadata": {
        "currency": "AUD",
        "eventTitle": "Summer Music Festival 2025",
        "eventCity": "Melbourne",
        "eventCountry": "AU",
        "href": "https://tixel.com/au/music-tickets/summer-music-festival-2025",
        "totalPrice": 9900
    },
    "user": {
        "firstName": "Alex",
        "lastName": "Johnson",
        "userState": "QLD",
        "userCountry": "AU",
        "marketingConsent": true,
        "email": "alex.johnson@example.com",
        "phone": "+61474000333"
    }
}

What is sent & how should your application respond

The webhook shares the following characteristics:

  • Data is sent as a POST request in JSON format
  • An X-Secret header is included with each request, containing the webhook secret you configured
  • An X-Request-Id header is included for idempotency and tracking purposes

We need to receive a "successful" status code back to know that this was able to be received by you. A "successful" status is anything in the 2XX range.

You don't need to provide anything in response, and anything provided will be ignored.

If we don't receive a response, or receive a non-successful status, we will retry up to 2 more times (3 attempts total), with 1 minute and then 5 minutes between each attempt..

Turning it off

If you would like to turn this integration off, return to your integrations page, remove the URL, and click β€˜Save’.

Β 
Did this article help?
😞
😐
🀩