7 Jul 2026 - Release Notes

New Features

A new Closed status can be activated at the class level for each flight

We have added a new company-level setting, Allow Class Closed, which allows airlines to control the Closed status of a class independently of the Waterfall nesting configuration. Previously, closing a class required nesting to be enabled, forcing airlines to use full nesting behavior even when it was unnecessary.

The Closed parameter can now be managed per class in Seat Control, at the flight-series level, and in class templates without depending on nesting settings. When the Closed status is activated for a class, it will not be reopened even if Quantity exceeds Booked for that class (for example, if a booking is canceled and the Quantity value becomes lower than the Booked value for the class).

When nesting is active, it continues to take priority, so existing behavior is preserved for airlines already using it.

To activate this feature, please contact your account manager, as additional costs may apply.

Flight Lock functionality

We have added the ability to designate a flight as an emergency flight in the CRS, preventing further changes across the CRS, IBE, and API. A new Emergency checkbox appears on the flight screen, but it can only be selected after the flight has been closed and only by users with the new Lock flights permission.

Once a flight is marked as Emergency, it is automatically deactivated and becomes unavailable through the CRS, IBE, and API. Any attempt to modify it triggers an alert instructing the user to contact their administrator.

For more information, refer to the knowledge base article: https://support.aerocrs.com/hc/en-us/articles/38101734842781-Flight-Lock

User activity log in the Fare module

We have added a new change-log submodule under the Fares module that records every create and edit action, CSV bulk update, and clone action performed on a fare. The log captures the Fare ID, action type, the user or API client that made the change, the date, and a field-level diff showing what changed.

A record is created only when an actual change occurs, so clicking Save without making changes does not generate a log entry.

The underlying table was built generically, allowing the same change-tracking approach to be extended to other modules, such as Users, Seat Fares, or Ancillaries, in the future.

New queue type – Booking Transfer

A new Booking Transfer queue type has been added to the queue configuration. This queue captures bookings affected by the Booking Transfer process and behaves similarly to the existing Amendment Queue, but is scoped exclusively to booking-transfer events.

The queue generates a unique ID (queid) that is accessible through the existing pullQueue API, allowing external systems to retrieve and process booking-transfer events without affecting existing queue types.

This feature may be subject to additional cost.

Partial deposit payments

Customers can now choose how much of an available deposit to apply toward a booking payment instead of being required to use the full balance. Any remaining amount is charged to a credit card.

The payment screen now includes an editable deposit amount field capped at the available deposit balance, and the credit card total updates automatically as the deposit amount changes.

Additional safeguards prevent invalid deposit input from disrupting payment calculations, and multi-currency deposit handling in Manage My Booking has been corrected.

Improvements to Existing Features

New IBE API user displayed in CRS as Website

Bookings created through the new IBE are now correctly identified as website-origin bookings in the CRS by using the Website user instead of the generic API user.

This ensures full backward compatibility with existing CRS logic, including reporting, filtering, and operational dashboards that rely on the website booking channel.

The fix applies to all booking flows, including payments, cancellations, amendments, and rebookings, without requiring any changes to airline API credentials.

Pre-Booking Service: Dash and space handling

We have improved passenger-name matching in the pre-booking service, where passengers can pre-book seats or ancillaries before their flight reservation is imported into the system by a tour operator.

The system now normalizes passenger names by removing dashes and spaces during comparison, allowing pre-service PNRs to be matched correctly even when the name format differs between the booking website and the imported reservation (for example, UHLENHAKE-BAEUMER vs UHLENHAKEBAEUMER).

This improvement applies to both manual CRS connections and the AUTO_CONNECT_PREBOOKED_EXTRAS process.

Hold My Booking status update for the new IBE

We have fixed the scheduled job responsible for updating booking status to Hold My Booking (HB) in the new IBE.

Previously, the status change was not applied immediately after a booking was placed on hold. The fix affects only the new API-based Hold My Booking flow and does not affect the legacy website implementation.

Bookings placed on hold through the new APIs now display the correct status immediately, improving consistency for downstream systems that rely on real-time booking status.

Block MMB/OCI for a passenger based on SSR restrictions (new IBE)

The getItinerary API now exposes two new per-passenger flags: ssrbloconlinecheckin and ssrblockmmb.

These flags allow the new IBE to determine whether a passenger should be blocked from Online Check-In (OCI) or Manage My Booking (MMB) based on their assigned SSRs.

