HaloSync
prod
  • prod
  • sbx
Home
LunaAlbus
Home
LunaAlbus
prod
  • prod
  • sbx
prod
  • prod
  • sbx
  1. Release Notes
  • HaloSync Portal
  • Getting Started
    • About HaloSync
    • Supported Airlines & Onboarding
    • Quickstart
  • Operations & Support
    • Airline Operational Notes
    • FAQ & Contact
    • Reporting an Issue
  • Integration Guides
    • 🔐 Authentication (HMAC)
    • 🔑 Transaction ID Guidelines
    • Error Handling & Troubleshooting
    • Carrier Support Matrix
  • API Reference
    • OrderChangeNotif
    • AirShopping
    • OfferPrice
    • OrderCreate
    • OrderRetrieve
    • ServiceList
    • SeatAvailability
    • OrderReshop
    • OrderQuote
    • OrderChange
    • OrderCancel
  • Release Notes
    • PolarHub Release Note
    • Albus Release Note
    • Luna Release Note
  • Product Guides
    • Albus User Guide
      • Sign In
      • Dashboard
      • Shopping Offer
      • PolarHub Credential
      • Airline Profile
      • Airline Route Control
      • Airline L2B Limit
      • Airline Timeout
      • Customer Account
      • Albus Admin & User
      • Account Billing
      • Insight
      • Reservation
    • Luna User Guide
      • Login
      • Main Screen & Lists
      • Booking & Ticketing
      • Booking Cancellation
      • Booking PNR Details
      • Booking Change
      • Ancillary Services
      • User Management
  • Schemas
    • Archived
      • PolarHub Schema 2025.3
        • comm
          • TravelAgencyType
          • OriginDestType
          • PaxCodeType
          • CriteriaType
          • ResponseParameterType
          • ResultMessageType
          • DataListsType
          • OrderOfferType
          • OfferType
          • OfferItemInfoType
          • PaxType
          • PaymentType
          • ContactInfoType
          • OrderViewOrderType
          • OfferType_Extend
        • AirShoppingRQ
        • AirShoppingRS
        • OfferPriceRQ
        • OfferPriceRS
        • OrderCreateRQ
        • OrderViewRS
        • SeatAvailabilityRQ
        • SeatAvailabilityRS
        • ServiceListRQ
        • ServiceListRS
        • OrderRetrieveRQ
        • OrderReshopRQ
        • OrderQuoteRQ
        • OrderReshopRS
        • OrderCancelRQ
        • OrderCancelRS
        • OrderChangeRQ
      • PolarHub Schema 2025.6
        • comm
          • RequestOfferItemType
          • RequestOrderItemType
          • OrderServicingDeleteType
          • TravelAgencyType
          • OriginDestType
          • PaxCodeType
          • CriteriaType
          • ResponseParameterType
          • ResultMessageType
          • DataListsType
          • OrderOfferType
          • OfferType
          • OfferItemInfoType
          • PaxType
          • PaymentType
          • ContactInfoType
          • OrderViewOrderType
          • OfferType_Extend
        • AirShoppingRQ
        • AirShoppingRS
        • OfferPriceRQ
        • OfferPriceRS
        • OrderCreateRQ
        • OrderViewRS
        • SeatAvailabilityRQ
        • SeatAvailabilityRS
        • ServiceListRQ
        • ServiceListRS
        • OrderRetrieveRQ
        • OrderReshopRQ
        • OrderQuoteRQ
        • OrderReshopRS
        • OrderCancelRQ
        • OrderCancelRS
        • OrderChangeRQ
      • PolarHub Schema 2025.7
        • comm
          • TravelAgencyType
          • ResponseParameterType
          • OrderViewOrderType
          • OfferType
          • OfferType_Extend
          • PaymentType
          • OriginDestType
          • PaxCodeType
          • CriteriaType
          • ResultMessageType
          • DataListsType
          • OrderOfferType
          • OfferItemInfoType
          • PaxType
          • ContactInfoType
        • OrderViewRS
        • AirShoppingRS
        • OfferPriceRS
        • OrderReshopRS
        • OrderCreateRQ
        • OrderChangeRQ
        • SeatAvailabilityRS
        • ServiceListRS
        • OrderCancelRS
        • OrderCancelRQ
        • OrderQuoteRQ
        • OfferPriceRQ
        • AirShoppingRQ
        • SeatAvailabilityRQ
        • OrderRetrieveRQ
        • OrderReshopRQ
        • ServiceListRQ
      • PolarHub Schema 2025.9
        • Acknowledgement
        • OrderChangeNotif
      • PolarHub Schema 2026.3
        • comm
          • TravelAgencyType
          • ResponseParameterType
          • OrderViewOrderType
          • OfferType
          • OfferType_Extend
          • PaymentType
          • OriginDestType
          • PaxCodeType
          • CriteriaType
          • ResultMessageType
          • DataListsType
          • OrderOfferType
          • OfferItemInfoType
          • PaxType
          • ContactInfoType
          • PayerType
        • AirShoppingRS
        • OrderViewRS
        • OfferPriceRS
        • OrderReshopRS
        • OrderCreateRQ
        • OrderChangeRQ
        • SeatAvailabilityRS
        • ServiceListRS
        • OrderCancelRS
        • OrderCancelRQ
        • OrderQuoteRQ
        • OfferPriceRQ
        • AirShoppingRQ
        • SeatAvailabilityRQ
        • OrderRetrieveRQ
        • OrderReshopRQ
        • ServiceListRQ
        • OrderChangeNotif
        • Acknowledgement
      • PolarHub Schema 2026.2
        • comm
          • PayerType
          • TravelAgencyType
          • ResponseParameterType
          • OrderViewOrderType
          • OfferType
          • OfferType_Extend
          • PaymentType
          • OriginDestType
          • PaxCodeType
          • CriteriaType
          • ResultMessageType
          • DataListsType
          • OrderOfferType
          • OfferItemInfoType
          • PaxType
          • ContactInfoType
        • OrderViewRS
        • AirShoppingRS
        • OfferPriceRS
        • OrderReshopRS
        • OrderCreateRQ
        • OrderChangeRQ
        • SeatAvailabilityRS
        • ServiceListRS
        • OrderCancelRS
        • OrderCancelRQ
        • OrderQuoteRQ
        • OfferPriceRQ
        • AirShoppingRQ
        • SeatAvailabilityRQ
        • OrderRetrieveRQ
        • OrderReshopRQ
        • ServiceListRQ
        • OrderChangeNotif
        • Acknowledgement
      • PolarHub Schema 2026.1
        • comm
          • TravelAgencyType
          • ResponseParameterType
          • OrderViewOrderType
          • OfferType
          • OfferType_Extend
          • PaymentType
          • OriginDestType
          • PaxCodeType
          • CriteriaType
          • ResultMessageType
          • DataListsType
          • OrderOfferType
          • OfferItemInfoType
          • PaxType
          • ContactInfoType
        • OrderViewRS
        • AirShoppingRS
        • OfferPriceRS
        • OrderReshopRS
        • OrderCreateRQ
        • OrderChangeRQ
        • SeatAvailabilityRS
        • ServiceListRS
        • OrderCancelRS
        • OrderCancelRQ
        • OrderQuoteRQ
        • OfferPriceRQ
        • AirShoppingRQ
        • SeatAvailabilityRQ
        • OrderRetrieveRQ
        • OrderReshopRQ
        • ServiceListRQ
      • PolarHub Schema 2026.5
        • comm
          • TravelAgencyType
          • ResponseParameterType
          • OfferType_Extend
          • OfferType
          • OrderViewOrderType
          • PaymentType
          • OriginDestType
          • PaxCodeType
          • CriteriaType
          • ResultMessageType
          • DataListsType
          • OrderOfferType
          • OfferItemInfoType
          • PaxType
          • ContactInfoType
          • PayerType
        • OrderChangeRQ
        • AirShoppingRS
        • OrderViewRS
        • OfferPriceRS
        • OrderReshopRS
        • OrderCreateRQ
        • SeatAvailabilityRS
        • ServiceListRS
        • OrderCancelRS
        • OrderCancelRQ
        • OrderQuoteRQ
        • OfferPriceRQ
        • AirShoppingRQ
        • SeatAvailabilityRQ
        • OrderRetrieveRQ
        • OrderReshopRQ
        • ServiceListRQ
        • OrderChangeNotif
        • Acknowledgement
    • PolarHub Schema 2026.6 (Latest)
      • comm
        • TravelAgencyType
        • ResponseParameterType
        • OfferType_Extend
        • OfferType
        • OrderViewOrderType
        • PaymentType
        • OriginDestType
        • PaxCodeType
        • CriteriaType
        • ResultMessageType
        • DataListsType
        • OrderOfferType
        • OfferItemInfoType
        • PaxType
        • ContactInfoType
        • PayerType
      • AirShoppingRS
      • OrderViewRS
      • OfferPriceRS
      • OrderReshopRS
      • OrderCreateRQ
      • OrderChangeRQ
      • SeatAvailabilityRS
      • ServiceListRS
      • OrderCancelRS
      • OrderCancelRQ
      • OrderQuoteRQ
      • OfferPriceRQ
      • AirShoppingRQ
      • SeatAvailabilityRQ
      • OrderRetrieveRQ
      • OrderReshopRQ
      • ServiceListRQ
      • OrderChangeNotif
      • Acknowledgement
  1. Release Notes

