For the complete documentation index, see llms.txt. This page is also available as Markdown.

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

Field
Type
Nullable
Description

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

Field
Type
Nullable
Description

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.

Field
Type
Nullable
Description

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

Field
Type
Nullable
Description

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

Field
Type
Nullable
Description

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.

Field
Type
Nullable
Description

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.

Field
Type
Nullable
Description

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

Field
Type
Nullable
Description

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

Field
Type
Nullable
Description

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

Field
Type
Nullable
Description

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:

Field
Type
Nullable
Description

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.

Field
Type
Nullable
Description

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.

Field
Type
Nullable
Description

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.

Field
Type
Nullable
Description

_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

  • lineItemId is persistent across amendments for unchanged booked lines.

  • New booked lines receive new lineItemId values.

  • Removed booked lines no longer appear in subsequent payloads.

  • Pre-migration rows return lineItemId: null.

  • agentRef is populated from tbooking.referenceId.

  • Direct bookings return agentRef: null.

  • Do not assume transactionReference or merchantRef are currently available unless confirmed for your implementation.

Last updated