If a passenger has multiple SSRs and at least one includes an active restriction flag, the corresponding value is returned as true for that passenger.

This allows the new IBE to enforce MMB and OCI restrictions without parsing SSR text.

IBE full cancellations now appear in the Cancellation queue

Full booking cancellations made through the IBE Manage My Booking flow were previously not added to the Cancellation Queue, unlike cancellations performed through the CRS or the cancelBooking API endpoint.

IBE full cancellations now enter the Cancellation Queue using the same process as CRS and API cancellations, bringing all three channels into alignment.

Traveller Picker – Focus no longer skips the calendar automatically

We have improved the Traveller Picker calendar so that closing the date picker without selecting a date keeps focus on the date field instead of automatically moving to the passenger field.

This prevents users, particularly those using assistive technologies, from losing their place while navigating the booking flow.

Bug Fixes

Pre-Booking ancillary failure

We have fixed a critical issue that prevented ancillary purchases (such as XBAG) through the pre-booking service.

Users previously received a "There was an error processing your request" message when attempting to purchase ancillaries through pre-booking flows.

The fix restores full functionality for one-way, round-trip, ancillary-only, seat-only, and combined ancillary-and-seat pre-bookings across all affected companies.

Single-passenger edit triggered CHG for the entire group

We have fixed an issue where editing a single passenger in a multi-passenger PNR after PNL transmission incorrectly generated CHG ADL entries for all unchanged passengers.

The audit log now records only the edited passenger, and the ADL contains DEL + ADD entries only for the modified passenger, with no CHG entries for the remaining passengers.

Discount taxes displayed incorrectly in the fare change screen

We have fixed an issue where all tax amounts were incorrectly grouped under the first tax line in the discount-service fare-change screen.

Each tax line now displays its individually configured amount, matching the behavior of the existing flight-service fare-change screen.

This fix applies only to newly created PNRs and does not affect historical bookings.

Terms and Conditions checkbox behavior

We have fixed an issue where using the browser Back button after accepting the Terms & Conditions checkbox left the checkbox selected while disabling the Process button.

The page state is now correctly reset when returning via the browser Back button, and behavior is consistent across both the Back and Cancel buttons regardless of the PSP used.

Pre-Booking Service: Passenger-count validation on connection

We have fixed an issue where the pre-booking service allowed connections between PNRs with mismatched passenger counts.

The system now validates that the passenger count in the flight PNR matches the passenger count in the pre-service PNR before allowing a connection.

A clear error message is displayed when a mismatch occurs, and mismatched cases are automatically skipped by the AUTO_CONNECT_PREBOOKED_EXTRAS process.

Ancillary button in the DCS check-in screen showed irrelevant passengers

We have fixed an issue in the DCS check-in screen where the ancillary passenger dropdown included passengers associated with inactive flights or unticketed PNRs.

The dropdown now displays only eligible passengers based on active-flight status and confirmed ticketing.

This aligns ancillary behavior with existing check-in eligibility rules and reduces manual filtering for operations staff.

Invoice service details showed incorrect STD

We have fixed an issue where invoices for via-flight bookings displayed the departure time (STD) of the first flight segment instead of the segment to which the ancillary service was attached.

This affected via-to and multi-leg itineraries where an ancillary was added to a later segment.

The fix applies to newly generated invoices. Previously issued invoices can be regenerated to reflect the corrected departure time.

Agency excess PNR for direct customers

We have fixed an issue where excess ancillary or seat purchases added to an existing agency booking were always assigned to the agency account, even when the purchase was made by a direct customer.

Ownership of the excess PNR is now determined by the user performing the action: direct customers generate direct-customer excess PNRs, while connected web agents generate agency excess PNRs.

SSIM report – Flight number filtering

We have fixed an issue where filtering the SSIM Report by Flight Number returned no results even when matching records existed.

Numeric-only flight numbers are now matched using digits alone, while alphanumeric flight numbers are matched using the full flight number.

The fix was validated across multiple airline companies to ensure consistent behavior regardless of flight-number format.

Web Agent parameter issues

We have fixed several issues affecting bookings and ancillary purchases made using Web Agent parameters.

The agtusrid parameter is now correctly stored with the booking, allowing reservations to be filtered by Web Agent.

Validation has also been added so that an invalid agtusrid returns a clear error instead of silently succeeding.

Agency commission pricing is now correctly applied to seat reservations made through the API, and the same commission and agent-association logic is consistently applied across bookings, seat reservations, and ancillary purchases.

