Travelport / travelport-uapi-tutorial

The travelport-uapi-tutorial is a Java project for Universal API that will help you connect and code a standard workflow including Air and Hotel.
45 stars 34 forks source link

AirService doesn't recognize ReturnServices. #774

Open ZivGurArye opened 3 years ago

ZivGurArye commented 3 years ago

I've been in contact with Travelport support, who directed me here. I'm trying to get baggage prices under OptionalServices, I've been instructed to send the ReturnServices as true under AirPriceReq/AirPricingModifiers. I added the value to AirPriceReq/AirPricingModifiers.ReturnServices but sending the object to AirService does not return the OptionalServices. More than that, while converting the object to json, it shows the ReturnServices, convecting it to xml, for some reason doesn't, making Travelport support believe the AirService does not receive it. which is the reason they send me here.

vivekjyotipramanik commented 3 years ago

Hi ZivGurArye,

The BaggagePrice will only show if the baggage is a paid baggage. For unpaid baggage the price will not be returned. ReturnServices = True will return OptionalServices only if there are Unbranded Optional Services available for that particular flight/itinerary. Branded Optional Services will return by default , if available for that itinerary, even if you don't provide the ReturnServices element. Please find below more details about ReturnServices. If you believe that the itinerary you are using in AirPrice, should have returned both Branded and Unbranded Optional Services, please raise a ticket in My.Travelport.com with all the request and response xml and we will pick it up from there.

Now, regarding xml to json, it is pretty tough to answer without knowing what you have used to convert from xml to json, what what you have used to create proxy classes and what programming language you are using. I would recommend trying to generate the proxy classes again and check if the AirService class is showing the ReturnServices element in it. If it is showing there and not showing in your json, that might be because the json wrapper you are using is unable to parse it properly. Thanks.

**ReturnServices In Air Pricing responses, ATPCO-filed Optional Services can be returned either as branded (part of a fare brand) or unbranded (outside of the fare brand):

Branded Optional Services are returned in AirPriceResult/AirPricingSolution/AirPricingInfo/FareInfo/Brand/OptionalServices and are for informational purposes only. Unbranded Optional Services are returned in AirPriceResult/AirPricingSolution/OptionalServices and are available to sell for a specific segment. @ReturnServices is used to specify that unbranded Optional Services (/AirPricingSolution/OptionalServices) be returned in the response. If AirPriceReq/AirPricingModifiers @ReturnServices is set to:

"true" (default), unbranded Optional Services are returned in the Air Pricing response. "false", unbranded Optional Services are not returned in the Air Pricing response. Branded Optional Services (/Brand/OptionalServices) continue to be returned in all responses. This functionality is supported only for Galileo, Apollo, Worldspan, and Axess. Unbranded Optional Services are always Airline Content Hub (ACH).**

ZivGurArye commented 3 years ago

I’m trying to get the paid baggage options for flights without included baggage. So far no flight returned unbranded baggage options. The AirService class sent, and the json converted from it, both contain the ReturnServices=true. It’s only when I try to convert it to xml that the element is missing. Meaning the support team on my.travelport.com, working only with xml, wash their hands, saying we’re not sending it. And that for development problems, we should talk to you… I’ve attached the request and response in json form, where you can see for yourself, we’re sending ReturnServices=true, yet not getting any unbranded baggage options. So right now I’m stuck without my.travelport.com being able to help…

From: vivekjyotipramanik [mailto:notifications@github.com] Sent: Wednesday, December 2, 2020 6:50 PM To: Travelport/travelport-uapi-tutorial Cc: Ziv Gur-Arye; Author Subject: Re: [Travelport/travelport-uapi-tutorial] AirService doesn't recognize ReturnServices. (#774)

Hi ZivGurArye,

The BaggagePrice will only show if the baggage is a paid baggage. For unpaid baggage the price will not be returned. ReturnServices = True will return OptionalServices only if there are Unbranded Optional Services available for that particular flight/itinerary. Branded Optional Services will return by default , if available for that itinerary, even if you don't provide the ReturnServices element. Please find below more details about ReturnServices. If you believe that the itinerary you are using in AirPrice, should have returned both Branded and Unbranded Optional Services, please raise a ticket in My.Travelport.com with all the request and response xml and we will pick it up from there.

Now, regarding xml to json, it is pretty tough to answer without knowing what you have used to convert from xml to json, what what you have used to create proxy classes and what programming language you are using. I would recommend trying to generate the proxy classes again and check if the AirService class is showing the ReturnServices element in it. If it is showing there and not showing in your json, that might be because the json wrapper you are using is unable to parse it properly. Thanks.

**ReturnServices In Air Pricing responses, ATPCO-filed Optional Services can be returned either as branded (part of a fare brand) or unbranded (outside of the fare brand):

Branded Optional Services are returned in AirPriceResult/AirPricingSolution/AirPricingInfo/FareInfo/Brand/OptionalServices and are for informational purposes only. Unbranded Optional Services are returned in AirPriceResult/AirPricingSolution/OptionalServices and are available to sell for a specific segment. @ReturnServices is used to specify that unbranded Optional Services (/AirPricingSolution/OptionalServices) be returned in the response. If AirPriceReq/AirPricingModifiers @ReturnServices is set to:

"true" (default), unbranded Optional Services are returned in the Air Pricing response. "false", unbranded Optional Services are not returned in the Air Pricing response. Branded Optional Services (/Brand/OptionalServices) continue to be returned in all responses. This functionality is supported only for Galileo, Apollo, Worldspan, and Axess. Unbranded Optional Services are always Airline Content Hub (ACH).**

— You are receiving this because you authored the thread. Reply to this email directly, view it on GitHubhttps://github.com/Travelport/travelport-uapi-tutorial/issues/774#issuecomment-737356611, or unsubscribehttps://github.com/notifications/unsubscribe-auth/AR67F4JAKUT42ILBQCZVYV3SSZV4RANCNFSM4UKJMIEA.

Email secured by Check Point

Q Please consider the environment before printing this email אנא חשוב על הסביבה לפני הדפסת דואר זה This mail was sent via Mail-SeCure System.

