We are happy to announce our latest TripBuilder release. Please see these release notes for the most significant changes. Let us know if you have any questions, feedback, or ideas for features or improvements!
By email: [email protected]
Via help center: https://help.tripbuilder.app/en/
.DISCOVERY
New Discovery now shows the partner’s logo in the header
The New Discovery header always showed the company name as text, even when a distribution channel had a logo configured. The header now renders the configured logo instead, falling back to text when no logo is set.
NTP-68905
.DYNAMICPACKAGING
Homepage loading performance
We’ve improved homepage load times through optimised data handling.
NTP-67142
TBO Cache integration
We have completed the integration of TBO as a hotel cache provider, for both price/availability and non-bookable content. Nezasa customers using TBO can benefit from accessing this data source for dynamic packaging use cases.
.PLANNER
Added free-cancellation filter to hotel details page
Filtering for free-cancellation rooms required leaving the hotel details page and going back to the search board. We added a free-cancellation toggle next to the room selector on the details page, so the room list updates instantly without a page reload.
NTP-68335
Fixed multi-day activities not extending the itinerary
Adding a multi-day activity to a short stop didn’t extend the stop or itinerary to match the activity’s length, leaving it crammed onto too few days. Adding a multi-day activity now grows the stop and itinerary to fit, and blocks conflicting changes like overlapping bookings.
NTP-68190
.SMART PLANNER
Added booking-window warning to Smart Planner
When an itinerary’s start date fell inside a distribution channel’s forbidden booking window, Smart Planner gave no warning — unlike the classic planner. Smart Planner now shows the same persistent warning, so users always know when an itinerary is at risk of violating the booking window.
NTP-68491
Added partner custom CSS support to Smart Planner
Partners embedding Smart Planner could only request new styling via settings and a release — there was no way to self-serve. Smart Planner now exposes a stable set of styling classes plus a per-channel custom CSS setting, so partners can style buttons, colors, spacing and more themselves.
NTP-68391
.CHECKOUT
Fixed passenger ages being calculated incorrectly during checkout re-search
When a stored flight offer expired and checkout automatically re-searched for a replacement, passenger ages were calculated as of the search date instead of the travel date. For passengers close to an age boundary — for example, turning from infant to child fare — this could quote a cheaper fare than the supplier actually charged, with the price difference absorbed rather than shown to the customer.
We fixed the age calculation to always use the travel date, so the quoted price now matches what's booked.
NTP-69227
Increased maximum promo code length
Promo codes longer than 20 characters couldn’t be created or redeemed, blocking partners who generate longer codes externally. We increased the maximum length to 30 characters, so these codes now work end-to-end in checkout.
NTP-67343
.COCKPIT
Fixed custom markups picking the wrong area when rules overlap
For accounts with city- or area-level custom markup rules, pricing could silently fall back to the broader country-level markup instead of the more specific rate, when another markup rule on the same account happened to cover an overlapping area. We fixed the matching logic so the correct, most specific markup is always applied.
NTP-68673
Fixed inconsistent flight search results between live and streamed updates
When flight search results were delivered as live updates, they could include offers with a different number of connections than requested — offers that wouldn't have appeared in a regular search. We aligned the two search paths so results are consistent regardless of how they're delivered.
NTP-69194
Fixed own arrangement duration edits silently failing and corrupting itinerary dates
Editing the duration of an "Own Arrangements" stop in the trip planner could silently fail to save, while at the same time shifting the dates of later stops and removing other booked items like rental cars — all without any error being shown. We fixed the underlying matching issue so duration edits save correctly and other itinerary components stay intact.
NTP-68690
Fixed booked airport transfers being deleted when removing a flight
Using the "Remove Flights" action to remove a flight booking could also delete manually-added, already-booked airport transfers. Re-importing the flight afterwards would then falsely flag the return flight as not fitting the itinerary, blocking the booking change. We fixed the removal to only affect system-generated transfers, leaving booked transfers untouched.
NTP-68246
Fixed booking changes getting stuck with an unhelpful reset error
A booking change could get stuck in progress, and attempting to reset it returned an unclear error about an unsupported combination of booking and cancellation orders. We fixed the reset logic to correctly handle this case.
NTP-63093
Fixed unrelated transfers being removed during flight edits
Editing one flight's time as an ad-hoc change could cause a completely unrelated, already-booked ground transfer on a different date to be removed as "no longer compatible." We fixed the compatibility check so it no longer affects transfers unrelated to the edited flight.
NTP-67306
Fixed booking change completion showing success when it actually failed
Completing a booking change could show a success message in Cockpit even when the change was rejected because a component wasn't bookable, leaving the change stuck with no indication anything went wrong. We fixed the response so a failed completion now surfaces as an error.
NTP-67902
Fixed Customer Care only users unable to edit cancellation policy
We fixed a bug where users with the "Employee – Customer Care Only" profile couldn't edit a booking's cancellation policy in Cockpit, even though other Customer Care profiles could already do this. The edit action now works correctly for this role, with no configuration change needed.
NTP-66667
Fixed a distribution channel setting that silently reverted on save
The "Ignore supplier when calculating P2P reseller markup" setting could be toggled and saved in Cockpit, but silently reverted to its previous value in production with no error shown. We fixed the save behaviour so changes to this setting now persist correctly.
NTP-67672
Improved error handling for failed flight booking lookups
A PNR import could fail with a generic error page when an internal service credential expired; it now surfaces as a normal, actionable error
NTP-68713
Fixed booking status webhooks getting stuck on an outdated status
In rare cases, the webhook notification sent to tour operators after a booking completed could keep reporting the booking as still in progress, even though it had finished successfully on our side. We added a retry so the correct status is always propagated.
NTP-68855
Fixed flight segments appearing out of order on exported invoices
After importing a multi-leg flight booking, the flight segments could appear out of chronological order on the exported Midoco invoice, even though they displayed correctly everywhere else in TripBuilder. We fixed the export to sort segments by departure date.
NTP-64560
Fixed the automatic redirect to travel documents sometimes not firing
Clicking "Print documentation" could leave the user on an intermediate redirect screen instead of automatically opening the travel document, requiring a manual click to continue. We fixed the redirect so it consistently fires automatically.
NTP-68767
Fixed PNR Refresh silently failing for AerTicket Cockpit bookings
PNR Refresh could show "successfully updated" in Cockpit without actually applying updated flight times, for bookings made via AerTicket Cockpit. We fixed the refresh to correctly retrieve and apply the updated flight times for this booking source.
NTP-67434
Fixed the "Accept flight" tool not working for already-scheduled flights
The "Accept flight" tool (available for those with tour operator permissions) — used to manually clear a stale non-bookable flag on a flight — previously returned success without making any change when used on a flight already scheduled in the itinerary, leaving the booking change silently blocked. We fixed the tool so it correctly updates scheduled flights, and a failed attempt now shows a clear error instead of appearing to succeed.
NTP-69184
Fixed missing amenities for Mozio ground transport
Ground transport offers from Mozio showed no amenities in the drawer, even when amenities were available. Switching between service categories could also leave stale content on screen. We fixed both: amenities now display correctly for Mozio, and switching categories always refreshes the full card.
NTP-68830
Added a Smart Planner settings tab in Cockpit
Smart Planner settings previously had no home in Cockpit. We added a dedicated “Smart Planner” tab to distribution channel settings, loading the existing Smart Planner configuration directly via an embedded view.
NTP-65794
.TRAVEL DOCUMENTATION
Fixed incorrect trip end date on customer care and travel documents
We fixed a bug where the trip dates shown in Customer Care and travel documents could end a few days earlier than the customer's actual last travel day. This happened when the itinerary ended with an international flight — we were using the flight's departure date instead of its arrival date to calculate the end of the trip.
NTP-63312
Fixed activity vouchers showing in English on German itineraries
Vouchers for Hotelbeds-supplied activities were printing the activity name and description in English even when the rest of the itinerary's documents were in German. We fixed the voucher generation to use the itinerary's language, consistent with other suppliers.
NTP-68239
Fixed a remaining untranslated label on Hotelbeds activity vouchers
Following our fix for activity names appearing in English on non-English itineraries, the "Booked by and payable through" label above the issuing agency name kept showing in English on German, German-informal, French, and Dutch itineraries.
We translated this label so it now displays correctly in all supported languages, consistent with the rest of the voucher.
NTP-69306
Fixed missing confirmation numbers for ground transfers on travel documents
The supplier confirmation number for a booked Mozio ground transfer was visible in Cockpit but missing from the customer's travel documentation. We fixed the documents to include it, consistent with other transfer and accommodation types.
NTP-68424
Fixed incorrect meal and supplier information on replaced hotel vouchers
When a hotel was replaced after booking, its voucher could show "No Meals" even when a meal was included, and display an internal placeholder instead of the supplier name. We fixed the voucher to match the correct meal plan and hide internal placeholders.
NTP-68565
Fixed duplicated activity images in Word travel documents
Activity and tour images could appear twice in generated Word travel documents, positioned above the description instead of alongside it. We fixed the rendering so each image appears once, positioned consistently with other service types.
NTP-67204
.APIs
Added missing booking states to the Booking API documentation
The published Booking API specification listed 18 possible values for a booking's status, but the API has always been able to return 28. We've updated the specification to document all 10 previously-undocumented states, so integrators building against the Booking API have the complete list.
NTP-69225
Fixed the Booking API omitting some booked flight segments
For itineraries where imported flight segments couldn't be automatically placed into the trip structure, the Booking API would omit those segments entirely, even though they were confirmed and booked. We've updated the API to include these segments so integrators see the complete booking.
NTP-68219
Fixed missing location data for replaced hotels in the Booking API
When a hotel on a booked itinerary was replaced, the Booking API returned the new hotel with no country or city, unlike normally-booked hotels. We fixed the API to always return location data for replaced hotels.
NTP-68562
Fixed flight surcharges shown in the wrong currency in the Booking API
For some bookings, the flight surcharge and tax amounts in the Booking API were returned in the supplier's original currency instead of the booking's currency, unlike the main fare price. We fixed the conversion so surcharges are always shown in the booking currency.
NTP-68658
Exposed in-destination charges on the accommodation product API
The accommodation product API had no way to show charges payable in-destination (e.g. local taxes), so New Discovery couldn’t display the full trip price shown elsewhere. The API now returns these charges explicitly, clearing the way for accurate price breakdowns.
NTP-68164
.INTEGRATIONS
API enhancement to Ground transports Connect API - Bookable extras
The Ground Transports Connect API has a new attribute: supports bookable extras, priced or free add-ons, such as child seats and extra luggages, etc. The cost is shown at selection time and selection is transmitted to the supplier at booking time.
NTP-68635
API enhancement toGround transports Connect API - Structured flight information on pick-up and drop-off locations
In case there is a flight, arrival and departure location objects have a new optional object flightInfo which contains the flight number, arrival time and departure time. In this way suppliers receive the flight details in a clearly defined and structured field, which makes it possible to schedule pick-ups and drop-offs around the travellers’ flight. All new fields are optional.
NTP-68710
