Revalidate Itinerary

Ability to recheck availability and price for a specific itinerary option without booking the itinerary. The solution revalidates if the itinerary option is valid for purchase.

API Information

Target Audience
All Sabre APIs Customers
Current Version
v3.3.0
Authentication
Sessionless Token
Methods/Endpoints
POST v3.3.0/shop/flights/revalidate HTTP/1.1

GET v3.3.0/shop/flights/revalidate/{requestid} HTTP/1.1

The Pagination Request endpoint has a required requestid URI variable which retrieves the set of tagged elements associated with a given request ID. A RequestID is returned for the tagged element data set when enabletagging=true is used in a previous Revalidate Itinerary API request.

Ready to try the APIs?

Ready to get your hands dirty?

 Register Try the APIs

Ready to launch?

Ready to step up to the production level service? We're standing by to fit you for your spacesuit.

Request Production Key

GET v3.3.0/shop/flights/revalidate/tags/{tagid} HTTP/1.1

The Tag ID Lookup endpoint has a required tagid URI variable which retrieves the tagged element for a given tag ID. Any valid Tag ID can be substituted for {tagid}. A TagID is returned with each tagged element when enabletagging=true used in a previous Revalidate Itinerary API request.

Resources

Request

Query parameters

view
string, optional
The response view definition
Only one value accepted
Valid values: see the Response View Lookup API for a list of Sabre response views. To create a custom response view, define the response paths to include or exclude using the Custom Response View API, then pass the view as a filter in the request URI, e.g., view=NOWARNINGS to format the response.
enabletagging
boolean, optional
Returns a RequestID for the element data set and stores in the Sabre cache:
  • The request ID can be used to make "paginated" calls (using limit and offset) via the Pagination Request URL
Returns a TagID for each element and stores in the Sabre cache:
Default value: false - does not return or store elements for subsequent calls to the Sabre cache
Valid values:
  • enabletagging=true - returns and stores elements for subsequent calls to the Sabre cache.
  • enabletagging=false - does not return or store elements for subsequent calls to the Sabre cache. If the default value of enabletagging=false is used, then the quantity specified in RequestType.Name will be returned.
limit
string or number, optional
The number of elements to retrieve per request
Default value: 50 (elements per request)
Sample value: limit=10
Maximum value: none (a value of limit=none retrieves all available elements)
Note: if limit is specified in the Pagination Request URL, then enabletagging=true must have been specified in the initial Revalidate Itinerary API request.
See usage notes: for sample scenarios to paginate elements for a given request ID with limit and offset parameters.
offset
number, optional
The starting position in the list of all elements that meet the query criteria
Default value: 1
Sample value: offset=10
Note: if offset is specified in the Pagination Request URL, then enabletagging=true must have been specified in the initial Revalidate Itinerary API request.
See usage notes: for sample scenarios to paginate elements for a given request ID with limit and offset parameters.

Request headers

Content-Type
required
Valid value: Content-Type: application/json
Accept-Encoding
optional
To reduce network latency for large responses, request a compressed response. Include the "Accept-Encoding" HTTP header field in the request.
Valid value: Accept-Encoding: gzip

Response

RequestID
string
The request ID that corresponds to the element data set
A request ID is returned when enabletagging=true is used in a previous Revalidate Itinerary API request
The request ID can be used to make "paginated" calls (using limit and offset) via the Pagination Request URL
Note: request IDs have a finite lifetime of 30 minutes. Expiration values are subject to change without notice. 404 Not Found is returned if a given request ID is not found or expired.
TagID
string
The tag ID for the respective element
A tag ID is returned when enabletagging=true is used in a previous Revalidate Itinerary API request
The tag ID can be used to retrieve an element from the Tag ID Lookup URL
Note: tag IDs have a finite lifetime of 30 minutes. Expiration values are subject to change without notice. 404 Not Found is returned if a given tag ID is not found or expired.
Page
object
Returns associated "pagination" information:
  • Size, number
  • TotalTags, number
  • Offset, number
