Specifying Point of Sale in Sabre Air Availability SOAP API - sabre

I'm trying to query class seat availability on specific flights using Sabre's Air Availability SOAP API.
I am getting expected result from the requests for our default point of sale. What I would like to know is how to use a specific point of sale for which to query availability.
e.g. Flight XY1234 from LAX to JFK on 01/10 has 8 seats available in class A for point of sale US. For point of sale RU it might have 10 seats.
Is there any way to specify that I want to retrieve availability for point of sale RU (or any other point of sale for that matter)?

Which service are you using to request availability?
If using BFM (https://developer.sabre.com/docs/read/soap_apis/air/search/bargain_finder_max) your point of sale will be determined by the PseudoCityCode sent, as follows:
<POS>
<Source PseudoCityCode="**YourIPCCHere**">
<RequestorID ID="1" Type="1">
<CompanyName Code="TN" />
</RequestorID>
</Source>
</POS>
If using OTA_AirAvailLLSRQ (https://developer.sabre.com/docs/read/soap_apis/air/search/air_availability) your point of sale will be determined by the country associated to the PseudoCityCode sent during SessionCreateRQ (the service you use to get a session token in first place):
https://developer.sabre.com/docs/read/soap_apis/session_management/create_session
<SessionCreateRQ returnContextID="true">
<POS>
<Source PseudoCityCode="**YourIPCCHere**"/>
</POS>
</SessionCreateRQ>

Related

EnhancedSeatMap Seat Without Price

I am having some trouble with EnhancedSeatMapRQ, as the seats for certain airlines (e.g. AC, AA, etc.) do not return any BasePrice or Price node. When checked with Sabre software, some of these seats do have a cost charged upon booking.
My understanding is in these situations, the CommercialName value is supposed to help lookup the price. With that said, there is no reference in the response that indicates any price, for anything.
Here is one with a price node:
<Offer entitledInd="false">
<CommercialName>SEAT ASSIGNMENT</CommercialName>
<BasePrice>
<TotalAmount currencyCode="CAD">27.12</TotalAmount>
<Taxes>
<Tax currencyCode="CAD">3.12</Tax>
<TaxTypeRef>taxTypeDetail_1</TaxTypeRef>
</Taxes>
</BasePrice>
</Offer>
And one without it:
<Offer entitledInd="true">
<CommercialName>ADVANCE SEAT SELECTION</CommercialName>
<OfferItemId>offerItem_1</OfferItemId>
<TravellerID>1</TravellerID>
</Offer>
Specifies the commercial name associated with matched price. is all that the docs say about the CommercialName node.
Please guide me through the process of pricing these seats, as it's crucial to a proper seat selection process.
UPDATE: We have noticed that all the Offer nodes without a Price or BasePrice, are inside seats with chargeableInd set to false. With that said, this happens with a significant number of the Airlines, and if unresolved, will render our seat selection counter-productive.
So Sabre team got back to me, and clarified the issue.
When sending a SeatMapQueryEnhanced, the /CabinDefinition/RBD is supposed to have the #ProgramSystemCode, received from BFM.
Example:
<Flight origin="YVR" destination="DFW">
<DepartureDate>2022-07-13</DepartureDate>
<Operating carrier="AA">392</Operating>
<Marketing carrier="AA">392</Marketing>
<ArrivalDate>2022-07-13</ArrivalDate>
</Flight>
<CabinDefinition>
<RBD>N</RBD>
</CabinDefinition>
Where N is extracted form the ProgramSystemCode attribute of that Segment node.

Is it possible to group segments in Retrieve PNR response?

I'm currently retrieving a PNR information using the Retrieve PNR API. For display, i need to group the flights by legs. However, the flight returned in the view i'm using (DefaultWithPq) are simply returned as a single sequence of segments :
<stl18:Segments>
<stl18:Segment sequence="1" id="8">
...
<stl18:Segment sequence="2" id="9">
...
<stl18:Segment sequence="3" id="10">
...
<stl18:Segment sequence="4" id="11">
...
</stl18:Segments>
How is it possible from those sequence (without calculating with departure times destinations etc.) to know which ones are in the departure leg and which ones are in the return leg ?
thank you
Unfortunately this would be have to be done by your application's logic, as the service does not return that information. You can use dates and marriage indicators but there is no element to show which one is the inbound or outbound flight. Usually customers obtain this with shopping services like BFM.

How do I get a Price for Amtrak rail when using the Sabre RailShopRS

I am trying to implement AMTRAK Rail bookings using Sabre's RailShopRS.
I've been able to get a list of available journeys but now I'm struggling to figure out how I get a price for those journeys. It looks like the price should be part of the availability response but there never appears to be a price anywhere.
Is this something that should be part of the initial availability response or do I have to make a new request with details of the specific train and faretype?
Does this help?
http://files.developer.sabre.com/doc/providerdoc/rail/RailServicesDescription_v1.12.0.html#amtrak
Here are some sample request and responses:
http://files.developer.sabre.com/doc/providerdoc/rail/RS_Sample_RQ_RS_1_12_0.zip
There should be a list of 'Offers' within the response, with a reference to a JourneyId that can be used to match the fares with its corresponding journey/train option.

Sabre: How to pass Frequent Flyer Number in PNR

I would like to know how to pass Frequent Flyer's number in case 2 different Airlines.
Do I need to pass Airline wise i.e Segment wise, or can I pass for Marketing Airline.
For Instance:
Say Marketing Airline is "9W" and Suppose 2 connecting Airlines are "9W" and "AI", so in this case, will it be ok if I just pass for "9W" (Marketing Airline) ?
I think passing MarketingAirline in ProgramID should be OK.
according to Sabre documentation, you can pass frequent flyer number using PassengerDetailsRQ when creating PNR with this XML element:
<CustLoyalty MembershipID="155P9B76" NameNumber="1.1" ProgramID="XX"
SegmentNumber="1" TravelingCarrierCode="YY"/>
The thing you have to know that you can't combine SegmentNumber element with TravellingCarrierCode. In your case, you have two different airlines to ticket but you want pass the frequent flyer number to only one of these, then you can do:
<CustLoyalty MembershipID="155P9B76" NameNumber="1.1" ProgramID="XX" TravelingCarrierCode="XX"/>
ProgramID is the airline that you want to pass the frequent flyer number, TravellingCarrierCode can be same or different (due to operating / marketing airline differentiation). NameNumber stands for passenger I guess, I didn't have exact information for that so I don't want to give you wrong information about that attribute.
The schema you should follow in request is:
PassengerDetailsRQ --> TravelItineraryAddInfoRQ --> CustomerInfo --> CustLoyalty
Regards.

How to retrive the transfer order details, with the sales order number in Sterling OMS?

I've a requirement where in, I need to get all the transfer orders, that has been associated with the sales order.
Is there any api / attribute in getOrderDetails API that has transfer order number or TransferOrderHeaderKey ?
In the input, I've both sales order number and orderHeaderKey.
You should be able to use getOrderList call with a combination of documentType for Transfer Order and Derived_from_chained_order_header_key
Using below input you would be able to get all the transfer orders by invoking getOrderList api
<Order DocumentType="0006">
<OrderLine ChainedFromOrderHeaderKey="<SalesOrderHeaderKey>"/>
</Order>

Resources