Changelog
Every release, grouped by the month it shipped and tagged with the DRCT-Version it shipped under — see Versioning for how that header works.
🔥Major updates
⚠️Breaking changes
November 2026
Sandbox now returns real Wizz Air flights next to LOT, Lufthansa and Turkish Airlines, so you can test the whole low-cost flow before going live: branded fares via Upsell Offer, baggage and other services via Shop Ancillaries, seat selection via View Seat Maps and the 60-minute ticketing window. See Sandbox vs. Production.
Shop Ancillaries for Wizz Air now lists other services next to bags — priority boarding, Wizz Flex, check-in, sport equipment and special assistance. Every ancillary, in the shop list and on the order, carries a new type field: baggage or service, so you no longer need to guess from the name. Special-assistance services apply to the passenger on the whole order: they come with an empty segments list when shopped and with the flight's segments once confirmed on the order. Some of them can't be bought alone — Wizz Air rejects a guide dog without a matching assistance service (e.g. blind) in the same request. See the Ancillaries guide.
October 2026
Seats could only be chosen on the airline's website after booking, and some fares can't be booked without a seat at all. Now you can show the traveller the seat map and confirm a seat through the API before the ticket is issued. Available after Create Order and before Issue Order: GET /orders/{id}/seat_maps returns the map with available seats and prices, and POST /orders/{id}/seat_maps confirms the selection. On channels without seat selection, the API returns channel_is_off. Available for Wizz Air (W6) and Flayer K (Ryanair). Full flow in the Seat Maps guide.
Wizz Air sells checked baggage only as a paid add-on, and through the API you could previously book only the flight. Now the bag can be added through the API before the ticket is issued — see Shop Ancillaries and Confirm Ancillary, or follow the Ancillaries guide. Available after Create Order and before Issue Order. The ancillary id already includes the number of bags, so confirm each id once — quantity above 1 is rejected.
For Ryanair and Wizz Air, search returned only the basic fare. Now you can get every fare bundle for the flight, from basic up to bundles with baggage and flexible changes — call Upsell Offer after Search Offers and use the offer id from its response in Price Offer and Create Order. Some higher Ryanair fares require seat selection at booking. Full flow in the Offer Upsell guide.
On Turkish Airlines, a Fare Rules request made the offer unusable, and Create Order then failed. This is fixed — Create Order no longer fails with Shop offer not found after Fare Rules. You don't need to change anything.
September 2026New API version — 2026-09-01
Some airlines confirm the booking first and issue the tickets later. Get Order used to report these orders as issued straight away, before any ticket existed. Now they stay pending until the airline actually issues the tickets. Applies only on DRCT-Version 2026-09-01 — pending switches to issued once ticket numbers appear on the order; treat it as a normal in-progress state, not an error. On DRCT-Version 2021-06-01, nothing changes.
On many NDC channels the airline guarantees the price for less time than the order's ticketing time limit. The order looked valid until then, but by issue time the fare may already have changed. Now you can see when the price expires and get the current one before issuing. Such orders return price_expires_at. Once it passes, call Reprice Order, then issue with reshop: true to accept the new price. If the field is absent, the price holds until cancel_before. Full flow in the Price Change guide.
Once the void window closed, issued tickets could only be refunded through DRCT support. Now you can refund them directly through the API via Quote Order Refund and Refund Order, and see the amount and the airline's penalty before you confirm. Refund takes two calls: quote, then confirm — nothing is refunded until you confirm. While a ticket can still be voided, use Cancel Order instead. Available on 15 channels, listed in the Refund guide.
August 2026
Paid checked baggage can now be chosen at the offer stage too — before an order exists. Shop it with the new Shop Offer Ancillaries endpoint, then confirm the selection by passing the ancillary ids into Create Order's own ancillaries array. Available for FlyOne.
For an existing order, a traveller can now shop and add paid checked baggage after booking — see Shop Ancillaries and Confirm Ancillary, or follow the full flow in the Ancillaries guide. Available for Turkish Airlines (TK) and the Lufthansa Group.
July 2026
Some channels' Search Offers responses exclude certain fares — for example, returning only Economy. There was previously no way to retrieve the rest. You can now send an additional Upsell Offer request against a priced offer to get every branded fare available for it, not just the ones the original search returned.
The FR channel previously returned passengers aged 12–17 as CHD, the same type used for younger children. It now returns a dedicated TEEN type for that age range instead. If you branch on passenger type for FR bookings in Search Offers or order responses, update that logic — CHD no longer covers ages 12–17 on this channel.
Multi-city and round-trip itineraries priced through the SkyUp (U5) channel could return segments out of chronological order inside flights_options[].flights. Segments are now always sorted by departure time, matching every other channel.
Search Offers and Price Offer responses now include carry-on baggage allowance in fares[].baggage for five more channels: SkyUp (U5), LOT (LO), Qatar Airways (QR), Travelport (GL), and Low-cost (LWC).