Size
number
The number of elements returned on the current page
TotalTags
number
The total number of tags cached from the initial request
Offset
number
Returns the value specified in offset
prevResults

object

Retrieves a previous set of elements in the request

The prevResults link is included when a request specifies a value for offset that is not 1. For API requests that support the offset and limit parameters, the prevResults link retrieves the previous set of response data. To calculate an offset, the API subtracts the value in limit from the offset in the current request.

nextResults

object

Retrieves the next set of elements in the request

In API requests that support the offset and limit parameters, a nextResults link is included. The nextResults link retrieves the next set of response data. To calculate an offset, the API adds the value in limit to the offset in the current request. When data is no longer available, the nextResults link is excluded, for example, no more published fares are available for retrieval for a given request.

Overall response links

Links
array
self
object
Returns the URL of the request that generated the response
paginatedRequestLinkTemplate
Formats an API request with placeholders to retrieve the element data set associated with a given request ID
tagLookupLinkTemplate
Formats an API request with placeholders to retrieve the element associated with a given tag ID
linkTemplate
Formats an API request with placeholders for required and optional query parameters

Examples: request and response

Download Examples

Requests and responses for this service are long, so these examples are simple. However, we have lots more examples that you can download.

Sample request

This example request demonstrates a simple circle trip.

POST https://api.sabre.com/v3.3.0/shop/flights/revalidate
{
  "OTA_AirLowFareSearchRQ" : {
    "ResponseType" : "OTA",
    "ResponseVersion" : "3.3.0",
    "SeparateMessages" : true,
    "TruncateMessages" : false,
    "Target" : "Production",
    "Version" : "3.3.0",
    "POS" : {
      "Source" : [ {
        "PseudoCityCode" : "XXXX",
        "RequestorID" : {
          "Type" : "0.AAA.X",
          "ID" : "REQ.ID",
          "CompanyName" : {
            "Code" : "TN"
          }
        }
      } ]
    },
    "OriginDestinationInformation" : [ {
      "RPH" : "1",
      "DepartureDateTime" : "2017-06-16T11:27:00",
      "OriginLocation" : {
        "LocationCode" : "ATL"
      },
      "DestinationLocation" : {
        "LocationCode" : "BOS"
      },
      "TPA_Extensions" : {
        "Flight" : [ {
          "ClassOfService" : "Y",
          "Number" : 1200,
          "DepartureDateTime" : "2017-11-16T11:27:00",
          "ArrivalDateTime" : "2017-11-16T13:58:00",
          "Type" : "A",
          "OriginLocation" : {
            "LocationCode" : "ATL"
          },
          "DestinationLocation" : {
            "LocationCode" : "BOS"
          },
          "Airline" : {
            "Operating" : "K0",
            "Marketing" : "K0"
          },
          "BookingDateTime" : "2017-09-01T10:03:00"
        } ],
        "SegmentType" : {
          "Code" : "O"
        }
      }
    }, {
      "RPH" : "2",
      "DepartureDateTime" : "2017-06-26T09:45:00",
      "OriginLocation" : {
        "LocationCode" : "BOS"
      },
      "DestinationLocation" : {
        "LocationCode" : "ATL"
      },
      "TPA_Extensions" : {
        "Flight" : [ {
          "ClassOfService" : "Y",
          "Number" : 1288,
          "DepartureDateTime" : "2017-11-26T11:27:00",
          "ArrivalDateTime" : "2017-11-26T13:58:00",
          "Type" : "A",
          "OriginLocation" : {
            "LocationCode" : "BOS"
          },
          "DestinationLocation" : {
            "LocationCode" : "ATL"
          },
          "Airline" : {
            "Operating" : "K0",
            "Marketing" : "K0"
          },
          "BookingDateTime" : "2017-09-01T10:03:00"
        } ],
        "SegmentType" : {
          "Code" : "O"
        }
      }
    } ],
    "TravelPreferences" : {
      "VendorPref" : [ {
        "Code" : "YY",
        "PreferLevel" : "Unacceptable"
      } ]
    },
    "TravelerInfoSummary" : {
      "SeatsRequested" : [ 1 ],
      "AirTravelerAvail" : [ {
        "PassengerTypeQuantity" : [ {
          "Code" : "ADT",
          "Quantity" : 1
        } ]
      } ],
      "PriceRequestInformation" : {
        "TPA_Extensions" : { }
      }
    },
    "TPA_Extensions" : { }
  }
}

