Skip to content
BreezePro docs

OrderChange

IATA_OrderChangeRQ modifies an existing booking: passenger, contact, and payment changes, ancillary seat/service acceptance, cancelling unpaid orders, and committing reshop offers. It is the XML counterpart of the JSON change order. Returns an IATA_OrderViewRS with the updated order.

POST /ndc/{version}/OrderChange with version one of v21.3, v24.1, v25.4, or v26.2.

OrderChange requires full transaction (book) permissions on the API key.

See payments for accepted methods and the sandbox test card.

Every request carries Order with OrderID (record locator) and OwnerCode MX. The change itself is one of:

  • ChangeOrderChoice > UpdatePax > PaxSharingPref: move the named passenger to a new booking. See Split order below. One PaxRefID per request.
  • ChangeOrderChoice > UpdatePax + DataLists.PaxList: patch a passenger’s details, including the passenger’s own contact via a Pax-referenced ContactInfo (email/phone; a new row is skipped when it merely restates the primary contact, so full echoes are safe). The UpdatePax element may carry at most 4 travel documents (passports, visas, and redress cases combined).
  • DataLists.ContactInfoList alone (no ChangeOrderChoice): replace the primary booking contact with one ContactInfo carrying an Individual name; other contact types are rejected. When a ChangeOrderChoice is present, contacts are passenger data for UpdatePax. See contacts.
  • ChangeOrderChoice > CancelUnpaidOrder: cancel a hold booking.
  • PaymentFunctions (no ChangeOrderChoice): pay the outstanding balance and confirm a hold.
  • ChangeOrderChoice > AcceptSelectedQuotedOfferList referencing OFI-ST-* / OFI-SR-* items from SeatAvailability / ServiceList.
  • ChangeOrderChoice > AcceptRepricedOrder referencing an offer priced by OrderQuote.
  • ChangeOrderChoice > AcceptCancelledOffer referencing a cancellation quote from OrderReshop.

AcceptSelectedQuotedOfferList is for post-sale seats and services only. Reshop offers use AcceptRepricedOrder; cancellation quotes use AcceptCancelledOffer.

