
2026/10/06 Production Release 5.0.0#
Release Notes Details
Current release version
5.0.0
Production release date
2026/10/06
Schema version change
Yes ( 2026.5 → 2026.6 )
✨ Information Change (OrderChange)One request shape for every airline
Do I need to change anything?You are affected if either applies to you.You send PaxList and ContactInfoList together to change a contact.
This previously had no effect and will now apply. Search your code for OrderChange calls that populate both lists.
You build a different request shape per airline for the same operation.
That branching is no longer needed.
If you use OrderChange only for booking, payment, ancillaries, seats, itinerary change, DIV or 104, nothing changes for you.This change is opt-in. Nothing changes until you start sending the operation code. Requests without ReasonCode behave exactly as before.
Previously PolarHub inferred the operation from the shape of the request body — whether PaxList was populated, whether ContactInfoList was present. That had two consequences. Sending both lists could not express "change the contact", and the required shape differed per airline for the same operation.From this release you declare the intent in OrderChangeRQ/Query/ReasonCode and PolarHub builds the airline-specific message for you. The same request works for every airline.{ADD|DELETE|UPDATE}_{PAX|CONTACT|APIS|FFN} — 10 codes.ADD_PAX and DELETE_PAX do not exist. Adding or removing a passenger is an order change, not an information change.Mutually exclusive with DIV (Order Split), 104 (TL Extension) and the PADIS involuntary reason codes.The operation code uses the existing ReasonCode field. No schema upgrade is required to adopt it — the 2026.6 schema change belongs to Baggage Allowance.PaxList carries the PaxID only. Fields the airline requires — Ptc, Individual, ContactInfoRefID, and the paired current/new objects that NDC 24.1 expects — are filled in by PolarHub from the order.One passenger, one category, one method and one item per request. A request that does not match its code is rejected with 50259.What counts as "one item" differs by category.| Category | One item means |
|---|
| PAX | One Individual object. Surname, GivenName, NameTitle and Birthdate may all be changed in a single request. |
| CONTACT | One phone or one email. Not both. |
| APIS | One document or one address. Not both. |
| FFN | One frequent flyer number. |
ADD_* sets NewPaxRefID only. DELETE_* sets CurrentPaxRefID only. UPDATE_* sets both, with the new ID formed by appending -1 to the current ID.Fields you do not send are preservedFor UPDATE_*, PolarHub fills in the fields you omit from the existing order. Changing a phone number does not clear the email address on the same contact, and changing a given name does not clear the title.Send only what you are changing. A field you do send always wins.This applies to UPDATE_* only. ADD_* and DELETE_* are unaffected.Carry the value exactly as returned by OrderRetrieve, including letter case. A value that differs only in case will not be matched by the airline.Some airlines store phone and email under separate ContactInfoID values. Specify the ID that actually holds the value you are deleting — using the first entry of the passenger's ContactInfoRefID may point at the wrong one.A contact change carrying both PaxList and ContactInfoList was previously misclassified as a passenger name change. The contact data was dropped before the request reached the airline, the airline had nothing to act on, and a success response was returned. The call appeared to succeed while nothing changed.With an operation code set, the same request is now correctly processed as a contact change and reaches the airline with the contact data intact.This applies only once you start sending the operation code. If you adopt it on a call that previously had no effect, that call will now reach the airline — review such calls before you switch.Confirm the outcome with OrderRetrieve, not the response code.PolarHub validates the shape of the request only. Whether an airline supports a given operation is not checked in advance — the request is passed through and the airline answers. Some airlines return a success code for a request they did not apply.The operation code is optional. Omitting it keeps the previous behaviour, where the operation is inferred from the request body. Existing integrations continue to work unchanged.New integrations should use the code. Inference cannot express a contact change when both lists are populated, and it varies by airline.| Symptom | Cause and fix |
|---|
50259 | Request rule violation. The message names the rule that was broken — two passengers, two categories, phone and email together, and so on. |
| Airline error code | The airline does not support that operation. Check Airline Integration Guide > Operational Notes > Change Information. |
| Success response but nothing changed | The airline accepted the request without applying it. Verify with OrderRetrieve rather than the response code. |
| Delete has no effect | The value did not match. Send the value exactly as OrderRetrieve returns it, including letter case, and make sure the ContactInfoID is the one that holds that value. |
Impacted Service: OrderChange
Request examples: PolarHub API > OrderChange > Examples
Airline support: Airline Integration Guide > Operational Notes > Change Information
Field reference: OrderChangeRQ > Query.ReasonCode
Dimensions re-mapped and carry-on piece count corrected
Do I need to change anything?You are affected if any of these applies to you.You read DimensionAllowance.Length as the longest side of a bag.
For airlines that supply a three-side total, that total moves to the new Linear field and Length is no longer returned. Search your code for reads of Length.
You display or validate the carry-on PieceAllowance.
British Airways changes from "2" to "1". The value is a string, not a number.
You assume carry-on baggage has no dimensions.
Dimensions are now returned whenever the airline provides them.
You display baggage Desc.
The airline's own wording is returned, and it is not provided on every message.
If you do not read baggage information from the response, or you integrate only with HA, KE, EY or AS, nothing changes for you.There is no opt-in. Unlike the operation code in Information Change, this change applies to every response from the release date.
Previously PolarHub put every dimension into a single Length field. Where the airline gave the longest side, Length held one side. Where the airline gave only a three-side total, Length held that total. The same field carried two different meanings depending on the airline, and there was no way to tell them apart.Carry-on piece counts were summed. When an airline returned the cabin bag and the personal item as separate entries, PolarHub added them together and overstated the free allowance.From this release PolarHub passes the airline's values through as they are. The three-side total has its own field, and the carry-on count is the airline's own count for the standard entry.New field — DimensionAllowance.LinearLinear is the maximum sum of all three sides. Length, Width and Height remain per-side maximums.Do not render Linear as a side length. A bag with Linear 158 is not 158 cm long.Fields the airline does not provide are omitted, so the set of dimension fields differs by airline. Minimum sizes are never returned.PolarHub selects the standard carry-on entry instead of summing every entry.| Airline | Change |
|---|
| British Airways | "2" becomes "1". BA returns the cabin bag and the personal item as separate entries and the previous behaviour added them. 1 is the cabin bag allowance; the personal item is carried in addition and is not counted. |
| American Airlines | The count may increase from 1 to 2 in production. AA supplies a total that already includes the personal item, so 2 means one cabin bag plus one personal item — not two cabin bags. Sandbox data returns 1, so this is not reproducible there. |
| Other airlines | Return a single entry and are unaffected. |
| Message | Piece count | Dimensions | Desc |
|---|
| AirShopping | ✔ | ✔ | ✔ |
| OfferPrice | ✔ | ✔ | ✔ |
| OrderCreate / OrderChange / OrderRetrieve | ✔ | ✔ | — |
| OrderReshop | — | ✔ | ✔ |
Desc is the airline's own text. It is not returned on OrderCreate, OrderChange or OrderRetrieve, and an empty array is returned when the airline provides none.LH checked baggage, NDC 17.2
"DimensionAllowance": { "Length": { "Value": 158, "UnitCode": "Centimeter" } }
"DimensionAllowance": { "Linear": { "Value": 158, "UnitCode": "Centimeter" } }
BA carry-on baggage, NDC 17.2
"PieceAllowance": "2",
"DimensionAllowance": { "Length": { "Value": 56, "UnitCode": "Centimeter" } }
"PieceAllowance": "1",
"DimensionAllowance": { "Length": { "Value": 56, "UnitCode": "Centimeter" },
"Width": { "Value": 45, "UnitCode": "Centimeter" },
"Height": { "Value": 25, "UnitCode": "Centimeter" } }
Reading the values correctlyMaximumWeightAllowance for checked baggage is the maximum weight per piece. For carry-on baggage the basis differs by airline. AF, KL and TR give a combined total for all cabin baggage; LH and TK give a per-piece maximum.Do not multiply or divide MaximumWeightAllowance by PieceAllowance. PieceAllowance 2 with MaximumWeightAllowance 18 KG may mean two bags of 18 kg each or two bags totalling 18 kg, depending on the airline.Extra baggage such as sports equipment and strollers is not returned. Only the free standard allowance is. When a fare includes no free checked baggage, BaggageAllowances is returned as an empty array.Applies to carriers on NDC 17.2, 18.1, 18.2, 21.3 and 24.1.HA, KE, EY and AS are out of scope and keep their current behaviour.Airlines that do not send dimensions — EK, QR, SQ and TK among them — see no change to their dimension fields.Call BA on NDC 17.2 (ICN-LHR, departure +90 days) and compare PieceAllowance and DimensionAllowance in the OfferPrice response. BA shows both changes in one call.AA sandbox data returns a carry-on count of 1, so the AA change described above is only observable in production.| Symptom | Cause and fix |
|---|
Length disappeared from the response | The airline supplies a three-side total, not a single side. Read Linear instead. |
| A dimension field is missing | The airline does not provide that axis. Fields are omitted rather than zeroed. |
| Carry-on count dropped from 2 to 1 | Expected for BA. The personal item is no longer added to the cabin bag count. |
Desc is an empty array | The airline provided no description, or the message does not carry Desc. See the table above. |
| Nothing changed for your airline | Check the airline scope above. HA, KE, EY and AS are excluded. |
Impacted Service: AirShopping, OfferPrice, OrderCreate, OrderChange, OrderRetrieve, OrderReshop
Field reference: PolarHub API > BaggageAllowance > DimensionAllowance
Airline notes: Airline Integration Guide > Operational Notes > Baggage Allowance
2026/09/08 Sandbox Release 5.0.0#
Release Notes Details
Current release version
5.0.0
Sandbox release date
2026/09/08
Production release date
2026/10/06
Schema version change
Yes ( 2026.5 → 2026.6 )
✨ Information Change (OrderChange)One request shape for every airline
Do I need to change anything?You are affected if either applies to you.You send PaxList and ContactInfoList together to change a contact.
This previously had no effect and will now apply. Search your code for OrderChange calls that populate both lists.
You build a different request shape per airline for the same operation.
That branching is no longer needed.
If you use OrderChange only for booking, payment, ancillaries, seats, itinerary change, DIV or 104, nothing changes for you.This change is opt-in. Nothing changes until you start sending the operation code. Requests without ReasonCode behave exactly as before.
Previously PolarHub inferred the operation from the shape of the request body — whether PaxList was populated, whether ContactInfoList was present. That had two consequences. Sending both lists could not express "change the contact", and the required shape differed per airline for the same operation.From this release you declare the intent in OrderChangeRQ/Query/ReasonCode and PolarHub builds the airline-specific message for you. The same request works for every airline.{ADD|DELETE|UPDATE}_{PAX|CONTACT|APIS|FFN} — 10 codes.ADD_PAX and DELETE_PAX do not exist. Adding or removing a passenger is an order change, not an information change.Mutually exclusive with DIV (Order Split), 104 (TL Extension) and the PADIS involuntary reason codes.The operation code uses the existing ReasonCode field. No schema upgrade is required to adopt it — the 2026.6 schema change belongs to Baggage Allowance.PaxList carries the PaxID only. Fields the airline requires — Ptc, Individual, ContactInfoRefID, and the paired current/new objects that NDC 24.1 expects — are filled in by PolarHub from the order.One passenger, one category, one method and one item per request. A request that does not match its code is rejected with 50259.What counts as "one item" differs by category.| Category | One item means |
|---|
| PAX | One Individual object. Surname, GivenName, NameTitle and Birthdate may all be changed in a single request. |
| CONTACT | One phone or one email. Not both. |
| APIS | One document or one address. Not both. |
| FFN | One frequent flyer number. |
ADD_* sets NewPaxRefID only. DELETE_* sets CurrentPaxRefID only. UPDATE_* sets both, with the new ID formed by appending -1 to the current ID.Fields you do not send are preservedFor UPDATE_*, PolarHub fills in the fields you omit from the existing order. Changing a phone number does not clear the email address on the same contact, and changing a given name does not clear the title.Send only what you are changing. A field you do send always wins.This applies to UPDATE_* only. ADD_* and DELETE_* are unaffected.Carry the value exactly as returned by OrderRetrieve, including letter case. A value that differs only in case will not be matched by the airline.Some airlines store phone and email under separate ContactInfoID values. Specify the ID that actually holds the value you are deleting — using the first entry of the passenger's ContactInfoRefID may point at the wrong one.A contact change carrying both PaxList and ContactInfoList was previously misclassified as a passenger name change. The contact data was dropped before the request reached the airline, the airline had nothing to act on, and a success response was returned. The call appeared to succeed while nothing changed.With an operation code set, the same request is now correctly processed as a contact change and reaches the airline with the contact data intact.This applies only once you start sending the operation code. If you adopt it on a call that previously had no effect, that call will now reach the airline — review such calls before you switch.Confirm the outcome with OrderRetrieve, not the response code.PolarHub validates the shape of the request only. Whether an airline supports a given operation is not checked in advance — the request is passed through and the airline answers. Some airlines return a success code for a request they did not apply.The operation code is optional. Omitting it keeps the previous behaviour, where the operation is inferred from the request body. Existing integrations continue to work unchanged.New integrations should use the code. Inference cannot express a contact change when both lists are populated, and it varies by airline.| Symptom | Cause and fix |
|---|
50259 | Request rule violation. The message names the rule that was broken — two passengers, two categories, phone and email together, and so on. |
| Airline error code | The airline does not support that operation. Check Airline Integration Guide > Operational Notes > Change Information. |
| Success response but nothing changed | The airline accepted the request without applying it. Verify with OrderRetrieve rather than the response code. |
| Delete has no effect | The value did not match. Send the value exactly as OrderRetrieve returns it, including letter case, and make sure the ContactInfoID is the one that holds that value. |
Impacted Service: OrderChange
Request examples: PolarHub API > OrderChange > Examples
Airline support: Airline Integration Guide > Operational Notes > Change Information
Field reference: OrderChangeRQ > Query.ReasonCode
Dimensions re-mapped and carry-on piece count corrected
Do I need to change anything?You are affected if any of these applies to you.You read DimensionAllowance.Length as the longest side of a bag.
For airlines that supply a three-side total, that total moves to the new Linear field and Length is no longer returned. Search your code for reads of Length.
You display or validate the carry-on PieceAllowance.
British Airways changes from "2" to "1". The value is a string, not a number.
You assume carry-on baggage has no dimensions.
Dimensions are now returned whenever the airline provides them.
You display baggage Desc.
The airline's own wording is returned, and it is not provided on every message.
If you do not read baggage information from the response, or you integrate only with HA, KE, EY or AS, nothing changes for you.There is no opt-in. Unlike the operation code in Information Change, this change applies to every response from the release date.
Previously PolarHub put every dimension into a single Length field. Where the airline gave the longest side, Length held one side. Where the airline gave only a three-side total, Length held that total. The same field carried two different meanings depending on the airline, and there was no way to tell them apart.Carry-on piece counts were summed. When an airline returned the cabin bag and the personal item as separate entries, PolarHub added them together and overstated the free allowance.From this release PolarHub passes the airline's values through as they are. The three-side total has its own field, and the carry-on count is the airline's own count for the standard entry.New field — DimensionAllowance.LinearLinear is the maximum sum of all three sides. Length, Width and Height remain per-side maximums.Do not render Linear as a side length. A bag with Linear 158 is not 158 cm long.Fields the airline does not provide are omitted, so the set of dimension fields differs by airline. Minimum sizes are never returned.PolarHub selects the standard carry-on entry instead of summing every entry.| Airline | Change |
|---|
| British Airways | "2" becomes "1". BA returns the cabin bag and the personal item as separate entries and the previous behaviour added them. 1 is the cabin bag allowance; the personal item is carried in addition and is not counted. |
| American Airlines | The count may increase from 1 to 2 in production. AA supplies a total that already includes the personal item, so 2 means one cabin bag plus one personal item — not two cabin bags. Sandbox data returns 1, so this is not reproducible there. |
| Other airlines | Return a single entry and are unaffected. |
| Message | Piece count | Dimensions | Desc |
|---|
| AirShopping | ✔ | ✔ | ✔ |
| OfferPrice | ✔ | ✔ | ✔ |
| OrderCreate / OrderChange / OrderRetrieve | ✔ | ✔ | — |
| OrderReshop | — | ✔ | ✔ |
Desc is the airline's own text. It is not returned on OrderCreate, OrderChange or OrderRetrieve, and an empty array is returned when the airline provides none.LH checked baggage, NDC 17.2
"DimensionAllowance": { "Length": { "Value": 158, "UnitCode": "Centimeter" } }
"DimensionAllowance": { "Linear": { "Value": 158, "UnitCode": "Centimeter" } }
BA carry-on baggage, NDC 17.2
"PieceAllowance": "2",
"DimensionAllowance": { "Length": { "Value": 56, "UnitCode": "Centimeter" } }
"PieceAllowance": "1",
"DimensionAllowance": { "Length": { "Value": 56, "UnitCode": "Centimeter" },
"Width": { "Value": 45, "UnitCode": "Centimeter" },
"Height": { "Value": 25, "UnitCode": "Centimeter" } }
Reading the values correctlyMaximumWeightAllowance for checked baggage is the maximum weight per piece. For carry-on baggage the basis differs by airline. AF, KL and TR give a combined total for all cabin baggage; LH and TK give a per-piece maximum.Do not multiply or divide MaximumWeightAllowance by PieceAllowance. PieceAllowance 2 with MaximumWeightAllowance 18 KG may mean two bags of 18 kg each or two bags totalling 18 kg, depending on the airline.Extra baggage such as sports equipment and strollers is not returned. Only the free standard allowance is. When a fare includes no free checked baggage, BaggageAllowances is returned as an empty array.Applies to carriers on NDC 17.2, 18.1, 18.2, 21.3 and 24.1.HA, KE, EY and AS are out of scope and keep their current behaviour.Airlines that do not send dimensions — EK, QR, SQ and TK among them — see no change to their dimension fields.Call BA on NDC 17.2 (ICN-LHR, departure +90 days) and compare PieceAllowance and DimensionAllowance in the OfferPrice response. BA shows both changes in one call.AA sandbox data returns a carry-on count of 1, so the AA change described above is only observable in production.| Symptom | Cause and fix |
|---|
Length disappeared from the response | The airline supplies a three-side total, not a single side. Read Linear instead. |
| A dimension field is missing | The airline does not provide that axis. Fields are omitted rather than zeroed. |
| Carry-on count dropped from 2 to 1 | Expected for BA. The personal item is no longer added to the cabin bag count. |
Desc is an empty array | The airline provided no description, or the message does not carry Desc. See the table above. |
| Nothing changed for your airline | Check the airline scope above. HA, KE, EY and AS are excluded. |
Impacted Service: AirShopping, OfferPrice, OrderCreate, OrderChange, OrderRetrieve, OrderReshop
Field reference: PolarHub API > BaggageAllowance > DimensionAllowance
Airline notes: Airline Integration Guide > Operational Notes > Baggage Allowance
2026/08/06 Sandbox Release 4.2.0#
Release Notes Details
Current release version
4.1.1
Sandbox release date
2026/08/06
Production release date
2026/08/12
Schema version change
No ( Current schema version : 2026.5 )
QR change/refund penalty — minimum amount now provided
For Qatar Airways (QR, NDC 18.1), change/refund penalties were previously provided as the maximum amount only. From this release, the minimum amount is provided together with the maximum, so the penalty range (min ~ max) is conveyed accurately.This aligns QR with the other Amadeus (1A) carriers (AY, SQ), which already provide both minimum and maximum.
Schema: the penalty Detail.Amounts array now includes an additional entry with AmountApplication = "MIN", in addition to the existing "MAX".
Note: due to currency-exchange differences, the actual charged amount may fall outside the min~max range. The confirmed amount can be obtained by calling OrderReshop.Impacted Service: AirShopping, OfferPrice, OrderReshop, OrderRetrieve
2026/07/27 Production Release 4.1.0#
Release Notes Details
Current release version
4.1.0
Production release date
2026/07/27
Schema version change
No ( Current schema version : 2026.5 )
New credit card (FOP CC) payment support
PolarHub now supports credit-card payment (Form of Payment = Credit Card).Support scope: plaintext CC + 3DS2 (3DSv2)
Supported airlines: Singapore Airlines (SQ), Scoot (TR), Air France–KLM (AFKL)AFKL supports plaintext CC only (3DS2 not applicable).Impacted Service: OrderCreate, OrderChange
Before using 3DS2 credit card payment — prerequisites & flow
PrerequisitesFor 3DS2 (SQ, TR), the seller must integrate its own EMVCo-certified 3DS2 provider of the standalone type (authentication decoupled from authorization). PolarHub does not perform the authentication.
Cardholder and payer information are mandatory (card number, expiry date, security code, cardholder name, payer name, payer phone number, billing address).
Request schema & carrier field mapping
Card body (PaymentCard) — required (all payment types)| Field | Description | Example |
|---|
CardNumber | Card number (PAN) | 4149xxxxxxxxxxxx |
SeriesCode | Security code (CVC/CVV) | 123 |
CardCode | Card brand | VI / CA / AX / DC / JC |
EffectiveExpireDate/Expiration | Expiry date (MMYY) | 0128 |
CardHolderName | Cardholder name | KIM MIN SU |
PayerName/IndividualName/Surname & GivenName | Payer name | — |
PayerPhoneNumber/CountryDialingCode & AreaCode & PhoneNumber | Payer phone number | — |
CardholderAddress/Street & PostalCode & CityName & CountrySubdivisionName & CountryCode | Billing address (incl. country code) | — |
3DS2 authentication result (PaymentCard → SecurePaymentVersion2) — SQ / TR only| Field | Description | Example | Status |
|---|
AuthenticationValue | 3DS cryptogram (CAVV/AAV, base64) | S8v1+GGi… | existing |
ElectronicCommerceInd | Electronic Commerce Indicator (ECI) | 05 | existing |
DirectoryServerTrxID | Directory Server Transaction ID | (UUID) | existing |
TrxStatusText | Authentication status (Y / A / N) | Y | existing |
AuthenticationTokenValue | Authentication token | — | existing |
PaymentTrxChannelCode | Transaction channel | EC | existing |
ProgramProtocolText | 3DS protocol version | 2.2.0 | new |
TrxStatusText = N (authentication failed) → payment is declined.
Impacted Service: OrderCreate, OrderChange
2026/07/24 Sandbox Release 4.1.0#
Release Notes Details
Current release version
4.1.0
Sandbox release date
2026/07/24
Production release date
2026/07/27
Schema version change
No ( Current schema version : 2026.5 )
New credit card (FOP CC) payment support
PolarHub now supports credit-card payment (Form of Payment = Credit Card).Support scope: plaintext CC + 3DS2 (3DSv2)
Supported airlines: Singapore Airlines (SQ), Scoot (TR), Air France–KLM (AFKL)AFKL supports plaintext CC only (3DS2 not applicable).Impacted Service: OrderCreate, OrderChange
Before using 3DS2 credit card payment — prerequisites & flow
PrerequisitesFor 3DS2 (SQ, TR), the seller must integrate its own EMVCo-certified 3DS2 provider of the standalone type (authentication decoupled from authorization). PolarHub does not perform the authentication.
Cardholder and payer information are mandatory (card number, expiry date, security code, cardholder name, payer name, payer phone number, billing address).
Request schema & carrier field mapping
Card body (PaymentCard) — required (all payment types)| Field | Description | Example |
|---|
CardNumber | Card number (PAN) | 4149xxxxxxxxxxxx |
SeriesCode | Security code (CVC/CVV) | 123 |
CardCode | Card brand | VI / CA / AX / DC / JC |
EffectiveExpireDate/Expiration | Expiry date (MMYY) | 0128 |
CardHolderName | Cardholder name | KIM MIN SU |
PayerName/IndividualName/Surname & GivenName | Payer name | — |
PayerPhoneNumber/CountryDialingCode & AreaCode & PhoneNumber | Payer phone number | — |
CardholderAddress/Street & PostalCode & CityName & CountrySubdivisionName & CountryCode | Billing address (incl. country code) | — |
3DS2 authentication result (PaymentCard → SecurePaymentVersion2) — SQ / TR only| Field | Description | Example | Status |
|---|
AuthenticationValue | 3DS cryptogram (CAVV/AAV, base64) | S8v1+GGi… | existing |
ElectronicCommerceInd | Electronic Commerce Indicator (ECI) | 05 | existing |
DirectoryServerTrxID | Directory Server Transaction ID | (UUID) | existing |
TrxStatusText | Authentication status (Y / A / N) | Y | existing |
AuthenticationTokenValue | Authentication token | — | existing |
PaymentTrxChannelCode | Transaction channel | EC | existing |
ProgramProtocolText | 3DS protocol version | 2.2.0 | new |
TrxStatusText = N (authentication failed) → payment is declined.
Impacted Service: OrderCreate, OrderChange
2026/06/10 Production Release 4.0.0#
Release Notes Details
Current release version
4.0.0
Production release date
2026/06/10
Schema version change
Yes ( 2026.2 → 2026.5 )
Replace SiteCode with SalesBranchID across all PolarHub APIs
The SiteCode request parameter has been removed platform-wide and replaced by SalesBranchID. This applies to every PolarHub API, not a single endpoint. Schedule-level lowest-fare curation that was previously keyed by SiteCode is now keyed by SalesBranchID.1.
After the production cutover (2026/06/10), requests carrying the legacy SiteCode field will be rejected. Clients must complete migration to SalesBranchID before then.
2.
SalesBranchID accepts values 01–99. The value 00 is reserved for Luna internal use and must not be sent by external clients.
3.
Requests sent without SalesBranchID will not receive lowest-fare-applied offers for carriers that rely on this lookup. The field is effectively required for tenants that depend on lowest-fare curation.
All PolarHub endpoints — including but not limited to AirShopping, AirShoppingPlus, OfferPrice, ServiceList, SeatAvailability, OrderCreate, OrderRetrieve, OrderChange, OrderCancel.
Added: SalesBranchID (replaces SiteCode in the same position of the request body)
Lowest-fare-by-schedule policyLookup key changed from SiteCode to SalesBranchID.
AirShopping default behaviour remains "lowest fare per schedule". To receive multiple PriceClass options per schedule instead, per-channel fare retrieval can be configured via Albus.
Per-tenant SalesBranchID → carrier lowest-fare mapping is currently provisioned by Halo&Co on request.
Self-service configuration through Albus is planned for a future release.
Schema version bumped from 2026.2 to 2026.5. SiteCode is no longer present in 2026.5.
Replace every occurrence of SiteCode in request payloads with SalesBranchID.
Verify the value is within 01–99 and is not 00.
Re-run AirShopping smoke tests in Sandbox to confirm lowest-fare offers are returned as expected.
Impacted Service: All APIs
2026/05/27 Sandbox Release 4.0.0#
Release Notes Details
Current release version
4.0.0
Sandbox release date
2026/05/27
Production release date
2026/06/10
Schema version change
Yes ( 2026.2 → 2026.5 )
Replace SiteCode with SalesBranchID across all PolarHub APIs
The SiteCode request parameter has been removed platform-wide and replaced by SalesBranchID. This applies to every PolarHub API, not a single endpoint. Schedule-level lowest-fare curation that was previously keyed by SiteCode is now keyed by SalesBranchID.1.
After the production cutover (2026/06/10), requests carrying the legacy SiteCode field will be rejected. Clients must complete migration to SalesBranchID before then.
2.
SalesBranchID accepts values 01–99. The value 00 is reserved for Luna internal use and must not be sent by external clients.
3.
Requests sent without SalesBranchID will not receive lowest-fare-applied offers for carriers that rely on this lookup. The field is effectively required for tenants that depend on lowest-fare curation.
All PolarHub endpoints — including but not limited to AirShopping, AirShoppingPlus, OfferPrice, ServiceList, SeatAvailability, OrderCreate, OrderRetrieve, OrderChange, OrderCancel.
Added: SalesBranchID (replaces SiteCode in the same position of the request body)
Lowest-fare-by-schedule policyLookup key changed from SiteCode to SalesBranchID.
AirShopping default behaviour remains "lowest fare per schedule". To receive multiple PriceClass options per schedule instead, per-channel fare retrieval can be configured via Albus.
Per-tenant SalesBranchID → carrier lowest-fare mapping is currently provisioned by Halo&Co on request.
Self-service configuration through Albus is planned for a future release.
Schema version bumped from 2026.2 to 2026.5. SiteCode is no longer present in 2026.5.
Replace every occurrence of SiteCode in request payloads with SalesBranchID.
Verify the value is within 01–99 and is not 00.
Re-run AirShopping smoke tests in Sandbox to confirm lowest-fare offers are returned as expected.
Impacted Service: All APIs
2026/05/11 Production Release 3.6.0#
Release Notes Details
Current release version
3.6.0
Production release date
2026/05/11
Schema version change
No ( Current schema version : 2026.3 )
Introduce AirShoppingPlus endpoint
AirShoppingPlus is a new path for the NDC AirShopping operation. It exposes the same request schema and response shape as the Default endpoint, while applying response-side enhancements before
delivery.1.
Both the Default (POST /hub/polarpie/v2/airShopping) and AirShoppingPlus (POST /exp/polarhub/v2/airshopping) endpoints continue to be supported in parallel. The Default
contract is unchanged.
2.
The importance profile used by AirShoppingPlus is managed centrally by PolarHub. No tenant-side configuration is required.
POST /exp/polarhub/v2/airshopping
Performance optimizations applied to the AirShopping response path.
Importance-based offer curationCarrier offers are ranked by an importance model calibrated from real booking-preference data accumulated across the HaloSync platform.
Each offer is scored across multiple traveller-relevant attributes — price, baggage, airline, cabin, time, direct vs connecting.
Only the highest-importance offers are returned, resulting in a lighter response payload, faster delivery, and higher booking-conversion
potential.
See the AirShopping API page for details.
Identical request schema and response shape as the Default endpoint.
No schema version change.
Additional intelligence-driven response features will be introduced on this path in upcoming releases.
Impacted Service: AirShopping
2026/05/11 Sandbox Release 3.4.0#
Release Notes Details
Current release version
3.4.0
Sandbox release date
2026/05/11
Production release date
2026/05/11
Schema version change
No ( Current schema version : 2026.2 )
Introduce AirShoppingPlus endpoint
AirShoppingPlus is a new path for the NDC AirShopping operation. It exposes the same request schema and response shape as the Default endpoint, while applying response-side enhancements before
delivery.1.
Both the Default (POST /hub/polarpie/v2/airShopping) and AirShoppingPlus (POST /exp/polarhub/v2/airshopping) endpoints continue to be supported in parallel. The Default
contract is unchanged.
2.
The importance profile used by AirShoppingPlus is managed centrally by PolarHub. No tenant-side configuration is required.
POST /exp/polarhub/v2/airshopping
Performance optimizations applied to the AirShopping response path.
Importance-based offer curationCarrier offers are ranked by an importance model calibrated from real booking-preference data accumulated across the HaloSync platform.
Each offer is scored across multiple traveller-relevant attributes — price, baggage, airline, cabin, time, direct vs connecting.
Only the highest-importance offers are returned, resulting in a lighter response payload, faster delivery, and higher booking-conversion
potential.
See the AirShopping API page for details.
Identical request schema and response shape as the Default endpoint.
No schema version change.
Additional intelligence-driven response features will be introduced on this path in upcoming releases.
Impacted Service: AirShopping
2026/03/11 Production Release 3.5.0#
Release Notes Details
Current release version
3.5.0
Production release date
2026/03/11
Schema version change
Yes ( Current schema version : 2026.3 )
Support upsell option in OfferPriceRQ
Enable upsell option in OfferPriceRQ to retrieve additional upsell offers in OfferPriceRS based on the selected offer.OfferPriceRQ with upsell option
IncludeUpsellOffersInd set to true to request additional upsell offers in OfferPriceRS.
OfferPriceRS returns the requested Offer with additional upsell Offers, if available.
Impacted Service: OfferPrice
1.
Not supported : AS, EK, HA, TR
2.
TK supports upsell offers only under a specific Offer Flow configuration.
Please contact us separately to enable upsell support.
PolarHub V2: 2026.3 [PolarHub v2 Schema]
Add PricingParameter/IncludeUpsellOffersInd schema in OfferPriceRQ
Add PricingParameter/IncludeUpsellOffersInd schema in OfferPriceRQ.
OfferPriceRQ/Query/ResponseParameter/PricingParameter/IncludeUpsellOffersInd
Add OtherOffers schema in OfferPriceRS
Add OtherOffers schema in OfferPriceRS
2026/02/19 Production Release 3.4.0#
Release Notes Details
Current release version
3.4.0
Production release date
2026/02/19
Schema version change
No ( Current schema version : 2026.2 )
Integration with the new airline AS
By integrating with the new airline AS, PolarHub V2 provides the following features.1.
Supported PTCs: ADT, CHD, INS (INF not supported).
2.
TicketInfo is not returned immediately after ticket issuance. it becomes available only after performing OrderRetrieve a few seconds later.
3.
Held booking functionality is available only to Travel Management Companies (TMCs) handling business trips.
Instant Booking - Flights only (with FOP)
AirShoppingRQ → OfferPriceRQ → OrderCreateRQ → OrderRetrieveRQ
Delay Ticketing - Flights only (without FOP)
AirShoppingRQ → OfferPriceRQ → OrderCreateRQ
Confirm Held Booking
OrderRetrieveRQ → OrderChangeRQ
Cancellation of a non-ticketed booking
OrderRetrieveRQ → OrderCancelRQ
Ticketed Booking VOID/Refund
OrderRetrieveRQ → OrderReshopRQ → OrderCancelRQ
Seat Assignment (with FOP)
AirShoppingRQ → OfferPriceRQ → SeatAvailabilityRQ → OrderCreateRQ
Post Booking (Ticketed Booking)Assign Free Seats (without FOP)
OrderRetrieveRQ → SeatAvailabilityRQ → OrderChangeRQ
Assign Paid Seats (with FOP)
OrderRetrieveRQ → SeatAvailabilityRQ → OrderChangeRQ
Free -> Free Seat Change (without FOP)
OrderRetrieveRQ → SeatAvailabilityRQ → OrderChangeRQ
Free -> Paid Seat Change (with FOP)
OrderRetrieveRQ → SeatAvailabilityRQ → OrderChangeRQ
OCN
OrderChangeNotif → Acknowledgement
Impacted Service: AirShopping, OfferPrice, OrderCreate, OrderChange, OrderReshop, OrderCancel, OrderRetrieve, SeatAvailability, OrderChangeNotif
PolarHub V2: 2026.2 [PolarHub v2 Schema]
2026/02/11 Production Release 3.3.0#
Release Notes Details
Current release version
3.3.0
Production release date
2026/02/11
Schema version change
Yes ( Current schema version : 2026.2 )
AFKL PNR Split
By adding support for AFKL PNR split functionality, PolarHub V2 provides the following features.Post Booking (Held / Ticketed Booking)
OrderRetrieveRQ → OrderChangeRQ
Impacted Service: OrderRetrieve, OrderChange
PolarHub V2: 2026.2 [PolarHub v2 Schema]
Add Payer schema in PaymentList
Add Payer schema entry in PaymentList to send payer information.
OrderCreateRQ/Query/PaymentList/Payer
OrderChangeRQ/Query/PaymentList/Payer
OrderViewRS/DataLists/PaymentList/Payer
Add CardholderAddress schema in PaymentCardMethod
Add CardholderAddress schema in PaymentCardMethod
OrderCreateRQ/Query/PaymentList/PaymentCardMethod/CardholderAddress
OrderChangeRQ/Query/PaymentList/PaymentCardMethod/CardholderAddress
OrderViewRS/DataLists/PaymentList/PaymentCardMethod/CardholderAddress
2026/01/21 Sandbox Release 3.3.0#
Release Notes Details
Current release version
3.3.0
Sandbox release date
2026/01/21
Production release date
2026/02/11
Schema version change
Yes ( Current schema version : 2026.2 )
AFKL PNR Split
By adding support for AFKL PNR split functionality, PolarHub V2 provides the following features.Post Booking (Held / Ticketed Booking)
OrderRetrieveRQ → OrderChangeRQ
Impacted Service: OrderRetrieve, OrderChange
PolarHub V2: 2026.2 [PolarHub v2 Schema]
Add Payer schema in PaymentList
Add Payer schema entry in PaymentList to send payer information.
OrderCreateRQ/Query/PaymentList/Payer
OrderChangeRQ/Query/PaymentList/Payer
OrderViewRS/DataLists/PaymentList/Payer
Add CardholderAddress schema in PaymentCardMethod
Add CardholderAddress schema in PaymentCardMethod
OrderCreateRQ/Query/PaymentList/PaymentCardMethod/CardholderAddress
OrderChangeRQ/Query/PaymentList/PaymentCardMethod/CardholderAddress
OrderViewRS/DataLists/PaymentList/PaymentCardMethod/CardholderAddress
2026/01/07 Production Release 3.2.0#
Release Notes Details
Current release version
3.2.0
Production release date
2026/01/07
Schema version change
Yes ( Current schema version : 2026.1 )
Modified BaggageAllowance schema
Offers/BaggageAllowance/
Either 'PaxJourneyRefID' or 'PaxSegmentRefID' is required value.
Impacted Service: AirShoppingRS, OfferPriceRS, OrderViewRS, OrderReshopRS
Added ResultMessage/MessageDetail URL schema
ResultMessage/MessageDetail/Errors, Warnings Add a URL schema entry
Impacted Service: AirShoppingRS, OfferPriceRS, OrderViewRS, OrderReshopRS, ServiceListRS, SeatAvailabilityRS, OrderCancelRS
PolarHub V2: 2026.1 [PolarHub v2 Schema]
2025/12/10 Sandbox Release 3.2.0#
Release Notes Details
Current release version
3.2.0
Sandbox release date
2025/12/10
Production release date
2026/01/07
Schema version change
Yes ( Current schema version : 2025.7 )
Modified BaggageAllowance schema
Offers/BaggageAllowance/
Either 'PaxJourneyRefID' or 'PaxSegmentRefID' is required value.
Impacted Service: AirShoppingRS, OfferPriceRS, OrderViewRS, OrderReshopRS
PolarHub V2: 2025.7 [PolarHub v2 Schema]
2025/12/03 Sandbox Release 3.2.0#
Release Notes Details
Current release version
3.2.0
Sandbox release date
2025/12/03
Production release date
2025/12/10 (TBD)
Schema version change
No ( Current schema version : 2025.7 )
Integration with the new airline AS
By integrating with the new airline AS, PolarHub V2 provides the following features.1.
Supported PTCs: ADT, CHD, INS (INF not supported).
2.
TicketInfo is not returned immediately after ticket issuance. it becomes available only after performing OrderRetrieve a few seconds later.
3.
Held booking functionality is available only to Travel Management Companies (TMCs) handling business trips.
Instant Booking - Flights only (with FOP)
AirShoppingRQ → OfferPriceRQ → OrderCreateRQ → OrderRetrieveRQ
Delay Ticketing - Flights only (without FOP)
AirShoppingRQ → OfferPriceRQ → OrderCreateRQ
Confirm Held Booking
OrderRetrieveRQ → OrderChangeRQ
Cancellation of a non-ticketed booking
OrderRetrieveRQ → OrderCancelRQ
Ticketed Booking VOID/Refund
OrderRetrieveRQ → OrderReshopRQ → OrderCancelRQ
Seat Assignment (with FOP)
AirShoppingRQ → OfferPriceRQ → SeatAvailabilityRQ → OrderCreateRQ
Post Booking (Ticketed Booking)Assign Free Seats (without FOP)
OrderRetrieveRQ → SeatAvailabilityRQ → OrderChangeRQ
Assign Paid Seats (with FOP)
OrderRetrieveRQ → SeatAvailabilityRQ → OrderChangeRQ
Free -> Free Seat Change (without FOP)
OrderRetrieveRQ → SeatAvailabilityRQ → OrderChangeRQ
Free -> Paid Seat Change (with FOP)
OrderRetrieveRQ → SeatAvailabilityRQ → OrderChangeRQ
OCN
OrderChangeNotif → Acknowledgement
Impacted Service: AirShopping, OfferPrice, OrderCreate, OrderChange, OrderReshop, OrderCancel, OrderRetrieve, SeatAvailability, OrderChangeNotif
PolarHub V2: 2025.7 [PolarHub v2 Schema]
2025/11/12 Production Release 3.1.0#
Release Notes Details
Current release version
3.1.0
Production release date
2025/11/12
Schema version change
Yes ( Current schema version : 2025.7 )
Airshopping cutoff time setting
PolarHub V2 provides the following features.1.
Specify an airline timeout when requesting an AirshoppingRQ via the CutOffTime scheme (seconds).
2.
PolarHub's cutoff time setting has higher priority over Albus setting.
Added Query/ResponseParameter/CutOffTime schema
Query/ResponseParameter/CutOffTime Add Affect Schema entry.
Impacted Service: AirShoppingRQ, OfferPriceRQ, ServiceListRQ, SeatAvailabilityRQ, OrderReshopRQ, OrderQuoteRQ
Added Sender/TravelAgency/salesBranchID schema
Sender/TravelAgency/salesBranchID Add Affect Schema entry.
Impacted Service: AirShoppingRQ, OfferPriceRQ, OrderCreateRQ, OrderRetrieveRQ, ServiceListRQ, SeatAvailabilityRQ, OrderChangeRQ, OrderReshopRQ, OrderQuoteRQ, OrderCancelRQ
PolarHub V2: 2025.7 [PolarHub v2 Schema]
2025/11/06 Sandbox Release 3.1.0#
Release Notes Details
Current release version
3.1.0
Sandbox release date
2025/11/06
Production release date
2025/11/12
Schema version change
Yes ( Current schema version : 2025.7 )
Airshopping cutoff time setting
PolarHub V2 provides the following features.1.
Specify an airline timeout when requesting an AirshoppingRQ via the CutOffTime scheme (seconds).
2.
PolarHub's cutoff time setting has higher priority over Albus setting.
Added Query/ResponseParameter/CutOffTime schema
Query/ResponseParameter/CutOffTime Add Affect Schema entry.
Impacted Service: AirShoppingRQ, OfferPriceRQ, ServiceListRQ, SeatAvailabilityRQ, OrderReshopRQ, OrderQuoteRQ
PolarHub V2: 2025.7 [PolarHub v2 Schema]
2025/10/15 Sandbox Release 3.1.0#
Release Notes Details
Current release version
3.1.0
Sandbox release date
2025/10/15
Production release date
2025/11/12
Schema version change
Yes ( Current schema version : 2025.7 )
Added Sender/TravelAgency/salesBranchID schema
Sender/TravelAgency/salesBranchID Add Affect Schema entry.
Impacted Service: AirShoppingRQ, OfferPriceRQ, OrderCreateRQ, OrderRetrieveRQ, ServiceListRQ, SeatAvailabilityRQ, OrderChangeRQ, OrderReshopRQ, OrderQuoteRQ, OrderCancelRQ
PolarHub V2: 2025.7 [PolarHub v2 Schema]
2025/10/15 Production Release 3.0.0#
Release Notes Details
Current release version
3.0.0
Production release date
2025/10/15
Schema version change
Yes ( Current schema version : 2025.6 )
Integration with the new airline TK
By integrating with the new airline TK, PolarHub V2 provides the following features.1.
It is not possible to set INF Contact Info.
2.
When splitting a PNR before ticketing, Extend Reserve TL must be performed first.
Instant Booking - Flights only (with FOP)
AirShoppingRQ → OfferPriceRQ → OrderCreateRQ
Delay Ticketing - Flights only (without FOP)
AirShoppingRQ → OfferPriceRQ → OrderCreateRQ
Confirm Held Booking
OrderRetrieveRQ → OrderQuoteRQ → OrderChangeRQ
Cancellation of a non-ticketed booking
OrderRetrieveRQ → OrderCancelRQ
Ticketed Booking VOID/Refund
OrderRetrieveRQ → OrderReshopRQ → OrderCancelRQ
PaymentTL extension (after Booking - without FOP)
OrderRetrieveRQ → OrderChangeRQ
Free (with / without FOP)
AirShoppingRQ → OfferPriceRQ → SeatAvailabilityRQ → OrderCreateRQ → OrderChangeRQ
Pay (with FOP)
AirShoppingRQ → OfferPriceRQ → SeatAvailabilityRQ → OrderCreateRQ → OrderQuoteRQ → OrderChangeRQ
Post Booking (Held / Ticketed Booking)Free (with / without FOP)
OrderRetrieveRQ → SeatAvailabilityRQ → OrderQuoteRQ → OrderChangeRQ
Pay (with FOP)
OrderRetrieveRQ → SeatAvailabilityRQ → OrderQuoteRQ → OrderQuoteRQ → OrderChangeRQ
Free (with / without FOP)
AirShoppingRQ → OfferPriceRQ → ServiceListRQ → OrderCreateRQ → OrderChangeRQ
Pay group unit Only ,
Free & Pay group unit (ALL * with FOP)
AirShoppingRQ → OfferPriceRQ → ServiceListRQ → OrderCreateRQ → OrderChangeRQ
Pay 1 unit Only,
Pay group unit & Pay 1 unit ,
Free & Pay 1 unit (ALL * with FOP)
AirShoppingRQ → OfferPriceRQ → ServiceListRQ → OrderCreateRQ → OrderQuoteRQ → OrderChangeRQ
Post Booking (Held / Ticketed Booking)Free (with / without FOP)
OrderRetrieveRQ → ServiceListRQ → OrderChangeRQ
Pay group unit Only ,
Free & Pay group unit (ALL * with FOP)
OrderRetrieveRQ → ServiceListRQ → OrderChangeRQ
Pay 1 unit Only,
Pay group unit & Pay 1 unit ,
Free & Pay 1 unit (ALL * with FOP)
OrderRetrieveRQ → ServiceListRQ → OrderQuoteRQ → OrderChangeRQ
Free (with / without FOP)
AirShoppingRQ → OfferPriceRQ → SeatAvailabilityRQ → ServiceListRQ → OrderCreateRQ → OrderChangeRQ
Free Seat & Pay Service group unit (with FOP)
AirShoppingRQ → OfferPriceRQ → SeatAvailabilityRQ → ServiceListRQ → OrderCreateRQ → OrderChangeRQ
Free Seat & Pay Service 1 unit ,
Pay Seat & Pay Service group unit ,
Pay Seat & Pay Service 1 unit (ALL * with FOP)
AirShoppingRQ → OfferPriceRQ → SeatAvailabilityRQ → ServiceListRQ → OrderQuoteRQ → OrderCreateRQ → OrderChangeRQ
Post Booking (Held / Ticketed Booking)Free (with / without FOP)
OrderRetrieveRQ → ServiceListRQ → SeatAvailabilityRQ → OrderChangeRQ
Post Booking (Held / Ticketed Booking)
OrderRetrieveRQ → OrderChangeRQ
Post Booking (Held / Ticketed Booking)
OrderRetrieveRQ → OrderChangeRQ
OCN
OrderChangeNotif → Acknowledgement
Impacted Service: AirShopping, OfferPrice, OrderCreate, OrderChange, OrderReshop, OrderQuote, OrderCancel, OrderRetrieve, SeatAvailability, OrderChangeNotif
PolarHub V2: 2025.6 [PolarHub v2 Schema]
OrderViewRS Commission schema Type changed to array
PolarHub OrderViewRS schema needs to be changed OrderViewRS/Order/OrderItem/Commission to array format
OrderViewRS/Order/OrderItem/Commission
Impacted Service: OrderView
Added FareDetail/PenaltyAmount schema
FareDetail/PenaltyAmount Add a PenaltyAmount schema entry
AirShoppingRS/Offer/OfferItem/FareDetail/PenaltyAmount
OfferPriceRS/PricedOffer/OfferItem/FareDetail/PenaltyAmount
OrderReshopRS/ReshopOffers/AddOfferItem/FareDetail/PenaltyAmount
OrderReshopRS/PricedOffer/RepricedOfferItem/FareDetail/PenaltyAmount
OrderReshopRS/PricedOffer/OriginalOrderItem/FareDetail/PenaltyAmount
OrderViewRS/Order/OrderItem/FareDetail/PenaltyAmount
Impacted Service: AirShoppingRS, OfferRriceRS, OrderReshopRS, OrderViewRS
Added OrderQuoteRQ/Query/Affect schema
OrderQuoteRQ/Query/Affect Add Affect Schema entry (TK Schedule Change Delete).
Type : OrderServicingDeleteType (List)OrderQuoteRQ/Query/Affect
Impacted Service: OrderQuoteRQ
Add OfferItem, OrderItem schema in SeatAvailabilityRQ, ServiceListRQ
Add OfferItem, OrderItem Schema entry
When searching for TK Airlines Services, only one segmentId, one paxId can be searched.
Type : RequestOfferItemTypeServiceListRQ/Offer/OfferItem
XPath - SeatAvailabilityRQSeatAvailabilityRQ/Offer/OfferItem
Type : RequestOrderItemTypeServiceListRQ/Order/OrderItem
XPath - SeatAvailabilityRQSeatAvailabilityRQ/Order/OrderItem
Impacted Service: ServiceListRQ, SeatAvailabilityRQ
2025/09/10 Sandbox Release 3.0.0#
Release Notes Details
Current release version
3.0.0
Sandbox release date
2025/09/10
Production release date
2025/10/15
Schema version change
Yes ( Current schema version : 2025.6 )
Integration with the new airline TK
By integrating with the new airline TK, PolarHub V2 provides the following features.1.
It is not possible to set INF Contact Info.
2.
When splitting a PNR before ticketing, Extend Reserve TL must be performed first.
Instant Booking - Flights only (with FOP)
AirShoppingRQ → OfferPriceRQ → OrderCreateRQ
Delay Ticketing - Flights only (without FOP)
AirShoppingRQ → OfferPriceRQ → OrderCreateRQ
Confirm Held Booking
OrderRetrieveRQ → OrderQuoteRQ → OrderChangeRQ
Cancellation of a non-ticketed booking
OrderRetrieveRQ → OrderCancelRQ
Ticketed Booking VOID/Refund
OrderRetrieveRQ → OrderReshopRQ → OrderCancelRQ
PaymentTL extension (after Booking - without FOP)
OrderRetrieveRQ → OrderChangeRQ
Free (with / without FOP)
AirShoppingRQ → OfferPriceRQ → SeatAvailabilityRQ → OrderCreateRQ → OrderChangeRQ
Pay (with FOP)
AirShoppingRQ → OfferPriceRQ → SeatAvailabilityRQ → OrderCreateRQ → OrderQuoteRQ → OrderChangeRQ
Post Booking (Held / Ticketed Booking)Free (with / without FOP)
OrderRetrieveRQ → SeatAvailabilityRQ → OrderQuoteRQ → OrderChangeRQ
Pay (with FOP)
OrderRetrieveRQ → SeatAvailabilityRQ → OrderQuoteRQ → OrderQuoteRQ → OrderChangeRQ
Free (with / without FOP)
AirShoppingRQ → OfferPriceRQ → ServiceListRQ → OrderCreateRQ → OrderChangeRQ
Pay group unit Only ,
Free & Pay group unit (ALL * with FOP)
AirShoppingRQ → OfferPriceRQ → ServiceListRQ → OrderCreateRQ → OrderChangeRQ
Pay 1 unit Only,
Pay group unit & Pay 1 unit ,
Free & Pay 1 unit (ALL * with FOP)
AirShoppingRQ → OfferPriceRQ → ServiceListRQ → OrderCreateRQ → OrderQuoteRQ → OrderChangeRQ
Post Booking (Held / Ticketed Booking)Free (with / without FOP)
OrderRetrieveRQ → ServiceListRQ → OrderChangeRQ
Pay group unit Only ,
Free & Pay group unit (ALL * with FOP)
OrderRetrieveRQ → ServiceListRQ → OrderChangeRQ
Pay 1 unit Only,
Pay group unit & Pay 1 unit ,
Free & Pay 1 unit (ALL * with FOP)
OrderRetrieveRQ → ServiceListRQ → OrderQuoteRQ → OrderChangeRQ
Free (with / without FOP)
AirShoppingRQ → OfferPriceRQ → SeatAvailabilityRQ → ServiceListRQ → OrderCreateRQ → OrderChangeRQ
Free Seat & Pay Service group unit (with FOP)
AirShoppingRQ → OfferPriceRQ → SeatAvailabilityRQ → ServiceListRQ → OrderCreateRQ → OrderChangeRQ
Free Seat & Pay Service 1 unit ,
Pay Seat & Pay Service group unit ,
Pay Seat & Pay Service 1 unit (ALL * with FOP)
AirShoppingRQ → OfferPriceRQ → SeatAvailabilityRQ → ServiceListRQ → OrderQuoteRQ → OrderCreateRQ → OrderChangeRQ
Post Booking (Held / Ticketed Booking)Free (with / without FOP)
OrderRetrieveRQ → ServiceListRQ → SeatAvailabilityRQ → OrderChangeRQ
Post Booking (Held / Ticketed Booking)
OrderRetrieveRQ → OrderChangeRQ
Post Booking (Held / Ticketed Booking)
OrderRetrieveRQ → OrderChangeRQ
OCN
OrderChangeNotif → Acknowledgement
Impacted Service: AirShopping, OfferPrice, OrderCreate, OrderChange, OrderReshop, OrderQuote, OrderCancel, OrderRetrieve, SeatAvailability, OrderChangeNotif
PolarHub V2: 2025.6 [PolarHub v2 Schema]
OrderViewRS Commission schema Type changed to array
PolarHub OrderViewRS schema needs to be changed OrderViewRS/Order/OrderItem/Commission to array format
OrderViewRS/Order/OrderItem/Commission
Impacted Service: OrderView
Added FareDetail/PenaltyAmount schema
FareDetail/PenaltyAmount Add a PenaltyAmount schema entry
AirShoppingRS/Offer/OfferItem/FareDetail/PenaltyAmount
OfferPriceRS/PricedOffer/OfferItem/FareDetail/PenaltyAmount
OrderReshopRS/ReshopOffers/AddOfferItem/FareDetail/PenaltyAmount
OrderReshopRS/PricedOffer/RepricedOfferItem/FareDetail/PenaltyAmount
OrderReshopRS/PricedOffer/OriginalOrderItem/FareDetail/PenaltyAmount
OrderViewRS/Order/OrderItem/FareDetail/PenaltyAmount
Impacted Service: AirShoppingRS, OfferRriceRS, OrderReshopRS, OrderViewRS
Added OrderQuoteRQ/Query/Affect schema
OrderQuoteRQ/Query/Affect Add Affect Schema entry (TK Schedule Change Delete).
Type : OrderServicingDeleteType (List)OrderQuoteRQ/Query/Affect
Impacted Service: OrderQuoteRQ
Add OfferItem, OrderItem schema in SeatAvailabilityRQ, ServiceListRQ
Add OfferItem, OrderItem Schema entry
When searching for TK Airlines Services, only one segmentId, one paxId can be searched.
Type : RequestOfferItemTypeServiceListRQ/Offer/OfferItem
XPath - SeatAvailabilityRQSeatAvailabilityRQ/Offer/OfferItem
Type : RequestOrderItemTypeServiceListRQ/Order/OrderItem
XPath - SeatAvailabilityRQSeatAvailabilityRQ/Order/OrderItem
Impacted Service: ServiceListRQ, SeatAvailabilityRQ
2025/08/13 Production Release 2.5.0#
Release Notes Details
Current release version
2.5.0
Production release date
2025/08/13
Schema Version change
No ( Current schema version : 2025.3 )
Introduction of fare search cache feature
1.
Purpose: Improve response speed and L2B ratio by controlling duplicate fare search requests.
2.
TTL: AirShoppingRS responses are cached for 2 hours.
3.
When PolarHub receives an AirShoppingRQ request, it checks for duplicate requests.
If a duplicate exists → returns cached AirShoppingRS.
If not → saves the request and calls the airline in real-time.
If a cached Offer is already used or expired → internal business logic will re-match and return proper OfferPriceRS.
Logic is controllable per airline.
4.
Workflow:AirShoppingRQ/RS → OfferPriceRQ → (Internal AirShoppingRQ/RS → Match Offer) → OfferPriceRS → OrderCreateRQ/RS
6.
| Category | Control Condition | Example |
|---|
| AirShoppingRQ | Per client | TSTV001 |
| Per airline | LH |
| Per route | ICNLHR |
| OfferPriceRQ | Airline-specific retry setting | KE |
Error Code (when retry setting is OFF):50332: OfferPrice request failed due to cache control being disabled.
KE VOID/Refund restriction
If OrderCancel is requested in cases where KE VOID/Refund is not allowed, the following error will be returned:ErrorMessage: The KE Order has not been cancelled, please proceed with the manual refund process.
KE VOID/Refund Not Allowed CasesWhen all coupons in ticket are not in status I or AL
When the first OriginCode is an airport in New Zealand
Impacted Service: OrderCancel
PolarHub V2: 2025.3 [PolarHub v2 Schema]
Modified at 2026-10-01 23:59:17