Sample response

{
  "OTA_AirLowFareSearchRS" : {
    "PricedItinCount" : 1,
    "BrandedOneWayItinCount" : 0,
    "SimpleOneWayItinCount" : 0,
    "DepartedItinCount" : 0,
    "SoldOutItinCount" : 0,
    "AvailableItinCount" : 0,
    "Version" : "3.3.0",
    "Success" : { },
    "Warnings" : {
      "Warning" : [ {
        "Type" : "WORKERTHREAD",
        "ShortText" : "1440500158524509709",
        "Code" : "TRANSACTIONID",
        "MessageClass" : "I"
      }, {
        "Type" : "SERVER",
        "ShortText" : "27036",
        "Code" : "TTFHLC950",
        "MessageClass" : "I"
      }, {
        "Type" : "DEFAULT",
        "ShortText" : "25956",
        "Code" : "RULEID",
        "MessageClass" : "I"
      }, {
        "Type" : "DRE",
        "ShortText" : "25957",
        "Code" : "RULEID",
        "MessageClass" : "I"
      } ]
    },
    "PricedItineraries" : {
      "PricedItinerary" : [ {
        "SequenceNumber" : 1,
        "AirItinerary" : {
          "DirectionInd" : "Return",
          "OriginDestinationOptions" : {
            "OriginDestinationOption" : [ {
              "ElapsedTime" : 310,
              "FlightSegment" : [ {
                "DepartureDateTime" : "2018-02-10T22:50:00",
                "ArrivalDateTime" : "2018-02-11T07:00:00",
                "StopQuantity" : 0,
                "FlightNumber" : "1908",
                "ResBookDesigCode" : "P",
                "ElapsedTime" : 310,
                "DepartureAirport" : {
                  "LocationCode" : "LAX",
                  "TerminalID" : "2"
                },
                "ArrivalAirport" : {
                  "LocationCode" : "JFK",
                  "TerminalID" : "4"
                },
                "OperatingAirline" : {
                  "Code" : "K0",
                  "FlightNumber" : "1908"
                },
                "Equipment" : [ {
                  "AirEquipType" : "76W"
                } ],
                "MarketingAirline" : {
                  "Code" : "K0"
                },
                "MarriageGrp" : "O",
                "DepartureTimeZone" : {
                  "GMTOffset" : -8.0
                },
                "ArrivalTimeZone" : {
                  "GMTOffset" : -5.0
                },
                "OnTimePerformance" : {
                  "Level" : "9"
                },
                "TPA_Extensions" : {
                  "eTicket" : {
                    "Ind" : true
                  },
                  "Mileage" : {
                    "Amount" : 2475
                  }
                }
              } ]
            }, {
              "ElapsedTime" : 356,
              "FlightSegment" : [ {
                "DepartureDateTime" : "2018-02-16T07:00:00",
                "ArrivalDateTime" : "2018-02-16T09:56:00",
                "StopQuantity" : 0,
                "FlightNumber" : "472",
                "ResBookDesigCode" : "P",
                "ElapsedTime" : 356,
                "DepartureAirport" : {
                  "LocationCode" : "JFK",
                  "TerminalID" : "4"
                },
                "ArrivalAirport" : {
                  "LocationCode" : "LAX",
                  "TerminalID" : "2"
                },
                "OperatingAirline" : {
                  "Code" : "K0",
                  "FlightNumber" : "472"
                },
                "Equipment" : [ {
                  "AirEquipType" : "764"
                } ],
                "MarketingAirline" : {
                  "Code" : "K0"
                },
                "MarriageGrp" : "O",
                "DepartureTimeZone" : {
                  "GMTOffset" : -5.0
                },
                "ArrivalTimeZone" : {
                  "GMTOffset" : -8.0
                },
                "OnTimePerformance" : {
                  "Level" : "8"
                },
                "TPA_Extensions" : {
                  "eTicket" : {
                    "Ind" : true
                  },
                  "Mileage" : {
                    "Amount" : 2475
                  }
                }
              } ]
            } ]
          }
        },
        "AirItineraryPricingInfo" : [ {
          "LastTicketDate" : "2017-09-19",
          "PricingSource" : "WPNI1_ITIN",
          "PricingSubSource" : "MIP",
          "FareReturned" : true,
          "Repriced" : true,
          "ItinTotalFare" : {
            "BaseFare" : {
              "Amount" : 2896.74,
              "CurrencyCode" : "USD",
              "DecimalPlaces" : 2
            },
            "FareConstruction" : {
              "Amount" : 2896.74,
              "CurrencyCode" : "USD",
              "DecimalPlaces" : 2
            },
            "EquivFare" : {
              "Amount" : 23236,
              "CurrencyCode" : "SEK",
              "DecimalPlaces" : 0
            },
            "Taxes" : {
              "Tax" : [ {
                "TaxCode" : "TOTALTAX",
                "Amount" : 1971,
                "CurrencyCode" : "SEK",
                "DecimalPlaces" : 0
              } ]
            },
            "TotalFare" : {
              "Amount" : 25207,
              "CurrencyCode" : "SEK",
              "DecimalPlaces" : 0
            }
          },
          "PTC_FareBreakdowns" : {
            "PTC_FareBreakdown" : [ {
              "PassengerTypeQuantity" : {
                "Code" : "ADT",
                "Quantity" : 1
              },
              "FareBasisCodes" : {
                "FareBasisCode" : [ {
                  "BookingCode" : "P",
                  "AvailabilityBreak" : true,
                  "DepartureAirportCode" : "LAX",
                  "ArrivalAirportCode" : "JFK",
                  "FareComponentBeginAirport" : "LAX",
                  "FareComponentEndAirport" : "JFK",
                  "FareComponentDirectionality" : "FROM",
                  "FareComponentVendorCode" : "ATP",
                  "GovCarrier" : "K0",
                  "content" : "MAWIA0DQ"
                }, {
                  "BookingCode" : "P",
                  "AvailabilityBreak" : true,
                  "DepartureAirportCode" : "JFK",
                  "ArrivalAirportCode" : "LAX",
                  "FareComponentBeginAirport" : "JFK",
                  "FareComponentEndAirport" : "LAX",
                  "FareComponentDirectionality" : "FROM",
                  "FareComponentVendorCode" : "ATP",
                  "GovCarrier" : "K0",
                  "content" : "MAWIA0DQ"
                } ]
              },
              "PassengerFare" : {
                "BaseFare" : {
                  "Amount" : 2896.74,
                  "CurrencyCode" : "USD"
                },
                "FareConstruction" : {
                  "Amount" : 2896.74,
                  "CurrencyCode" : "USD",
                  "DecimalPlaces" : 2
                },
                "EquivFare" : {
                  "Amount" : 23236,
                  "CurrencyCode" : "SEK",
                  "DecimalPlaces" : 0
                },
                "Taxes" : {
                  "Tax" : [ {
                    "TaxCode" : "AY",
                    "CountryCode" : "US",
                    "Amount" : 45,
                    "CurrencyCode" : "SEK",
                    "DecimalPlaces" : 0
                  }, {
                    "TaxCode" : "AY",
                    "CountryCode" : "US",
                    "Amount" : 45,
                    "CurrencyCode" : "SEK",
                    "DecimalPlaces" : 0
                  }, {
                    "TaxCode" : "US1",
                    "CountryCode" : "US",
                    "Amount" : 1743,
                    "CurrencyCode" : "SEK",
                    "DecimalPlaces" : 0
                  }, {
                    "TaxCode" : "ZP",
                    "CountryCode" : "US",
                    "Amount" : 33,
                    "CurrencyCode" : "SEK",
                    "DecimalPlaces" : 0
                  }, {
                    "TaxCode" : "ZP",
                    "CountryCode" : "US",
                    "Amount" : 33,
                    "CurrencyCode" : "SEK",
                    "DecimalPlaces" : 0
                  }, {
                    "TaxCode" : "XF",
                    "CountryCode" : "US",
                    "Amount" : 36,
                    "CurrencyCode" : "SEK",
                    "DecimalPlaces" : 0
                  }, {
                    "TaxCode" : "XF",
                    "CountryCode" : "US",
                    "Amount" : 36,
                    "CurrencyCode" : "SEK",
                    "DecimalPlaces" : 0
                  } ],
                  "TaxSummary" : [ {
                    "TaxCode" : "US1",
                    "CountryCode" : "US",
                    "Amount" : 1743,
                    "CurrencyCode" : "SEK",
                    "DecimalPlaces" : 0
                  }, {
                    "TaxCode" : "ZP",
                    "CountryCode" : "US",
                    "Amount" : 66,
                    "CurrencyCode" : "SEK",
                    "DecimalPlaces" : 0
                  }, {
                    "TaxCode" : "AY",
                    "CountryCode" : "US",
                    "Amount" : 90,
                    "CurrencyCode" : "SEK",
                    "DecimalPlaces" : 0
                  }, {
                    "TaxCode" : "XF",
                    "CountryCode" : "US",
                    "Amount" : 72,
                    "CurrencyCode" : "SEK",
                    "DecimalPlaces" : 0
                  } ],
                  "TotalTax" : {
                    "Amount" : 1971,
                    "CurrencyCode" : "SEK",
                    "DecimalPlaces" : 0
                  }
                },
                "TotalFare" : {
                  "Amount" : 25207,
                  "CurrencyCode" : "SEK"
                },
                "TPA_Extensions" : {
                  "Messages" : {
                    "Message" : [ {
                      "AirlineCode" : "K0",
                      "Type" : "N",
                      "FailCode" : 0,
                      "Info" : "NONREF/PENALTY APPLIES"
                    }, {
                      "Type" : "W",
                      "FailCode" : 0,
                      "Info" : "VALIDATING CARRIER - K0"
                    } ]
                  }
                }
              },
              "Endorsements" : {
                "NonRefundableIndicator" : true
              },
              "TPA_Extensions" : {
                "FareCalcLine" : {
                  "Info" : "LAX K0 NYC1448.37K0 LAX1448.37USD2896.74END ZPLAXJFK XFLAX4.5JFK4.5"
                }
              },
              "FareInfos" : {
                "FareInfo" : [ {
                  "FareReference" : "P",
                  "TPA_Extensions" : {
                    "SeatsRemaining" : {
                      "Number" : 1,
                      "BelowMin" : false
                    },
                    "Cabin" : {
                      "Cabin" : "F"
                    }
                  }
                }, {
                  "FareReference" : "P",
                  "TPA_Extensions" : {
                    "SeatsRemaining" : {
                      "Number" : 1,
                      "BelowMin" : false
                    },
                    "Cabin" : {
                      "Cabin" : "F"
                    }
                  }
                } ]
              }
            } ]
          },
          "FareInfos" : {
            "FareInfo" : [ {
              "FareReference" : "P",
              "TPA_Extensions" : {
                "SeatsRemaining" : {
                  "Number" : 1,
                  "BelowMin" : false
                },
                "Cabin" : {
                  "Cabin" : "F"
                }
              }
            }, {
              "FareReference" : "P",
              "TPA_Extensions" : {
                "SeatsRemaining" : {
                  "Number" : 1,
                  "BelowMin" : false
                },
                "Cabin" : {
                  "Cabin" : "F"
                }
              }
            } ]
          },
          "TPA_Extensions" : {
            "DivideInParty" : {
              "Indicator" : false
            },
            "ValidatingCarrier" : [ {
              "SettlementMethod" : "BSP",
              "NewVcxProcess" : true,
              "Default" : {
                "Code" : "K0"
              }
            } ]
          }
        } ],
        "TicketingInfo" : {
          "TicketType" : "eTicket"
        },
        "TPA_Extensions" : {
          "ValidatingCarrier" : {
            "Code" : "K0"
          }
        }
      } ]
    },
    "TPA_Extensions" : {
      "AirlineOrderList" : {
        "AirlineOrder" : [ {
          "Code" : "K0",
          "SequenceNumber" : 1
        } ]
      }
    }
  },
  "Links" : [ {
    "rel" : "self",
    "href" : "https://api.sabre.com/v3.3.0/shop/flights/revalidate"
  }, {
    "rel" : "linkTemplate",
    "href" : "https://api.sabre.com//shop/flights/revalidate?limit=&offset=&enabletagging="
  } ]
}

