Skip to main content

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.

Authorization

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

See payments for accepted methods and the sandbox test card.

Request

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

  • 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).
  • 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.

Pay and confirm a hold

<?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>

Update a passenger

<?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>

Cancel an unpaid order

<?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>

Ancillary acceptance rules

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.

Response

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 -->
</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>

OrderChange errors

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-6000422Payment method not supported.
ERR-6001422Card brand not supported.
ERR-6002400Payment rejected.
ERR-6005503Payment processing timed out.
ERR-7007400Passenger update rejected.
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.