PolarHub Release Note

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.
What changed
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.
Operation codes
{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.
Simplified payload
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.
Request rules
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.
CategoryOne item means
PAXOne Individual object. Surname, GivenName, NameTitle and Birthdate may all be changed in a single request.
CONTACTOne phone or one email. Not both.
APISOne document or one address. Not both.
FFNOne 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 preserved
For 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.
Deleting a value
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.
Behaviour change
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.
Verifying the result
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.
Backward compatibility
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.
Troubleshooting
SymptomCause and fix
50259Request rule violation. The message names the rule that was broken — two passengers, two categories, phone and email together, and so on.
Airline error codeThe airline does not support that operation. Check Airline Integration Guide > Operational Notes > Change Information.
Success response but nothing changedThe airline accepted the request without applying it. Verify with OrderRetrieve rather than the response code.
Delete has no effectThe 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
🧳 Baggage Allowance
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.
What changed
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.Linear
Linear 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.
Carry-on piece count
PolarHub selects the standard carry-on entry instead of summing every entry.
AirlineChange
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 AirlinesThe 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 airlinesReturn a single entry and are unaffected.
Where the change appears
MessagePiece countDimensionsDesc
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.
Before and after
LH checked baggage, NDC 17.2
// before
"DimensionAllowance": { "Length": { "Value": 158, "UnitCode": "Centimeter" } }

// after
"DimensionAllowance": { "Linear": { "Value": 158, "UnitCode": "Centimeter" } }
BA carry-on baggage, NDC 17.2
// before
"PieceAllowance": "2",
"DimensionAllowance": { "Length": { "Value": 56, "UnitCode": "Centimeter" } }

// after
"PieceAllowance": "1",
"DimensionAllowance": { "Length": { "Value": 56, "UnitCode": "Centimeter" },
                        "Width":  { "Value": 45, "UnitCode": "Centimeter" },
                        "Height": { "Value": 25, "UnitCode": "Centimeter" } }
Reading the values correctly
MaximumWeightAllowance 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.
Airline scope
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.
Verifying in Sandbox
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.
Troubleshooting
SymptomCause and fix
Length disappeared from the responseThe airline supplies a three-side total, not a single side. Read Linear instead.
A dimension field is missingThe airline does not provide that axis. Fields are omitted rather than zeroed.
Carry-on count dropped from 2 to 1Expected for BA. The personal item is no longer added to the cabin bag count.
Desc is an empty arrayThe airline provided no description, or the message does not carry Desc. See the table above.
Nothing changed for your airlineCheck 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.
What changed
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.
Operation codes
{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.
Simplified payload
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.
Request rules
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.
CategoryOne item means
PAXOne Individual object. Surname, GivenName, NameTitle and Birthdate may all be changed in a single request.
CONTACTOne phone or one email. Not both.
APISOne document or one address. Not both.
FFNOne 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 preserved
For 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.
Deleting a value
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.
Behaviour change
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.
Verifying the result
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.
Backward compatibility
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.
Troubleshooting
SymptomCause and fix
50259Request rule violation. The message names the rule that was broken — two passengers, two categories, phone and email together, and so on.
Airline error codeThe airline does not support that operation. Check Airline Integration Guide > Operational Notes > Change Information.
Success response but nothing changedThe airline accepted the request without applying it. Verify with OrderRetrieve rather than the response code.
Delete has no effectThe 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
🧳 Baggage Allowance
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.
What changed
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.Linear
Linear 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.
Carry-on piece count
PolarHub selects the standard carry-on entry instead of summing every entry.
AirlineChange
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 AirlinesThe 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 airlinesReturn a single entry and are unaffected.
Where the change appears
MessagePiece countDimensionsDesc
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.
Before and after
LH checked baggage, NDC 17.2
// before
"DimensionAllowance": { "Length": { "Value": 158, "UnitCode": "Centimeter" } }

// after
"DimensionAllowance": { "Linear": { "Value": 158, "UnitCode": "Centimeter" } }
BA carry-on baggage, NDC 17.2
// before
"PieceAllowance": "2",
"DimensionAllowance": { "Length": { "Value": 56, "UnitCode": "Centimeter" } }

// after
"PieceAllowance": "1",
"DimensionAllowance": { "Length": { "Value": 56, "UnitCode": "Centimeter" },
                        "Width":  { "Value": 45, "UnitCode": "Centimeter" },
                        "Height": { "Value": 25, "UnitCode": "Centimeter" } }
Reading the values correctly
MaximumWeightAllowance 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.
Airline scope
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.
Verifying in Sandbox
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.
Troubleshooting
SymptomCause and fix
Length disappeared from the responseThe airline supplies a three-side total, not a single side. Read Linear instead.
A dimension field is missingThe airline does not provide that axis. Fields are omitted rather than zeroed.
Carry-on count dropped from 2 to 1Expected for BA. The personal item is no longer added to the cabin bag count.
Desc is an empty arrayThe airline provided no description, or the message does not carry Desc. See the table above.
Nothing changed for your airlineCheck 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 )

✨ New Features
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 Features
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
Prerequisites
For 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).
Tenant workflow
image.png
Request schema & carrier field mapping
Card body (PaymentCard) — required (all payment types)
FieldDescriptionExample
CardNumberCard number (PAN)4149xxxxxxxxxxxx
SeriesCodeSecurity code (CVC/CVV)123
CardCodeCard brandVI / CA / AX / DC / JC
EffectiveExpireDate/ExpirationExpiry date (MMYY)0128
CardHolderNameCardholder nameKIM MIN SU
PayerName/IndividualName/Surname & GivenNamePayer name—
PayerPhoneNumber/CountryDialingCode & AreaCode & PhoneNumberPayer phone number—
CardholderAddress/Street & PostalCode & CityName & CountrySubdivisionName & CountryCodeBilling address (incl. country code)—
3DS2 authentication result (PaymentCard → SecurePaymentVersion2) — SQ / TR only
FieldDescriptionExampleStatus
AuthenticationValue3DS cryptogram (CAVV/AAV, base64)S8v1+GGi…existing
ElectronicCommerceIndElectronic Commerce Indicator (ECI)05existing
DirectoryServerTrxIDDirectory Server Transaction ID(UUID)existing
TrxStatusTextAuthentication status (Y / A / N)Yexisting
AuthenticationTokenValueAuthentication token—existing
PaymentTrxChannelCodeTransaction channelECexisting
ProgramProtocolText3DS protocol version2.2.0new
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 Features
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
Prerequisites
For 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).
Tenant workflow
image.png
Request schema & carrier field mapping
Card body (PaymentCard) — required (all payment types)
FieldDescriptionExample
CardNumberCard number (PAN)4149xxxxxxxxxxxx
SeriesCodeSecurity code (CVC/CVV)123
CardCodeCard brandVI / CA / AX / DC / JC
EffectiveExpireDate/ExpirationExpiry date (MMYY)0128
CardHolderNameCardholder nameKIM MIN SU
PayerName/IndividualName/Surname & GivenNamePayer name—
PayerPhoneNumber/CountryDialingCode & AreaCode & PhoneNumberPayer phone number—
CardholderAddress/Street & PostalCode & CityName & CountrySubdivisionName & CountryCodeBilling address (incl. country code)—
3DS2 authentication result (PaymentCard → SecurePaymentVersion2) — SQ / TR only
FieldDescriptionExampleStatus
AuthenticationValue3DS cryptogram (CAVV/AAV, base64)S8v1+GGi…existing
ElectronicCommerceIndElectronic Commerce Indicator (ECI)05existing
DirectoryServerTrxIDDirectory Server Transaction ID(UUID)existing
TrxStatusTextAuthentication status (Y / A / N)Yexisting
AuthenticationTokenValueAuthentication token—existing
PaymentTrxChannelCodeTransaction channelECexisting
ProgramProtocolText3DS protocol version2.2.0new
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 )