Download Examples

Usage notes

Paginate tagged elements for a given request ID with "limit" and "offset"

Paginate search results for a given request ID by specifying how many tagged elements to return per request in limit and specifying the starting position to begin retrieving tagged elements in offset. This allows you to more quickly retrieve and return search queries for mobile application requests. Rather than returning all tagged elements, you could return 10 tagged elements per request in limit (limit=10) and specify a starting position of 1 in offset (offset=1). Then you can select a starting position of 11 (offset=11) to retrieve the next 10 results (limit=10).

  1. The first request returns a Request ID for the tagged element data set and a Tag ID with each tagged element from the Revalidate Itinerary API.
    POST https://api.sabre.com/v3.3.0/shop/flights/revalidate ?enabletagging=true&limit=10&offset=1 HTTP/1.1
  2. The next request retrieves the cached tagged elements from 11 to 20 from the Pagination Request URL.
    GET https://api.sabre.com/v3.3.0/shop/flights/revalidate/[REQUESTID]?limit=10&offset=11 HTTP/1.1
  3. The last request retrieves the cached tagged elements from 21 to 30 from the Pagination Request URL.
    GET https://api.sabre.com/v3.3.0/shop/flights/revalidate/[REQUESTID]?limit=10&offset=21 HTTP/1.1