{ "AirItinerary" : { "AirSegment" : [{ "SponsoredFltInfo" : null, "CodeshareInfo" : { "OperatingCarrier" : null, "OperatingFlightNumber" : null, "Value" : "El Al " }, "AirAvailInfo" : null, "FlightDetails" : null, "FlightDetailsRef" : null, "AlternateLocationDistanceRef" : null, "Connection" : null, "SellMessage" : null, "RailCoachDetails" : null, "OpenSegmentSpecified" : false, "Group" : 0, "Carrier" : "LY", "CabinClass" : "Economy", "FlightNumber" : "971", "Origin" : "TLV", "Destination" : "DXB", "DepartureTime" : "2020-12-13T06:00:00", "ArrivalTime" : "2020-12-13T11:05:00", "FlightTime" : null, "TravelTime" : null, "Distance" : null, "ProviderCode" : "1P", "SupplierCode" : null, "ParticipantLevel" : null, "LinkAvailabilitySpecified" : false, "PolledAvailabilityOption" : null, "AvailabilityDisplayType" : null, "ClassOfService" : "Y", "ETicketabilitySpecified" : false, "Equipment" : null, "MarriageGroupSpecified" : false, "NumberOfStopsSpecified" : false, "SeamlessSpecified" : false, "ChangeOfPlane" : false, "GuaranteedPaymentCarrier" : null, "HostTokenRef" : null, "ProviderReservationInfoRef" : null, "PassiveProviderReservationInfoRef" : null, "OptionalServicesIndicatorSpecified" : false, "AvailabilitySource" : null, "APISRequirementsRef" : null, "BlackListedSpecified" : false, "OperationalStatus" : null, "NumberInParty" : null, "RailCoachNumber" : null, "BookingDateSpecified" : false, "FlownSegment" : false, "ScheduleChange" : false, "BrandIndicator" : null, "SegmentRemark" : null, "Key" : "NX1SrXtB0BKA1gvi6EAAAA==", "Status" : null, "PassiveSpecified" : false, "TravelOrder" : null, "ProviderSegmentOrder" : null, "ElStatSpecified" : false, "KeyOverrideSpecified" : false }, { "SponsoredFltInfo" : null, "CodeshareInfo" : { "OperatingCarrier" : null, "OperatingFlightNumber" : null, "Value" : "El Al " }, "AirAvailInfo" : null, "FlightDetails" : null, "FlightDetailsRef" : null, "AlternateLocationDistanceRef" : null, "Connection" : null, "SellMessage" : null, "RailCoachDetails" : null, "OpenSegmentSpecified" : false, "Group" : 1, "Carrier" : "LY", "CabinClass" : "Economy", "FlightNumber" : "972", "Origin" : "DXB", "Destination" : "TLV", "DepartureTime" : "2020-12-17T13:00:00", "ArrivalTime" : "2020-12-17T14:45:00", "FlightTime" : null, "TravelTime" : null, "Distance" : null, "ProviderCode" : "1P", "SupplierCode" : null, "ParticipantLevel" : null, "LinkAvailabilitySpecified" : false, "PolledAvailabilityOption" : null, "AvailabilityDisplayType" : null, "ClassOfService" : "S", "ETicketabilitySpecified" : false, "Equipment" : null, "MarriageGroupSpecified" : false, "NumberOfStopsSpecified" : false, "SeamlessSpecified" : false, "ChangeOfPlane" : false, "GuaranteedPaymentCarrier" : null, "HostTokenRef" : null, "ProviderReservationInfoRef" : null, "PassiveProviderReservationInfoRef" : null, "OptionalServicesIndicatorSpecified" : false, "AvailabilitySource" : null, "APISRequirementsRef" : null, "BlackListedSpecified" : false, "OperationalStatus" : null, "NumberInParty" : null, "RailCoachNumber" : null, "BookingDateSpecified" : false, "FlownSegment" : false, "ScheduleChange" : false, "BrandIndicator" : null, "SegmentRemark" : null, "Key" : "NX1SrXtB0BKA7gvi6EAAAA==", "Status" : null, "PassiveSpecified" : false, "TravelOrder" : null, "ProviderSegmentOrder" : null, "ElStatSpecified" : false, "KeyOverrideSpecified" : false } ], "HostToken" : null, "APISRequirements" : null }, "AirPricingModifiers" : { "ProhibitedRuleCategories" : null, "AccountCodes" : null, "PermittedCabins" : null, "ContractCodes" : null, "ExemptTaxes" : null, "PenaltyFareInformation" : null, "DiscountCard" : null, "PromoCodes" : null, "ManualFareAdjustment" : null, "PointOfSale" : null, "BrandModifiers" : { "Item" : { "ModifierType" : "FareFamily" } }, "MultiGDSSearchIndicator" : null, "ProhibitMinStayFares" : false, "ProhibitMaxStayFares" : false, "CurrencyType" : "USD", "ProhibitAdvancePurchaseFares" : false, "ProhibitNonRefundableFares" : false, "ProhibitRestrictedFares" : false, "FaresIndicator" : 4, "FaresIndicatorSpecified" : true, "FiledCurrency" : null, "PlatingCarrier" : null, "OverrideCarrier" : null, "ETicketability" : 2, "ETicketabilitySpecified" : true, "AccountCodeFaresOnlySpecified" : false, "Key" : null, "ProhibitNonExchangeableFares" : false, "ForceSegmentSelect" : false, "InventoryRequestType" : 1, "InventoryRequestTypeSpecified" : true, "OneWayShop" : false, "ProhibitUnbundledFareTypesSpecified" : false, "ReturnServices" : true, "ChannelId" : null, "ReturnFareAttributes" : false, "SellCheck" : false }, "SearchPassenger" : [{ "Key" : null, "Name" : null, "LoyaltyCard" : null, "DiscountCard" : null, "PersonalGeography" : null, "Code" : "ADT", "Age" : null, "DOBSpecified" : false, "Gender" : null, "PricePTCOnlySpecified" : false, "BookingTravelerRef" : "MH5BZHVsdH5rZmJoejVkeXBxM", "AccompaniedPassenger" : false, "ResidencyTypeSpecified" : false } ], "AirPricingCommand" : [{ "AirPricingModifiers" : null, "AirSegmentPricingModifiers" : [{ "PermittedBookingCodes" : [{ "Code" : "Y" } ], "AirSegmentRef" : "NX1SrXtB0BKA1gvi6EAAAA==", "CabinClass" : null, "AccountCode" : null, "ProhibitAdvancePurchaseFares" : false, "ProhibitNonRefundableFares" : false, "ProhibitPenaltyFares" : false, "FareBasisCode" : null, "FareBreakSpecified" : false, "ConnectionIndicatorSpecified" : false, "BrandTier" : null }, { "PermittedBookingCodes" : [{ "Code" : "S" } ], "AirSegmentRef" : "NX1SrXtB0BKA7gvi6EAAAA==", "CabinClass" : null, "AccountCode" : null, "ProhibitAdvancePurchaseFares" : false, "ProhibitNonRefundableFares" : false, "ProhibitPenaltyFares" : false, "FareBasisCode" : null, "FareBreakSpecified" : false, "ConnectionIndicatorSpecified" : false, "BrandTier" : null } ], "CommandKey" : null, "CabinClass" : null } ], "AirReservationLocatorCode" : null, "OptionalServices" : null, "FormOfPayment" : null, "PCC" : null, "SSR" : null, "CheckOBFees" : null, "FareRuleType" : 0, "SupplierCode" : null, "TicketDateSpecified" : false, "CheckFlightDetails" : true, "ReturnMM" : false, "NSCC" : null, "SplitPricing" : false, "BillingPointOfSaleInfo" : { "OriginApplication" : "ISSTAWEB", "CIDBNumber" : null }, "AgentIDOverride" : null, "TerminalSessionInfo" : null, "TraceId" : "kfbhz5dypq3rarfadwne20ur", "TokenId" : null, "AuthorizedBy" : null, "TargetBranch" : "P2710633", "OverrideLoggingSpecified" : false, "LanguageCode" : "he" }