⚠️ Breaking Changes
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.
🗒️ Special Notes :
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.
Scope
All PolarHub endpoints — including but not limited to AirShopping, AirShoppingPlus, OfferPrice, ServiceList, SeatAvailability, OrderCreate, OrderRetrieve, OrderChange, OrderCancel.
Request schema
Removed: SiteCode
Added: SalesBranchID (replaces SiteCode in the same position of the request body)
Lowest-fare-by-schedule policy
Lookup 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.
Tenant configuration
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
Schema version bumped from 2026.2 to 2026.5. SiteCode is no longer present in 2026.5.
Migration checklist
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 )

⚠️ Breaking Changes
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.
🗒️ Special Notes :
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.
Scope
All PolarHub endpoints — including but not limited to AirShopping, AirShoppingPlus, OfferPrice, ServiceList, SeatAvailability, OrderCreate, OrderRetrieve, OrderChange, OrderCancel.
Request schema
Removed: SiteCode
Added: SalesBranchID (replaces SiteCode in the same position of the request body)
Lowest-fare-by-schedule policy
Lookup 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.
Tenant configuration
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
Schema version bumped from 2026.2 to 2026.5. SiteCode is no longer present in 2026.5.
Migration checklist
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 )

🚀 Changes
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.
🗒️ Special Notes :
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.
Endpoint
POST /exp/polarhub/v2/airshopping
Enhancements
Performance optimizations applied to the AirShopping response path.
Importance-based offer curation
Carrier 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.
Compatibility
Identical request schema and response shape as the Default endpoint.
No schema version change.
Roadmap
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 )