Flight-series notification emails were not sent

We have fixed an issue where Flight Series notification emails failed when the booking customer had a valid email address but one or more passengers did not.

The email-generation process now falls back to the booking customer’s email address whenever a passenger email address is missing or empty.

Flight Series notifications are now delivered reliably regardless of passenger email availability.

Deposit bulk upload created duplicate records

We have fixed an issue where CSV uploads in the Deposit Bulk Upload process could create duplicate compensation-wallet transactions for the same records.

The issue occurred intermittently, primarily during large uploads.

User logging has been added for both customer and agency uploads, and a reporting mechanism has been introduced to identify duplicate transactions by company.

MMB flight rebooking caused cancellations

We have fixed several issues where amending a round-trip booking through Manage My Booking could leave the reservation in an inconsistent state.

In some cases, one flight segment was canceled while the other remained confirmed, or the system automatically issued a deposit for a fare difference despite the booking being incomplete.

The amendment workflow and transaction handling have been corrected so that MMB amendments now either complete successfully for both legs or fail cleanly without partial cancellations, orphaned ancillaries, or unintended deposits.

PNR split: cancellation error for website-created bookings

After a website booking was split into separate PNRs, canceling either split PNR through Manage My Booking displayed the error:

"Flight/s cancellation failed due to booking limitations"

even though the cancellation had been successfully processed in the CRS.

The IBE now correctly reflects the successful cancellation and no longer displays a false error.

CRS user password validation

We have fixed two password-validation inconsistencies in the CRS.

Passwords containing an asterisk could previously be saved but could not be used to log in, while passwords containing an underscore were rejected during saving.

Password validation has been aligned across both saving and authentication so that both characters are now supported consistently.

Semicolon in passwords broke API authentication

Customer passwords containing a semicolon worked correctly on the website but failed authentication through the webLogin API endpoint.

API authentication has been corrected so that passwords containing semicolons now work consistently across both website and API logins.

CRS agent – IBE printing

When a CRS agent printed another agency’s PNR through the IBE, the PNR log displayed the CRS agent’s name instead of Website.

The log now consistently attributes IBE print actions to Website, regardless of which CRS agent is logged in.

getSeatMapFare API returned empty seat keys

The getSeatMapFare API occasionally returned empty seat keys within the seats object, which could break seat-to-price mapping for API consumers.

Seat-key validation has been corrected so that only valid, non-empty seat labels are returned.

Exchange-rate changes during payment

We have fixed an issue where the exchange rate used to charge a customer could differ from the rate displayed during checkout.

The payment process now stores the exact exchange rate used at the time of payment and reuses it for ticketing and amendments.

This behavior is controlled by the new company setting Use payment exchange rate.

MMB exchange-rate updates

We have fixed an issue where the exchange rate stored on a PNR could be recalculated during Manage My Booking, causing previously paid amounts and receipts to change retroactively.

A new company setting, MMB exchange rate update, allows airlines to preserve the original booking exchange rate when disabled.

Class templates in From–Via–To flight series

We have fixed an issue where loading a class template into a From–Via–To flight series applied classes only to the From–To segment of the underlying flights.

Class templates are now correctly applied across all flight segments in the series.

Deferred report timeout

We have fixed a performance issue that caused the Deferred (New) Report to fail with 504 Gateway Timeout errors, even for small date ranges.

The database query has been optimized, and the report now completes reliably across both recent and historical date ranges.

Pre-Booking confirmation showed session expired after successful payment

We have fixed an issue where passengers who successfully purchased seats or ancillaries through the pre-booking portal were shown a "PNR link has expired" message on the confirmation page.

The confirmation page now correctly displays a successful booking status after the reservation has been created.

This fix also applies to the deposit top-up process.

Recalculated ticketed PNR resulted in an amount due

We have fixed an issue where ticketed PNRs could be automatically recalculated during Manage My Booking or Online Check-In seat changes, resulting in an unexpected amount due.

Passengers can now select only replacement seats with the same price as the seat originally purchased, preventing recalculation from creating a new balance on a fully paid booking.

Split booking: excess seat transfer

We have fixed an issue where splitting a passenger from a booking through either the CRS or the splitBooking API did not correctly transfer that passenger’s excess-seat assignment to the new PNR.

Excess-seat and excess-ancillary assignments are now transferred correctly during the split process, matching the existing behavior for excess-ancillary PNRs.

Have more questions? Submit a request

Comments

Powered by Zendesk