{ "AirItinerary" : { "AirSegment" : [{ "SponsoredFltInfo" : null, "CodeshareInfo" : { "OperatingCarrier" : "LY", "OperatingFlightNumber" : null, "Value" : "EL AL ISRAEL AIRLINES" }, "AirAvailInfo" : null, "FlightDetails" : [{ "Connection" : null, "Meals" : [3], "InFlightServices" : ["Movie", "Audio Programming", "Duty Free Sales", "Non-smoking"], "Key" : "UQjPrXBAAA/BNUYq6EAAAA==", "Origin" : "TLV", "Destination" : "DXB", "DepartureTime" : "2020-12-13T06:00:00.000+02:00", "ArrivalTime" : "2020-12-13T11:05:00.000+04:00", "FlightTime" : "185", "TravelTime" : "185", "Distance" : null, "Equipment" : "739", "OnTimePerformance" : null, "OriginTerminal" : "3", "DestinationTerminal" : "3", "AutomatedCheckin" : false, "ElStatSpecified" : false, "KeyOverrideSpecified" : false } ], "FlightDetailsRef" : null, "AlternateLocationDistanceRef" : null, "Connection" : null, "SellMessage" : null, "RailCoachDetails" : null, "OpenSegmentSpecified" : false, "Group" : 0, "Carrier" : "LY", "CabinClass" : null, "FlightNumber" : "971", "Origin" : "TLV", "Destination" : "DXB", "DepartureTime" : "2020-12-13T06:00:00.000+02:00", "ArrivalTime" : "2020-12-13T11:05:00.000+04:00", "FlightTime" : "185", "TravelTime" : "185", "Distance" : null, "ProviderCode" : "1P", "SupplierCode" : null, "ParticipantLevel" : null, "LinkAvailabilitySpecified" : false, "PolledAvailabilityOption" : null, "AvailabilityDisplayType" : null, "ClassOfService" : "Y", "ETicketabilitySpecified" : false, "Equipment" : null, "MarriageGroupSpecified" : false, "NumberOfStopsSpecified" : false, "SeamlessSpecified" : false, "ChangeOfPlane" : false, "GuaranteedPaymentCarrier" : null, "HostTokenRef" : null, "ProviderReservationInfoRef" : null, "PassiveProviderReservationInfoRef" : null, "OptionalServicesIndicator" : false, "OptionalServicesIndicatorSpecified" : true, "AvailabilitySource" : null, "APISRequirementsRef" : null, "BlackListedSpecified" : false, "OperationalStatus" : null, "NumberInParty" : null, "RailCoachNumber" : null, "BookingDateSpecified" : false, "FlownSegment" : false, "ScheduleChange" : false, "BrandIndicator" : null, "SegmentRemark" : null, "Key" : "UQjPrXBAAA/BMUYq6EAAAA==", "Status" : null, "PassiveSpecified" : false, "TravelOrder" : null, "ProviderSegmentOrder" : null, "ElStatSpecified" : false, "KeyOverrideSpecified" : false }, { "SponsoredFltInfo" : null, "CodeshareInfo" : { "OperatingCarrier" : "LY", "OperatingFlightNumber" : null, "Value" : "EL AL ISRAEL AIRLINES" }, "AirAvailInfo" : null, "FlightDetails" : [{ "Connection" : null, "Meals" : [2], "InFlightServices" : ["Movie", "Audio Programming", "Duty Free Sales", "Non-smoking"], "Key" : "UQjPrXBAAA/BPUYq6EAAAA==", "Origin" : "DXB", "Destination" : "TLV", "DepartureTime" : "2020-12-17T13:00:00.000+04:00", "ArrivalTime" : "2020-12-17T14:45:00.000+02:00", "FlightTime" : "225", "TravelTime" : "225", "Distance" : null, "Equipment" : "739", "OnTimePerformance" : null, "OriginTerminal" : "3", "DestinationTerminal" : "3", "AutomatedCheckin" : false, "ElStatSpecified" : false, "KeyOverrideSpecified" : false } ], "FlightDetailsRef" : null, "AlternateLocationDistanceRef" : null, "Connection" : null, "SellMessage" : null, "RailCoachDetails" : null, "OpenSegmentSpecified" : false, "Group" : 1, "Carrier" : "LY", "CabinClass" : null, "FlightNumber" : "972", "Origin" : "DXB", "Destination" : "TLV", "DepartureTime" : "2020-12-17T13:00:00.000+04:00", "ArrivalTime" : "2020-12-17T14:45:00.000+02:00", "FlightTime" : "225", "TravelTime" : "225", "Distance" : null, "ProviderCode" : "1P", "SupplierCode" : null, "ParticipantLevel" : null, "LinkAvailabilitySpecified" : false, "PolledAvailabilityOption" : null, "AvailabilityDisplayType" : null, "ClassOfService" : "S", "ETicketabilitySpecified" : false, "Equipment" : null, "MarriageGroupSpecified" : false, "NumberOfStopsSpecified" : false, "SeamlessSpecified" : false, "ChangeOfPlane" : false, "GuaranteedPaymentCarrier" : null, "HostTokenRef" : null, "ProviderReservationInfoRef" : null, "PassiveProviderReservationInfoRef" : null, "OptionalServicesIndicator" : false, "OptionalServicesIndicatorSpecified" : true, "AvailabilitySource" : null, "APISRequirementsRef" : null, "BlackListedSpecified" : false, "OperationalStatus" : null, "NumberInParty" : null, "RailCoachNumber" : null, "BookingDateSpecified" : false, "FlownSegment" : false, "ScheduleChange" : false, "BrandIndicator" : null, "SegmentRemark" : null, "Key" : "UQjPrXBAAA/BOUYq6EAAAA==", "Status" : null, "PassiveSpecified" : false, "TravelOrder" : null, "ProviderSegmentOrder" : null, "ElStatSpecified" : false, "KeyOverrideSpecified" : false } ], "HostToken" : null, "APISRequirements" : null }, "AirPriceResult" : [{ "AirPricingSolution" : [{ "AirSegment" : null, "AirSegmentRef" : [{ "Key" : "UQjPrXBAAA/BMUYq6EAAAA==" }, { "Key" : "UQjPrXBAAA/BOUYq6EAAAA==" } ], "Journey" : null, "LegRef" : null, "AirPricingInfo" : [{ "FareInfo" : [{ "FareTicketDesignator" : null, "FareSurcharge" : null, "AccountCode" : null, "ContractCode" : null, "Endorsement" : null, "BaggageAllowance" : null, "FareRuleKey" : { "FareInfoRef" : "UQjPrXBAAA/BaUYq6EAAAA==", "ProviderCode" : "1P", "Value" : "u9ZUj1QYJ7I4z9OaAUxwkvq9Ly+dfg5E2UTsU5h6Yk9z7+5QvIOoSXRycjLJr5Ae8BYifgjckCsAF+o7h7wCzl7LQHjlnWwT" }, "FareRuleFailureInfo" : null, "FareRemarkRef" : null, "Brand" : { "Title" : [{ "Type" : "External", "LanguageCode" : "EN", "Value" : "Flex" }, { "Type" : "Short", "LanguageCode" : "EN", "Value" : "FLEX" } ], "Text" : [{ "Type" : "ATPCO", "LanguageCode" : "EN", "Value" : "//0B3/F/MEAL//050/F/BASIC SEAT//059/F/CHANGEABLETICKET//06K/C/REFUND BEFOREDEPARTUE//06L/C/REFUND AFTERDEPARTURE//0GO/F/UPTO50LB 23KG AND62LI158LCM//0MQ/F/CARRY8KG 18LB UPTO 45LI 115LCM//" }, { "Type" : "MarketingConsumer", "LanguageCode" : "EN", "Value" : "Choose our Flex fare \n\n• Hand baggage 2 for total of 12 kgs plus personal item\n• Checked baggage 1 x 23kg\n• Rebooking/changes; free of charge\n• Refunds; $50, Y,S,M free of charge\n• Meals; free of charge\n• Seat pre-allocation; available\n\n• Please note that if the flight is operated by another airline then the onboard product or service maybe different to that described above." }, { "Type" : "MarketingAgent", "LanguageCode" : "EN", "Value" : "Choose our Flex fare \n\n• Hand baggage 2 for total of 12 kgs plus personal item\n• Checked baggage 1 x 23kg\n• Rebooking/changes; free of charge\n• Refunds; $50, Y,S,M free of charge\n• Meals; free of charge\n• Seat pre-allocation; available\n\n• Please note that if the flight is operated by another airline then the onboard product or service maybe different to that described above." }, { "Type" : "Strapline", "LanguageCode" : "EN", "Value" : "For passengers that value flexibility" } ], "ImageLocation" : [{ "Type" : "Consumer", "ImageWidth" : "1400", "ImageHeight" : "800", "Value" : "https://cdn.travelport.com/elal/LY_general_large_71386.jpg" }, { "Type" : "Agent", "ImageWidth" : "150", "ImageHeight" : "148", "Value" : "https://cdn.travelport.com/elal/LY_general_medium_1684.jpg" } ], "OptionalServices" : { "OptionalServicesTotal" : null, "OptionalService" : [{ "ServiceData" : [{ "SeatAttributes" : null, "CabinClass" : null, "SSRRef" : null, "Data" : null, "AirSegmentRef" : "UQjPrXBAAA/BMUYq6EAAAA==", "BookingTravelerRef" : null, "StopOver" : false, "TravelerType" : null, "EMDSummaryRef" : null, "EMDCouponRef" : null } ], "ServiceInfo" : { "Description" : ["Checked baggage 1x23kg"], "MediaItem" : [{ "caption" : "Agent", "height" : "60", "width" : "60", "type" : null, "url" : "https://cdn.travelport.com/elal/LY_general_medium_59052.jpg", "icon" : null, "sizeCode" : null }, { "caption" : "Consumer", "height" : "60", "width" : "60", "type" : null, "url" : "https://cdn.travelport.com/elal/LY_general_medium_59052.jpg", "icon" : null, "sizeCode" : null } ] }, "Remark" : null, "TaxInfo" : null, "FeeInfo" : null, "EMD" : { "FulfillmentType" : null, "FulfillmentTypeDescription" : null, "AssociatedItem" : "Chargeable Baggage", "AvailabilityChargeIndicatorSpecified" : false, "RefundReissueIndicatorSpecified" : false, "CommissionableSpecified" : false, "MileageIndicatorSpecified" : false, "Location" : null, "DateSpecified" : false, "BookingSpecified" : false, "DisplayCategorySpecified" : false, "ReusableSpecified" : false }, "BundledServices" : null, "AdditionalInfo" : null, "FeeApplication" : null, "Text" : [{ "Type" : "Strapline", "LanguageCode" : "EN", "Value" : "Check in your bags for extra convenience" }, { "Type" : "MarketingAgent", "LanguageCode" : "EN", "Value" : "1x23kg" }, { "Type" : "MarketingConsumer", "LanguageCode" : "EN", "Value" : "1x23kg" } ], "PriceRange" : null, "TourCode" : null, "BrandingInfo" : null, "Title" : [{ "Type" : "External", "LanguageCode" : "EN", "Value" : "Checked baggage 1x23kg" }, { "Type" : "Short", "LanguageCode" : "EN", "Value" : "HoldBag" } ], "ProviderCode" : null, "SupplierCode" : null, "OptionalServicesRuleRef" : "UQjPrXBAAA/BcUYq6EAAAA==", "Type" : "Baggage", "Confirmation" : null, "SecondaryType" : null, "PurchaseWindowSpecified" : false, "Priority" : null, "AvailableSpecified" : false, "EntitledSpecified" : false, "PerTraveler" : true, "CreateDate" : "2020-11-30T18:09:57.482+02:00", "CreateDateSpecified" : true, "PaymentRef" : null, "ServiceStatus" : null, "Quantity" : null, "SequenceNumber" : null, "ServiceSubCode" : "0GO", "SSRCode" : null, "IssuanceReason" : null, "ProviderDefinedType" : null, "TotalPrice" : null, "BasePrice" : null, "ApproximateTotalPrice" : null, "ApproximateBasePrice" : null, "EquivalentBasePrice" : null, "Taxes" : null, "Fees" : null, "Services" : null, "ApproximateTaxes" : null, "ApproximateFees" : null, "Key" : "UQjPrXBAAA/BbUYq6EAAAA==", "AssessIndicatorSpecified" : false, "Mileage" : null, "ApplicableFFLevel" : null, "PrivateSpecified" : false, "SSRFreeText" : null, "IsPricingApproximateSpecified" : false, "ElStatSpecified" : false, "KeyOverrideSpecified" : false, "Chargeable" : "Included in the brand", "InclusiveOfTaxSpecified" : false, "InterlineSettlementAllowedSpecified" : false, "GeographySpecification" : null, "ExcessWeightRate" : null, "Source" : null, "ViewableOnlySpecified" : false, "DisplayText" : null, "WeightInExcess" : null, "TotalWeight" : null, "BaggageUnitPrice" : null, "FirstPieceSpecified" : false, "LastPieceSpecified" : false, "Restricted" : false, "IsRepriceRequired" : false, "BookedQuantity" : null, "Group" : null, "PseudoCityCode" : null, "Tag" : "Checked Baggage", "DisplayOrder" : "1" }, { "ServiceData" : [{ "SeatAttributes" : null, "CabinClass" : null, "SSRRef" : null, "Data" : null, "AirSegmentRef" : "UQjPrXBAAA/BMUYq6EAAAA==", "BookingTravelerRef" : null, "StopOver" : false, "TravelerType" : null, "EMDSummaryRef" : null, "EMDCouponRef" : null } ], "ServiceInfo" : { "Description" : ["Carry on 1x8kg"], "MediaItem" : [{ "caption" : "Agent", "height" : "60", "width" : "60", "type" : null, "url" : "https://cdn.travelport.com/elal/LY_general_medium_59053.jpg", "icon" : null, "sizeCode" : null }, { "caption" : "Consumer", "height" : "60", "width" : "60", "type" : null, "url" : "https://cdn.travelport.com/elal/LY_general_medium_59053.jpg", "icon" : null, "sizeCode" : null } ] }, "Remark" : null, "TaxInfo" : null, "FeeInfo" : null, "EMD" : { "FulfillmentType" : null, "FulfillmentTypeDescription" : null, "AssociatedItem" : "Chargeable Baggage", "AvailabilityChargeIndicatorSpecified" : false, "RefundReissueIndicatorSpecified" : false, "CommissionableSpecified" : false, "MileageIndicatorSpecified" : false, "Location" : null, "DateSpecified" : false, "BookingSpecified" : false, "DisplayCategorySpecified" : false, "ReusableSpecified" : false }, "BundledServices" : null, "AdditionalInfo" : null, "FeeApplication" : null, "Text" : [{ "Type" : "Strapline", "LanguageCode" : "EN", "Value" : "Taking bags on board" }, { "Type" : "MarketingAgent", "LanguageCode" : "EN", "Value" : "1x8kg (max 25x45x56)." }, { "Type" : "MarketingConsumer", "LanguageCode" : "EN", "Value" : "1x8kg (max 25x45x56)." } ], "PriceRange" : null, "TourCode" : null, "BrandingInfo" : null, "Title" : [{ "Type" : "External", "LanguageCode" : "EN", "Value" : "Carry on 1x8kg" }, { "Type" : "Short", "LanguageCode" : "EN", "Value" : "CarryBag" } ], "ProviderCode" : null, "SupplierCode" : null, "OptionalServicesRuleRef" : "UQjPrXBAAA/BeUYq6EAAAA==", "Type" : "Baggage", "Confirmation" : null, "SecondaryType" : "CY", "PurchaseWindowSpecified" : false, "Priority" : null, "AvailableSpecified" : false, "EntitledSpecified" : false, "PerTraveler" : true, "CreateDate" : "2020-11-30T18:09:57.482+02:00", "CreateDateSpecified" : true, "PaymentRef" : null, "ServiceStatus" : null, "Quantity" : null, "SequenceNumber" : null, "ServiceSubCode" : "0MQ", "SSRCode" : null, "IssuanceReason" : null, "ProviderDefinedType" : null, "TotalPrice" : null, "BasePrice" : null, "ApproximateTotalPrice" : null, "ApproximateBasePrice" : null, "EquivalentBasePrice" : null, "Taxes" : null, "Fees" : null, "Services" : null, "ApproximateTaxes" : null, "ApproximateFees" : null, "Key" : "UQjPrXBAAA/BdUYq6EAAAA==", "AssessIndicatorSpecified" : false, "Mileage" : null, "ApplicableFFLevel" : null, "PrivateSpecified" : false, "SSRFreeText" : null, "IsPricingApproximateSpecified" : false, "ElStatSpecified" : false, "KeyOverrideSpecified" : false, "Chargeable" : "Included in the brand", "InclusiveOfTaxSpecified" : false, "InterlineSettlementAllowedSpecified" : false, "GeographySpecification" : null, "ExcessWeightRate" : null, "Source" : null, "ViewableOnlySpecified" : false, "DisplayText" : null, "WeightInExcess" : null, "TotalWeight" : null, "BaggageUnitPrice" : null, "FirstPieceSpecified" : false, "LastPieceSpecified" : false, "Restricted" : false, "IsRepriceRequired" : false, "BookedQuantity" : null, "Group" : null, "PseudoCityCode" : null, "Tag" : "Carry On Hand Baggage", "DisplayOrder" : "2" }, { "ServiceData" : [{ "SeatAttributes" : null, "CabinClass" : null, "SSRRef" : null, "Data" : null, "AirSegmentRef" : "UQjPrXBAAA/BMUYq6EAAAA==", "BookingTravelerRef" : null, "StopOver" : false, "TravelerType" : null, "EMDSummaryRef" : null, "EMDCouponRef" : null } ], "ServiceInfo" : { "Description" : ["Basic seat assignment"], "MediaItem" : [{ "caption" : "Agent", "height" : "60", "width" : "60", "type" : null, "url" : "https://cdn.travelport.com/elal/LY_general_medium_59059.jpg", "icon" : null, "sizeCode" : null }, { "caption" : "Consumer", "height" : "60", "width" : "60", "type" : null, "url" : "https://cdn.travelport.com/elal/LY_general_medium_59059.jpg", "icon" : null, "sizeCode" : null } ] }, "Remark" : null, "TaxInfo" : null, "FeeInfo" : null, "EMD" : null, "BundledServices" : null, "AdditionalInfo" : null, "FeeApplication" : null, "Text" : [{ "Type" : "Strapline", "LanguageCode" : "EN", "Value" : "Pre reserve your preferred seat" }, { "Type" : "MarketingAgent", "LanguageCode" : "EN", "Value" : "Please note that if the flight is operated by another airline then the options to pre assign seats might be different." }, { "Type" : "MarketingConsumer", "LanguageCode" : "EN", "Value" : "Please note that if the flight is operated by another airline then the options to pre assign seats might be different." } ], "PriceRange" : null, "TourCode" : null, "BrandingInfo" : null, "Title" : [{ "Type" : "External", "LanguageCode" : "EN", "Value" : "Basic seat assignment" }, { "Type" : "Short", "LanguageCode" : "EN", "Value" : "Seating" } ], "ProviderCode" : null, "SupplierCode" : null, "OptionalServicesRuleRef" : null, "Type" : "Branded Fares", "Confirmation" : null, "SecondaryType" : "SE", "PurchaseWindowSpecified" : false, "Priority" : null, "AvailableSpecified" : false, "EntitledSpecified" : false, "PerTraveler" : true, "CreateDate" : "2020-11-30T18:09:57.482+02:00", "CreateDateSpecified" : true, "PaymentRef" : null, "ServiceStatus" : null, "Quantity" : null, "SequenceNumber" : null, "ServiceSubCode" : "050", "SSRCode" : null, "IssuanceReason" : null, "ProviderDefinedType" : null, "TotalPrice" : null, "BasePrice" : null, "ApproximateTotalPrice" : null, "ApproximateBasePrice" : null, "EquivalentBasePrice" : null, "Taxes" : null, "Fees" : null, "Services" : null, "ApproximateTaxes" : null, "ApproximateFees" : null, "Key" : "UQjPrXBAAA/BfUYq6EAAAA==", "AssessIndicatorSpecified" : false, "Mileage" : null, "ApplicableFFLevel" : null, "PrivateSpecified" : false, "SSRFreeText" : null, "IsPricingApproximateSpecified" : false, "ElStatSpecified" : false, "KeyOverrideSpecified" : false, "Chargeable" : "Included in the brand", "InclusiveOfTaxSpecified" : false, "InterlineSettlementAllowedSpecified" : false, "GeographySpecification" : null, "ExcessWeightRate" : null, "Source" : null, "ViewableOnlySpecified" : false, "DisplayText" : null, "WeightInExcess" : null, "TotalWeight" : null, "BaggageUnitPrice" : null, "FirstPieceSpecified" : false, "LastPieceSpecified" : false, "Restricted" : false, "IsRepriceRequired" : false, "BookedQuantity" : null, "Group" : null, "PseudoCityCode" : null, "Tag" : "Seat Assignment", "DisplayOrder" : "5" }, { "ServiceData" : [{ "SeatAttributes" : null, "CabinClass" : null, "SSRRef" : null, "Data" : null, "AirSegmentRef" : "UQjPrXBAAA/BMUYq6EAAAA==", "BookingTravelerRef" : null, "StopOver" : false, "TravelerType" : null, "EMDSummaryRef" : null, "EMDCouponRef" : null } ], "ServiceInfo" : { "Description" : ["Changeable ticket"], "MediaItem" : [{ "caption" : "Agent", "height" : "60", "width" : "60", "type" : null, "url" : "https://cdn.travelport.com/elal/LY_general_medium_59055.jpg", "icon" : null, "sizeCode" : null }, { "caption" : "Consumer", "height" : "60", "width" : "60", "type" : null, "url" : "https://cdn.travelport.com/elal/LY_general_medium_59055.jpg", "icon" : null, "sizeCode" : null } ] }, "Remark" : null, "TaxInfo" : null, "FeeInfo" : null, "EMD" : null, "BundledServices" : null, "AdditionalInfo" : null, "FeeApplication" : null, "Text" : [{ "Type" : "Strapline", "LanguageCode" : "EN", "Value" : "Making changes to your reservation" } ], "PriceRange" : null, "TourCode" : null, "BrandingInfo" : null, "Title" : [{ "Type" : "External", "LanguageCode" : "EN", "Value" : "Changeable ticket" }, { "Type" : "Short", "LanguageCode" : "EN", "Value" : "Rebooking" } ], "ProviderCode" : null, "SupplierCode" : null, "OptionalServicesRuleRef" : null, "Type" : "Branded Fares", "Confirmation" : null, "SecondaryType" : "VC", "PurchaseWindowSpecified" : false, "Priority" : null, "AvailableSpecified" : false, "EntitledSpecified" : false, "PerTraveler" : true, "CreateDate" : "2020-11-30T18:09:57.482+02:00", "CreateDateSpecified" : true, "PaymentRef" : null, "ServiceStatus" : null, "Quantity" : null, "SequenceNumber" : null, "ServiceSubCode" : "059", "SSRCode" : null, "IssuanceReason" : null, "ProviderDefinedType" : null, "TotalPrice" : null, "BasePrice" : null, "ApproximateTotalPrice" : null, "ApproximateBasePrice" : null, "EquivalentBasePrice" : null, "Taxes" : null, "Fees" : null, "Services" : null, "ApproximateTaxes" : null, "ApproximateFees" : null, "Key" : "UQjPrXBAAA/BgUYq6EAAAA==", "AssessIndicatorSpecified" : false, "Mileage" : null, "ApplicableFFLevel" : null, "PrivateSpecified" : false, "SSRFreeText" : null, "IsPricingApproximateSpecified" : false, "ElStatSpecified" : false, "KeyOverrideSpecified" : false, "Chargeable" : "Included in the brand", "InclusiveOfTaxSpecified" : false, "InterlineSettlementAllowedSpecified" : false, "GeographySpecification" : null, "ExcessWeightRate" : null, "Source" : null, "ViewableOnlySpecified" : false, "DisplayText" : null, "WeightInExcess" : null, "TotalWeight" : null, "BaggageUnitPrice" : null, "FirstPieceSpecified" : false, "LastPieceSpecified" : false, "Restricted" : false, "IsRepriceRequired" : false, "BookedQuantity" : null, "Group" : null, "PseudoCityCode" : null, "Tag" : "Rebooking", "DisplayOrder" : "3" }, { "ServiceData" : [{ "SeatAttributes" : null, "CabinClass" : null, "SSRRef" : null, "Data" : null, "AirSegmentRef" : "UQjPrXBAAA/BMUYq6EAAAA==", "BookingTravelerRef" : null, "StopOver" : false, "TravelerType" : null, "EMDSummaryRef" : null, "EMDCouponRef" : null } ], "ServiceInfo" : { "Description" : ["Refund after departure"], "MediaItem" : [{ "caption" : "Agent", "height" : "60", "width" : "60", "type" : null, "url" : "https://cdn.travelport.com/elal/LY_general_medium_59056.jpg", "icon" : null, "sizeCode" : null }, { "caption" : "Consumer", "height" : "60", "width" : "60", "type" : null, "url" : "https://cdn.travelport.com/elal/LY_general_medium_59056.jpg", "icon" : null, "sizeCode" : null } ] }, "Remark" : null, "TaxInfo" : null, "FeeInfo" : null, "EMD" : null, "BundledServices" : null, "AdditionalInfo" : null, "FeeApplication" : null, "Text" : [{ "Type" : "Strapline", "LanguageCode" : "EN", "Value" : "Cancelling your reservation" } ], "PriceRange" : null, "TourCode" : null, "BrandingInfo" : null, "Title" : [{ "Type" : "External", "LanguageCode" : "EN", "Value" : "Refund after departure" }, { "Type" : "Short", "LanguageCode" : "EN", "Value" : "RefAft" } ], "ProviderCode" : null, "SupplierCode" : null, "OptionalServicesRuleRef" : null, "Type" : "Branded Fares", "Confirmation" : null, "SecondaryType" : "VR", "PurchaseWindowSpecified" : false, "Priority" : null, "AvailableSpecified" : false, "EntitledSpecified" : false, "PerTraveler" : true, "CreateDate" : "2020-11-30T18:09:57.482+02:00", "CreateDateSpecified" : true, "PaymentRef" : null, "ServiceStatus" : null, "Quantity" : null, "SequenceNumber" : null, "ServiceSubCode" : "06L", "SSRCode" : null, "IssuanceReason" : null, "ProviderDefinedType" : null, "TotalPrice" : null, "BasePrice" : null, "ApproximateTotalPrice" : null, "ApproximateBasePrice" : null, "EquivalentBasePrice" : null, "Taxes" : null, "Fees" : null, "Services" : null, "ApproximateTaxes" : null, "ApproximateFees" : null, "Key" : "UQjPrXBAAA/BhUYq6EAAAA==", "AssessIndicatorSpecified" : false, "Mileage" : null, "ApplicableFFLevel" : null, "PrivateSpecified" : false, "SSRFreeText" : null, "IsPricingApproximateSpecified" : false, "ElStatSpecified" : false, "KeyOverrideSpecified" : false, "Chargeable" : "Available for a charge", "InclusiveOfTaxSpecified" : false, "InterlineSettlementAllowedSpecified" : false, "GeographySpecification" : null, "ExcessWeightRate" : null, "Source" : null, "ViewableOnlySpecified" : false, "DisplayText" : null, "WeightInExcess" : null, "TotalWeight" : null, "BaggageUnitPrice" : null, "FirstPieceSpecified" : false, "LastPieceSpecified" : false, "Restricted" : false, "IsRepriceRequired" : false, "BookedQuantity" : null, "Group" : null, "PseudoCityCode" : null, "Tag" : "Refund", "DisplayOrder" : "4" }, { "ServiceData" : [{ "SeatAttributes" : null, "CabinClass" : null, "SSRRef" : null, "Data" : null, "AirSegmentRef" : "UQjPrXBAAA/BMUYq6EAAAA==", "BookingTravelerRef" : null, "StopOver" : false, "TravelerType" : null, "EMDSummaryRef" : null, "EMDCouponRef" : null } ], "ServiceInfo" : { "Description" : ["Refund before departure"], "MediaItem" : [{ "caption" : "Agent", "height" : "60", "width" : "60", "type" : null, "url" : "https://cdn.travelport.com/elal/LY_general_medium_59056.jpg", "icon" : null, "sizeCode" : null }, { "caption" : "Consumer", "height" : "60", "width" : "60", "type" : null, "url" : "https://cdn.travelport.com/elal/LY_general_medium_59056.jpg", "icon" : null, "sizeCode" : null } ] }, "Remark" : null, "TaxInfo" : null, "FeeInfo" : null, "EMD" : null, "BundledServices" : null, "AdditionalInfo" : null, "FeeApplication" : null, "Text" : [{ "Type" : "Strapline", "LanguageCode" : "EN", "Value" : "Cancelling your reservation" } ], "PriceRange" : null, "TourCode" : null, "BrandingInfo" : null, "Title" : [{ "Type" : "External", "LanguageCode" : "EN", "Value" : "Refund before departure" }, { "Type" : "Short", "LanguageCode" : "EN", "Value" : "RefBef" } ], "ProviderCode" : null, "SupplierCode" : null, "OptionalServicesRuleRef" : null, "Type" : "Branded Fares", "Confirmation" : null, "SecondaryType" : "VR", "PurchaseWindowSpecified" : false, "Priority" : null, "AvailableSpecified" : false, "EntitledSpecified" : false, "PerTraveler" : true, "CreateDate" : "2020-11-30T18:09:57.482+02:00", "CreateDateSpecified" : true, "PaymentRef" : null, "ServiceStatus" : null, "Quantity" : null, "SequenceNumber" : null, "ServiceSubCode" : "06K", "SSRCode" : null, "IssuanceReason" : null, "ProviderDefinedType" : null, "TotalPrice" : null, "BasePrice" : null, "ApproximateTotalPrice" : null, "ApproximateBasePrice" : null, "EquivalentBasePrice" : null, "Taxes" : null, "Fees" : null, "Services" : null, "ApproximateTaxes" : null, "ApproximateFees" : null, "Key" : "UQjPrXBAAA/BiUYq6EAAAA==", "AssessIndicatorSpecified" : false, "Mileage" : null, "ApplicableFFLevel" : null, "PrivateSpecified" : false, "SSRFreeText" : null, "IsPricingApproximateSpecified" : false, "ElStatSpecified" : false, "KeyOverrideSpecified" : false, "Chargeable" : "Available for a charge", "InclusiveOfTaxSpecified" : false, "InterlineSettlementAllowedSpecified" : false, "GeographySpecification" : null, "ExcessWeightRate" : null, "Source" : null, "ViewableOnlySpecified" : false, "DisplayText" : null, "WeightInExcess" : null, "TotalWeight" : null, "BaggageUnitPrice" : null, "FirstPieceSpecified" : false, "LastPieceSpecified" : false, "Restricted" : false, "IsRepriceRequired" : false, "BookedQuantity" : null, "Group" : null, "PseudoCityCode" : null, "Tag" : "Refund", "DisplayOrder" : "4" }, { "ServiceData" : [{ "SeatAttributes" : null, "CabinClass" : null, "SSRRef" : null, "Data" : null, "AirSegmentRef" : "UQjPrXBAAA/BMUYq6EAAAA==", "BookingTravelerRef" : null, "StopOver" : false, "TravelerType" : null, "EMDSummaryRef" : null, "EMDCouponRef" : null } ], "ServiceInfo" : { "Description" : ["ארוחות"], "MediaItem" : [{ "caption" : "Agent", "height" : "60", "width" : "60", "type" : null, "url" : "https://cdn.travelport.com/elal/LY_general_medium_59058.jpg", "icon" : null, "sizeCode" : null }, { "caption" : "Consumer", "height" : "60", "width" : "60", "type" : null, "url" : "https://cdn.travelport.com/elal/LY_general_medium_59058.jpg", "icon" : null, "sizeCode" : null } ] }, "Remark" : null, "TaxInfo" : null, "FeeInfo" : null, "EMD" : { "FulfillmentType" : null, "FulfillmentTypeDescription" : null, "AssociatedItem" : "Flight", "AvailabilityChargeIndicatorSpecified" : false, "RefundReissueIndicatorSpecified" : false, "CommissionableSpecified" : false, "MileageIndicatorSpecified" : false, "Location" : null, "DateSpecified" : false, "BookingSpecified" : false, "DisplayCategorySpecified" : false, "ReusableSpecified" : false }, "BundledServices" : null, "AdditionalInfo" : null, "FeeApplication" : null, "Text" : [{ "Type" : "Strapline", "LanguageCode" : "HE", "Value" : "ארוחות" }, { "Type" : "MarketingAgent", "LanguageCode" : "HE", "Value" : "אנו יודעים שתזונה נכונה חשובה לכם אפילו כאשר אתם טסים. משום כך, אנו דואגים להגיש ארוחות טריות במגוון טעמים, עם מינימום חומרים משמרים. כל המזון והמשקאות בטיסות שלנו הם כשרים. בנוסף, אנו שמחים להציע לכם ארוחות המתאימות לצרכים המיוחדים שלכם.\n\nמזון ומשקאות כלולים ומשתנים בהתאם לתא הנוסעים." }, { "Type" : "MarketingConsumer", "LanguageCode" : "HE", "Value" : "אנו יודעים שתזונה נכונה חשובה לכם אפילו כאשר אתם טסים. משום כך, אנו דואגים להגיש ארוחות טריות במגוון טעמים, עם מינימום חומרים משמרים. כל המזון והמשקאות בטיסות שלנו הם כשרים. בנוסף, אנו שמחים להציע לכם ארוחות המתאימות לצרכים המיוחדים שלכם.\n\nמזון ומשקאות כלולים ומשתנים בהתאם לתא הנוסעים." } ], "PriceRange" : null, "TourCode" : null, "BrandingInfo" : null, "Title" : [{ "Type" : "Short", "LanguageCode" : "he", "Value" : "ארוחות" }, { "Type" : "External", "LanguageCode" : "he", "Value" : "ארוחות" } ], "ProviderCode" : null, "SupplierCode" : null, "OptionalServicesRuleRef" : null, "Type" : "MealOrBeverage", "Confirmation" : null, "SecondaryType" : null, "PurchaseWindowSpecified" : false, "Priority" : null, "AvailableSpecified" : false, "EntitledSpecified" : false, "PerTraveler" : true, "CreateDate" : "2020-11-30T18:09:57.482+02:00", "CreateDateSpecified" : true, "PaymentRef" : null, "ServiceStatus" : null, "Quantity" : null, "SequenceNumber" : null, "ServiceSubCode" : "0B3", "SSRCode" : null, "IssuanceReason" : null, "ProviderDefinedType" : null, "TotalPrice" : null, "BasePrice" : null, "ApproximateTotalPrice" : null, "ApproximateBasePrice" : null, "EquivalentBasePrice" : null, "Taxes" : null, "Fees" : null, "Services" : null, "ApproximateTaxes" : null, "ApproximateFees" : null, "Key" : "UQjPrXBAAA/BjUYq6EAAAA==", "AssessIndicatorSpecified" : false, "Mileage" : null, "ApplicableFFLevel" : null, "PrivateSpecified" : false, "SSRFreeText" : null, "IsPricingApproximateSpecified" : false, "ElStatSpecified" : false, "KeyOverrideSpecified" : false, "Chargeable" : "Included in the brand", "InclusiveOfTaxSpecified" : false, "InterlineSettlementAllowedSpecified" : false, "GeographySpecification" : null, "ExcessWeightRate" : null, "Source" : null, "ViewableOnlySpecified" : false, "DisplayText" : null, "WeightInExcess" : null, "TotalWeight" : null, "BaggageUnitPrice" : null, "FirstPieceSpecified" : false, "LastPieceSpecified" : false, "Restricted" : false, "IsRepriceRequired" : false, "BookedQuantity" : null, "Group" : null, "PseudoCityCode" : null, "Tag" : "Meals and Beverages", "DisplayOrder" : "6" }, { "ServiceData" : [{ "SeatAttributes" : null, "CabinClass" : null, "SSRRef" : null, "Data" : null, "AirSegmentRef" : "UQjPrXBAAA/BMUYq6EAAAA==", "BookingTravelerRef" : null, "StopOver" : false, "TravelerType" : null, "EMDSummaryRef" : null, "EMDCouponRef" : null } ], "ServiceInfo" : { "Description" : ["WiFi"], "MediaItem" : null }, "Remark" : null, "TaxInfo" : null, "FeeInfo" : null, "EMD" : null, "BundledServices" : null, "AdditionalInfo" : null, "FeeApplication" : null, "Text" : null, "PriceRange" : null, "TourCode" : null, "BrandingInfo" : null, "Title" : null, "ProviderCode" : null, "SupplierCode" : null, "OptionalServicesRuleRef" : null, "Type" : "InFlightEntertainment", "Confirmation" : null, "SecondaryType" : "IT", "PurchaseWindowSpecified" : false, "Priority" : null, "AvailableSpecified" : false, "EntitledSpecified" : false, "PerTraveler" : true, "CreateDate" : "2020-11-30T18:09:57.482+02:00", "CreateDateSpecified" : true, "PaymentRef" : null, "ServiceStatus" : null, "Quantity" : null, "SequenceNumber" : null, "ServiceSubCode" : null, "SSRCode" : null, "IssuanceReason" : null, "ProviderDefinedType" : null, "TotalPrice" : null, "BasePrice" : null, "ApproximateTotalPrice" : null, "ApproximateBasePrice" : null, "EquivalentBasePrice" : null, "Taxes" : null, "Fees" : null, "Services" : null, "ApproximateTaxes" : null, "ApproximateFees" : null, "Key" : "UQjPrXBAAA/BkUYq6EAAAA==", "AssessIndicatorSpecified" : false, "Mileage" : null, "ApplicableFFLevel" : null, "PrivateSpecified" : false, "SSRFreeText" : null, "IsPricingApproximateSpecified" : false, "ElStatSpecified" : false, "KeyOverrideSpecified" : false, "Chargeable" : "Not offered", "InclusiveOfTaxSpecified" : false, "InterlineSettlementAllowedSpecified" : false, "GeographySpecification" : null, "ExcessWeightRate" : null, "Source" : null, "ViewableOnlySpecified" : false, "DisplayText" : null, "WeightInExcess" : null, "TotalWeight" : null, "BaggageUnitPrice" : null, "FirstPieceSpecified" : false, "LastPieceSpecified" : false, "Restricted" : false, "IsRepriceRequired" : false, "BookedQuantity" : null, "Group" : null, "PseudoCityCode" : null, "Tag" : "WiFi", "DisplayOrder" : "7" } ], "GroupedOptionInfo" : null, "OptionalServiceRules" : [{ "ApplicationRules" : null, "ApplicationLevel" : null, "ModifyRules" : null, "SecondaryTypeRules" : null, "Remarks" : [{ "FormattedSpecified" : false, "Language" : null, "TextFormatSpecified" : false, "Value" : "Y,1,KG,23,BAG" } ], "Key" : "UQjPrXBAAA/BcUYq6EAAAA==" }, { "ApplicationRules" : null, "ApplicationLevel" : null, "ModifyRules" : null, "SecondaryTypeRules" : null, "Remarks" : [{ "FormattedSpecified" : false, "Language" : null, "TextFormatSpecified" : false, "Value" : "Y,1,KG,8,CY - W25,H45,L56,CM" } ], "Key" : "UQjPrXBAAA/BeUYq6EAAAA==" } ] }, "Rules" : null, "ServiceAssociations" : null, "UpsellBrand" : null, "ApplicableSegment" : null, "DefaultBrandDetail" : null, "Key" : "UQjPrXBAAA/BaUYq6EAAAA==", "BrandID" : "676214", "Name" : "FLEX", "AirItineraryDetailsRef" : null, "UpSellBrandID" : null, "BrandFoundSpecified" : false, "UpSellBrandFoundSpecified" : false, "BrandedDetailsAvailableSpecified" : false, "Carrier" : "LY", "BrandTier" : "0003", "BrandMaintained" : null }, "Commission" : null, "FareAttributes" : null, "ChangePenalty" : null, "CancelPenalty" : null, "FareRulesFilter" : null, "Key" : "UQjPrXBAAA/BaUYq6EAAAA==", "FareBasis" : "YLF3PR", "PassengerTypeCode" : "ADT", "Origin" : "TLV", "Destination" : "DXB", "EffectiveDate" : "2020-11-30T18:09:57.397+02:00", "TravelDateSpecified" : false, "DepartureDateSpecified" : false, "Amount" : "USD447.00", "PrivateFareSpecified" : false, "NegotiatedFareSpecified" : false, "TourCode" : null, "WaiverCode" : null, "NotValidBeforeSpecified" : false, "NotValidAfterSpecified" : false, "PseudoCityCode" : null, "FareFamily" : null, "PromotionalFareSpecified" : false, "CarCode" : null, "ValueCode" : null, "ElStatSpecified" : false, "KeyOverrideSpecified" : false, "BulkTicketSpecified" : false, "InclusiveTourSpecified" : false, "Value" : null, "SupplierCode" : null, "TaxAmount" : "USD32.66" }, { "FareTicketDesignator" : null, "FareSurcharge" : null, "AccountCode" : null, "ContractCode" : null, "Endorsement" : null, "BaggageAllowance" : null, "FareRuleKey" : { "FareInfoRef" : "UQjPrXBAAA/BlUYq6EAAAA==", "ProviderCode" : "1P", "Value" : "n66aVcs81Cg4z9OaAUxwkvq9Ly+dfg5E88G0jFTF9G1z7+5QvIOoSXRycjLJr5Ae8BYifgjckCsAF+o7h7wCzl7LQHjlnWwT" }, "FareRuleFailureInfo" : null, "FareRemarkRef" : null, "Brand" : { "Title" : [{ "Type" : "External", "LanguageCode" : "EN", "Value" : "Lite" }, { "Type" : "Short", "LanguageCode" : "EN", "Value" : "LITE" } ], "Text" : [{ "Type" : "ATPCO", "LanguageCode" : "EN", "Value" : "//0B3/F/MEAL//050/C/BASIC SEAT//059/C/CHANGEABLETICKET//06K/D/REFUND BEFOREDEPARTUE//06L/D/REFUND AFTERDEPARTURE//0GO/C/UPTO50LB 23KG AND62LI158LCM//0MQ/F/CARRY8KG 18LB UPTO 45LI 115LCM//" }, { "Type" : "MarketingConsumer", "LanguageCode" : "EN", "Value" : "Choose our Lite fare \n\n• Hand baggage 1 x 8kg plus personal item\n• No Checked baggage \n• Rebooking/changes; not permitted \n• Refunds; not permitted\n• Meals; free of charge\n• Seat pre-allocation; not available\n\n• Please note that if the flight is operated by another airline then the onboard product or service maybe different to that described above." }, { "Type" : "Upsell", "LanguageCode" : "EN", "Value" : "Upgrade to Economy Classic which includes checked baggage, seats and changes" }, { "Type" : "MarketingAgent", "LanguageCode" : "EN", "Value" : "Choose our Lite fare \n\n• Hand baggage 1 x 8kg plus personal item\n• No Checked baggage \n• Rebooking/changes; not permitted \n• Refunds; not permitted\n• Meals; free of charge\n• Seat pre-allocation; not available\n\n• Please note that if the flight is operated by another airline then the onboard product or service maybe different to that described above." }, { "Type" : "Strapline", "LanguageCode" : "EN", "Value" : "Basic flight ticket" } ], "ImageLocation" : [{ "Type" : "Consumer", "ImageWidth" : "1400", "ImageHeight" : "800", "Value" : "https://cdn.travelport.com/elal/LY_general_large_71386.jpg" }, { "Type" : "Agent", "ImageWidth" : "150", "ImageHeight" : "148", "Value" : "https://cdn.travelport.com/elal/LY_general_medium_1684.jpg" } ], "OptionalServices" : { "OptionalServicesTotal" : null, "OptionalService" : [{ "ServiceData" : [{ "SeatAttributes" : null, "CabinClass" : null, "SSRRef" : null, "Data" : null, "AirSegmentRef" : "UQjPrXBAAA/BOUYq6EAAAA==", "BookingTravelerRef" : null, "StopOver" : false, "TravelerType" : null, "E

ZivGurArye commented 3 years ago

By the way, I looked into the object reference (attached) and it shows

[System.Xml.Serialization.XmlAttributeAttribute()] [System.ComponentModel.DefaultValueAttribute(true)] public bool ReturnServices { get { return this.returnServicesField; } set { this.returnServicesField = value; this.RaisePropertyChanged("ReturnServices"); } } Meaning a true value, won’t appear in the xml… When I set it to false, it does appear. Meaning there is a problem with the reference itself. Is it possible their object simply missing that line?

From: Ziv Gur-Arye Sent: Thursday, December 3, 2020 10:50 AM To: 'Travelport/travelport-uapi-tutorial'; Travelport/travelport-uapi-tutorial Cc: Author Subject: RE: [Travelport/travelport-uapi-tutorial] AirService doesn't recognize ReturnServices. (#774)

I’m trying to get the paid baggage options for flights without included baggage. So far no flight returned unbranded baggage options. The AirService class sent, and the json converted from it, both contain the ReturnServices=true. It’s only when I try to convert it to xml that the element is missing. Meaning the support team on my.travelport.com, working only with xml, wash their hands, saying we’re not sending it. And that for development problems, we should talk to you… I’ve attached the request and response in json form, where you can see for yourself, we’re sending ReturnServices=true, yet not getting any unbranded baggage options. So right now I’m stuck without my.travelport.com being able to help…

From: vivekjyotipramanik [mailto:notifications@github.com] Sent: Wednesday, December 2, 2020 6:50 PM To: Travelport/travelport-uapi-tutorial Cc: Ziv Gur-Arye; Author Subject: Re: [Travelport/travelport-uapi-tutorial] AirService doesn't recognize ReturnServices. (#774)

Hi ZivGurArye,

The BaggagePrice will only show if the baggage is a paid baggage. For unpaid baggage the price will not be returned. ReturnServices = True will return OptionalServices only if there are Unbranded Optional Services available for that particular flight/itinerary. Branded Optional Services will return by default , if available for that itinerary, even if you don't provide the ReturnServices element. Please find below more details about ReturnServices. If you believe that the itinerary you are using in AirPrice, should have returned both Branded and Unbranded Optional Services, please raise a ticket in My.Travelport.com with all the request and response xml and we will pick it up from there.

Now, regarding xml to json, it is pretty tough to answer without knowing what you have used to convert from xml to json, what what you have used to create proxy classes and what programming language you are using. I would recommend trying to generate the proxy classes again and check if the AirService class is showing the ReturnServices element in it. If it is showing there and not showing in your json, that might be because the json wrapper you are using is unable to parse it properly. Thanks.

**ReturnServices In Air Pricing responses, ATPCO-filed Optional Services can be returned either as branded (part of a fare brand) or unbranded (outside of the fare brand):

Branded Optional Services are returned in AirPriceResult/AirPricingSolution/AirPricingInfo/FareInfo/Brand/OptionalServices and are for informational purposes only. Unbranded Optional Services are returned in AirPriceResult/AirPricingSolution/OptionalServices and are available to sell for a specific segment. @ReturnServices is used to specify that unbranded Optional Services (/AirPricingSolution/OptionalServices) be returned in the response. If AirPriceReq/AirPricingModifiers @ReturnServices is set to:

"true" (default), unbranded Optional Services are returned in the Air Pricing response. "false", unbranded Optional Services are not returned in the Air Pricing response. Branded Optional Services (/Brand/OptionalServices) continue to be returned in all responses. This functionality is supported only for Galileo, Apollo, Worldspan, and Axess. Unbranded Optional Services are always Airline Content Hub (ACH).**

— You are receiving this because you authored the thread. Reply to this email directly, view it on GitHubhttps://github.com/Travelport/travelport-uapi-tutorial/issues/774#issuecomment-737356611, or unsubscribehttps://github.com/notifications/unsubscribe-auth/AR67F4JAKUT42ILBQCZVYV3SSZV4RANCNFSM4UKJMIEA.

Email secured by Check Point

Q Please consider the environment before printing this email אנא חשוב על הסביבה לפני הדפסת דואר זה This mail was sent via Mail-SeCure System.

ZivGurArye commented 3 years ago

now that the flag has been lifted, I hope you could address the problem

vivekjyotipramanik commented 3 years ago

Hi ZivGurArye,

I believe both true and false value should appear in xml, I am not sure about the json as it depends on how you are parsing the xml. It is possible that the json is parsing it that way. Please reverify and if you still think it is an issue with xml reference, please create a ticket in My.Travelport.com and we will pick it up from there. Thanks.

ZivGurArye commented 3 years ago

the json is parsing as it should. they don't use json, so it's meaningless. it's the xml that's not parsing the ReturnServices because the reference is showing that true is the default ([System.ComponentModel.DefaultValueAttribute(true)]). and I already opened a ticket in my.travelport (CS0843866), they referred me here. we can pick it up from there