🚀 Changes
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.
🗒️ Special Notes :
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.
Endpoint
POST /exp/polarhub/v2/airshopping
Enhancements
Performance optimizations applied to the AirShopping response path.
Importance-based offer curation
Carrier 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.
Compatibility
Identical request schema and response shape as the Default endpoint.
No schema version change.
Roadmap
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 )

🚀 Changes
Support upsell option in OfferPriceRQ
Enable upsell option in OfferPriceRQ to retrieve additional upsell offers in OfferPriceRS based on the selected offer.
Request
OfferPriceRQ with upsell option
IncludeUpsellOffersInd set to true to request additional upsell offers in OfferPriceRS.
Response
OfferPriceRS returns the requested Offer with additional upsell Offers, if available.
Impacted Service: OfferPrice
🗒️ Special Notes :
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.
📑 Schema Updates
💡
PolarHub V2: 2026.3 [PolarHub v2 Schema]
Add PricingParameter/IncludeUpsellOffersInd schema in OfferPriceRQ
Description
Add PricingParameter/IncludeUpsellOffersInd schema in OfferPriceRQ.
Type : boolean
XPath - OfferPriceRQ
OfferPriceRQ/Query/ResponseParameter/PricingParameter/IncludeUpsellOffersInd
Add OtherOffers schema in OfferPriceRS
Description
Add OtherOffers schema in OfferPriceRS
Type : Object
XPath - OfferPriceRS
OfferPriceRS/OtherOffers

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 )