<?xml version="1.0" encoding="UTF-8"?>
<IATA_OrderChangeRQ xmlns="http://www.iata.org/IATA/2015/EASD/00/IATA_OffersAndOrdersMessage">
<DistributionChain>
<DistributionChainLink xmlns="http://www.iata.org/IATA/2015/EASD/00/IATA_OffersAndOrdersCommonTypes">
<Ordinal>1</Ordinal>
<OrgRole>Seller</OrgRole>
<ParticipatingOrg>
<OrgID>BZ</OrgID>
</ParticipatingOrg>
</DistributionChainLink>
<DistributionChainLink xmlns="http://www.iata.org/IATA/2015/EASD/00/IATA_OffersAndOrdersCommonTypes">
<Ordinal>2</Ordinal>
<OrgRole>Carrier</OrgRole>
<ParticipatingOrg>
<OrgID>MX</OrgID>
</ParticipatingOrg>
</DistributionChainLink>
</DistributionChain>
<Request>
<Order xmlns="http://www.iata.org/IATA/2015/EASD/00/IATA_OffersAndOrdersCommonTypes">
<OrderID>ABC123</OrderID>
<OwnerCode>MX</OwnerCode>
</Order>
<PaymentFunctions xmlns="http://www.iata.org/IATA/2015/EASD/00/IATA_OffersAndOrdersCommonTypes">
<PaymentProcessingDetails>
<Amount CurCode="USD">250</Amount>
<Payer>
<PayerName>
<IndividualName>
<GivenName>Jane</GivenName>
<Surname>Doe</Surname>
</IndividualName>
</PayerName>
<PaymentAddress>
<PostalAddress>
<CityName>Los Angeles</CityName>
<CountryCode>US</CountryCode>
<CountrySubDivisionName>California</CountrySubDivisionName>
<PostalCode>90210</PostalCode>
<StreetText>123 Main St</StreetText>
</PostalAddress>
</PaymentAddress>
</Payer>
<PaymentMethod>
<PaymentCard>
<CardBrandCode>VI</CardBrandCode>
<CardNumber>4111111111111111</CardNumber>
<CardSecurityCode>123</CardSecurityCode>
<ExpirationDate>1227</ExpirationDate>
</PaymentCard>
</PaymentMethod>
</PaymentProcessingDetails>
</PaymentFunctions>
</Request>
</IATA_OrderChangeRQ>
<?xml version="1.0" encoding="UTF-8"?>
<IATA_OrderChangeRQ xmlns="http://www.iata.org/IATA/2015/EASD/00/IATA_OffersAndOrdersMessage">
<DistributionChain>
<DistributionChainLink xmlns="http://www.iata.org/IATA/2015/EASD/00/IATA_OffersAndOrdersCommonTypes">
<Ordinal>1</Ordinal>
<OrgRole>Seller</OrgRole>
<ParticipatingOrg>
<OrgID>BZ</OrgID>
</ParticipatingOrg>
</DistributionChainLink>
<DistributionChainLink xmlns="http://www.iata.org/IATA/2015/EASD/00/IATA_OffersAndOrdersCommonTypes">
<Ordinal>2</Ordinal>
<OrgRole>Carrier</OrgRole>
<ParticipatingOrg>
<OrgID>MX</OrgID>
</ParticipatingOrg>
</DistributionChainLink>
</DistributionChain>
<Request>
<ChangeOrderChoice xmlns="http://www.iata.org/IATA/2015/EASD/00/IATA_OffersAndOrdersCommonTypes">
<UpdatePax>
<Current>
<PaxRefID>ADT-1</PaxRefID>
</Current>
</UpdatePax>
</ChangeOrderChoice>
<DataLists xmlns="http://www.iata.org/IATA/2015/EASD/00/IATA_OffersAndOrdersCommonTypes">
<PaxList>
<Pax>
<Individual>
<Birthdate>1990-05-15</Birthdate>
<GenderCode>F</GenderCode>
<GivenName>Jane</GivenName>
<Surname>Doe</Surname>
</Individual>
<PaxID>ADT-1</PaxID>
<PTC>ADT</PTC>
</Pax>
</PaxList>
</DataLists>
<Order xmlns="http://www.iata.org/IATA/2015/EASD/00/IATA_OffersAndOrdersCommonTypes">
<OrderID>ABC123</OrderID>
<OwnerCode>MX</OwnerCode>
</Order>
</Request>
</IATA_OrderChangeRQ>
<?xml version="1.0" encoding="UTF-8"?>
<IATA_OrderChangeRQ xmlns="http://www.iata.org/IATA/2015/EASD/00/IATA_OffersAndOrdersMessage">
<DistributionChain>
<DistributionChainLink xmlns="http://www.iata.org/IATA/2015/EASD/00/IATA_OffersAndOrdersCommonTypes">
<Ordinal>1</Ordinal>
<OrgRole>Seller</OrgRole>
<ParticipatingOrg>
<OrgID>BZ</OrgID>
</ParticipatingOrg>
</DistributionChainLink>
<DistributionChainLink xmlns="http://www.iata.org/IATA/2015/EASD/00/IATA_OffersAndOrdersCommonTypes">
<Ordinal>2</Ordinal>
<OrgRole>Carrier</OrgRole>
<ParticipatingOrg>
<OrgID>MX</OrgID>
</ParticipatingOrg>
</DistributionChainLink>
</DistributionChain>
<Request>
<ChangeOrderChoice xmlns="http://www.iata.org/IATA/2015/EASD/00/IATA_OffersAndOrdersCommonTypes">
<CancelUnpaidOrder>
<OrderRefID>ABC123</OrderRefID>
<OwnerCode>MX</OwnerCode>
</CancelUnpaidOrder>
</ChangeOrderChoice>
<Order xmlns="http://www.iata.org/IATA/2015/EASD/00/IATA_OffersAndOrdersCommonTypes">
<OrderID>ABC123</OrderID>
<OwnerCode>MX</OwnerCode>
</Order>
</Request>
</IATA_OrderChangeRQ>

Only BOO-generated a-la-carte offer item IDs (OFI-ST-*, OFI-SR-*) are accepted; raw seat unit keys, SSR-only IDs, or client-generated IDs are rejected. Those IDs carry identity only; price is recomputed from live booking state before commit:

  • Accepted items creating a positive balance without PaymentFunctions are rejected before commit, except on a held (unpaid) order, where the change commits and grows the balance due by the payment time limit.
  • With zero balance and no payment, the change commits.
  • With payment supplied, PaymentProcessingDetails > Amount must match the live positive balance before payment is collected. A mismatch is rejected with ERR-3006.
  • Negative balances are rejected.
  • If the reservation system rejects a seat/service (unavailable, already assigned, duplicate), the failed change is surfaced; re-query availability before retrying.

The updated order as IATA_OrderViewRS, the same shape as OrderRetrieve.

