How the Nezasa Booking API Actually Works: A Non-Technical Walkthrough
Key takeaway: A Nezasa booking sync runs through five steps: a webhook trigger, an API call to the Bookings endpoint, a loop over each service component, a match-or-create check against existing records, and an orphan-cleanup pass that removes deleted components. The entire process uses the documented Nezasa Bookings API (v1.13) and requires no custom code — only a no-code automation platform and an understanding of the booking data structure.
What triggers the Nezasa sync process?
The sync process is triggered by a webhook that fires automatically whenever a booking is created or updated inside Nezasa/TripBuilder. This webhook delivers an event payload containing basic booking identifiers — including a reference ID — without requiring any manual action from operations staff or a scheduled poll of the Nezasa system.
Because the trigger is event-based rather than a fixed schedule, changes in Nezasa can propagate to the destination system (SharePoint or Google Sheets) close to real time, rather than waiting for the next batch sync window.
How does the automation fetch full booking details from the Nezasa API?
Once triggered, the automation makes an authenticated GET request to the Nezasa Bookings API at /bookings/v1.13/{refId}, requesting the booking record with its components and amenities included via query parameters. This single API call returns the complete booking payload needed for the rest of the pipeline — travel agent details, booking status, and the full list of service components attached to that booking.
| API detail | Value used |
|---|---|
| Endpoint | /bookings/v1.13/{refId} |
| Method | GET |
| Auth | HTTP Basic Auth |
| Key query parameter | include=components,amenities |
| Response format | application/vnd.api+json |
How are individual service components processed?
Each service component attached to a booking — hotel, transfer, activity, or car rental — is processed individually in a loop, with date and time fields mapped according to that component’s type, since Nezasa stores scheduling data differently depending on the component.
| Component type | Date fields used |
|---|---|
| Hotel | Start/end date-time |
| Transfer | Start date-time |
| Activity | Start date-time |
| Car rental | Pickup date / dropoff date (with time extracted separately) |
This type-specific mapping is necessary because a single generic “start date” field would produce incorrect or blank values for car rentals, which use pickup and dropoff fields instead of a single start/end pair.
How does the system avoid duplicate entries?
The system avoids duplicates by checking the destination list (SharePoint, in this implementation) for an existing row matching the component’s unique ID before writing any data — if a match is found, the existing row is updated; if not, a new row is created. This match-or-create logic runs on every sync cycle, which means the same booking can be synced repeatedly without ever generating a duplicate row.
What happens when a component is cancelled or deleted in Nezasa?
A separate check compares every component currently stored in the destination list against the components still present in the latest Nezasa response for that booking; any component found in the destination but missing from Nezasa is treated as an orphan and deleted automatically. This orphan-cleanup step prevents the destination list from silently accumulating stale rows for cancelled or removed components — a common failure mode in simpler one-directional sync setups that only handle creation and updates.
Frequently asked questions
What version of the Nezasa Bookings API does this pipeline use?
Version 1.13, accessed via the endpoint pattern /bookings/v1.13/{refId}, with components and amenities requested through the include query parameter.
Do I need a developer to access the Nezasa API?
No developer is required to use the API itself — it is HTTP Basic Auth-secured and documented. Building the automation requires familiarity with a no-code tool like Make.com, not custom software development.
How often does the sync run?
It is event-driven via webhook, so it can run close to real time on every booking change, rather than on a fixed daily or hourly schedule — though a scheduled fallback sync is a reasonable addition for resilience.
Want this working for your team?
Book a free 30-minute call and I'll tell you honestly what can — and can't — be automated.
Book a free 30-min call