🚀 Changes
Integration with the new airline AS
By integrating with the new airline AS, PolarHub V2 provides the following features.
🗒️ Special Notes :
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.
Booking
Instant Booking - Flights only (with FOP)
AirShoppingRQ → OfferPriceRQ → OrderCreateRQ → OrderRetrieveRQ
Delay Ticketing - Flights only (without FOP)
AirShoppingRQ → OfferPriceRQ → OrderCreateRQ
Confirm Held Booking
OrderRetrieveRQ → OrderChangeRQ
Cancel
Cancellation of a non-ticketed booking
OrderRetrieveRQ → OrderCancelRQ
VOID / Refund
Ticketed Booking VOID/Refund
OrderRetrieveRQ → OrderReshopRQ → OrderCancelRQ
Seat
Prime Booking
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
📑 Schema Updates
💡
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 )

🚀 Changes
AFKL PNR Split
By adding support for AFKL PNR split functionality, PolarHub V2 provides the following features.
PNR Split
Post Booking (Held / Ticketed Booking)
OrderRetrieveRQ → OrderChangeRQ
Impacted Service: OrderRetrieve, OrderChange
📑 Schema Updates
💡
PolarHub V2: 2026.2 [PolarHub v2 Schema]
Add Payer schema in PaymentList
Description
Add Payer schema entry in PaymentList to send payer information.
Type : PayerType
XPath - OrderCreateRQ
OrderCreateRQ/Query/PaymentList/Payer
XPath - OrderChangeRQ
OrderChangeRQ/Query/PaymentList/Payer
XPath - OrderViewRS
OrderViewRS/DataLists/PaymentList/Payer
Add CardholderAddress schema in PaymentCardMethod
Description
Add CardholderAddress schema in PaymentCardMethod
Type : PostalAddressType
XPath - OrderCreateRQ
OrderCreateRQ/Query/PaymentList/PaymentCardMethod/CardholderAddress
XPath - OrderChangeRQ
OrderChangeRQ/Query/PaymentList/PaymentCardMethod/CardholderAddress
XPath - OrderViewRS
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 )

