Switch from Navitaire NDC 21.3
Breeze’s NDC/XML API provides a migration path for partners using Navitaire NDC 21.3. This guide explains the request and workflow changes required to migrate. Our JSON and XML APIs offer significant advantages:
- full access to Breeze’s leisure products: Nice, Nicer, Nicest, and No Flex fares are available in all markets
- expanded BreezeCorp fare products, including BreezeCorp Basic
- access to U.S. Federal Government fares for eligible agencies
- support for increased search volumes
- simplified authentication
This page describes API differences and steps partners need to take to make the switch.
Expanded products and capabilities
Breeze’s API expands the fares available to partners and simplifies seat selection. “New” badges indicate additions; bold highlights new or improved capabilities.
| Capability | Navitaire NDC 21.3 | Breeze API |
|---|---|---|
| Leisure fares | Economy: Flex, No Flex | Economy: No Flex, Nice New Premium Economy: Nicer New First/Business: Nicest New |
| Corporate and agency fares | BreezeCorp | BreezeCorp BreezeCorp Basic New U.S. Federal Government fares¹ New Private fares New |
| Seat selection | Two steps | One step |
| Add-ons | Carry-on and checked bags | Carry-on and checked bags |
| Flight credit redemption | Not supported | Supported New |
Nice replaces the standalone Flex fare (code EZ); No Flex remains available.
¹ U.S. Federal Government fares are available to eligible agencies.
Implementation
What’s simpler
| Integration requirement | Navitaire NDC 21.3 | Breeze NDC/XML |
|---|---|---|
| IP allowlisting | Required | Not required |
Ocp-Apim-Subscription-Key header | Required | Not required |
| Session/token lifecycle | Stateful session bugs | API handles lifecycle |
NDC/XML API differences
Requests the previous API accepted that this API rejects
The new API validates explicitly where the previous one silently coerced or ignored. Requests built against the old samples fail on these until updated:
| Previous API | This API |
|---|---|
Paths like POST /api/Shopping/r3.x/v21.3/AirShopping, /api/Selling/r3.x/v21.3/OrderCreate, /api/Servicing/r3.x/v21.3/OrderChange | One base path per message: POST /ndc/{version}/{Message} with version v21.3, v24.1, or v25.4. |
<OwnerCode>NV</OwnerCode> | Owner code must be MX; anything else is rejected. |
Offer and offer-item IDs like sid-8944…-1 | IDs are issued by this API (OF-… / OFI-…); other shapes are rejected. Always echo IDs from the prior response. |
<ContactPurposeText>NTF</ContactPurposeText> on the lead contact | Rejected as an unknown contact type — tag the notification contact Primary, or leave the one booking contact untagged. See contacts. |
Any ContactInfoList accepted; extra contacts silently ignored, first one used | Only the primary booking contact can be set — other ContactPurposeText values are rejected, the primary is never guessed among several entries, and dangling ContactInfoRefIDs are rejected. |
| Phone numbers passed through as sent | Phones must normalize to E.164 (international +/00 prefix, CountryDialingCode, or a bare 10-digit US/Canada number). |
| Email addresses passed through as sent | Malformed email addresses are rejected. |
RelationshipToPax (emergency contact) carried without effect | Rejected — emergency contacts are not supported. |
One behavior change in the same area that is an upgrade, not a break: per-passenger contacts
(ContactInfoRefID per Pax) are now actually stored and returned — the previous API parsed
and discarded them.
AirShopping
Select bundles directly from search results
Breeze’s API lets partners select Nice, Nicer, or Nicest directly from the AirShopping results. The selected offer already includes the bundle. Partners no longer need a ruleset to understand which bundles were combinable with which fare or perform a separate sequence of requests to retrieve bundle prices and add one.
Using Navitaire NDC 21.3, selecting a bundle required these steps:
- Select the
EZfare fromAirShopping. SelectingNOwill return no bundles. - Call
OfferPriceto price the selected fare. - Call
ServiceListto retrieve available bundles and their prices. - Call
OfferPriceagain to add the selected bundle.
With Breeze’s API, select the offer for the desired product from AirShopping, then pass that offer to OfferPrice. The ServiceList lookup and second OfferPrice call used to add the bundle are eliminated.
Additions
IATA_AircraftTypeCodeServiceDefinitionListPaxJourneyList.PaxJourney.Duration
Modifications
- Downline legs of a direct flight (BreezeThru) are not returned.
- Example: request for PIT-PVD takes MX721 PIT-CHS that continues onward to MYR even though the itinerary connects to MX101 CHS-PVD. Navitaire returns the downline leg; the new API does not.
Removals
- The standalone leisure "Flex" fare product (code
EZ) is no longer available. It is replaced by "Nice" product which brings API partners product parity with our website.