<?xml version="1.0" encoding="UTF-8"?>
<IATA_OrderViewRS xmlns="http://www.iata.org/IATA/2015/EASD/00/IATA_OffersAndOrdersMessage">
<Response>
<DataLists xmlns="http://www.iata.org/IATA/2015/EASD/00/IATA_OffersAndOrdersCommonTypes">
<ContactInfoList>
<!-- Contacts listed without a ContactInfoRefID are associated with the entire order.
A ContactInfoRefID value indicates an association to a specific passenger. -->
</ContactInfoList>
<PaxList>
<Pax>
<Individual>
<GivenName>Jane</GivenName>
<Surname>Doe</Surname>
</Individual>
<PaxID>PAX-example</PaxID>
<PTC>ADT</PTC>
</Pax>
</PaxList>
<!-- OriginDestList, PaxJourneyList, PaxSegmentList,
DatedMarketingSegmentList, DatedOperatingSegmentList, DatedOperatingLegList,
PriceClassList, ServiceDefinitionList,
BaggageAllowanceList (present when bags are booked; bag service definitions
link to it via ServiceDefinitionAssociation/BaggageAllowanceRef) -->
</DataLists>
<Order xmlns="http://www.iata.org/IATA/2015/EASD/00/IATA_OffersAndOrdersCommonTypes">
<OrderID>ABC123</OrderID>
<OrderItem>
<FareDetail>
<FareComponent>
<PaxSegmentRefID>SEG-example</PaxSegmentRefID>
</FareComponent>
<PaxRefID>PAX-example</PaxRefID>
</FareDetail>
<OrderItemID>OOI-FL-example</OrderItemID>
<Price>
<BaseAmount CurCode="USD">91.5</BaseAmount>
<TaxSummary>
<TotalTaxAmount CurCode="USD">7.5</TotalTaxAmount>
</TaxSummary>
<TotalAmount CurCode="USD">99</TotalAmount>
</Price>
<StatusCode>CANCELLED</StatusCode>
<!-- purchased ancillaries appear as further OrderItem / Service entries -->
</OrderItem>
<StatusCode>CLOSED</StatusCode>
<TotalPrice>
<BaseAmount CurCode="USD">91.5</BaseAmount>
<TaxSummary>
<TotalTaxAmount CurCode="USD">7.5</TotalTaxAmount>
</TaxSummary>
<TotalAmount CurCode="USD">99</TotalAmount>
</TotalPrice>
</Order>
<!-- TicketDocInfo elements when tickets exist; Warning elements when applicable -->
</Response>
</IATA_OrderViewRS>

UpdatePax > PaxSharingPref moves the named passenger (and any lap infant associated with them) to a new booking with its own record locator. It is the NDC equivalent of the JSON split order.

Send one PaxRefID per request. To move multiple passengers, send one request per passenger. Lap infants are not named; they follow their adult automatically.

SharingInd must be false.

<?xml version="1.0" encoding="UTF-8"?>
<IATA_OrderChangeRQ xmlns="http://www.iata.org/IATA/2015/EASD/00/IATA_OffersAndOrdersMessage">
<DistributionChain>
<DistributionChainLink xmlns="http://www.iata.org/IATA/2015/EASD/00/IATA_OffersAndOrdersCommonTypes">
<Ordinal>1</Ordinal>
<OrgRole>Seller</OrgRole>
<ParticipatingOrg>
<OrgID>BZ</OrgID>
</ParticipatingOrg>
</DistributionChainLink>
<DistributionChainLink xmlns="http://www.iata.org/IATA/2015/EASD/00/IATA_OffersAndOrdersCommonTypes">
<Ordinal>2</Ordinal>
<OrgRole>Carrier</OrgRole>
<ParticipatingOrg>
<OrgID>MX</OrgID>
</ParticipatingOrg>
</DistributionChainLink>
</DistributionChain>
<Request>
<ChangeOrderChoice xmlns="http://www.iata.org/IATA/2015/EASD/00/IATA_OffersAndOrdersCommonTypes">
<UpdatePax>
<PaxSharingPref>
<PaxRefID>ADT-2</PaxRefID>
<SharingInd>false</SharingInd>
</PaxSharingPref>
</UpdatePax>
</ChangeOrderChoice>
<Order xmlns="http://www.iata.org/IATA/2015/EASD/00/IATA_OffersAndOrdersCommonTypes">
<OrderID>ABC123</OrderID>
<OwnerCode>MX</OwnerCode>
</Order>
</Request>
</IATA_OrderChangeRQ>

The response is a normal IATA_OrderViewRS for the original (parent) order, reflecting only the passengers who stayed. The Warning element carries the new order’s ID and record locator:

Passengers ADT-2 moved to order MX0000000001 (record locator CHILD1).

Retrieve the child order separately using its record locator from that warning.

RuleError
Passenger reference not found on the orderERR-1004
A lap infant ID listed directlyERR-1004
The named passenger is the only one on the orderERR-1005
Either resulting order would have no adultERR-7009
Any journey has already departedERR-4007
CodeHTTP statusCause
ERR-1000400Malformed XML.
ERR-1002404Unsupported version segment in the path.
ERR-1003400Missing required element.
ERR-1004400Invalid field value or unsupported ancillary offer item ID.
ERR-3004400Reshop offer must be priced with OrderQuote before it can be accepted.
ERR-3006409Live amount due does not match the stated payment amount.
ERR-4000404Order not found.
ERR-4002400Requested change could not be applied.
ERR-4007400Journey already flown, or a passenger boarded or no-showed.
ERR-6000422Payment method not supported.
ERR-6001422Card brand not supported.
ERR-6002400Payment rejected.
ERR-6005503Payment processing timed out.
ERR-7007400Passenger update rejected.
ERR-7009422Split would leave a child without an adult on either resulting order.
ERR-8000401Missing or invalid API key or bearer token.
ERR-8001403API key lacks full transaction permissions.
ERR-8002503Authentication store unavailable.
ERR-9003500Booking change failed upstream.