Retrieve a specific tagged element for a given tag ID from the Tag ID Lookup URL

  1. The first request returns a Request ID for the tagged element data set and a Tag ID with each tagged element from the Revalidate Itinerary API.
    POST https://api.sabre.com/v3.3.0/shop/flights/revalidate ?enabletagging=true HTTP/1.1
  2. The next request retrieves a tagged element from the Tag ID Lookup URL.
    GET https://api.sabre.com/v3.3.0/shop/flights/revalidate/tags/[TAGID] HTTP/1.1

Errors

An HTTP status code is always returned.

Errors that are specific to this API follow. For information about the error response format, see the: status codes and errors page.

404 NOT_FOUND

No results were found
The service cannot find data to fulfill the parameters in the request. For example, there is no data available for the dates specified.

400 BAD REQUEST

The request was not valid.
The service does not support the data used in the request. For example, origin or destination in the request is not a valid IATA airport code.
Parameter 'limit' must be of type 'number', or string equal to 'None'
The query parameter has an incorrect value. In this case, the value must be a number or specify a value of 'None'.
Parameter 'limit' must be between 1 and 2147483647
limit is 0 or a negative number or greater than 2147483647.
limit is greater than 2147483647.
Parameter 'offset' must be of type 'number'
A value has an incorrect JSON format for the corresponding parameter. In this case, the value must be a number.
Parameter 'offset' must be between 1 and 2147483647
offset is 0 or a negative number or greater than 2147483647.
No view named '{view}' is defined
The specified '{view}' does not exist.

If you receive this error:

 { status: "NotProcessed" type: "Validation" errorCode: "ERR.2SG.CLIENT.INVALID_REQUEST" timeStamp: "2016-07-19T11:43:34.599-05:00"
    message: "Request is invalid: Request payload is missing or it is not supported by the requested service" }

Ensure you:

  • have specified a content type header with a value of 'application/json'
  • are sending a JSON document in the HTTP POST's request body

Docs Navigation