Booking Webhook Payload Schema
Booking Webhook Payload Schema
This page describes the 2026-04-10 Booking Webhook payload structure.
For version migration details, see Payload Versions.
Root Object
eventNotificationUniqueId
string
No
Unique webhook event identifier. Preserved on replay.
eventNotificationCompanyName
string
No
Company name.
eventNotificationCompanyIdentifier
string
No
Company identifier.
eventNotificationGroupId
integer
No
Event group identifier.
eventNotificationTypeId
integer
No
Event type identifier.
eventNotificationType
string
No
Event type name.
eventNotificationTypeV2
string
No
Normalized event type string.
eventNotificationDateTime
string
No
ISO 8601 event timestamp.
eventNotificationName
string
No
Webhook name.
eventNotificationSystem
string
No
Source system.
eventNotificationSystemUrl
string
Yes
Source system URL.
eventNotificationApiVersion
string
No
Webhook payload version.
eventData
object
No
Payload body.
Event Data
currencySettings
object
No
Currency metadata.
booking
object
No
Booking payload.
Currency Settings
Monetary values are returned in minor units. Use currencyPrecision to convert values to the display currency amount.
Example: 7840 with currencyPrecision: 2 = 78.40.
currency
string
No
Currency code, for example CAD, NZD, or USD.
currencyPrecision
integer
No
Number of decimal places used by the currency.
Example:
Booking Object
bookingId
integer
No
Internal booking ID.
isBookingCancelled
boolean
No
Indicates whether the booking is cancelled.
bookingReference
string
Yes
Booking reference. Present for backward compatibility.
bookingRef
string
Yes
Canonical customer-facing booking reference.
agentRef
string
Yes
Agent/OTA reference from tbooking.referenceId. null for direct bookings or when not present.
bookingSaleDateTime
string
Yes
ISO 8601 booking sale timestamp.
bookingCloseDateTime
string
Yes
ISO 8601 booking close timestamp.
bookingRevenue
object
No
Booking revenue totals.
customers
array
No
Customer records.
activities
array
No
Booked activity lines.
products
array
No
Booked product lines.
giftCertificates
array
No
Gift certificate lines.
passes
array
No
Pass sale lines.
transactions
array
No
Transaction records.
Booking Revenue
bookingSubTotal
number
No
Booking subtotal in minor units.
bookingTax
number
No
Booking tax in minor units.
bookingTotal
number
No
Booking total in minor units.
Example:
Customers
customers is always an array.
customerId
integer
No
Customer ID.
firstName
string
Yes
First name.
lastName
string
Yes
Last name.
birthDate
string
Yes
Birth date, when available.
homePhone
string
Yes
Home phone.
mobilePhone
string
Yes
Mobile phone.
email
string
Yes
Email address.
addressLine1
string
Yes
Address line 1.
addressLine2
string
Yes
Address line 2.
city
string
Yes
City.
state
string
Yes
State/province.
zipCode
string
Yes
Postal/ZIP code.
country
string
Yes
Country.
username
string
Yes
Username/login identifier.
newsLetterOptIn
boolean
No
Newsletter opt-in flag.
loyaltyProgramOptIn
boolean
No
Loyalty opt-in flag.
allowsPrivateDataSharing
boolean
No
Private data sharing flag.
Activities
activities is always an array.
lineItemId
string
Yes
Immutable UUID for the booked activity line. null for pre-migration records.
activityId
integer
No
Activity ID.
packageId
integer
Yes
0 for standalone activity; non-zero when part of a package.
activityAccountingCode
string
Yes
Accounting code.
activityType
string
Yes
Activity type.
activityName
string
Yes
Master activity/product name.
activityDescription
string
Yes
Booked activity description. For P2P, this may be the booked travel segment.
activityDuration
string
Yes
Activity duration in HH:MM:SS format.
activityDate
string
Yes
ISO 8601 activity date.
activityTime
string
Yes
Activity time.
activityStatus
string
Yes
Activity status.
activitySubTotal
number
No
Activity subtotal in minor units.
activityTax
number
No
Activity tax in minor units.
activityBaseRate
number
Yes
Base rate in minor units.
activityDynamicPrice
number
Yes
Dynamic price in minor units.
taxes
array
No
Tax records.
passengers
object
No
Passenger counts.
priceCodeDetails
object
No
Passenger price details.
Taxes
taxId
integer
No
Tax ID.
taxName
string
Yes
Tax name.
taxAccountingCode
string
Yes
Tax accounting code.
taxableTax
boolean
No
Whether the tax is taxable.
taxRate
number
No
Tax rate.
taxRateTypeId
integer
No
Tax rate type ID.
taxRateTypeIdName
string
Yes
Tax rate type name.
taxAmount
number
No
Tax amount in minor units.
Passengers
seniors
integer
No
Senior passenger count.
adults
integer
No
Adult passenger count.
students
integer
No
Student passenger count.
children
integer
No
Child passenger count.
infants
integer
No
Infant passenger count.
Price Code Details
priceCodeId
integer
No
Price code ID.
seniorsPrice
number
No
Senior price in minor units.
seniorsSurplusFee
number
No
Senior surplus fee in minor units.
adultsPrice
number
No
Adult price in minor units.
adultsSurplusFee
number
No
Adult surplus fee in minor units.
studentsPrice
number
No
Student price in minor units.
studentsSurplusFee
number
No
Student surplus fee in minor units.
childrenPrice
number
No
Child price in minor units.
childrenSurplusFee
number
No
Child surplus fee in minor units.
infantsPrice
number
No
Infant price in minor units.
infantsSurplusFee
number
No
Infant surplus fee in minor units.
Products, Gift Certificates, and Passes
products, giftCertificates, and passes are always arrays.
Each purchasable line may include:
lineItemId
string
Yes
Immutable UUID for the purchased line. null for pre-migration records.
Additional fields depend on the purchasable item type.
Transactions
transactions is always an array.
id
integer
No
Transaction ID.
attributeId
integer
Yes
Related attribute ID.
purchaseType
integer
Yes
Purchase type ID.
transactionType
integer
Yes
Transaction type ID.
transactionName
string
Yes
Transaction name.
transactionTypeLedgerEntry
string
Yes
Ledger entry classification.
amount
number
No
Transaction amount in minor units.
dateCreated
string
Yes
ISO 8601 transaction timestamp.
productId
integer
Yes
Related product ID.
productDate
string
Yes
Related product date.
activityId
integer
Yes
Related activity ID.
activityDateTime
string
Yes
Related activity date-time.
lineItemId
string
Yes
Item-scoped line identifier. null for standard payment transactions and pre-migration records.
packageId
integer
Yes
Package identifier. null for standard payment transactions.
resellerCompanyId
integer
Yes
Reseller company ID.
resellerCompanyName
string
Yes
Reseller company name.
resellerInvoiceNumber
string
Yes
Reseller invoice number.
resellerRateName
string
Yes
Reseller rate name.
resellerRate
number
No
Reseller rate.
resellerNet
number
No
Reseller net amount.
discountRate
number
No
Discount rate.
promoCodeName
string
Yes
Promo code name.
promoCodeRate
number
No
Promo code rate.
promoCodeRateType
string
Yes
Promo code rate type.
resellerBusinessNumber
string
Yes
Reseller business number.
passUsage
object
Yes
Pass usage details when applicable.
Transaction Line Item Rules
lineItemId and packageId are populated only where item-level transaction context applies.
For standard payment transactions, such as credit card or cash payments:
For item-scoped transactions, such as discount, promo, reseller voucher, or reseller invoice transactions, lineItemId identifies the specific booked line the transaction applies to.
Pass Usage
When a transaction is linked to pass usage, passUsage is emitted as a nested object.
passId
integer
No
Pass ID.
redemptionCode
string
Yes
Redemption code.
usageType
string
Yes
Usage type.
unitsUsed
number
No
Units used.
passName
string
Yes
Pass name.
passBalanceRemaining
number
No
Remaining pass balance.
transactionId
integer
No
Related transaction ID.
itemType
string
Yes
Redeemed item type.
itemId
integer
Yes
Redeemed item ID.
itemName
string
Yes
Redeemed item name.
amount
number
No
Amount associated with the redemption.
redeemedOn
string
Yes
ISO 8601 redemption timestamp.
Example:
Replay Fields
Replay payloads include two additional root-level fields.
_isReplayPayload
boolean
No
Present only on replay payloads. Always true.
replayOfEventLogId
integer
No
Event log ID being replayed.
These fields are only present when a webhook delivery is replayed.
Notes
lineItemIdis persistent across amendments for unchanged booked lines.New booked lines receive new
lineItemIdvalues.Removed booked lines no longer appear in subsequent payloads.
Pre-migration rows return
lineItemId: null.agentRefis populated fromtbooking.referenceId.Direct bookings return
agentRef: null.Do not assume
transactionReferenceormerchantRefare currently available unless confirmed for your implementation.
Last updated