Detail.Amounts array now includes an additional entry with AmountApplication = "MIN", in addition to the existing "MAX".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) | — |
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.
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) | — |
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.
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 SiteCodefield will be rejected. Clients must complete migration toSalesBranchIDbefore then.2.SalesBranchIDaccepts values01–99. The value00is reserved for Luna internal use and must not be sent by external clients.3.Requests sent without SalesBranchIDwill 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.
SiteCodeSalesBranchID (replaces SiteCode in the same position of the request body)SiteCode to SalesBranchID.SalesBranchID → carrier lowest-fare mapping is currently provisioned by Halo&Co on request.2026.2 to 2026.5. SiteCode is no longer present in 2026.5.SiteCode in request payloads with SalesBranchID.01–99 and is not 00.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 SiteCodefield will be rejected. Clients must complete migration toSalesBranchIDbefore then.2.SalesBranchIDaccepts values01–99. The value00is reserved for Luna internal use and must not be sent by external clients.3.Requests sent without SalesBranchIDwill 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.
SiteCodeSalesBranchID (replaces SiteCode in the same position of the request body)SiteCode to SalesBranchID.SalesBranchID → carrier lowest-fare mapping is currently provisioned by Halo&Co on request.2026.2 to 2026.5. SiteCode is no longer present in 2026.5.SiteCode in request payloads with SalesBranchID.01–99 and is not 00.AirShopping operation. It exposes the same request schema and response shape as the Default endpoint, while applying response-side enhancements before1.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/airshoppingAirShopping operation. It exposes the same request schema and response shape as the Default endpoint, while applying response-side enhancements before1.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/airshopping1.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.
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.
AirShoppingRQ → OfferPriceRQ → OrderCreateRQ → OrderRetrieveRQAirShoppingRQ → OfferPriceRQ → OrderCreateRQOrderRetrieveRQ → OrderChangeRQOrderRetrieveRQ → OrderCancelRQOrderRetrieveRQ → OrderReshopRQ → OrderCancelRQAirShoppingRQ → OfferPriceRQ → SeatAvailabilityRQ → OrderCreateRQOrderRetrieveRQ → SeatAvailabilityRQ → OrderChangeRQOrderRetrieveRQ → SeatAvailabilityRQ → OrderChangeRQOrderRetrieveRQ → SeatAvailabilityRQ → OrderChangeRQOrderRetrieveRQ → SeatAvailabilityRQ → OrderChangeRQOrderChangeNotif → AcknowledgementOrderRetrieveRQ → OrderChangeRQPayerTypePostalAddressTypeOrderRetrieveRQ → OrderChangeRQPayerTypePostalAddressType1.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.
AirShoppingRQ → OfferPriceRQ → OrderCreateRQ → OrderRetrieveRQAirShoppingRQ → OfferPriceRQ → OrderCreateRQOrderRetrieveRQ → OrderChangeRQOrderRetrieveRQ → OrderCancelRQOrderRetrieveRQ → OrderReshopRQ → OrderCancelRQAirShoppingRQ → OfferPriceRQ → SeatAvailabilityRQ → OrderCreateRQOrderRetrieveRQ → SeatAvailabilityRQ → OrderChangeRQOrderRetrieveRQ → SeatAvailabilityRQ → OrderChangeRQOrderRetrieveRQ → SeatAvailabilityRQ → OrderChangeRQOrderRetrieveRQ → SeatAvailabilityRQ → OrderChangeRQOrderChangeNotif → Acknowledgement1.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.
StringString1.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.
StringString1.It is not possible to set INF Contact Info. 2.When splitting a PNR before ticketing, Extend Reserve TL must be performed first.
AirShoppingRQ → OfferPriceRQ → OrderCreateRQAirShoppingRQ → OfferPriceRQ → OrderCreateRQOrderRetrieveRQ → OrderQuoteRQ → OrderChangeRQOrderRetrieveRQ → OrderCancelRQOrderRetrieveRQ → OrderReshopRQ → OrderCancelRQOrderRetrieveRQ → OrderChangeRQAirShoppingRQ → OfferPriceRQ → SeatAvailabilityRQ → OrderCreateRQ → OrderChangeRQAirShoppingRQ → OfferPriceRQ → SeatAvailabilityRQ → OrderCreateRQ → OrderQuoteRQ → OrderChangeRQOrderRetrieveRQ → SeatAvailabilityRQ → OrderQuoteRQ → OrderChangeRQOrderRetrieveRQ → SeatAvailabilityRQ → OrderQuoteRQ → OrderQuoteRQ → OrderChangeRQAirShoppingRQ → OfferPriceRQ → ServiceListRQ → OrderCreateRQ → OrderChangeRQAirShoppingRQ → OfferPriceRQ → ServiceListRQ → OrderCreateRQ → OrderChangeRQAirShoppingRQ → OfferPriceRQ → ServiceListRQ → OrderCreateRQ → OrderQuoteRQ → OrderChangeRQOrderRetrieveRQ → ServiceListRQ → OrderChangeRQOrderRetrieveRQ → ServiceListRQ → OrderChangeRQOrderRetrieveRQ → ServiceListRQ → OrderQuoteRQ → OrderChangeRQAirShoppingRQ → OfferPriceRQ → SeatAvailabilityRQ → ServiceListRQ → OrderCreateRQ → OrderChangeRQAirShoppingRQ → OfferPriceRQ → SeatAvailabilityRQ → ServiceListRQ → OrderCreateRQ → OrderChangeRQAirShoppingRQ → OfferPriceRQ → SeatAvailabilityRQ → ServiceListRQ → OrderQuoteRQ → OrderCreateRQ → OrderChangeRQOrderRetrieveRQ → ServiceListRQ → SeatAvailabilityRQ → OrderChangeRQOrderRetrieveRQ → OrderChangeRQOrderRetrieveRQ → OrderChangeRQOrderChangeNotif → Acknowledgement