Payload Versions
Description of the Web hook payload versions
Payload Versions
Zaui supports versioned webhook payloads so existing integrations can remain stable while newer integrations adopt an updated schema and additional data fields.
Each webhook can be configured to send a specific payload version. This allows existing consumers to remain on the legacy payload while new or updated integrations move to the modernized structure.
Available Versions
2016-04-10
Legacy webhook payload format.
Use this version if your current integration depends on the original payload structure and formatting.
2026-04-10
Current webhook payload format.
Use this version for new integrations or when updating an existing integration to the modernized schema. This version introduces structural, type, and field-level changes, including pass-related payload support and additional booking, activity, and transaction attributes.
How Version Selection Works
Webhook payload versioning is configured per webhook record.
When creating or editing a webhook in Zaui, you can choose which payload version that webhook should send:
A webhook set to
2016-04-10continues to receive the legacy payload shape.A webhook set to
2026-04-10receives the updated payload shape and field set.
The delivered payload includes eventNotificationApiVersion, which identifies the version used for that webhook event.
Which Version Should I Use?
Use 2026-04-10 for all new integrations.
If you already consume Zaui webhooks in production and your parser depends on the legacy structure, remain on 2016-04-10 until you have tested and updated your integration for the new schema.
What Changed in 2026-04-10
The 2026-04-10 payload modernizes the webhook schema in several important ways:
collections are emitted as JSON arrays
numeric fields are emitted as native numbers
boolean fields are emitted as native booleans
date-time fields use ISO 8601 with timezone offset
missing scalar values use
nulladditional booking, activity, and transaction fields are included
pass sales and pass usage data are supported
These changes improve consistency, reduce parsing complexity, and make the payload easier to consume in modern systems.
Key Differences Between Versions
Collections
Legacy payloads may wrap collections as objects. The modern payload uses arrays consistently.
Legacy:
Current:
This same pattern applies to sections such as activities, products, giftCertificates, and transactions.
Numbers
Legacy payloads often emit numeric values as strings. The modern payload emits native numbers.
Legacy:
Current:
Booleans
Legacy payloads may emit booleans as strings. The modern payload emits booleans directly.
Legacy:
Current:
Date and Time Formatting
Legacy payloads use mixed and inconsistent date formats. The modern payload uses ISO 8601 with timezone offset.
Legacy:
Current:
Null and Empty Values
Legacy payloads may use empty objects or empty strings inconsistently. The modern payload uses null for missing scalar values where appropriate.
Legacy:
Current:
Event Envelope
The event envelope in 2026-04-10 includes standard event metadata plus the selected payload version.
Example
Notable Envelope Fields
eventNotificationGroupId
Event group identifier
eventNotificationTypeId
Event type identifier
eventNotificationType
Event name
eventNotificationTypeV2
Normalized event type string
eventNotificationDateTime
Timestamp of the event in ISO 8601 format
eventNotificationApiVersion
Payload version selected on the webhook
eventNotificationName
Webhook name
eventNotificationSystem
Source system name
eventNotificationSystemUrl
Source system URL
Booking Object
The booking object in 2026-04-10 includes both structural improvements and additional fields.
Example
Booking Fields
bookingId
Booking identifier
isBookingCancelled
Indicates whether the booking is cancelled
bookingReference
Booking reference value emitted in the current payload
bookingRef
Customer-facing booking reference
agentRef
Optional reseller-supplied reference
bookingSaleDateTime
Booking sale date and time
bookingCloseDateTime
Booking close date and time
Notes
agentRefis populated fromtbooking.referenceIdfor agent/OTA bookings. For direct bookings (or whenreferenceIdis not present), the value isnull.Both
bookingReferenceandbookingRefmay be present in the current payload.
Booking Revenue
The bookingRevenue structure in 2026-04-10 uses native numeric values.
Example
Consumers should treat these values as numbers, not strings.
Customer Data
Customer records are emitted as array items in the current version and use typed values consistently.
Example
Activity Object
In 2026-04-10, activity payloads include modernized typing as well as additional contextual fields.
Example
Activity Fields
activityId
Activity identifier
activityType
Activity type
activityName
Activity name
activityDate
Activity date in ISO 8601 format
activityTime
Activity time
activityDescription
Descriptive context for the booked activity instance
activityDuration
Duration of the activity in HH:MM:SS format
Notes
For point-to-point activities, activityDescription may represent the actual passenger journey segment rather than the full route.
For point-to-point activities, activityDuration may reflect the time between departure and arrival stops.
Transaction Object
The transactions array in 2026-04-10 contains modernized transaction records and supports pass usage data.
Example
Transaction Fields
id
Transaction identifier
attributeId
Transaction attribute identifier
purchaseType
Purchase type identifier
transactionType
Transaction type identifier
transactionName
Transaction type name
transactionTypeLedgerEntry
Ledger entry classification
amount
Transaction amount
dateCreated
Transaction creation timestamp
productId
Related product identifier
productDate
Related product date
activityId
Related activity identifier
activityDateTime
Related activity date-time
resellerCompanyId
Reseller company identifier
resellerCompanyName
Reseller company name
resellerInvoiceNumber
Reseller invoice number
resellerRateName
Reseller rate name
resellerRate
Reseller rate value
resellerNet
Reseller net value
discountRate
Discount rate
promoCodeName
Promo code name
promoCodeRate
Promo code rate
promoCodeRateType
Promo code rate type
resellerBusinessNumber
Reseller business number
passUsage
Nested pass usage object when applicable
Important Note
Do not assume transactionReference and merchantRef are currently available in 2026-04-10.
For standard payment transactions (for example, credit card and cash payments), both lineItemId and packageId are returned as null. These fields are only populated where item-level transaction context applies.
Earlier source material identified them as planned, and the validated live payload used for documentation does not include them. Until explicitly confirmed in a live implementation, integrations should not treat them as guaranteed fields.
Pass Data
The 2026-04-10 payload supports pass-related information for bookings and transactions.
Top-Level Pass Support
The booking payload can include:
passespass-related transaction information
pass usage details on relevant transactions
Example Empty State
When a booking includes pass sales, the passes array may contain pass details such as pass metadata, pricing, validity, and usage-related values.
Pass Usage on Transactions
In the current live 2026-04-10 implementation, pass usage is represented as a nested passUsage object on the transaction.
Example
Pass Usage Fields
passId
Pass identifier
redemptionCode
Pass redemption code
usageType
Pass usage type
unitsUsed
Amount of pass value or units used
passName
Pass name
passBalanceRemaining
Remaining balance after redemption
transactionId
Related transaction identifier
itemType
Redeemed item type
itemId
Redeemed item identifier
itemName
Redeemed item name
amount
Amount associated with the redemption
redeemedOn
Redemption timestamp
Breaking Changes to Consider Before Migrating
Switching a webhook from 2016-04-10 to 2026-04-10 may require parser changes.
Before switching versions, confirm that your integration can handle:
arrays instead of object-wrapped collections
numbers instead of numeric strings
booleans instead of string booleans
ISO 8601 date-time values with timezone offsets
nullvalues for optional scalar fieldsadditional booking, activity, and transaction fields
pass-related payload sections when applicable
Migration Checklist
Before enabling 2026-04-10 on an existing webhook:
Update your parser to support array-based collections.
Update type handling for numbers and booleans.
Update date parsing for ISO 8601 with timezone offsets.
Update null-handling for optional values.
Validate any reconciliation logic that depends on transaction fields.
Test pass purchases and pass redemptions if your implementation uses passes.
Review the live payload output in a test environment before switching production endpoints.
Recommended Best Practice
For new webhook integrations, use 2026-04-10.
For existing consumers of the legacy webhook format, migrate only after validating payload parsing and downstream processing against the modernized schema.
FAQ
What should the API Version field be set to?
Use 2026-04-10 for new integrations. Keep 2016-04-10 only for backward compatibility where an existing parser still depends on the legacy schema.
Is the version configured globally?
No. Versioning is selected per webhook record.
Does 2026-04-10 include pass-related data?
Yes. The current payload supports pass data and nested passUsage on transactions where applicable.
Are transactionReference and merchantRef available in 2026-04-10?
Do not assume they are currently available. They are not present in the validated live example used for this documentation.
Where should the API Version help link in the UI point?
It should point to this page: /webhooks/payload-versions
Last updated