🚀 Changes
AFKL PNR Split
By adding support for AFKL PNR split functionality, PolarHub V2 provides the following features.
PNR Split
Post Booking (Held / Ticketed Booking)
OrderRetrieveRQ → OrderChangeRQ
Impacted Service: OrderRetrieve, OrderChange
📑 Schema Updates
💡
PolarHub V2: 2026.2 [PolarHub v2 Schema]
Add Payer schema in PaymentList
Description
Add Payer schema entry in PaymentList to send payer information.
Type : PayerType
XPath - OrderCreateRQ
OrderCreateRQ/Query/PaymentList/Payer
XPath - OrderChangeRQ
OrderChangeRQ/Query/PaymentList/Payer
XPath - OrderViewRS
OrderViewRS/DataLists/PaymentList/Payer
Add CardholderAddress schema in PaymentCardMethod
Description
Add CardholderAddress schema in PaymentCardMethod
Type : PostalAddressType
XPath - OrderCreateRQ
OrderCreateRQ/Query/PaymentList/PaymentCardMethod/CardholderAddress
XPath - OrderChangeRQ
OrderChangeRQ/Query/PaymentList/PaymentCardMethod/CardholderAddress
XPath - OrderViewRS
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 )

🚀 Changes
Modified BaggageAllowance schema
Description
Offers/BaggageAllowance/
Either 'PaxJourneyRefID' or 'PaxSegmentRefID' is required value.
Impacted Service: AirShoppingRS, OfferPriceRS, OrderViewRS, OrderReshopRS
Added ResultMessage/MessageDetail URL schema
Description
ResultMessage/MessageDetail/Errors, Warnings Add a URL schema entry
Impacted Service: AirShoppingRS, OfferPriceRS, OrderViewRS, OrderReshopRS, ServiceListRS, SeatAvailabilityRS, OrderCancelRS
📑 Schema Updates
💡
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 )

🚀 Changes
Modified BaggageAllowance schema
Description
Offers/BaggageAllowance/
Either 'PaxJourneyRefID' or 'PaxSegmentRefID' is required value.
Impacted Service: AirShoppingRS, OfferPriceRS, OrderViewRS, OrderReshopRS
📑 Schema Updates
💡
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 )

🚀 Changes
Integration with the new airline AS
By integrating with the new airline AS, PolarHub V2 provides the following features.
🗒️ Special Notes :
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.
Booking
Instant Booking - Flights only (with FOP)
AirShoppingRQ → OfferPriceRQ → OrderCreateRQ → OrderRetrieveRQ
Delay Ticketing - Flights only (without FOP)
AirShoppingRQ → OfferPriceRQ → OrderCreateRQ
Confirm Held Booking
OrderRetrieveRQ → OrderChangeRQ
Cancel
Cancellation of a non-ticketed booking
OrderRetrieveRQ → OrderCancelRQ
VOID / Refund
Ticketed Booking VOID/Refund
OrderRetrieveRQ → OrderReshopRQ → OrderCancelRQ
Seat
Prime Booking
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
📑 Schema Updates
💡
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 )

🚀 Changes
Airshopping cutoff time setting
PolarHub V2 provides the following features.
🗒️ Special Notes :
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
Description
Query/ResponseParameter/CutOffTime Add Affect Schema entry.
Type : String
Impacted Service: AirShoppingRQ, OfferPriceRQ, ServiceListRQ, SeatAvailabilityRQ, OrderReshopRQ, OrderQuoteRQ
Added Sender/TravelAgency/salesBranchID schema
Description
Sender/TravelAgency/salesBranchID Add Affect Schema entry.
Type : String
Impacted Service: AirShoppingRQ, OfferPriceRQ, OrderCreateRQ, OrderRetrieveRQ, ServiceListRQ, SeatAvailabilityRQ, OrderChangeRQ, OrderReshopRQ, OrderQuoteRQ, OrderCancelRQ
📑 Schema Updates
💡
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 )

🚀 Changes
Airshopping cutoff time setting
PolarHub V2 provides the following features.
🗒️ Special Notes :
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
Description
Query/ResponseParameter/CutOffTime Add Affect Schema entry.
Type : String
Impacted Service: AirShoppingRQ, OfferPriceRQ, ServiceListRQ, SeatAvailabilityRQ, OrderReshopRQ, OrderQuoteRQ
📑 Schema Updates
💡
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 )

🚀 Changes
Added Sender/TravelAgency/salesBranchID schema
Description
Sender/TravelAgency/salesBranchID Add Affect Schema entry.
Type : String
Impacted Service: AirShoppingRQ, OfferPriceRQ, OrderCreateRQ, OrderRetrieveRQ, ServiceListRQ, SeatAvailabilityRQ, OrderChangeRQ, OrderReshopRQ, OrderQuoteRQ, OrderCancelRQ
📑 Schema Updates
💡
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 )

