I'm using Sabre BFM REST API to get flight details and then trying to revalidate it using this request code ( Rountrip Flight details added in request below ):
{
"OTA_AirLowFareSearchRQ": {
"Version": "4.1.0",
"ResponseType": "OTA",
"POS": {
"Source": [
{
"PseudoCityCode": "xxxx",
"RequestorID": {
"Type": "1",
"ID": "1",
"CompanyName": {
"Code": "TN",
"content": "TN"
}
}
}
]
},
"AvailableFlightsOnly": true,
"OriginDestinationInformation": [
{
"RPH": "1",
"DepartureDateTime": "2025-08-01T06:30:00",
"OriginLocation": {
"LocationCode": "YYZ"
},
"DestinationLocation": {
"LocationCode": "PEK"
},
"TPA_Extensions": {
"SegmentType": {
"Code": "X"
},
"Flight": [
{
"Number": 181,
"DepartureDateTime": "2025-08-01T06:30:00",
"ArrivalDateTime": "2025-08-01T08:21:00",
"Type": "A",
"ClassOfService": "L",
"OriginLocation": {
"LocationCode": "YYZ"
},
"DestinationLocation": {
"LocationCode": "YVR"
},
"Airline": {
"Operating": "AC",
"Marketing": "AC"
}
},
{
"Number": 29,
"DepartureDateTime": "2025-08-01T12:20:00",
"ArrivalDateTime": "2025-08-02T16:10:00",
"Type": "A",
"ClassOfService": "L",
"OriginLocation": {
"LocationCode": "YVR"
},
"DestinationLocation": {
"LocationCode": "PEK"
},
"Airline": {
"Operating": "AC",
"Marketing": "AC"
}
}
]
}
},
{
"RPH": "2",
"DepartureDateTime": "2025-08-15T18:05:00",
"OriginLocation": {
"LocationCode": "PEK"
},
"DestinationLocation": {
"LocationCode": "YYZ"
},
"TPA_Extensions": {
"SegmentType": {
"Code": "X"
},
"Flight": [
{
"Number": 30,
"DepartureDateTime": "2025-08-15T18:05:00",
"ArrivalDateTime": "2025-08-15T14:10:00",
"Type": "A",
"ClassOfService": "L",
"OriginLocation": {
"LocationCode": "PEK"
},
"DestinationLocation": {
"LocationCode": "YVR"
},
"Airline": {
"Operating": "AC",
"Marketing": "AC"
}
},
{
"Number": 186,
"DepartureDateTime": "2025-08-15T16:30:00",
"ArrivalDateTime": "2025-08-16T00:05:00",
"Type": "A",
"ClassOfService": "L",
"OriginLocation": {
"LocationCode": "YVR"
},
"DestinationLocation": {
"LocationCode": "YYZ"
},
"Airline": {
"Operating": "AC",
"Marketing": "AC"
}
}
]
}
}
],
"TravelPreferences": {
"Baggage": {
"RequestType": "A",
"Description": true
},
"TPA_Extensions": {
"DataSources": {
"NDC": "Disable",
"ATPCO": "Enable",
"LCC": "Disable"
},
"PreferNDCSourceOnTie": {
"Value": true
}
}
},
"TravelerInfoSummary": {
"SeatsRequested": [
2
],
"AirTravelerAvail": [
{
"PassengerTypeQuantity": [
{
"Quantity": 1,
"Code": "ADT",
"TPA_Extensions": {
"VoluntaryChanges": {
"Match": "Info"
}
}
},
{
"Quantity": 1,
"Code": "C07",
"TPA_Extensions": {
"VoluntaryChanges": {
"Match": "Info"
}
}
}
]
}
],
"PriceRequestInformation": {
"CurrencyCode": "CAD",
"TPA_Extensions": {
"BrandedFareIndicators": {
"MultipleBrandedFares": true,
"ItinParityBrandlessLeg": false
},
"PrivateFare": {
"Ind": true
},
"Priority": {
"Price": {
"Priority": 2
},
"DirectFlights": {
"Priority": 1
},
"Time": {
"Priority": 3
},
"Vendor": {
"Priority": 4
}
}
}
}
},
"TPA_Extensions": {
"IntelliSellTransaction": {
"RequestType": {
"Name": "50ITINS"
}
}
}
}
}
I get back this response with "no availability" error. It's happening for every origin and destination:
{
"groupedItineraryResponse": {
"version": "6.7.2",
"messages": [
{
"severity": "Info",
"type": "SERVER",
"code": "GCB15-ISELL-TN-00-2025-01-00-6514",
"text": "27131"
},
{
"severity": "Info",
"type": "WORKERTHREAD",
"code": "TRANSACTIONID",
"text": "6961607691376984146"
},
{
"severity": "Info",
"type": "DRE",
"code": "RULEID",
"text": "24113"
},
{
"severity": "Info",
"type": "DEFAULT",
"code": "RULEID",
"text": "24111"
},
{
"severity": "Error",
"type": "ERR",
"code": "NAV",
"text":"No Availability"
}
],
"statistics": { "itineraryCount": 0 }
}
}
Below is Code as Requested I'm using to post Json Data given above -
string requestContent = data; //Json Request Data
string strUrl = ";;
string authtoken="Auth token here";
using (var httpClient = new System.Net.Http.HttpClient())
{
ServicePointManager.SecurityProtocol = SecurityProtocolType.Tls | SecurityProtocolType.Tls11 | SecurityProtocolType.Tls12;
reqSendTime = DateTime.Now.ToString();
httpClient.DefaultRequestHeaders.Accept.Clear();
httpClient.DefaultRequestHeaders.Add("Cache-control", "no-cache");
httpClient.DefaultRequestHeaders.Add("Accept", "application/json");
httpClient.DefaultRequestHeaders.Add("Authorization", "Bearer " + authtoken);
System.Net.Http.HttpContent content = new System.Net.Http.StringContent(requestContent, System.Text.Encoding.UTF8, "application/json");
RequestRespanceData = httpClient.PostAsync(strUrl, content).Result;
}
I'm using Sabre BFM REST API to get flight details and then trying to revalidate it using this request code ( Rountrip Flight details added in request below ):
{
"OTA_AirLowFareSearchRQ": {
"Version": "4.1.0",
"ResponseType": "OTA",
"POS": {
"Source": [
{
"PseudoCityCode": "xxxx",
"RequestorID": {
"Type": "1",
"ID": "1",
"CompanyName": {
"Code": "TN",
"content": "TN"
}
}
}
]
},
"AvailableFlightsOnly": true,
"OriginDestinationInformation": [
{
"RPH": "1",
"DepartureDateTime": "2025-08-01T06:30:00",
"OriginLocation": {
"LocationCode": "YYZ"
},
"DestinationLocation": {
"LocationCode": "PEK"
},
"TPA_Extensions": {
"SegmentType": {
"Code": "X"
},
"Flight": [
{
"Number": 181,
"DepartureDateTime": "2025-08-01T06:30:00",
"ArrivalDateTime": "2025-08-01T08:21:00",
"Type": "A",
"ClassOfService": "L",
"OriginLocation": {
"LocationCode": "YYZ"
},
"DestinationLocation": {
"LocationCode": "YVR"
},
"Airline": {
"Operating": "AC",
"Marketing": "AC"
}
},
{
"Number": 29,
"DepartureDateTime": "2025-08-01T12:20:00",
"ArrivalDateTime": "2025-08-02T16:10:00",
"Type": "A",
"ClassOfService": "L",
"OriginLocation": {
"LocationCode": "YVR"
},
"DestinationLocation": {
"LocationCode": "PEK"
},
"Airline": {
"Operating": "AC",
"Marketing": "AC"
}
}
]
}
},
{
"RPH": "2",
"DepartureDateTime": "2025-08-15T18:05:00",
"OriginLocation": {
"LocationCode": "PEK"
},
"DestinationLocation": {
"LocationCode": "YYZ"
},
"TPA_Extensions": {
"SegmentType": {
"Code": "X"
},
"Flight": [
{
"Number": 30,
"DepartureDateTime": "2025-08-15T18:05:00",
"ArrivalDateTime": "2025-08-15T14:10:00",
"Type": "A",
"ClassOfService": "L",
"OriginLocation": {
"LocationCode": "PEK"
},
"DestinationLocation": {
"LocationCode": "YVR"
},
"Airline": {
"Operating": "AC",
"Marketing": "AC"
}
},
{
"Number": 186,
"DepartureDateTime": "2025-08-15T16:30:00",
"ArrivalDateTime": "2025-08-16T00:05:00",
"Type": "A",
"ClassOfService": "L",
"OriginLocation": {
"LocationCode": "YVR"
},
"DestinationLocation": {
"LocationCode": "YYZ"
},
"Airline": {
"Operating": "AC",
"Marketing": "AC"
}
}
]
}
}
],
"TravelPreferences": {
"Baggage": {
"RequestType": "A",
"Description": true
},
"TPA_Extensions": {
"DataSources": {
"NDC": "Disable",
"ATPCO": "Enable",
"LCC": "Disable"
},
"PreferNDCSourceOnTie": {
"Value": true
}
}
},
"TravelerInfoSummary": {
"SeatsRequested": [
2
],
"AirTravelerAvail": [
{
"PassengerTypeQuantity": [
{
"Quantity": 1,
"Code": "ADT",
"TPA_Extensions": {
"VoluntaryChanges": {
"Match": "Info"
}
}
},
{
"Quantity": 1,
"Code": "C07",
"TPA_Extensions": {
"VoluntaryChanges": {
"Match": "Info"
}
}
}
]
}
],
"PriceRequestInformation": {
"CurrencyCode": "CAD",
"TPA_Extensions": {
"BrandedFareIndicators": {
"MultipleBrandedFares": true,
"ItinParityBrandlessLeg": false
},
"PrivateFare": {
"Ind": true
},
"Priority": {
"Price": {
"Priority": 2
},
"DirectFlights": {
"Priority": 1
},
"Time": {
"Priority": 3
},
"Vendor": {
"Priority": 4
}
}
}
}
},
"TPA_Extensions": {
"IntelliSellTransaction": {
"RequestType": {
"Name": "50ITINS"
}
}
}
}
}
I get back this response with "no availability" error. It's happening for every origin and destination:
{
"groupedItineraryResponse": {
"version": "6.7.2",
"messages": [
{
"severity": "Info",
"type": "SERVER",
"code": "GCB15-ISELL-TN-00-2025-01-00-6514",
"text": "27131"
},
{
"severity": "Info",
"type": "WORKERTHREAD",
"code": "TRANSACTIONID",
"text": "6961607691376984146"
},
{
"severity": "Info",
"type": "DRE",
"code": "RULEID",
"text": "24113"
},
{
"severity": "Info",
"type": "DEFAULT",
"code": "RULEID",
"text": "24111"
},
{
"severity": "Error",
"type": "ERR",
"code": "NAV",
"text":"No Availability"
}
],
"statistics": { "itineraryCount": 0 }
}
}
Below is Code as Requested I'm using to post Json Data given above -
string requestContent = data; //Json Request Data
string strUrl = "https://api.platform.sabre.com/v5/shop/flights/revalidate";
string authtoken="Auth token here";
using (var httpClient = new System.Net.Http.HttpClient())
{
ServicePointManager.SecurityProtocol = SecurityProtocolType.Tls | SecurityProtocolType.Tls11 | SecurityProtocolType.Tls12;
reqSendTime = DateTime.Now.ToString();
httpClient.DefaultRequestHeaders.Accept.Clear();
httpClient.DefaultRequestHeaders.Add("Cache-control", "no-cache");
httpClient.DefaultRequestHeaders.Add("Accept", "application/json");
httpClient.DefaultRequestHeaders.Add("Authorization", "Bearer " + authtoken);
System.Net.Http.HttpContent content = new System.Net.Http.StringContent(requestContent, System.Text.Encoding.UTF8, "application/json");
RequestRespanceData = httpClient.PostAsync(strUrl, content).Result;
}
Share
Improve this question
edited 12 hours ago
Heemanshu Bhalla
asked Feb 7 at 19:40
Heemanshu BhallaHeemanshu Bhalla
3,7631 gold badge30 silver badges56 bronze badges
3
- where is the code? – Jeremy Fiel Commented Feb 8 at 4:23
- i will post code i am justing posting json to the end point – Heemanshu Bhalla Commented yesterday
- I have posted code that i am using to post Json Code its simple json post – Heemanshu Bhalla Commented yesterday
1 Answer
Reset to default 0The revalidation for the selected flights is as follows.
The response is too long to fit here, but this request will return successfully.
CERT Endpoint: https://api.cert.platform.sabre.com/v5/shop/flights/revalidate
Request:
{
"OTA_AirLowFareSearchRQ": {
"Version": "5",
"POS": {
"Source": [
{
"PseudoCityCode": "{{pcc}}",
"RequestorID": {
"Type": "1",
"ID": "1",
"CompanyName": {
"Code": "TN",
"content": "TN"
}
}
}
]
},
"OriginDestinationInformation": [
{
"RPH": "1",
"DepartureDateTime": "2025-08-01T11:00:00",
"OriginLocation": {
"LocationCode": "YYZ"
},
"DestinationLocation": {
"LocationCode": "PEK"
},
"TPA_Extensions": {
"Flight": [
{
"Airline": {
"Marketing": "AC",
"Operating": "AC"
},
"Number": 181,
"ClassOfService": "L",
"OriginLocation": {
"LocationCode": "YYZ"
},
"DestinationLocation": {
"LocationCode": "YVR"
},
"DepartureDateTime": "2025-08-01T06:30:00",
"ArrivalDateTime": "2025-08-01T08:21:00",
"Type": "A"
},
{
"Airline": {
"Marketing": "AC",
"Operating": "AC"
},
"Number": 29,
"ClassOfService": "L",
"OriginLocation": {
"LocationCode": "YVR"
},
"DestinationLocation": {
"LocationCode": "PEK"
},
"DepartureDateTime": "2025-08-01T12:20:00",
"ArrivalDateTime": "2025-08-02T16:10:00",
"Type": "A"
}
]
}
},
{
"RPH": "2",
"DepartureDateTime": "2025-08-15T11:00:00",
"OriginLocation": {
"LocationCode": "PEK"
},
"DestinationLocation": {
"LocationCode": "YYZ"
},
"TPA_Extensions": {
"Flight": [
{
"Airline": {
"Marketing": "AC",
"Operating": "AC"
},
"Number": 30,
"ClassOfService": "Y",
"OriginLocation": {
"LocationCode": "PEK"
},
"DestinationLocation": {
"LocationCode": "YVR"
},
"DepartureDateTime": "2025-08-15T18:05:00",
"ArrivalDateTime": "2025-08-15T14:10:00",
"Type": "A"
},
{
"Airline": {
"Marketing": "AC",
"Operating": "AC"
},
"Number": 186,
"ClassOfService": "Y",
"OriginLocation": {
"LocationCode": "YVR"
},
"DestinationLocation": {
"LocationCode": "YYZ"
},
"DepartureDateTime": "2025-08-15T16:30:00",
"ArrivalDateTime": "2025-08-16T00:05:00",
"Type": "A"
}
]
}
}
],
"TravelPreferences": {
"TPA_Extensions": {
"VerificationItinCallLogic": {
"Value": "M",
"AlwaysCheckAvailability": true
}
},
"Baggage": {
"RequestType": "A",
"Description": true
}
},
"TravelerInfoSummary": {
"SeatsRequested": [
1
],
"AirTravelerAvail": [
{
"PassengerTypeQuantity": [
{
"Quantity": 1,
"Code": "ADT",
"TPA_Extensions": {
"VoluntaryChanges": {
"Match": "Info"
}
}
}
]
}
]
},
"TPA_Extensions": {
"IntelliSellTransaction": {
"RequestType": {
"Name": "REVALIDATE"
},
"ServiceTag": {
"Name": "REVALIDATE"
}
}
}
}
}