🚀 Changes
Integration with the new airline TK
By integrating with the new airline TK, PolarHub V2 provides the following features.
🗒️ Special Notes :
1.
It is not possible to set INF Contact Info.
2.
When splitting a PNR before ticketing, Extend Reserve TL must be performed first.
Booking
Instant Booking - Flights only (with FOP)
AirShoppingRQ → OfferPriceRQ → OrderCreateRQ
Delay Ticketing - Flights only (without FOP)
AirShoppingRQ → OfferPriceRQ → OrderCreateRQ
Confirm Held Booking
OrderRetrieveRQ → OrderQuoteRQ → OrderChangeRQ
Cancel
Cancellation of a non-ticketed booking
OrderRetrieveRQ → OrderCancelRQ
VOID / Refund
Ticketed Booking VOID/Refund
OrderRetrieveRQ → OrderReshopRQ → OrderCancelRQ
Extend Reserve TL
PaymentTL extension (after Booking - without FOP)
OrderRetrieveRQ → OrderChangeRQ
Seat
Prime Booking
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
Service
Prime Booking
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
Service&Seat
Prime Booking
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
PNR Split
Post Booking (Held / Ticketed Booking)
OrderRetrieveRQ → OrderChangeRQ
Passenger Info. Change
Post Booking (Held / Ticketed Booking)
OrderRetrieveRQ → OrderChangeRQ
OCN
OrderChangeNotif → Acknowledgement
Impacted Service: AirShopping, OfferPrice, OrderCreate, OrderChange, OrderReshop, OrderQuote, OrderCancel, OrderRetrieve, SeatAvailability, OrderChangeNotif
📑 Schema Updates
💡
PolarHub V2: 2025.6 [PolarHub v2 Schema]
AMA: 2025.1 [AMA Schema]
OrderViewRS Commission schema Type changed to array
Description
PolarHub OrderViewRS schema needs to be changed OrderViewRS/Order/OrderItem/Commission to array format
XPath - OrderViewRS
OrderViewRS/Order/OrderItem/Commission
Type : Object → Array
Impacted Service: OrderView
Added FareDetail/PenaltyAmount schema
Description
FareDetail/PenaltyAmount Add a PenaltyAmount schema entry
Type : SimpleAmountType
XPath - AirShoppingRS
AirShoppingRS/Offer/OfferItem/FareDetail/PenaltyAmount
XPath - OfferPriceRS
OfferPriceRS/PricedOffer/OfferItem/FareDetail/PenaltyAmount
XPath - OrderReshopRS
OrderReshopRS/ReshopOffers/AddOfferItem/FareDetail/PenaltyAmount
OrderReshopRS/PricedOffer/RepricedOfferItem/FareDetail/PenaltyAmount
OrderReshopRS/PricedOffer/OriginalOrderItem/FareDetail/PenaltyAmount
XPath - OrderViewRS
OrderViewRS/Order/OrderItem/FareDetail/PenaltyAmount
Impacted Service: AirShoppingRS, OfferRriceRS, OrderReshopRS, OrderViewRS
Added OrderQuoteRQ/Query/Affect schema
Description
OrderQuoteRQ/Query/Affect Add Affect Schema entry (TK Schedule Change Delete).
Type : OrderServicingDeleteType (List)
XPath - OrderQuoteRQ
OrderQuoteRQ/Query/Affect
Impacted Service: OrderQuoteRQ
Add OfferItem, OrderItem schema in SeatAvailabilityRQ, ServiceListRQ
Description
Add OfferItem, OrderItem Schema entry
When searching for TK Airlines Services, only one segmentId, one paxId can be searched.
Type : RequestOfferItemType
XPath - ServiceListRQ
ServiceListRQ/Offer/OfferItem
XPath - SeatAvailabilityRQ
SeatAvailabilityRQ/Offer/OfferItem
Type : RequestOrderItemType
XPath - ServiceListRQ
ServiceListRQ/Order/OrderItem
XPath - SeatAvailabilityRQ
SeatAvailabilityRQ/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 )

🚀 Changes
Integration with the new airline TK
By integrating with the new airline TK, PolarHub V2 provides the following features.
🗒️ Special Notes :
1.
It is not possible to set INF Contact Info.
2.
When splitting a PNR before ticketing, Extend Reserve TL must be performed first.
Booking
Instant Booking - Flights only (with FOP)
AirShoppingRQ → OfferPriceRQ → OrderCreateRQ
Delay Ticketing - Flights only (without FOP)
AirShoppingRQ → OfferPriceRQ → OrderCreateRQ
Confirm Held Booking
OrderRetrieveRQ → OrderQuoteRQ → OrderChangeRQ
Cancel
Cancellation of a non-ticketed booking
OrderRetrieveRQ → OrderCancelRQ
VOID / Refund
Ticketed Booking VOID/Refund
OrderRetrieveRQ → OrderReshopRQ → OrderCancelRQ
Extend Reserve TL
PaymentTL extension (after Booking - without FOP)
OrderRetrieveRQ → OrderChangeRQ
Seat
Prime Booking
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
Service
Prime Booking
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
Service&Seat
Prime Booking
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
PNR Split
Post Booking (Held / Ticketed Booking)
OrderRetrieveRQ → OrderChangeRQ
Passenger Info. Change
Post Booking (Held / Ticketed Booking)
OrderRetrieveRQ → OrderChangeRQ
OCN
OrderChangeNotif → Acknowledgement
Impacted Service: AirShopping, OfferPrice, OrderCreate, OrderChange, OrderReshop, OrderQuote, OrderCancel, OrderRetrieve, SeatAvailability, OrderChangeNotif
📑 Schema Updates
💡
PolarHub V2: 2025.6 [PolarHub v2 Schema]
AMA: 2025.1 [AMA Schema]
OrderViewRS Commission schema Type changed to array
Description
PolarHub OrderViewRS schema needs to be changed OrderViewRS/Order/OrderItem/Commission to array format
XPath - OrderViewRS
OrderViewRS/Order/OrderItem/Commission
Type : Object → Array
Impacted Service: OrderView
Added FareDetail/PenaltyAmount schema
Description
FareDetail/PenaltyAmount Add a PenaltyAmount schema entry
Type : SimpleAmountType
XPath - AirShoppingRS
AirShoppingRS/Offer/OfferItem/FareDetail/PenaltyAmount
XPath - OfferPriceRS
OfferPriceRS/PricedOffer/OfferItem/FareDetail/PenaltyAmount
XPath - OrderReshopRS
OrderReshopRS/ReshopOffers/AddOfferItem/FareDetail/PenaltyAmount
OrderReshopRS/PricedOffer/RepricedOfferItem/FareDetail/PenaltyAmount
OrderReshopRS/PricedOffer/OriginalOrderItem/FareDetail/PenaltyAmount
XPath - OrderViewRS
OrderViewRS/Order/OrderItem/FareDetail/PenaltyAmount
Impacted Service: AirShoppingRS, OfferRriceRS, OrderReshopRS, OrderViewRS
Added OrderQuoteRQ/Query/Affect schema
Description
OrderQuoteRQ/Query/Affect Add Affect Schema entry (TK Schedule Change Delete).
Type : OrderServicingDeleteType (List)
XPath - OrderQuoteRQ
OrderQuoteRQ/Query/Affect
Impacted Service: OrderQuoteRQ
Add OfferItem, OrderItem schema in SeatAvailabilityRQ, ServiceListRQ
Description
Add OfferItem, OrderItem Schema entry
When searching for TK Airlines Services, only one segmentId, one paxId can be searched.
Type : RequestOfferItemType
XPath - ServiceListRQ
ServiceListRQ/Offer/OfferItem
XPath - SeatAvailabilityRQ
SeatAvailabilityRQ/Offer/OfferItem
Type : RequestOrderItemType
XPath - ServiceListRQ
ServiceListRQ/Order/OrderItem
XPath - SeatAvailabilityRQ
SeatAvailabilityRQ/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 )

🚀 Changes
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.
How it works
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
5.
Cache Flow Diagram
cacheflow.png
6.
Control Conditions:
CategoryControl ConditionExample
AirShoppingRQPer clientTSTV001
Per airlineLH
Per routeICNLHR
OfferPriceRQAirline-specific retry settingKE
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:
ErrorCode: 50261
ErrorMessage: The KE Order has not been cancelled, please proceed with the manual refund process.
KE VOID/Refund Not Allowed Cases
When all coupons in ticket are not in status I or AL
When the first OriginCode is an airport in New Zealand
Impacted Service: OrderCancel
📑 Schema Updates
💡
PolarHub V2: 2025.3 [PolarHub v2 Schema]
AMA: 2025.1 [AMA Schema]
Modified at 2026-10-01 23:59:17
Previous
Release Notes
Next
Albus Release Note
Built with