Mondee API Documentation
Introduction
This documentation is nothing but a guide to provide information about mondee functionalities.what are functionalities we provie, how they are serving
The objective of this document is to provide Integration guidelines to the clients who intend to consume Mondee Restful Web Services.
we provide the code snippets according to lanquageTabs which is clicked
Objective
The objective of this document is to provide Integration guidelines to the clients who intend to consume Mondee Restful Web Services.
System Overview
Mondee provides easy to use REST Semantic Web Standards API's to search, book, cancel,re-price, and check status on thousands of International Flights.
Technical Summary
- Operating System and Software Language Agnostic
- Open-specifications Driven
- JavaScript Object Notation http://json.org/
- Hyper-Text Transfer Protocol http://www.w3.org/Protocols/
- REST Semantic Web Standards https://www.w3.org/2001/sw/wiki/REST
- Reference Implementation
Audience
Audience is all about to whom we are representing this
The audience for this specification includes:
Project managers
Software Engineers
Software Testers
Other Interested Groups
Mondee API Process Flow
API | Description |
---|---|
FlightSearch REST API | The Flight Search REST API allows users to request flight availability based on a city pair for One way or Round Trip or Multi-City travel. The response message returns available flights that match the request criteria. |
Fare Rules | The Fare Rules API allows users to request the fare rules associated with the selected itinerary. The response message returns the fare rules for the requested itinerary. |
Reprice Itinerary | The Reprice Itinerary API allows users to price the itinerary and reconfirm the availability of the selected itinerary fare. The response returns a-valid itinerary message if the itinerary fare is still valid and in cases where the fare is no longer available, the response returns the new fare details of the selected itinerary. |
Book Itinerary | The Book Itinerary API allows users to book the itinerary and create PNR for the selected itinerary to mark it for ticketing. The response message returns booked itinerary confirmation with PNR details. |
Read PNR | The Read PNR API allows users to retrieve the PNR information including passenger and payment details from the GDS to the application. The response message returns the complete PNR information requested for the PNR. |
Order Ticket | The Order Ticket API allows users to place the booked PNR in the queue for ticketing. The response message returns the order ticket status confirmation of the requested PNR. |
Read E-Ticket | The Read E-Ticket API allows users to read the E-Ticket Number for the booked PNR that is ticketed. The response message returns the E-Ticket number of the requested PNR. |
Cancel PNR | The Cancel PNR API allows users to cancel the booked PNR that is not ticketed. The response message returns the cancellation confirmation of the requested PNR. |
Technical Requirements
Client-Side Requirements
what are the client side requirements to intreact with BE
The client requires to develop a W3C compliant REST client to interact with our Booking Engine web services interface. Integrators shall comply with the W3C Web Services (HTTP, REST and JSON).
Mondee Restful Services are developed in the complaint to REST Semantic Web Standards. Integrators needs to comply with following Web Service standards.
Specifications | Purpose / Description | Comments |
---|---|---|
HTTP | HTTP (Hypertext Transfer Protocol) is a Web protocol that transfers request and response data over the web. | The system-to-system message exchange will occur over HTTP and will use requestor’s IP Address for verifying the request. |
REST | REST stands for Representational State Transfer.REST is an architectural style not a protocol. RESTful Web Services are fast because there is no strict specification like SOAP. It consumes less bandwidth and resources. RESTful web service permits different data formats such as Plain Text, HTML, XML, and JSON. | Mondee uses REST as the data format messaging for any system-to-system message exchanges. |
HTTP Methods | GET: Read-only access to the resource. PUT: Creation of new resource.DELETE: Removal of a resource. POST: Update of an existing resource.OPTIONS: Get supported operations on the resource.HEAD: Returns HTTP header only, nobody. | Mondee Rest API will communicate about search requests via the POST method. |
JSON | JavaScript Object Notation or JSON is an open-standard file format that uses human-readable text to transmit data objects consisting of attribute–value pairs and array data Types | Mondee uses JSON as a syntax for storing and exchanging data in all system-to-system message exchange. |
Supported Platforms
Mondee exposes REST Semantic Web Service, as a platform-independent Web Services. Thus clients can run on virtually all platforms, including Linux, NT/2000/XP, HP-UX, and Solaris. They can use any programming languages, including Java, .NET, C++, VBScript, JavaScript, PHP, or PERL. More importantly, web services are “platform-independent”; i.e., web services can
Technical Staff
Technical staff should know about Restful web services and the JSON technology standards. This includes knowing how to convert JSON to XML, HTML, CSV, PHP array, and vice versa.
Mondee API Security
IP Based Restriction
Client applications needs to register their IP addresses of theirs hosts which are going to communicate with Mondee. Unregistered IP addresses requests will be rejected.
Client ID Provisioning
Multi-Factor authentication requires each client to provide a Client ID in the Context to authenticate your application into the system for accounting purposes.
Intrusion Check
Each client is configured with a limit to the maximum number of requests that can be sent in a minute. If the number of requests is more than configured value, the application is going to block the traffic from the requests coming from the IP Address.
Future Enhancements
-SSL Certificate Based authentication
Flight Search REST API
The Global Flight Search REST API allows users to request flight availability based on a city pair
Overview
The Global Flight Search REST API allows users to request flight availability based on a city pair for “One way” or “Round Trip” or “Multi-City” travel. Also using this service, the user can search for results based on different class types, currency and airline-specific search. The response message returns available flights that match the requested criteria with the complete details of flight segments, booking classes and airline information, flight numbers, no of stops, intermediate stops, duration, fares in selected currency along with the validating carrier code and fare type information.
Description
The Flight Search REST API allows users to request flight availability based on a city pair with onward-return travel dates. The response message returns available flights that match the request criteria.
Request Headers
KEY | VALUE |
---|---|
Content-Type | application/json |
Accept-Encoding | gzip,deflate |
Accept | application/json |
M-IPAddress | <> |
SearchAccessToken | <> |
Json Request Body
import requests
url = "http://mas.trippro.com/resources/v2/Flights/search"
payload = "\r\n{\r\n \"OtherInfo\": {\r\n \"RequestedIP\": \"192.168.11.239\",\r\n
\"TransactionId\": \"123456\"\r\n },\r\n \"CurrencyInfo\": {\r\n \"CurrencyCode\": \"USD\"\r\n },\r\n \"PaxDetails\": {\r\n
\"NoOfAdults\": {\r\n \"count\": \"1\"\r\n },\r\n \"NoOfInfants\": {\r\n \"count\": \"0\",\r\n \"age\": \"0\"\r\n },
\r\n \"NoOfChildren\": {\r\n \"count\": \"0\",\r\n \"age\": \"0\"\r\n }\r\n },
\r\n \"OriginDestination\": [\r\n {\r\n \"DepartureTime\": \"29/05/2020\",
\r\n \"DepartureLocationCode\": \"WAS\",\r\n \"ArrivalLocationCode\": \"NYC\",\r\n \"CabinClass\": \"E\"\r\n }
\r\n ],\r\n \"Incremental\": \"false\"\r\n}"
headers = {
'Content-Type': 'application/json',
'Accept-Encoding': 'gzip,deflate',
'Accept': 'application/json',
'M-IPAddress': '<>',
'SearchAccessToken': '<>'
}
response = requests.request("POST", url, headers=headers, data = payload)
print(response.text.encode('utf8'))
<?php
$curl = curl_init();
curl_setopt_array($curl, array(
CURLOPT_URL => "http://mas.trippro.com/resources/v2/Flights/search",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 0,
CURLOPT_FOLLOWLOCATION => true,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS =>"\r\n{\r\n \"OtherInfo\": {\r\n \"RequestedIP\": \"192.168.11.239\",\r\n \"TransactionId\": \"123456\"\r\n },\r\n \"CurrencyInfo\": {\r\n \"CurrencyCode\": \"USD\"\r\n },\r\n \"PaxDetails\": {\r\n \"NoOfAdults\": {\r\n \"count\": \"1\"\r\n },\r\n \"NoOfInfants\": {\r\n \"count\": \"0\",\r\n \"age\": \"0\"\r\n },\r\n \"NoOfChildren\": {\r\n \"count\": \"0\",\r\n \"age\": \"0\"\r\n }\r\n },\r\n \"OriginDestination\": [\r\n {\r\n \"DepartureTime\": \"29/05/2020\",\r\n \"DepartureLocationCode\": \"WAS\",\r\n \"ArrivalLocationCode\": \"NYC\",\r\n \"CabinClass\": \"E\"\r\n }\r\n ],\r\n \"Incremental\": \"false\"\r\n}",
CURLOPT_HTTPHEADER => array(
"Content-Type: application/json",
"Accept-Encoding: gzip,deflate",
"Accept: application/json",
"M-IPAddress: <>",
"SearchAccessToken: <>"
),
));
$response = curl_exec($curl);
curl_close($curl);
echo $response;
var myHeaders = new Headers();
myHeaders.append("Content-Type", "application/json");
myHeaders.append("Accept-Encoding", "gzip,deflate");
myHeaders.append("Accept", "application/json");
myHeaders.append("M-IPAddress", "<>");
myHeaders.append("SearchAccessToken", "<>");
var raw = JSON.stringify({"OtherInfo":{"RequestedIP":"192.168.11.239","TransactionId":"123456"},"CurrencyInfo":{"CurrencyCode":"USD"},"PaxDetails":{"NoOfAdults":{"count":"1"},"NoOfInfants":{"count":"0","age":"0"},"NoOfChildren":{"count":"0","age":"0"}},"OriginDestination":[{"DepartureTime":"29/05/2020","DepartureLocationCode":"WAS","ArrivalLocationCode":"NYC","CabinClass":"E"}],"Incremental":"false"});
var requestOptions = {
method: 'POST',
headers: myHeaders,
body: raw,
redirect: 'follow'
};
fetch("http://mas.trippro.com/resources/v2/Flights/search", requestOptions)
.then(response => response.text())
.then(result => console.log(result))
.catch(error => console.log('error', error));
require "uri"
require "net/http"
url = URI("http://mas.trippro.com/resources/v2/Flights/search")
http = Net::HTTP.new(url.host, url.port);
request = Net::HTTP::Post.new(url)
request["Content-Type"] = "application/json"
request["Accept-Encoding"] = "gzip,deflate"
request["Accept"] = "application/json"
request["M-IPAddress"] = "<>"
request["SearchAccessToken"] = "<>"
request.body = "\r\n{\r\n \"OtherInfo\": {\r\n \"RequestedIP\": \"192.168.11.239\",\r\n \"TransactionId\": \"123456\"\r\n },\r\n
\"CurrencyInfo\": {\r\n \"CurrencyCode\": \"USD\"\r\n },\r\n \"PaxDetails\": {\r\n \"NoOfAdults\": {\r\n \"count\": \"1\"\r\n },
\r\n \"NoOfInfants\": {\r\n \"count\": \"0\",\r\n \"age\": \"0\"\r\n },\r\n \"NoOfChildren\": {\r\n \"count\": \"0\",\r\n
\"age\": \"0\"\r\n }\r\n },\r\n \"OriginDestination\": [\r\n {\r\n \"DepartureTime\": \"29/05/2020\",\r\n
\"DepartureLocationCode\": \"WAS\",\r\n \"ArrivalLocationCode\": \"NYC\",\r\n \"CabinClass\": \"E\"\r\n }\r\n ],
\r\n \"Incremental\": \"false\"\r\n}"
response = http.request(request)
puts response.read_body
{
"OtherInfo": {
"RequestedIP": "192.168.11.239",
"TransactionId": "123456"
},
"CurrencyInfo": {
"CurrencyCode": "USD"
},
"PaxDetails": {
"NoOfAdults": {
"count": "1"
},
"NoOfInfants": {
"count": "0",
"age": "0"
},
"NoOfChildren": {
"count": "0",
"age": "0"
}
},
"OriginDestination": [
{
"DepartureTime": "20/05/2020",
"DepartureLocationCode": "NYC",
"ArrivalLocationCode": "LAX",
"CabinClass": "E"
}
],
"Incremental": "false"
}
Json Response Body
Response
"{
{
"ItineraryId": "3673c3a2c0b2426aa817d054e0c963d20007",
"ValidatingCarrierCode": "UA",
"ValidatingCarrierName": "United Airlines",
"Citypairs": [
{
"Duration": "0D 6H 4M",
"NoOfStops": 0,
"FlightSegment": [
{
"DepartureLocationCode": "EWR",
"DepartureDisplayName": "Newark",
"OriginAirportName": "Newark",
"ArrivalLocationCode": "LAX",
"DisplayName": "Los Angeles",
"DestinationAirportName": "Los Angeles",
"MarketingAirline": "UA",
"MarketingAirlineName": "United Airlines",
"FlightNumber": 468,
"OperatingAirline": "UA",
"OperatingAirlineName": "United Airlines",
"Duration": "6H 4M",
"DurationInMinutes": 364,
"LayoverTime": "",
"FlightLogoName": "UnitedAirlines.gif",
"AirEquipmentType": "777",
"BookingClass": "N",
"CabinClass": "E",
"noOfStops": 0,
"NoOfStops": 0,
"DepartureDateTime": "2020-05-20T09:00:00",
"ArrivalDateTime": "2020-05-20T12:04:00",
"FareBasisCode": "GAK4AQBS",
"baggageAllowance": "0P",
"baggageDesc1": "",
"baggageDesc2": "",
"baggageInfoUrl": null,
"IntermediateStops": []
}]
}],
"Fares": [
{
"CurrencyCode": "USD",
"BaseFare": 58.84,
"Taxes": 19.56,
"CCFee": 0,
"FullFare": "",
"PaxType": "ADT",
"AfterExchangePenaltyAllowed": false,
"AfterExchangePenalty": 0,
"AfterRefundPenaltyAllowed": false,
"AfterRefundPenalty": 0,
"BeforeExchangePenaltyAllowed": true,
"BeforeExchangePenalty": 0,
"BeforeRefundPenaltyAllowed": false,
"BeforeRefundPenalty": 0
}],
"Rank": 0,
"Tag": null,
"IsNonRefundableFare": true,
"IsBasicEconomyItin": true,
"FareType": "PUB",
"CabinClass": "E"
},
}"
Request Message Elements
Parameter | Description | Format | Examples | Required |
---|---|---|---|---|
>> Other Info | The element consists of Requested IP and Transaction ID | Yes | ||
>> Requested IP | IP Address which is whitelisted to be requested | 192.168.11.100 | Yes | |
>> Currency Info | The element consists of Currency Code | Yes | ||
>> Currency Code | The element contains a currency code to be requested. The currency will be displayed in USD Only | String | USD | Yes |
>> Pax Details | The number of Passenger information for each passenger type. | Yes | ||
>> No of Adults | Adult Passenger | Yes | ||
>> Count | Adult Passenger count | Integer | 1,2,3 | Yes |
>> No of Infants | Infant Passenger | No | ||
>> Count | Infant Passenger count | Integer | 1,2,3 | No |
>> No of Children | Child Passenger | No | ||
>> Count | Child Passenger count | Integer | 1, 2, 3 | No |
>> Cabin Class | Cabin class code Single character | String | E-Economy, B-Business, F-FirstClass, P-Premium. | Yes |
>> Origin Destination | This element containsthe sector and travel datesto be requested | String | IAD, SIN, PEK | Yes |
>> Departure Time | Departure Date and time. | String Formatted to DD/MM/YYYY | 11/01/2020 | Yes |
>> Arrival Location Code | Destination Airport Code | String | SIN, HYD ,DEL | Yes |
>> Departure Location Code | Origin Airport Code | String | SFO, IAD, BKK | Yes |
>> Preferred Airlines | Preferred Airlines will give the selected Airlines in the response.If we wanted multiple Airlines, we have to update by “,”Ex: "PreferredAirlines" : "AI, QR"—This will retrieve only AI, QR Airlines | String | "PreferredAirlines" : "AI, QR" | No |
Note
Depending number of Origin Destination instances in Flight Search Request, we would be able to differentiate one way, roundtrip, open jaw and multi-city requests. - If a single instance of Origin Destination is found, the request is considered as oneway. - If two instances of Origin Destination are found and Departure Location Code, Arrival Location code of one instance becomes Arrival Location Code, Departure Location Code of another instance then the request is going to be considered as a roundtrip. - If there are two instances of Origin Destination, and DepartureLocationCode of one instance matches with Arrival Location Code, the request is going to be considered as Open Jaw. - If there are more than two instances of Origin Destination, the request is considered as multicity.
Response Message Elements
Parameter | Description | Format | Examples | Required |
---|---|---|---|---|
>> Flight Itinerary | This section contains information about the itinerary | No | ||
>> Itinerary ID | Itinerary reference id ( a unique search key) | String | 2f5891ac8c3a472094c5397e0aa16ad70044 | Yes |
>> Validating Carrier Code | Validating Carrier Code | String | AA,VA,MH | No |
>> City pairs | City pairs | No | ||
>> Duration | Duration of the city pairs | String | 1D 10H 20M | No |
>> No Of Stops | Refers number of stops between origin and destination | Integer | 0,1, 2, 3 | No |
>> Flight Segment | Flight Segments | |||
>> Departure Location Code | Departure location code | String | SIN, HYD,SFO | Yes |
>> Departure Display Name | Departure Display Name | String | San Francisco | Yes |
>> Origin Airport Name | Origin Airport Name | String | San Francisco | Yes |
>> Arrival Location Code | Arrival location code | String | NRT, LHR | Yes |
>> Display Name | Display Name | String | London | Yes |
>> Destination Airport Name | Destination Airport Name | String | London | Yes |
>> Marketing Airline | Marketing Airline Code | String | VS,AA | Yes |
>> Marketing AirlineName | Marketing Airline Name | String | American Airlines | Yes |
>> Flight Number | Flight number | Integer | 234, 6544 | No |
>> Operating Airline | OperatingAirlineCode | String | AA,AS,AM | Yes |
>> Operating Airline Name | Operating Airline Name | String | Alaska Airlines | Yes |
>> Duration | Refers flight duration | String | 7H 10M, 5H 44M. | No |
>> DurationIn Minutes | Refers flight duration in minutes | Integer | 95 | No |
>> Layover Time | Refers time between segments | String | 17H 45M | No |
>> Flight Logo Name | Flight Logo | VIRGINATLANTIC.gif | No | |
>> Air Equipment Type | Air Equipment Type | Integer | 789 | No |
>> Booking Class | Booking class | String | K, L | No |
>> No of Stops | Stops between each segment | Integer | 1 | No |
>> Departure Date Time | Departure Date | String | 2019-07-25T17:50:00 | No |
>> Arrival Date Time | Arrival Date | String | 2019-07-26T12:05:00 | No |
>> Fare Basis Code | Fare basis code of the selected fare | String | FFDESDFSJ | No |
>> Baggage Allowance | Baggage Allowance | String | 0,1,2 | No |
>> Intermediate Stops | Intermediate stops | String | HKG | No |
>> Baggage Info URL | BaggageInfoURL | String | ||
>> Fares | Fare Details | No | ||
>> Currency Code | Currency code of the flight itinerary | String | USD | Yes |
>> BaseFare | Base Fare of the Flight Itinerary. | Double | 500.32, 422.32 | Yes |
>> Taxes | Taxes of the Flight Itinerary. | Double | 25.33, 200.33 | Yes |
>> CCFee | CCFees of the Flight Itinerary | Double | 25.00, 0.0 | No |
>> FullFare | Publish Fare on GDS | Double | 255.32, 200.21 | Yes |
>> PaxType | Passenger type | String | ADT, CHD, INF | Yes |
>> Fare Type | Type of Fare | String | PUB,NET,JCB | No |
>> Cabin Class | Type of Cabin Class | String | E-Economy, B-Business, F-First, P-Premium Economy | Yes |
>> After Exchange Penalty | After Exchange Penalty | Double | 125.0 | Yes |
>> After Refund Penalty | After Refund Penalty | Double | 0.0 | Yes |
>> Before Exchange Penalty | Before Exchange Penalty | Double | 125.0 | Yes |
>> Before Refund Penalty | Before Refund Penalty | Double | 0.0 | Yes |
>> After Exchange Penalty Allowed | After Exchange Penalty Allowed | Boolean | True/false | Yes |
>> After Refund Penalty Allowed | After Refund Penalty Allowed | Boolean | True/false | Yes |
>> Before Exchange Penalty Allowed | Before Exchange Penalty Allowed | Boolean | True/false | Yes |
>> Before Refund Penalty Allowed | Before Refund Penalty Allowed | Boolean | True/false | Yes |
References
REST End Point
Production: http://mas.trippro.com/resources/v2/Flights/search
Calendar Fares: API Specs
Endpoint - POST : http://mas.trippro.com/resources/v3/calendarsearch
PAYLOAD
Fields Name | Required | Examples |
---|---|---|
Origin | Yes | GMP |
Destination | Yes | PVG |
TripType | Yes | ONEWAY/ROUNDTRIP |
OnwardDate | No | 25/01/2020 – Should be in the Formatted as dd/MM/yyyy Case 1: Onward Date = “YES” Calendar fare will be returned from the given date. Case 2: Onward Date = “NO” Calendar fare will be returned from the current date. |
Request Payload for ONEWAY:
import requests
url = "http://mas.trippro.com/resources/v2/Flights/search"
payload = "{\r\n\"origin\": \"GMP\",\r\n\"destination\": \"PVG\",\r\n\"tripType\": \"ONEWAY\",\r\n\"onwardDate\":\"25/01/2020\" \r\n}"
headers = {
'Content-Type': 'application/json',
'Accept-Encoding': 'gzip,deflate',
'Accept': 'application/json',
'M-IPAddress': '<>'
}
response = requests.request("POST", url, headers=headers, data = payload)
print(response.text.encode('utf8'))
require "uri"
require "net/http"
url = URI("http://mas.trippro.com/resources/v2/Flights/search")
http = Net::HTTP.new(url.host, url.port);
request = Net::HTTP::Post.new(url)
request["Content-Type"] = "application/json"
request["Accept-Encoding"] = "gzip,deflate"
request["Accept"] = "application/json"
request["M-IPAddress"] = "<>"
request.body = "{\r\n\"origin\": \"GMP\",\r\n\"destination\": \"PVG\",\r\n\"tripType\": \"ONEWAY\",\r\n\"onwardDate\":\"25/01/2020\" \r\n}"
response = http.request(request)
puts response.read_body
<?php
$curl = curl_init();
curl_setopt_array($curl, array(
CURLOPT_URL => "http://mas.trippro.com/resources/v2/Flights/search",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 0,
CURLOPT_FOLLOWLOCATION => true,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS =>"{\r\n\"origin\": \"GMP\",\r\n\"destination\": \"PVG\",\r\n\"tripType\": \"ONEWAY\",\r\n\"onwardDate\":\"25/01/2020\" \r\n}",
CURLOPT_HTTPHEADER => array(
"Content-Type: application/json",
"Accept-Encoding: gzip,deflate",
"Accept: application/json",
"M-IPAddress: <>"
),
));
$response = curl_exec($curl);
curl_close($curl);
echo $response;
var settings = {
"url": "http://mas.trippro.com/resources/v2/Flights/search",
"method": "POST",
"timeout": 0,
"headers": {
"Content-Type": "application/json",
"Accept-Encoding": "gzip,deflate",
"Accept": "application/json",
"M-IPAddress": "<>"
},
"data": JSON.stringify({"origin":"GMP","destination":"PVG","tripType":"ONEWAY","onwardDate":"25/01/2020"}),
};
$.ajax(settings).done(function (response) {
console.log(response);
});
{
"origin": "GMP",
"destination": "PVG",
"tripType": "ONEWAY", "onwardDate “:"25/01/2020"
}
Success Response:
For one-way trips, fare will be returned for each departure date from the given onward date.
{
"origin": "GMP",
"destination": "PVG",
"currencyCode": "USD",
"tripType": "ONEWAY",
"calendarFares": [ {
"departureDate": "2020-01-25",
"carrierCode": "HR",
"baseFare": 203.0,
"tax": 29.82
},
{
"departureDate": "2020-01-26",
"carrierCode": "KE",
"baseFare": 233.0,
"tax": 27.36
}
.. .. ..
] }
Request Payload for ROUNDTRIP:
var settings = {
"url": "http://mas.trippro.com/resources/v2/Flights/search",
"method": "POST",
"timeout": 0,
"headers": {
"Content-Type": "application/json",
"Accept-Encoding": "gzip,deflate",
"Accept": "application/json",
"M-IPAddress": "<>"
},
"data": JSON.stringify({"origin":"GMP","destination":"PVG","tripType":"ROUNDTRIP","onwardDate ":"25/01/2020"}),
};
$.ajax(settings).done(function (response) {
console.log(response);
});
<?php
$curl = curl_init();
curl_setopt_array($curl, array(
CURLOPT_URL => "http://mas.trippro.com/resources/v2/Flights/search",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 0,
CURLOPT_FOLLOWLOCATION => true,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS =>"{\r\n\"origin\": \"GMP\",\r\n\"destination\": \"PVG\",\r\n\"tripType\": \"ROUNDTRIP\",\r\n\"onwardDate \": \"25/01/2020\"\r\n}",
CURLOPT_HTTPHEADER => array(
"Content-Type: application/json",
"Accept-Encoding: gzip,deflate",
"Accept: application/json",
"M-IPAddress: <>"
),
));
$response = curl_exec($curl);
curl_close($curl);
echo $response;
import requests
url = "http://mas.trippro.com/resources/v2/Flights/search"
payload = "{\r\n\"origin\": \"GMP\",\r\n\"destination\": \"PVG\",\r\n\"tripType\": \"ROUNDTRIP\",\r\n\"onwardDate \": \"25/01/2020\"\r\n}"
headers = {
'Content-Type': 'application/json',
'Accept-Encoding': 'gzip,deflate',
'Accept': 'application/json',
'M-IPAddress': '<>'
}
response = requests.request("POST", url, headers=headers, data = payload)
print(response.text.encode('utf8'))
require "uri"
require "net/http"
url = URI("http://mas.trippro.com/resources/v2/Flights/search")
http = Net::HTTP.new(url.host, url.port);
request = Net::HTTP::Post.new(url)
request["Content-Type"] = "application/json"
request["Accept-Encoding"] = "gzip,deflate"
request["Accept"] = "application/json"
request["M-IPAddress"] = "<>"
request.body = "{\r\n\"origin\": \"GMP\",\r\n\"destination\": \"PVG\",\r\n\"tripType\": \"ROUNDTRIP\",\r\n\"onwardDate \": \"25/01/2020\"\r\n}"
response = http.request(request)
puts response.read_body
{
"origin": "GMP",
18
"destination": "PVG",
"tripType": "ROUNDTRIP", "onwardDate “: "25/01/2020" }
Success Response:
For RoundTrip requests, fares will be given with the combination of each departure date and next 30 days possible return dates from the given onward date. For example, if onward date is Mar 10th, fares will be returned for Mar 10th departure and return combination from Mar 11th to April 9th
{
"origin": "GMP",
"destination": "PVG",
"currencyCode": "USD",
"tripType": "ROUNDTRIP",
"calendarFares": [ {
"departureDate": "2020-01-25",
"returnDates": [ {
"returnDate": "2020-01-25",
"carrierCode": "KE",
"baseFare": 447.0,
"tax": 97.97
},
{
"returnDate": "2020-01-26",
"carrierCode": "KE",
"baseFare": 708.0,
"tax": 97.97
}
.. .. ..
] } {
"departureDate": "2020-01-26",
"returnDates": [ {
"returnDate": "2020-01-26",
"carrierCode": "KE",
"baseFare": 738.0,
"tax": 95.51
},
{
"returnDate": "2020-01-27",
19
"carrierCode": "KE",
"baseFare": 619.0,
"tax": 96.41
}
.. .. ..
] }
No Data Response :
In case no records available for the OD pair, the below response will be returned
{
"error": true,
"remark": "No results found"
}
Invalid Orgin/ Destination:
{
"error": true,
"remark": "Invalid origin DCC"
}
Reprice Itinerary API
Overview
The Reprice Itinerary API allows users to price the itinerary and reconfirm the availability of the selected itinerary fare. The response returns a valid itinerary message, if the itinerary fare and classes are still available and in case if the itinerary fare and classes are no longer available then it verifies for the next available higher class fares and returns the itinerary with the changed classes and fares information in the response.
Description
The Reprice itinerary response returns a valid itinerary message if the itinerary fare is still valid and in cases where the fare is no longer available, the response returns the new fare details of the selected. Reprice API: Before going to book an itinerary you need to do Reprice so it checks the latest availability of seats and shows the below message in the Reprice response.
1) Valid Itinerary
2) Invalid Itinerary
3) Price Change Itinerary (Total Itinerary will be displayed)
Here is the Reprice Service and its functional behavior.
The Reprice Itinerary API allows users to price the itinerary and reconfirm the availability of the selected itinerary fare. The response returns a valid itinerary message if the itinerary fare and classes are still available and in case if the itinerary fare and classes are no longer available then it verifies for the next available higher class fares and returns the itinerary with the changed classes and fares information in the response.
We have mainly 3 things to notice, when you reprice an Itinerary_Guid, it would be a "Valid Itinerary", "Invalid Itinerary" or "Price Change Itinerary"
Valid Itinerary: In Reprice Response we see as "Valid Itinerary" when the fare and booking class is the same as in search. You will also see a full itinerary when pax count is changed in reprice request.
Invalid Itinerary: In Reprice Response we see as "Invalid Itinerary" when there are no seats available if itinerary expires or it does not exist.
Price Change: You will get the full itinerary in Reprice Response when the fare is changed or the booking class is changed.
Prerequisites for Access Token
Please choose one of the below Service Authentication mechanisms
1.Customers have to provide the email id in the Access Token as follows in the Header section
KEY | VALUE | Description |
---|---|---|
Content-Type | application/json | |
AccessToken | email@gmail.com |
Request Json
require "uri"
require "net/http"
url = URI("https://map.trippro.com/resources/api/v3/repriceitinerary")
http = Net::HTTP.new(url.host, url.port);
request = Net::HTTP::Post.new(url)
request["Content-Type"] = "application/json"
request["AccessToken"] = "<yourEmailId>"
request.body = "{\r\n\"ItineraryId\":\"d120a9dee4bb40f98f8f8be208df23600292\",\r\n\"AdultPaxCount\":1,\r\n\"ChildPaxCount\":0,\r\n\"InfantPaxCount\":0\r\n}"
response = http.request(request)
puts response.read_body
<?php
$curl = curl_init();
curl_setopt_array($curl, array(
CURLOPT_URL => "https://map.trippro.com/resources/api/v3/repriceitinerary",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 0,
CURLOPT_FOLLOWLOCATION => true,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS =>"{\r\n\"ItineraryId\":\"d120a9dee4bb40f98f8f8be208df23600292\",\r\n\"AdultPaxCount\":1,\r\n\"ChildPaxCount\":0,\r\n\"InfantPaxCount\":0\r\n}",
CURLOPT_HTTPHEADER => array(
"Content-Type: application/json",
"AccessToken: <yourEmailId>"
),
));
$response = curl_exec($curl);
curl_close($curl);
echo $response;
import requests
url = "https://map.trippro.com/resources/api/v3/repriceitinerary"
payload = "{\r\n\"ItineraryId\":\"d120a9dee4bb40f98f8f8be208df23600292\",\r\n\"AdultPaxCount\":1,\r\n\"ChildPaxCount\":0,\r\n\"InfantPaxCount\":0\r\n}"
headers = {
'Content-Type': 'application/json',
'AccessToken': '<yourEmailId>'
}
response = requests.request("POST", url, headers=headers, data = payload)
print(response.text.encode('utf8'))
var settings = {
"url": "https://map.trippro.com/resources/api/v3/repriceitinerary",
"method": "POST",
"timeout": 0,
"headers": {
"Content-Type": "application/json",
"AccessToken": "<yourEmailId>"
},
"data": JSON.stringify({"ItineraryId":"d120a9dee4bb40f98f8f8be208df23600292","AdultPaxCount":1,"ChildPaxCount":0,"InfantPaxCount":0}),
};
$.ajax(settings).done(function (response) {
console.log(response);
});
{
"ItineraryId":"d120a9dee4bb40f98f8f8be208df23600292",
"AdultPaxCount":1,
"ChildPaxCount":0,
"InfantPaxCount":0,
}
Response Json
{
"ItineraryId": "37d016cbb09a4a6f8beb4ed4b47a58d80022",
"ValidatingCarrierCode": "TP",
"ValidatingCarrierName": "Tap Air Portugal",
"Citypairs": [
{
"Duration": "0D 18H 20M",
"NoOfStops": 1,
"FlightSegment": [
{
"DepartureLocationCode": "SFO",
"DepartureDisplayName": "San Francisco",
"OriginAirportName": "San Francisco",
"ArrivalLocationCode": "LIS",
"DisplayName": "Lisbon",
"DestinationAirportName": "Lisbon",
"MarketingAirline": "TP",
"MarketingAirlineName": "Tap Air Portugal",
"FlightNumber": 236,
"OperatingAirline": "TP",
"OperatingAirlineName": "Tap Air Portugal",
"Duration": "11H 10M",
"DurationInMinutes": 670,
"LayoverTime": "",
"FlightLogoName": "TapPortugal.gif",
"AirEquipmentType": "339",
"BookingClass": "W",
"CabinClass": "E",
"noOfStops": 0,
"NoOfStops": 0,
"DepartureDateTime": "2020-04-12T16:30:00",
"ArrivalDateTime": "2020-04-13T11:40:00",
"FareBasisCode": "WUSDSI0E",
"baggageAllowance": "0P",
"baggageDesc1": "",
"baggageDesc2": "",
"baggageInfoUrl": null,
"IntermediateStops": []
},
{
"DepartureLocationCode": "LIS",
"DepartureDisplayName": "Lisbon",
"OriginAirportName": "Lisbon",
"ArrivalLocationCode": "LHR",
"DisplayName": "London",
"DestinationAirportName": "London",
"MarketingAirline": "TP",
"MarketingAirlineName": "Tap Air Portugal",
"FlightNumber": 1364,
"OperatingAirline": "TP",
"OperatingAirlineName": "Tap Air Portugal",
"Duration": "2H 45M",
"DurationInMinutes": 165,
"LayoverTime": "4H 25M",
"FlightLogoName": "TapPortugal.gif",
"AirEquipmentType": "32Q",
"BookingClass": "W",
"CabinClass": "E",
"noOfStops": 0,
"NoOfStops": 0,
"DepartureDateTime": "2020-04-13T16:05:00",
"ArrivalDateTime": "2020-04-13T18:50:00",
"FareBasisCode": "WUSDSI0E",
"baggageAllowance": "0P",
"baggageDesc1": "",
"baggageDesc2": "",
"baggageInfoUrl": null,
"IntermediateStops": []
}
]
},
{
"Duration": "0D 16H 40M",
"NoOfStops": 1,
"FlightSegment": [
{
"DepartureLocationCode": "LHR",
"DepartureDisplayName": "London",
"OriginAirportName": "London",
"ArrivalLocationCode": "LIS",
"DisplayName": "Lisbon",
"DestinationAirportName": "Lisbon",
"MarketingAirline": "TP",
"MarketingAirlineName": "Tap Air Portugal",
"FlightNumber": 1363,
"OperatingAirline": "TP",
"OperatingAirlineName": "Tap Air Portugal",
"Duration": "2H 40M",
"DurationInMinutes": 160,
"LayoverTime": "",
"FlightLogoName": "TapPortugal.gif",
"AirEquipmentType": "32Q",
"": "L",
"CabinClass": "E",
"noOfStops": 0,
"NoOfStops": 0,
"DepartureDateTime": "2020-04-16T06:00:00",
"ArrivalDateTime": "2020-04-16T08:40:00",
"FareBasisCode": "LUSDSI0E",
"baggageAllowance": "0P",
"baggageDesc1": "",
"baggageDesc2": "",
"baggageInfoUrl": null,
"IntermediateStops": []
},
{
"DepartureLocationCode": "LIS",
"DepartureDisplayName": "Lisbon",
"OriginAirportName": "Lisbon",
"ArrivalLocationCode": "SFO",
"DisplayName": "San Francisco",
"DestinationAirportName": "San Francisco",
"MarketingAirline": "TP",
"MarketingAirlineName": "Tap Air Portugal",
"FlightNumber": 237,
"OperatingAirline": "TP",
"OperatingAirlineName": "Tap Air Portugal",
"Duration": "12H 40M",
"DurationInMinutes": 760,
"LayoverTime": "1H 20M",
"FlightLogoName": "TapPortugal.gif",
"AirEquipmentType": "339",
"BookingClass": "L",
"CabinClass": "E",
"noOfStops": 0,
"NoOfStops": 0,
"DepartureDateTime": "2020-04-16T10:00:00",
"ArrivalDateTime": "2020-04-16T14:40:00",
"FareBasisCode": "LUSDSI0E",
"baggageAllowance": "0P",
"baggageDesc1": "",
"baggageDesc2": "",
"baggageInfoUrl": null,
"IntermediateStops": []
}
]
}
],
"Fares": [
{
"CurrencyCode": "USD",
"BaseFare": 630,
"Taxes": 494.8699999999999,
"CCFee": 0,
"FullFare": "",
"PaxType": "ADT"
}
],
"Rank": 0,
"Tag": null,
"IsNonRefundableFare": false,
"IsBasicEconomyItin": true,
"FareType": "COM",
"CabinClass": "E"
}
Request Message Elements
Parameter | Description | Format | Examples | Required |
---|---|---|---|---|
>> Reprice Itinerary Request Body | Reprice Itinerary Request Wrapper Element. | Reprice Itinerary Request Body | Yes | |
>> TP Context | TP Context Reference | Yes | ||
>> Reprice Itinerary Request | Reprice Itinerary Request Element | Yes | ||
>> ItineraryId | Itinerary reference id | String | 2f5891ac8c3a472094c5397e0aa16ad70044 | Yes |
>> Custom Data | This element contains any custom request XML element utilized for custom Behavior implementation. | Object | No |
Response Message Elements
Parameter | Description | Format | Examples | Required |
---|---|---|---|---|
>> Reprice Itinerary Response Body | Reprice Itinerary Response Wrapper | Reprice Itinerary Response Body | Yes | |
>> TPContext | TPContext Reference | Yes | ||
>> Reprice Itinerary Response | Refer Reprice Itinerary Response Section | No | ||
>> Flight Itinerary | This element contains the sector and travel dates to be requested | No | ||
>> ItineraryId | Itinerary reference id | String | 2f5891ac8c3a472094c5397e0aa16ad70044 | Yes |
>> City pairs | City pairs | No | ||
>> Flight Segment | Flight segments | |||
>> Segment Ref | Segment reference number | String | S1, S2 | No |
>> Seg Status | Status of the Segment | String | HK | No |
>> Departure Location Code | Departure location code | String | SIN, HYD | Yes |
>> Departure Date Time | Departure date time | String | 2015-09-30T06:10:00 | Yes |
>> Arrival Location Code | Arrival location code | String | NRT, LHR | Yes |
>> Arrival Date Time | Arrival date time | String | 2015-09-30T14:20:00 | Yes |
>> Operating Airline | Operating airline code | String | UA, AA | No |
>> Operating Airline Name | Operating airline name | String | United Airlines | No |
>> Marketing Airline | Marketing airline code | String | NH, DL | No |
>> Marketing Airline Name | Marketing airline name | String | All Nippon Airways | No |
>> Flight Number | Flight number | Integer | 234, 6544 etc. | No |
>> No Of Stops | Refers number of stops between origin and destination | Integer | 0,1, 2, 3 etc. | No |
>> Air Equipment Type | Air equipment type | String | 77W , 777 etc. | No |
>> Duration | Refers flight duration | String | 7H 10M, 5H 44M etc. | No |
>> Booking Class | Booking class | String | K, L | No |
>> Airline Pnr | Airline PNR | String | 2TRR4R, HFGGGT | No |
>> Fare Basis Code | Fare basis code of the selected fare | String | FFDESDFSJ | No |
>> Intermediate Stops | Intermediate stops | No | ||
>> Location Code | Location code | String | CMB, SIN | Yes |
>> Arrival Date | Arrival date | String | 2015-09-30T01:55:00 | Yes |
>> Departure Date | Departure date | String | 2015-09-30T03:15:00 | Yes |
>> StopDuration | Stop duration | String | 1H 21M | Yes |
>> Duration | Duration of the city pairs | String | 1D 11H 15M, 22H 15M | No |
>> No Of Stops | Refers number of stops between origin and destination | Integer | 0, 1, 2 | No |
>> Sector | Sector names | String | SFOLHR, IADBKK | No |
>> Fares | Fare Details | No | ||
>> Currency Code | Currency code of the flight itinerary | String | USD | Yes |
>> Base Fare | Base Fare of the Flight Itinerary. | Double | 500.32, 422.32 | Yes |
>> Taxes | Taxes of the Flight Itinerary. | Double | 25.33, 200.33 | Yes |
>> CC Fee | CC Fees of the Flight Itinerary | Double | 25.00, 0.0 | No |
>> Full Fare | Publish Fare on GDS | Double | 255.32, 200.21 | Yes |
>> Pax Type | Passenger type | String | ADT, CHD, INF | Yes |
>> Fare Type | Type of fare | String | PUB, NET, JCB | No |
References
Web Service End Point
Production : https://map.trippro.com/resources/api/v3/repriceitinerary
Flight Booking API
Overview
The Flight Booking API allows users to book the itinerary and create PNR for the selected itinerary to mark it for ticketing. Bookings can be done using different payment options like Credit card and Check by passing the information in the booking request. PNR can also be created by selecting the payment type as Hold, which just books the itinerary and Payment information can be added to the PNR later. For booking multiple passengers in a single booking, passenger details and their fares information will be sent in the request itself. The response message returns booked itinerary confirmation with PNR details.
Description
Flight Booking API allows users to request Flight booking based on Flight Search Response. The response message contains the Booked Itinerary Details.
KEY | VALUE | Description |
---|---|---|
Content-Type | application/json | |
AccessToken | email@gmail.com |
Payment Types
Hold booking request
If the Payment Type is HOLD, Following is the format
require "uri"
require "net/http"
url = URI("https://map.trippro.com/resources/v2/Flights/bookItinerary")
http = Net::HTTP.new(url.host, url.port);
request = Net::HTTP::Post.new(url)
request["Content-Type"] = "application/json"
request["AccessToken"] = "<YourEmailid>"
request.body = "{\r\n\"ItineraryId\": \"\",\r\n\"BookItineraryPaxDetail\": [\r\n{\r\n\t\"PaxType\": \"ADT\",\r\n\t\"Gender\": \"\",\r\n\t\"UserTitle\": \"\",\r\n\t\"FirstName\": \"\",\r\n\t\"MiddleName\": \"\",\r\n\t\"LastName\": \"\",\r\n\t\"DateOfBirth\": \"\",\r\n\t\"PassportNumber\": \"\",\r\n\t\"CountryOfIssue\":\"\",\r\n\t\"Nationality\":\"\",\r\n\t\"PassportIssueDate\":\"\",\r\n\t\"PassportExpiryDate\":\"\"\r\n},\r\n{\r\n\t\"PaxType\": \"CHD\",\r\n\t\"Gender\": \"\",\r\n\t\"UserTitle\": \"\",\r\n\t\"FirstName\": \"\",\r\n\t\"MiddleName\": \"\",\r\n\t\"LastName\": \"\",\r\n\t\"DateOfBirth\": \"\",\r\n\t\"PassportNumber\": \"\",\r\n\t\"CountryOfIssue\":\"\",\r\n\t\"Nationality\":\"\",\r\n\t\"PassportIssueDate\":\"\",\r\n\t\"PassportExpiryDate\":\"\"\r\n},\r\n{\r\n\t\"PaxType\": \"\",\r\n\t\"Gender\": \"\",\r\n\t\"UserTitle\": \"\",\r\n\t\"FirstName\": \"\",\r\n\t\"MiddleName\": \"\",\r\n\t\"LastName\": \"\",\r\n\t\"DateOfBirth\": \"\",\r\n\t\"PassportNumber\": \"\",\r\n\t\"CountryOfIssue\":\"\",\r\n\t\"Nationality\":\"\",\r\n\t\"PassportIssueDate\":\"\",\r\n\t\"PassportExpiryDate\":\"\"\r\n}\r\n],\r\n\"BookItineraryPaxContactInfo\": {\r\n\"PhoneNumber\": \"\",\r\n\"AlternatePhoneNumber\": \"1\",\r\n\"Email\": \"\"\r\n},\r\n\"BookItineraryPaymentDetail\":{\r\n \"PaymentType\": \"HOLD\"\r\n}\r\n}"
response = http.request(request)
puts response.read_body
import requests
url = "https://map.trippro.com/resources/v2/Flights/bookItinerary"
payload = "{\r\n\"ItineraryId\": \"\",\r\n\"BookItineraryPaxDetail\": [\r\n{\r\n\t\"PaxType\": \"ADT\",\r\n\t\"Gender\": \"\",\r\n\t\"UserTitle\": \"\",\r\n\t\"FirstName\": \"\",\r\n\t\"MiddleName\": \"\",\r\n\t\"LastName\": \"\",\r\n\t\"DateOfBirth\": \"\",\r\n\t\"PassportNumber\": \"\",\r\n\t\"CountryOfIssue\":\"\",\r\n\t\"Nationality\":\"\",\r\n\t\"PassportIssueDate\":\"\",\r\n\t\"PassportExpiryDate\":\"\"\r\n},\r\n{\r\n\t\"PaxType\": \"CHD\",\r\n\t\"Gender\": \"\",\r\n\t\"UserTitle\": \"\",\r\n\t\"FirstName\": \"\",\r\n\t\"MiddleName\": \"\",\r\n\t\"LastName\": \"\",\r\n\t\"DateOfBirth\": \"\",\r\n\t\"PassportNumber\": \"\",\r\n\t\"CountryOfIssue\":\"\",\r\n\t\"Nationality\":\"\",\r\n\t\"PassportIssueDate\":\"\",\r\n\t\"PassportExpiryDate\":\"\"\r\n},\r\n{\r\n\t\"PaxType\": \"\",\r\n\t\"Gender\": \"\",\r\n\t\"UserTitle\": \"\",\r\n\t\"FirstName\": \"\",\r\n\t\"MiddleName\": \"\",\r\n\t\"LastName\": \"\",\r\n\t\"DateOfBirth\": \"\",\r\n\t\"PassportNumber\": \"\",\r\n\t\"CountryOfIssue\":\"\",\r\n\t\"Nationality\":\"\",\r\n\t\"PassportIssueDate\":\"\",\r\n\t\"PassportExpiryDate\":\"\"\r\n}\r\n],\r\n\"BookItineraryPaxContactInfo\": {\r\n\"PhoneNumber\": \"\",\r\n\"AlternatePhoneNumber\": \"1\",\r\n\"Email\": \"\"\r\n},\r\n\"BookItineraryPaymentDetail\":{\r\n \"PaymentType\": \"HOLD\"\r\n}\r\n}"
headers = {
'Content-Type': 'application/json',
'AccessToken': '<YourEmailid>'
}
response = requests.request("POST", url, headers=headers, data = payload)
print(response.text.encode('utf8'))
<?php
$curl = curl_init();
curl_setopt_array($curl, array(
CURLOPT_URL => "https://map.trippro.com/resources/v2/Flights/bookItinerary",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 0,
CURLOPT_FOLLOWLOCATION => true,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS =>"{\r\n\"ItineraryId\": \"\",\r\n\"BookItineraryPaxDetail\": [\r\n{\r\n\t\"PaxType\": \"ADT\",\r\n\t\"Gender\": \"\",\r\n\t\"UserTitle\": \"\",\r\n\t\"FirstName\": \"\",\r\n\t\"MiddleName\": \"\",\r\n\t\"LastName\": \"\",\r\n\t\"DateOfBirth\": \"\",\r\n\t\"PassportNumber\": \"\",\r\n\t\"CountryOfIssue\":\"\",\r\n\t\"Nationality\":\"\",\r\n\t\"PassportIssueDate\":\"\",\r\n\t\"PassportExpiryDate\":\"\"\r\n},\r\n{\r\n\t\"PaxType\": \"CHD\",\r\n\t\"Gender\": \"\",\r\n\t\"UserTitle\": \"\",\r\n\t\"FirstName\": \"\",\r\n\t\"MiddleName\": \"\",\r\n\t\"LastName\": \"\",\r\n\t\"DateOfBirth\": \"\",\r\n\t\"PassportNumber\": \"\",\r\n\t\"CountryOfIssue\":\"\",\r\n\t\"Nationality\":\"\",\r\n\t\"PassportIssueDate\":\"\",\r\n\t\"PassportExpiryDate\":\"\"\r\n},\r\n{\r\n\t\"PaxType\": \"\",\r\n\t\"Gender\": \"\",\r\n\t\"UserTitle\": \"\",\r\n\t\"FirstName\": \"\",\r\n\t\"MiddleName\": \"\",\r\n\t\"LastName\": \"\",\r\n\t\"DateOfBirth\": \"\",\r\n\t\"PassportNumber\": \"\",\r\n\t\"CountryOfIssue\":\"\",\r\n\t\"Nationality\":\"\",\r\n\t\"PassportIssueDate\":\"\",\r\n\t\"PassportExpiryDate\":\"\"\r\n}\r\n],\r\n\"BookItineraryPaxContactInfo\": {\r\n\"PhoneNumber\": \"\",\r\n\"AlternatePhoneNumber\": \"1\",\r\n\"Email\": \"\"\r\n},\r\n\"BookItineraryPaymentDetail\":{\r\n \"PaymentType\": \"HOLD\"\r\n}\r\n}",
CURLOPT_HTTPHEADER => array(
"Content-Type: application/json",
"AccessToken: <YourEmailid>"
),
));
$response = curl_exec($curl);
curl_close($curl);
echo $response;
var settings = {
"url": "https://map.trippro.com/resources/v2/Flights/bookItinerary",
"method": "POST",
"timeout": 0,
"headers": {
"Content-Type": "application/json",
"AccessToken": "<YourEmailid>"
},
"data": JSON.stringify({"ItineraryId":"","BookItineraryPaxDetail":[{"PaxType":"ADT","Gender":"","UserTitle":"","FirstName":"","MiddleName":"","LastName":"","DateOfBirth":"","PassportNumber":"","CountryOfIssue":"","Nationality":"","PassportIssueDate":"","PassportExpiryDate":""},{"PaxType":"CHD","Gender":"","UserTitle":"","FirstName":"","MiddleName":"","LastName":"","DateOfBirth":"","PassportNumber":"","CountryOfIssue":"","Nationality":"","PassportIssueDate":"","PassportExpiryDate":""},{"PaxType":"","Gender":"","UserTitle":"","FirstName":"","MiddleName":"","LastName":"","DateOfBirth":"","PassportNumber":"","CountryOfIssue":"","Nationality":"","PassportIssueDate":"","PassportExpiryDate":""}],"BookItineraryPaxContactInfo":{"PhoneNumber":"","AlternatePhoneNumber":"1","Email":""},"BookItineraryPaymentDetail":{"PaymentType":"HOLD"}}),
};
$.ajax(settings).done(function (response) {
console.log(response);
});
{
"ItineraryId": "",
"BookItineraryPaxDetail": [
{
"PaxType": "ADT",
"Gender": "",
"UserTitle": "",
"FirstName": "",
"MiddleName": "",
"LastName": "",
"DateOfBirth": "",
"PassportNumber": "",
"CountryOfIssue":"",
"Nationality":"",
"PassportIssueDate":"",
"PassportExpiryDate":""
},
{
"PaxType": "CHD",
"Gender": "",
"UserTitle": "",
"FirstName": "",
"MiddleName": "",
"LastName": "",
"DateOfBirth": "",
"PassportNumber": "",
"CountryOfIssue":"",
"Nationality":"",
"PassportIssueDate":"",
"PassportExpiryDate":""
},
{
"PaxType": "",
"Gender": "",
"UserTitle": "",
"FirstName": "",
"MiddleName": "",
"LastName": "",
"DateOfBirth": "",
"PassportNumber": "",
"CountryOfIssue":"",
"Nationality":"",
"PassportIssueDate":"",
"PassportExpiryDate":""
}
],
"BookItineraryPaxContactInfo": {
"PhoneNumber": "",
"AlternatePhoneNumber": "1",
"Email": ""
},
"BookItineraryPaymentDetail":{
"PaymentType": "HOLD",
}
}
CC booking request
If the Payment Type is CC , Following is the format
var settings = {
"url": "https://map.trippro.com/resources/v2/Flights/bookItinerary",
"method": "POST",
"timeout": 0,
"headers": {
"Content-Type": "application/json",
"AccessToken": "<YourEmaiId>"
},
"data": JSON.stringify({"ItineraryId":"","BookItineraryPaxDetail":[{"PaxType":"ADT","Gender":"","UserTitle":"","FirstName":"","MiddleName":"","LastName":"","DateOfBirth":"","PassportNumber":"","CountryOfIssue":"","Nationality":"","PassportIssueDate":"","PassportExpiryDate":""},{"PaxType":"CHD","Gender":"","UserTitle":"","FirstName":"","MiddleName":"","LastName":"","DateOfBirth":"","PassportNumber":"","CountryOfIssue":"","Nationality":"","PassportIssueDate":"","PassportExpiryDate":""},{"PaxType":"","Gender":"","UserTitle":"","FirstName":"","MiddleName":"","LastName":"","DateOfBirth":"","PassportNumber":"","CountryOfIssue":"","Nationality":"","PassportIssueDate":"","PassportExpiryDate":""}],"BookItineraryPaxContactInfo":{"PhoneNumber":"","AlternatePhoneNumber":"1","Email":""},"BookItineraryPaymentDetail":{"PaymentType":"CC","BookItineraryCCDetails":{"CardType":"","CardNumber":"","CVV":"","ExpiryDate":"","BankPhoneNum":"","BillingPhoneNum":""},"BookItineraryBillingAddress":{"Name":"","Address1":"","Address2":"","ZipCode":"","City":"","Country":"","State":""}}}),
};
$.ajax(settings).done(function (response) {
console.log(response);
});
<?php
$curl = curl_init();
curl_setopt_array($curl, array(
CURLOPT_URL => "https://map.trippro.com/resources/v2/Flights/bookItinerary",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 0,
CURLOPT_FOLLOWLOCATION => true,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS =>"{\r\n\"ItineraryId\": \"\",\r\n\"BookItineraryPaxDetail\": [\r\n{\r\n\t\"PaxType\": \"ADT\",\r\n\t\"Gender\": \"\",\r\n\t\"UserTitle\": \"\",\r\n\t\"FirstName\": \"\",\r\n\t\"MiddleName\": \"\",\r\n\t\"LastName\": \"\",\r\n\t\"DateOfBirth\": \"\",\r\n\t\"PassportNumber\": \"\",\r\n\t\"CountryOfIssue\":\"\",\r\n\t\"Nationality\":\"\",\r\n\t\"PassportIssueDate\":\"\",\r\n\t\"PassportExpiryDate\":\"\"\r\n},\r\n{\r\n\t\"PaxType\": \"CHD\",\r\n\t\"Gender\": \"\",\r\n\t\"UserTitle\": \"\",\r\n\t\"FirstName\": \"\",\r\n\t\"MiddleName\": \"\",\r\n\t\"LastName\": \"\",\r\n\t\"DateOfBirth\": \"\",\r\n\t\"PassportNumber\": \"\",\r\n\t\"CountryOfIssue\":\"\",\r\n\t\"Nationality\":\"\",\r\n\t\"PassportIssueDate\":\"\",\r\n\t\"PassportExpiryDate\":\"\"\r\n},\r\n{\r\n\t\"PaxType\": \"\",\r\n\t\"Gender\": \"\",\r\n\t\"UserTitle\": \"\",\r\n\t\"FirstName\": \"\",\r\n\t\"MiddleName\": \"\",\r\n\t\"LastName\": \"\",\r\n\t\"DateOfBirth\": \"\",\r\n\t\"PassportNumber\": \"\",\r\n\t\"CountryOfIssue\":\"\",\r\n\t\"Nationality\":\"\",\r\n\t\"PassportIssueDate\":\"\",\r\n\t\"PassportExpiryDate\":\"\"\r\n}\r\n],\r\n\"BookItineraryPaxContactInfo\": {\r\n\"PhoneNumber\": \"\",\r\n\"AlternatePhoneNumber\": \"1\",\r\n\"Email\": \"\"\r\n},\r\n\"BookItineraryPaymentDetail\":{\r\n\"PaymentType\": \"CC\",\r\n\"BookItineraryCCDetails\": {\r\n \"CardType\": \"\",\r\n \"CardNumber\": \"\",\r\n \"CVV\": \"\",\r\n \"ExpiryDate\": \"\",\r\n \"BankPhoneNum\": \"\",\r\n \"BillingPhoneNum\": \"\"\r\n},\r\n\"BookItineraryBillingAddress\": {\r\n \"Name\": \"\",\r\n \"Address1\": \"\",\r\n \"Address2\": \"\",\r\n \"ZipCode\": \"\",\r\n \"City\": \"\",\r\n \"Country\": \"\",\r\n \"State\": \"\"\r\n}\r\n}\r\n}",
CURLOPT_HTTPHEADER => array(
"Content-Type: application/json",
"AccessToken: <YourEmaiId>"
),
));
$response = curl_exec($curl);
curl_close($curl);
echo $response;
import requests
url = "https://map.trippro.com/resources/v2/Flights/bookItinerary"
payload = "{\r\n\"ItineraryId\": \"\",\r\n\"BookItineraryPaxDetail\": [\r\n{\r\n\t\"PaxType\": \"ADT\",\r\n\t\"Gender\": \"\",\r\n\t\"UserTitle\": \"\",\r\n\t\"FirstName\": \"\",\r\n\t\"MiddleName\": \"\",\r\n\t\"LastName\": \"\",\r\n\t\"DateOfBirth\": \"\",\r\n\t\"PassportNumber\": \"\",\r\n\t\"CountryOfIssue\":\"\",\r\n\t\"Nationality\":\"\",\r\n\t\"PassportIssueDate\":\"\",\r\n\t\"PassportExpiryDate\":\"\"\r\n},\r\n{\r\n\t\"PaxType\": \"CHD\",\r\n\t\"Gender\": \"\",\r\n\t\"UserTitle\": \"\",\r\n\t\"FirstName\": \"\",\r\n\t\"MiddleName\": \"\",\r\n\t\"LastName\": \"\",\r\n\t\"DateOfBirth\": \"\",\r\n\t\"PassportNumber\": \"\",\r\n\t\"CountryOfIssue\":\"\",\r\n\t\"Nationality\":\"\",\r\n\t\"PassportIssueDate\":\"\",\r\n\t\"PassportExpiryDate\":\"\"\r\n},\r\n{\r\n\t\"PaxType\": \"\",\r\n\t\"Gender\": \"\",\r\n\t\"UserTitle\": \"\",\r\n\t\"FirstName\": \"\",\r\n\t\"MiddleName\": \"\",\r\n\t\"LastName\": \"\",\r\n\t\"DateOfBirth\": \"\",\r\n\t\"PassportNumber\": \"\",\r\n\t\"CountryOfIssue\":\"\",\r\n\t\"Nationality\":\"\",\r\n\t\"PassportIssueDate\":\"\",\r\n\t\"PassportExpiryDate\":\"\"\r\n}\r\n],\r\n\"BookItineraryPaxContactInfo\": {\r\n\"PhoneNumber\": \"\",\r\n\"AlternatePhoneNumber\": \"1\",\r\n\"Email\": \"\"\r\n},\r\n\"BookItineraryPaymentDetail\":{\r\n\"PaymentType\": \"CC\",\r\n\"BookItineraryCCDetails\": {\r\n \"CardType\": \"\",\r\n \"CardNumber\": \"\",\r\n \"CVV\": \"\",\r\n \"ExpiryDate\": \"\",\r\n \"BankPhoneNum\": \"\",\r\n \"BillingPhoneNum\": \"\"\r\n},\r\n\"BookItineraryBillingAddress\": {\r\n \"Name\": \"\",\r\n \"Address1\": \"\",\r\n \"Address2\": \"\",\r\n \"ZipCode\": \"\",\r\n \"City\": \"\",\r\n \"Country\": \"\",\r\n \"State\": \"\"\r\n}\r\n}\r\n}"
headers = {
'Content-Type': 'application/json',
'AccessToken': '<YourEmaiId>'
}
response = requests.request("POST", url, headers=headers, data = payload)
print(response.text.encode('utf8'))
require "uri"
require "net/http"
url = URI("https://map.trippro.com/resources/v2/Flights/bookItinerary")
http = Net::HTTP.new(url.host, url.port);
request = Net::HTTP::Post.new(url)
request["Content-Type"] = "application/json"
request["AccessToken"] = "<YourEmaiId>"
request.body = "{\r\n\"ItineraryId\": \"\",\r\n\"BookItineraryPaxDetail\": [\r\n{\r\n\t\"PaxType\": \"ADT\",\r\n\t\"Gender\": \"\",\r\n\t\"UserTitle\": \"\",\r\n\t\"FirstName\": \"\",\r\n\t\"MiddleName\": \"\",\r\n\t\"LastName\": \"\",\r\n\t\"DateOfBirth\": \"\",\r\n\t\"PassportNumber\": \"\",\r\n\t\"CountryOfIssue\":\"\",\r\n\t\"Nationality\":\"\",\r\n\t\"PassportIssueDate\":\"\",\r\n\t\"PassportExpiryDate\":\"\"\r\n},\r\n{\r\n\t\"PaxType\": \"CHD\",\r\n\t\"Gender\": \"\",\r\n\t\"UserTitle\": \"\",\r\n\t\"FirstName\": \"\",\r\n\t\"MiddleName\": \"\",\r\n\t\"LastName\": \"\",\r\n\t\"DateOfBirth\": \"\",\r\n\t\"PassportNumber\": \"\",\r\n\t\"CountryOfIssue\":\"\",\r\n\t\"Nationality\":\"\",\r\n\t\"PassportIssueDate\":\"\",\r\n\t\"PassportExpiryDate\":\"\"\r\n},\r\n{\r\n\t\"PaxType\": \"\",\r\n\t\"Gender\": \"\",\r\n\t\"UserTitle\": \"\",\r\n\t\"FirstName\": \"\",\r\n\t\"MiddleName\": \"\",\r\n\t\"LastName\": \"\",\r\n\t\"DateOfBirth\": \"\",\r\n\t\"PassportNumber\": \"\",\r\n\t\"CountryOfIssue\":\"\",\r\n\t\"Nationality\":\"\",\r\n\t\"PassportIssueDate\":\"\",\r\n\t\"PassportExpiryDate\":\"\"\r\n}\r\n],\r\n\"BookItineraryPaxContactInfo\": {\r\n\"PhoneNumber\": \"\",\r\n\"AlternatePhoneNumber\": \"1\",\r\n\"Email\": \"\"\r\n},\r\n\"BookItineraryPaymentDetail\":{\r\n\"PaymentType\": \"CC\",\r\n\"BookItineraryCCDetails\": {\r\n \"CardType\": \"\",\r\n \"CardNumber\": \"\",\r\n \"CVV\": \"\",\r\n \"ExpiryDate\": \"\",\r\n \"BankPhoneNum\": \"\",\r\n \"BillingPhoneNum\": \"\"\r\n},\r\n\"BookItineraryBillingAddress\": {\r\n \"Name\": \"\",\r\n \"Address1\": \"\",\r\n \"Address2\": \"\",\r\n \"ZipCode\": \"\",\r\n \"City\": \"\",\r\n \"Country\": \"\",\r\n \"State\": \"\"\r\n}\r\n}\r\n}"
response = http.request(request)
puts response.read_body
{
"ItineraryId": "",
"BookItineraryPaxDetail": [
{
"PaxType": "ADT",
"Gender": "",
"UserTitle": "",
"FirstName": "",
"MiddleName": "",
"LastName": "",
"DateOfBirth": "",
"PassportNumber": "",
"CountryOfIssue":"",
"Nationality":"",
"PassportIssueDate":"",
"PassportExpiryDate":""
},
{
"PaxType": "CHD",
"Gender": "",
"UserTitle": "",
"FirstName": "",
"MiddleName": "",
"LastName": "",
"DateOfBirth": "",
"PassportNumber": "",
"CountryOfIssue":"",
"Nationality":"",
"PassportIssueDate":"",
"PassportExpiryDate":""
},
{
"PaxType": "",
"Gender": "",
"UserTitle": "",
"FirstName": "",
"MiddleName": "",
"LastName": "",
"DateOfBirth": "",
"PassportNumber": "",
"CountryOfIssue":"",
"Nationality":"",
"PassportIssueDate":"",
"PassportExpiryDate":""
}
],
"BookItineraryPaxContactInfo": {
"PhoneNumber": "",
"AlternatePhoneNumber": "1",
"Email": ""
},
"BookItineraryPaymentDetail":{
"PaymentType": "CC",
"BookItineraryCCDetails": {
"CardType": "",
"CardNumber": "",
"CVV": "",
"ExpiryDate": "",
"BankPhoneNum": "",
"BillingPhoneNum": ""
},
"BookItineraryBillingAddress": {
"Name": "",
"Address1": "",
"Address2": "",
"ZipCode": "",
"City": "",
"Country": "",
"State": ""
}
}
}
CK booking request
If the Payment Type is CK , Following is the format
require "uri"
require "net/http"
url = URI("https://map.trippro.com/resources/v2/Flights/bookItinerary")
http = Net::HTTP.new(url.host, url.port);
request = Net::HTTP::Post.new(url)
request["Content-Type"] = "application/json"
request["AccessToken"] = "<yourEmailId>"
request.body = "{\r\n\"ItineraryId\": \"\",\r\n\"BookItineraryPaxDetail\": [\r\n{\r\n\t\"PaxType\": \"ADT\",\r\n\t\"Gender\": \"\",\r\n\t\"UserTitle\": \"\",\r\n\t\"FirstName\": \"\",\r\n\t\"MiddleName\": \"\",\r\n\t\"LastName\": \"\",\r\n\t\"DateOfBirth\": \"\",\r\n\t\"PassportNumber\": \"\",\r\n\t\"CountryOfIssue\":\"\",\r\n\t\"Nationality\":\"\",\r\n\t\"PassportIssueDate\":\"\",\r\n\t\"PassportExpiryDate\":\"\"\r\n},\r\n{\r\n\t\"PaxType\": \"CHD\",\r\n\t\"Gender\": \"\",\r\n\t\"UserTitle\": \"\",\r\n\t\"FirstName\": \"\",\r\n\t\"MiddleName\": \"\",\r\n\t\"LastName\": \"\",\r\n\t\"DateOfBirth\": \"\",\r\n\t\"PassportNumber\": \"\",\r\n\t\"CountryOfIssue\":\"\",\r\n\t\"Nationality\":\"\",\r\n\t\"PassportIssueDate\":\"\",\r\n\t\"PassportExpiryDate\":\"\"\r\n},\r\n{\r\n\t\"PaxType\": \"\",\r\n\t\"Gender\": \"\",\r\n\t\"UserTitle\": \"\",\r\n\t\"FirstName\": \"\",\r\n\t\"MiddleName\": \"\",\r\n\t\"LastName\": \"\",\r\n\t\"DateOfBirth\": \"\",\r\n\t\"PassportNumber\": \"\",\r\n\t\"CountryOfIssue\":\"\",\r\n\t\"Nationality\":\"\",\r\n\t\"PassportIssueDate\":\"\",\r\n\t\"PassportExpiryDate\":\"\"\r\n}\r\n],\r\n\"BookItineraryPaxContactInfo\": {\r\n\"PhoneNumber\": \"\",\r\n\"AlternatePhoneNumber\": \"1\",\r\n\"Email\": \"\"\r\n},\r\n\"BookItineraryPaymentDetail\": {\r\n\"PaymentType\": \"CK\",\r\n\"BookItineraryBillingAddress\": {\r\n\t\"Name\": \"\",\r\n\t\"Address1\": \"\",\r\n\t\"Address2\": \"\",\r\n\t\"ZipCode\": \"\",\r\n\t\"City\": \"\",\r\n\t\"Country\": \"\",\r\n\t\"State\": \"\"\r\n}\r\n}\r\n}"
response = http.request(request)
puts response.read_body
import requests
url = "https://map.trippro.com/resources/v2/Flights/bookItinerary"
payload = "{\r\n\"ItineraryId\": \"\",\r\n\"BookItineraryPaxDetail\": [\r\n{\r\n\t\"PaxType\": \"ADT\",\r\n\t\"Gender\": \"\",\r\n\t\"UserTitle\": \"\",\r\n\t\"FirstName\": \"\",\r\n\t\"MiddleName\": \"\",\r\n\t\"LastName\": \"\",\r\n\t\"DateOfBirth\": \"\",\r\n\t\"PassportNumber\": \"\",\r\n\t\"CountryOfIssue\":\"\",\r\n\t\"Nationality\":\"\",\r\n\t\"PassportIssueDate\":\"\",\r\n\t\"PassportExpiryDate\":\"\"\r\n},\r\n{\r\n\t\"PaxType\": \"CHD\",\r\n\t\"Gender\": \"\",\r\n\t\"UserTitle\": \"\",\r\n\t\"FirstName\": \"\",\r\n\t\"MiddleName\": \"\",\r\n\t\"LastName\": \"\",\r\n\t\"DateOfBirth\": \"\",\r\n\t\"PassportNumber\": \"\",\r\n\t\"CountryOfIssue\":\"\",\r\n\t\"Nationality\":\"\",\r\n\t\"PassportIssueDate\":\"\",\r\n\t\"PassportExpiryDate\":\"\"\r\n},\r\n{\r\n\t\"PaxType\": \"\",\r\n\t\"Gender\": \"\",\r\n\t\"UserTitle\": \"\",\r\n\t\"FirstName\": \"\",\r\n\t\"MiddleName\": \"\",\r\n\t\"LastName\": \"\",\r\n\t\"DateOfBirth\": \"\",\r\n\t\"PassportNumber\": \"\",\r\n\t\"CountryOfIssue\":\"\",\r\n\t\"Nationality\":\"\",\r\n\t\"PassportIssueDate\":\"\",\r\n\t\"PassportExpiryDate\":\"\"\r\n}\r\n],\r\n\"BookItineraryPaxContactInfo\": {\r\n\"PhoneNumber\": \"\",\r\n\"AlternatePhoneNumber\": \"1\",\r\n\"Email\": \"\"\r\n},\r\n\"BookItineraryPaymentDetail\": {\r\n\"PaymentType\": \"CK\",\r\n\"BookItineraryBillingAddress\": {\r\n\t\"Name\": \"\",\r\n\t\"Address1\": \"\",\r\n\t\"Address2\": \"\",\r\n\t\"ZipCode\": \"\",\r\n\t\"City\": \"\",\r\n\t\"Country\": \"\",\r\n\t\"State\": \"\"\r\n}\r\n}\r\n}"
headers = {
'Content-Type': 'application/json',
'AccessToken': '<yourEmailId>'
}
response = requests.request("POST", url, headers=headers, data = payload)
print(response.text.encode('utf8'))
<?php
$curl = curl_init();
curl_setopt_array($curl, array(
CURLOPT_URL => "https://map.trippro.com/resources/v2/Flights/bookItinerary",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 0,
CURLOPT_FOLLOWLOCATION => true,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS =>"{\r\n\"ItineraryId\": \"\",\r\n\"BookItineraryPaxDetail\": [\r\n{\r\n\t\"PaxType\": \"ADT\",\r\n\t\"Gender\": \"\",\r\n\t\"UserTitle\": \"\",\r\n\t\"FirstName\": \"\",\r\n\t\"MiddleName\": \"\",\r\n\t\"LastName\": \"\",\r\n\t\"DateOfBirth\": \"\",\r\n\t\"PassportNumber\": \"\",\r\n\t\"CountryOfIssue\":\"\",\r\n\t\"Nationality\":\"\",\r\n\t\"PassportIssueDate\":\"\",\r\n\t\"PassportExpiryDate\":\"\"\r\n},\r\n{\r\n\t\"PaxType\": \"CHD\",\r\n\t\"Gender\": \"\",\r\n\t\"UserTitle\": \"\",\r\n\t\"FirstName\": \"\",\r\n\t\"MiddleName\": \"\",\r\n\t\"LastName\": \"\",\r\n\t\"DateOfBirth\": \"\",\r\n\t\"PassportNumber\": \"\",\r\n\t\"CountryOfIssue\":\"\",\r\n\t\"Nationality\":\"\",\r\n\t\"PassportIssueDate\":\"\",\r\n\t\"PassportExpiryDate\":\"\"\r\n},\r\n{\r\n\t\"PaxType\": \"\",\r\n\t\"Gender\": \"\",\r\n\t\"UserTitle\": \"\",\r\n\t\"FirstName\": \"\",\r\n\t\"MiddleName\": \"\",\r\n\t\"LastName\": \"\",\r\n\t\"DateOfBirth\": \"\",\r\n\t\"PassportNumber\": \"\",\r\n\t\"CountryOfIssue\":\"\",\r\n\t\"Nationality\":\"\",\r\n\t\"PassportIssueDate\":\"\",\r\n\t\"PassportExpiryDate\":\"\"\r\n}\r\n],\r\n\"BookItineraryPaxContactInfo\": {\r\n\"PhoneNumber\": \"\",\r\n\"AlternatePhoneNumber\": \"1\",\r\n\"Email\": \"\"\r\n},\r\n\"BookItineraryPaymentDetail\": {\r\n\"PaymentType\": \"CK\",\r\n\"BookItineraryBillingAddress\": {\r\n\t\"Name\": \"\",\r\n\t\"Address1\": \"\",\r\n\t\"Address2\": \"\",\r\n\t\"ZipCode\": \"\",\r\n\t\"City\": \"\",\r\n\t\"Country\": \"\",\r\n\t\"State\": \"\"\r\n}\r\n}\r\n}",
CURLOPT_HTTPHEADER => array(
"Content-Type: application/json",
"AccessToken: <yourEmailId>"
),
));
$response = curl_exec($curl);
curl_close($curl);
echo $response;
var settings = {
"url": "https://map.trippro.com/resources/v2/Flights/bookItinerary",
"method": "POST",
"timeout": 0,
"headers": {
"Content-Type": "application/json",
"AccessToken": "<yourEmailId>"
},
"data": JSON.stringify({"ItineraryId":"","BookItineraryPaxDetail":[{"PaxType":"ADT","Gender":"","UserTitle":"","FirstName":"","MiddleName":"","LastName":"","DateOfBirth":"","PassportNumber":"","CountryOfIssue":"","Nationality":"","PassportIssueDate":"","PassportExpiryDate":""},{"PaxType":"CHD","Gender":"","UserTitle":"","FirstName":"","MiddleName":"","LastName":"","DateOfBirth":"","PassportNumber":"","CountryOfIssue":"","Nationality":"","PassportIssueDate":"","PassportExpiryDate":""},{"PaxType":"","Gender":"","UserTitle":"","FirstName":"","MiddleName":"","LastName":"","DateOfBirth":"","PassportNumber":"","CountryOfIssue":"","Nationality":"","PassportIssueDate":"","PassportExpiryDate":""}],"BookItineraryPaxContactInfo":{"PhoneNumber":"","AlternatePhoneNumber":"1","Email":""},"BookItineraryPaymentDetail":{"PaymentType":"CK","BookItineraryBillingAddress":{"Name":"","Address1":"","Address2":"","ZipCode":"","City":"","Country":"","State":""}}}),
};
$.ajax(settings).done(function (response) {
console.log(response);
});
{
"ItineraryId": "",
"BookItineraryPaxDetail": [
{
"PaxType": "ADT",
"Gender": "",
"UserTitle": "",
"FirstName": "",
"MiddleName": "",
"LastName": "",
"DateOfBirth": "",
"PassportNumber": "",
"CountryOfIssue":"",
"Nationality":"",
"PassportIssueDate":"",
"PassportExpiryDate":""
},
{
"PaxType": "CHD",
"Gender": "",
"UserTitle": "",
"FirstName": "",
"MiddleName": "",
"LastName": "",
"DateOfBirth": "",
"PassportNumber": "",
"CountryOfIssue":"",
"Nationality":"",
"PassportIssueDate":"",
"PassportExpiryDate":""
},
{
"PaxType": "",
"Gender": "",
"UserTitle": "",
"FirstName": "",
"MiddleName": "",
"LastName": "",
"DateOfBirth": "",
"PassportNumber": "",
"CountryOfIssue":"",
"Nationality":"",
"PassportIssueDate":"",
"PassportExpiryDate":""
}
],
"BookItineraryPaxContactInfo": {
"PhoneNumber": "",
"AlternatePhoneNumber": "1",
"Email": ""
},
"BookItineraryPaymentDetail": {
"PaymentType": "CK",
"BookItineraryBillingAddress": {
"Name": "",
"Address1": "",
"Address2": "",
"ZipCode": "",
"City": "",
"Country": "",
"State": ""
}
}
}
Request Json
Request
var settings = {
"url": "https://map.trippro.com/resources/v2/Flights/bookItinerary",
"method": "POST",
"timeout": 0,
"headers": {
"Content-Type": "application/json",
"AccessToken": "<YourEmaiId>"
},
"data": JSON.stringify({"ItineraryId":"","BookItineraryPaxDetail":[{"PaxType":"ADT","Gender":"","UserTitle":"","FirstName":"","MiddleName":"","LastName":"","DateOfBirth":"","PassportNumber":"","CountryOfIssue":"","Nationality":"","PassportIssueDate":"","PassportExpiryDate":""},{"PaxType":"CHD","Gender":"","UserTitle":"","FirstName":"","MiddleName":"","LastName":"","DateOfBirth":"","PassportNumber":"","CountryOfIssue":"","Nationality":"","PassportIssueDate":"","PassportExpiryDate":""},{"PaxType":"","Gender":"","UserTitle":"","FirstName":"","MiddleName":"","LastName":"","DateOfBirth":"","PassportNumber":"","CountryOfIssue":"","Nationality":"","PassportIssueDate":"","PassportExpiryDate":""}],"BookItineraryPaxContactInfo":{"PhoneNumber":"","AlternatePhoneNumber":"1","Email":""},"BookItineraryPaymentDetail":{"PaymentType":"CC","BookItineraryCCDetails":{"CardType":"","CardNumber":"","CVV":"","ExpiryDate":"","BankPhoneNum":"","BillingPhoneNum":""},"BookItineraryBillingAddress":{"Name":"","Address1":"","Address2":"","ZipCode":"","City":"","Country":"","State":""}}}),
};
$.ajax(settings).done(function (response) {
console.log(response);
});
<?php
$curl = curl_init();
curl_setopt_array($curl, array(
CURLOPT_URL => "https://map.trippro.com/resources/v2/Flights/bookItinerary",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 0,
CURLOPT_FOLLOWLOCATION => true,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS =>"{\r\n\"ItineraryId\": \"\",\r\n\"BookItineraryPaxDetail\": [\r\n{\r\n\t\"PaxType\": \"ADT\",\r\n\t\"Gender\": \"\",\r\n\t\"UserTitle\": \"\",\r\n\t\"FirstName\": \"\",\r\n\t\"MiddleName\": \"\",\r\n\t\"LastName\": \"\",\r\n\t\"DateOfBirth\": \"\",\r\n\t\"PassportNumber\": \"\",\r\n\t\"CountryOfIssue\":\"\",\r\n\t\"Nationality\":\"\",\r\n\t\"PassportIssueDate\":\"\",\r\n\t\"PassportExpiryDate\":\"\"\r\n},\r\n{\r\n\t\"PaxType\": \"CHD\",\r\n\t\"Gender\": \"\",\r\n\t\"UserTitle\": \"\",\r\n\t\"FirstName\": \"\",\r\n\t\"MiddleName\": \"\",\r\n\t\"LastName\": \"\",\r\n\t\"DateOfBirth\": \"\",\r\n\t\"PassportNumber\": \"\",\r\n\t\"CountryOfIssue\":\"\",\r\n\t\"Nationality\":\"\",\r\n\t\"PassportIssueDate\":\"\",\r\n\t\"PassportExpiryDate\":\"\"\r\n},\r\n{\r\n\t\"PaxType\": \"\",\r\n\t\"Gender\": \"\",\r\n\t\"UserTitle\": \"\",\r\n\t\"FirstName\": \"\",\r\n\t\"MiddleName\": \"\",\r\n\t\"LastName\": \"\",\r\n\t\"DateOfBirth\": \"\",\r\n\t\"PassportNumber\": \"\",\r\n\t\"CountryOfIssue\":\"\",\r\n\t\"Nationality\":\"\",\r\n\t\"PassportIssueDate\":\"\",\r\n\t\"PassportExpiryDate\":\"\"\r\n}\r\n],\r\n\"BookItineraryPaxContactInfo\": {\r\n\"PhoneNumber\": \"\",\r\n\"AlternatePhoneNumber\": \"1\",\r\n\"Email\": \"\"\r\n},\r\n\"BookItineraryPaymentDetail\":{\r\n\"PaymentType\": \"CC\",\r\n\"BookItineraryCCDetails\": {\r\n \"CardType\": \"\",\r\n \"CardNumber\": \"\",\r\n \"CVV\": \"\",\r\n \"ExpiryDate\": \"\",\r\n \"BankPhoneNum\": \"\",\r\n \"BillingPhoneNum\": \"\"\r\n},\r\n\"BookItineraryBillingAddress\": {\r\n \"Name\": \"\",\r\n \"Address1\": \"\",\r\n \"Address2\": \"\",\r\n \"ZipCode\": \"\",\r\n \"City\": \"\",\r\n \"Country\": \"\",\r\n \"State\": \"\"\r\n}\r\n}\r\n}",
CURLOPT_HTTPHEADER => array(
"Content-Type: application/json",
"AccessToken: <YourEmaiId>"
),
));
$response = curl_exec($curl);
curl_close($curl);
echo $response;
import requests
url = "https://map.trippro.com/resources/v2/Flights/bookItinerary"
payload = "{\r\n\"ItineraryId\": \"\",\r\n\"BookItineraryPaxDetail\": [\r\n{\r\n\t\"PaxType\": \"ADT\",\r\n\t\"Gender\": \"\",\r\n\t\"UserTitle\": \"\",\r\n\t\"FirstName\": \"\",\r\n\t\"MiddleName\": \"\",\r\n\t\"LastName\": \"\",\r\n\t\"DateOfBirth\": \"\",\r\n\t\"PassportNumber\": \"\",\r\n\t\"CountryOfIssue\":\"\",\r\n\t\"Nationality\":\"\",\r\n\t\"PassportIssueDate\":\"\",\r\n\t\"PassportExpiryDate\":\"\"\r\n},\r\n{\r\n\t\"PaxType\": \"CHD\",\r\n\t\"Gender\": \"\",\r\n\t\"UserTitle\": \"\",\r\n\t\"FirstName\": \"\",\r\n\t\"MiddleName\": \"\",\r\n\t\"LastName\": \"\",\r\n\t\"DateOfBirth\": \"\",\r\n\t\"PassportNumber\": \"\",\r\n\t\"CountryOfIssue\":\"\",\r\n\t\"Nationality\":\"\",\r\n\t\"PassportIssueDate\":\"\",\r\n\t\"PassportExpiryDate\":\"\"\r\n},\r\n{\r\n\t\"PaxType\": \"\",\r\n\t\"Gender\": \"\",\r\n\t\"UserTitle\": \"\",\r\n\t\"FirstName\": \"\",\r\n\t\"MiddleName\": \"\",\r\n\t\"LastName\": \"\",\r\n\t\"DateOfBirth\": \"\",\r\n\t\"PassportNumber\": \"\",\r\n\t\"CountryOfIssue\":\"\",\r\n\t\"Nationality\":\"\",\r\n\t\"PassportIssueDate\":\"\",\r\n\t\"PassportExpiryDate\":\"\"\r\n}\r\n],\r\n\"BookItineraryPaxContactInfo\": {\r\n\"PhoneNumber\": \"\",\r\n\"AlternatePhoneNumber\": \"1\",\r\n\"Email\": \"\"\r\n},\r\n\"BookItineraryPaymentDetail\":{\r\n\"PaymentType\": \"CC\",\r\n\"BookItineraryCCDetails\": {\r\n \"CardType\": \"\",\r\n \"CardNumber\": \"\",\r\n \"CVV\": \"\",\r\n \"ExpiryDate\": \"\",\r\n \"BankPhoneNum\": \"\",\r\n \"BillingPhoneNum\": \"\"\r\n},\r\n\"BookItineraryBillingAddress\": {\r\n \"Name\": \"\",\r\n \"Address1\": \"\",\r\n \"Address2\": \"\",\r\n \"ZipCode\": \"\",\r\n \"City\": \"\",\r\n \"Country\": \"\",\r\n \"State\": \"\"\r\n}\r\n}\r\n}"
headers = {
'Content-Type': 'application/json',
'AccessToken': '<YourEmaiId>'
}
response = requests.request("POST", url, headers=headers, data = payload)
print(response.text.encode('utf8'))
require "uri"
require "net/http"
url = URI("https://map.trippro.com/resources/v2/Flights/bookItinerary")
http = Net::HTTP.new(url.host, url.port);
request = Net::HTTP::Post.new(url)
request["Content-Type"] = "application/json"
request["AccessToken"] = "<YourEmaiId>"
request.body = "{\r\n\"ItineraryId\": \"\",\r\n\"BookItineraryPaxDetail\": [\r\n{\r\n\t\"PaxType\": \"ADT\",\r\n\t\"Gender\": \"\",\r\n\t\"UserTitle\": \"\",\r\n\t\"FirstName\": \"\",\r\n\t\"MiddleName\": \"\",\r\n\t\"LastName\": \"\",\r\n\t\"DateOfBirth\": \"\",\r\n\t\"PassportNumber\": \"\",\r\n\t\"CountryOfIssue\":\"\",\r\n\t\"Nationality\":\"\",\r\n\t\"PassportIssueDate\":\"\",\r\n\t\"PassportExpiryDate\":\"\"\r\n},\r\n{\r\n\t\"PaxType\": \"CHD\",\r\n\t\"Gender\": \"\",\r\n\t\"UserTitle\": \"\",\r\n\t\"FirstName\": \"\",\r\n\t\"MiddleName\": \"\",\r\n\t\"LastName\": \"\",\r\n\t\"DateOfBirth\": \"\",\r\n\t\"PassportNumber\": \"\",\r\n\t\"CountryOfIssue\":\"\",\r\n\t\"Nationality\":\"\",\r\n\t\"PassportIssueDate\":\"\",\r\n\t\"PassportExpiryDate\":\"\"\r\n},\r\n{\r\n\t\"PaxType\": \"\",\r\n\t\"Gender\": \"\",\r\n\t\"UserTitle\": \"\",\r\n\t\"FirstName\": \"\",\r\n\t\"MiddleName\": \"\",\r\n\t\"LastName\": \"\",\r\n\t\"DateOfBirth\": \"\",\r\n\t\"PassportNumber\": \"\",\r\n\t\"CountryOfIssue\":\"\",\r\n\t\"Nationality\":\"\",\r\n\t\"PassportIssueDate\":\"\",\r\n\t\"PassportExpiryDate\":\"\"\r\n}\r\n],\r\n\"BookItineraryPaxContactInfo\": {\r\n\"PhoneNumber\": \"\",\r\n\"AlternatePhoneNumber\": \"1\",\r\n\"Email\": \"\"\r\n},\r\n\"BookItineraryPaymentDetail\":{\r\n\"PaymentType\": \"CC\",\r\n\"BookItineraryCCDetails\": {\r\n \"CardType\": \"\",\r\n \"CardNumber\": \"\",\r\n \"CVV\": \"\",\r\n \"ExpiryDate\": \"\",\r\n \"BankPhoneNum\": \"\",\r\n \"BillingPhoneNum\": \"\"\r\n},\r\n\"BookItineraryBillingAddress\": {\r\n \"Name\": \"\",\r\n \"Address1\": \"\",\r\n \"Address2\": \"\",\r\n \"ZipCode\": \"\",\r\n \"City\": \"\",\r\n \"Country\": \"\",\r\n \"State\": \"\"\r\n}\r\n}\r\n}"
response = http.request(request)
puts response.read_body
{
"ItineraryId": "",
"BookItineraryPaxDetail": [
{
"PaxType": "ADT",
"Gender": "",
"UserTitle": "",
"FirstName": "",
"MiddleName": "",
"LastName": "",
"DateOfBirth": "",
"PassportNumber": "",
"CountryOfIssue":"",
"Nationality":"",
"PassportIssueDate":"",
"PassportExpiryDate":""
},
{
"PaxType": "CHD",
"Gender": "",
"UserTitle": "",
"FirstName": "",
"MiddleName": "",
"LastName": "",
"DateOfBirth": "",
"PassportNumber": "",
"CountryOfIssue":"",
"Nationality":"",
"PassportIssueDate":"",
"PassportExpiryDate":""
},
{
"PaxType": "",
"Gender": "",
"UserTitle": "",
"FirstName": "",
"MiddleName": "",
"LastName": "",
"DateOfBirth": "",
"PassportNumber": "",
"CountryOfIssue":"",
"Nationality":"",
"PassportIssueDate":"",
"PassportExpiryDate":""
}
],
"BookItineraryPaxContactInfo": {
"PhoneNumber": "",
"AlternatePhoneNumber": "1",
"Email": ""
},
"BookItineraryPaymentDetail": {
"PaymentType": "CC",
"BookItineraryCCDetails": {
"CardType": "",
"CardNumber": "",
"CVV": "",
"ExpiryDate": "",
"BankPhoneNum": "",
"BillingPhoneNum": ""
},
"BookItineraryBillingAddress": {
"Name": "",
"Address1": "",
"Address2": "",
"ZipCode": "",
"City": "",
"Country": "",
"State": ""
}
}
}
Response JSON
Response if PNR generated
var settings = {
"url": "https://map.trippro.com/resources/v2/Flights/bookItinerary",
"method": "POST",
"timeout": 0,
"headers": {
"Content-Type": "application/json",
"AccessToken": "<YourEmaiId>"
},
"data": JSON.stringify({"errorsList":{"empty":false,"tperror":[{"errorCode":"","errorType":"","errorText":"","errorDetail":{"severity":"ERROR"}}]},"PNR":null,"ReferenceNumber":null}),
};
$.ajax(settings).done(function (response) {
console.log(response);
});
<?php
$curl = curl_init();
curl_setopt_array($curl, array(
CURLOPT_URL => "https://map.trippro.com/resources/v2/Flights/bookItinerary",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 0,
CURLOPT_FOLLOWLOCATION => true,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS =>"{\r\n\"errorsList\": {\r\n\"empty\": false,\r\n\"tperror\": [\r\n{\r\n\"errorCode\": \"\",\r\n\"errorType\": \"\",\r\n\"errorText\": \"\",\r\n\"errorDetail\": {\r\n \"severity\": \"ERROR\"\r\n } }\r\n]\r\n},\r\n\"PNR\": null,\r\n\"ReferenceNumber\": null\r\n}",
CURLOPT_HTTPHEADER => array(
"Content-Type: application/json",
"AccessToken: <YourEmaiId>"
),
));
$response = curl_exec($curl);
curl_close($curl);
echo $response;
import requests
url = "https://map.trippro.com/resources/v2/Flights/bookItinerary"
payload = "{\r\n\"errorsList\": {\r\n\"empty\": false,\r\n\"tperror\": [\r\n{\r\n\"errorCode\": \"\",\r\n\"errorType\": \"\",\r\n\"errorText\": \"\",\r\n\"errorDetail\": {\r\n \"severity\": \"ERROR\"\r\n } }\r\n]\r\n},\r\n\"PNR\": null,\r\n\"ReferenceNumber\": null\r\n}"
headers = {
'Content-Type': 'application/json',
'AccessToken': '<YourEmaiId>'
}
response = requests.request("POST", url, headers=headers, data = payload)
print(response.text.encode('utf8'))
require "uri"
require "net/http"
url = URI("https://map.trippro.com/resources/v2/Flights/bookItinerary")
http = Net::HTTP.new(url.host, url.port);
request = Net::HTTP::Post.new(url)
request["Content-Type"] = "application/json"
request["AccessToken"] = "<YourEmaiId>"
request.body = "{\r\n\"errorsList\": {\r\n\"empty\": false,\r\n\"tperror\": [\r\n{\r\n\"errorCode\": \"\",\r\n\"errorType\": \"\",\r\n\"errorText\": \"\",\r\n\"errorDetail\": {\r\n \"severity\": \"ERROR\"\r\n } }\r\n]\r\n},\r\n\"PNR\": null,\r\n\"ReferenceNumber\": null\r\n}"
response = http.request(request)
puts response.read_body
{
"errorsList": {
"empty": true,
"tperror": []
},
"PNR": "NGHJPB",
"ReferenceNumber": "IE19P2100008"
}
ErrorsList – If pnr not generated errors will get. Empty – true if no errors, false if any errors occur. Tperror – which is an array of errors. “PNR” : “SQLMY1” which is String “ReferenceNumber” : “IE20P2100008” which is String
Response if PNR not generated
{
"errorsList": {
"empty": false,
"tperror": [
{
"errorCode": "",
"errorType": "",
"errorText": “",
"errorDetail": {
"severity": "ERROR"
} }
]
},
"PNR": null,
"ReferenceNumber": null
}
Request Message Elements
Parameter | Description | Format | Examples | Required |
---|---|---|---|---|
>> Book Itinerary Request Body | Book Itinerary Request Wrapper Element. | FlightBookingRequest | Yes | |
>> TPContext | TPContext Reference | Yes | ||
>> Book Itinerary Request | Book Itinerary Request Element | Yes | ||
>>> ItineraryId | Id of Itinerary From Flight Search Response String | 2f5891ac8c3a472094c5397e0aa16ad70044 | Yes | |
>> Pax Details | Passenger details | No | ||
>> Pax Type | Type of passenger | String | ADT,CHD, INF | Yes |
>> First Name | The first name of the passenger | String | Taylor | , Thomas |
>> Middle Name | The middle name of passenger | String | Edward | No |
>> Last Name | The last name of the passenger | String | Johnson | Yes |
>> Gender | The gender type of the passenger | String | M, F. | Yes |
>> Date Of Birth | Date of birth of passenger | String | 01/15/1999,05/15/2000 (MMDDYYYY) | Yes |
>> Passport Number | Passport Number of the passenger | String | 1231FF, 1325FF | No |
>> Nationality | Nationality | String | IN, US | No |
>> Country Of Issue | Passport Issued County Name | String | IN, US | No |
>> Passport Issue Date | Passport Issued Date | String | 10/21/2005, 09/15/2009(MMDDYYYY) | No |
>> Passport Expiry Date | Passport Expired Date | String | 08/13/2019, 05/30/2018(MMDDYYYY) | No |
>> Markup | Markup details | No | ||
>> Pax Type | Passenger type | String | ADT, CHD, INF | No |
>> Agent | Agent | Double | 20, 30 | No |
>> Addresses | Refer Addresses Section | No | ||
>> Address Type | Permanent or Residential Address | String | AGENT, Consolidator | Yes |
>> Name | Name Of person | String | Smith, Ajay | Yes |
>> Address1 | Address1 | String | 4000 E 3rd Ave, Foster City | Yes |
>> Address2 | Address2 | String | CA 94404, United States | No |
>> City | City | String | Hyderabad, Mumbai | Yes |
>> State | State | String | AP, CA | Yes |
>> Country | Country | String | IND, USA | Yes |
>> ZipCode | Zip code | String | 500098, 500068 | Yes |
>> PhoneInfo | Phone Info Section | No | ||
>> phoneType | Home Number Or Mobile Number | String | HOME, OFFICE | No |
>> PhoneNumber | Phone Number | String | 9000874587, 9666888777 | No |
Email ID | String | testing@gmail.com, testapi@gmail.com | No | |
>> Pax Contact Info | Passenger Contact Section | No | ||
>> Phone Number | Passenger Contact Phone Number | String | 9888854785, 9666888777 | Yes |
Passenger Contact Email Id | String | apibookingtest@gmail.com, apibookexample@gmail.com | Yes | |
>> Payment Details | Refer Payment Detail Section | No | ||
>> Payment Type | Payment Mode | String | CC, Check | Yes |
>> CCDetails | Refer CC Details Section | No | ||
>> Card Type | Refer Type of Card | String | VI, Maestro, VISA | Yes |
>> Card Number | Card Number | String | 5000000000215485, 5000012154222222 | Yes |
>> CVV | CVV Number On The Card | String | 295, 588 | No |
>> ExpiryDate | Card Expiry Date | String | 02/2019, 04/2018(MMYYYYY) | Yes |
>> Air line Code | Airline Code | String | BA, AA, AI | No |
>> Check Details | Check Details Refer Section | No | ||
>> Check Number | Check Number | String | 12345(must be five digits) | Yes |
>> Billing Address | Refer Billing Address Section | No | ||
>> Name | Name Of Billing Person Name | String | Edward, Johnson | Yes |
>> Address1 | Billing Address | String | 4000 E 3rd Ave, Foster City | Yes |
>> Address2 | Billing Address | String | CA 94404, United States | No |
>> City | Billing City Name | String | Hyderabad, Foster City | Yes |
>> State | Billing State Name | String | AP, CA, TS | Yes |
>> Country | Billing Country Name | String | IN, US | Yes |
>> ZipCode | Billing Address Zip Code | String | 500098, 500069 | Yes |
Response Message Elements
Parameter | Description | Format | Examples | Required |
---|---|---|---|---|
>> Errors List | We will get PNR not generated errors will get | Flight Booking Response | Yes | |
>> TPContext | TP Context Reference | Yes | ||
>> Book Itinerary Response | Refer Book Itinerary Response Section | No | ||
>> Reference Number | Reference Number Of Booked Itinerary | String | 15W16GEF8900, 13R09XDF7746 | No |
>> PNR | PNR Number of Booked Itinerary | String | 2ERT4G, 4KNB69 | No |
References
Web Service End Point
Production: https://map.trippro.com/resources/v2/Flights/bookItinerary
Test Booking Rules
You can make a booking and let us know the PNR so that we can cancel it. However, please notify/emails us all of your test PNRs that is generated to api-support@mondee.com You need to consider the following things when you are making a booking
- Use the real name and do not use names with Test, ABC, AA, AB, CC, etc. Dont use the same name for multiple bookings
- Take a 3 or 4 months longer search dates
Use the following test credit cards
a. Visa 4111-1111-1111-1111, expiry date - any feature expiry date, CVV - any 3 digit number
b. Master 5111-1111-1111-1118, expiry date - any feature expiry date, CVV - any 3 digit number
Fare Rules API
Overview
The Fare Rules API allows users to request the fare rules associated with the selected itinerary. User can check for fare rules by using any of the Itinerary Id generated in search response or by using the PNR. The response message returns the fare rules for the requested itinerary with information including the ticket refund status and the penalties that would apply towards the Refund / Cancellation and Reissue / Exchange.
Description
The Fare Rules API response message returns the fare rules for the requested itinerary.
Request xml
require "uri"
require "net/http"
url = URI("http://api.trippro.com/api/v2/fareRules?clientId=API1916")
http = Net::HTTP.new(url.host, url.port);
request = Net::HTTP::Post.new(url)
request["Content-Type"] = "application/xml"
request["Accept-Encoding"] = "gzip,deflate"
request.body = "<?xml version=\"1.0\" encoding=\"utf-8\"?>\r\n\r\n <soapenv:Envelope xmlns:soapenv=\"http://schemas.xmlsoap.org/soap/envelope/\" xmlns:v2=\"http://trippro.com/webservices/farerules/v2\" xmlns:v21=\"http://trippro.com/webservices/common/v2\">\r\n <soapenv:Header />\r\n <soapenv:Body>\r\n <v2:FareRulesRequestBody>\r\n <v21:TPContext>\r\n <v21:messageId>FareRules</v21:messageId>\r\n <v21:clientId>YourID</v21:clientId>\r\n </v21:TPContext>\r\n <v2:FareRulesRequest>\r\n <v2:ItineraryId>2f5891ac8c3a472094c5397e0aa16ad70044</v2:ItineraryId>\r\n </v2:FareRulesRequest>\r\n </v2:FareRulesRequestBody>\r\n </soapenv:Body>\r\n </soapenv:Envelope>"
response = http.request(request)
puts response.read_body
import requests
url = "http://api.trippro.com/api/v2/fareRules?clientId=API1916"
payload = "<?xml version=\"1.0\" encoding=\"utf-8\"?>\r\n\r\n <soapenv:Envelope xmlns:soapenv=\"http://schemas.xmlsoap.org/soap/envelope/\" xmlns:v2=\"http://trippro.com/webservices/farerules/v2\" xmlns:v21=\"http://trippro.com/webservices/common/v2\">\r\n <soapenv:Header />\r\n <soapenv:Body>\r\n <v2:FareRulesRequestBody>\r\n <v21:TPContext>\r\n <v21:messageId>FareRules</v21:messageId>\r\n <v21:clientId>YourID</v21:clientId>\r\n </v21:TPContext>\r\n <v2:FareRulesRequest>\r\n <v2:ItineraryId>2f5891ac8c3a472094c5397e0aa16ad70044</v2:ItineraryId>\r\n </v2:FareRulesRequest>\r\n </v2:FareRulesRequestBody>\r\n </soapenv:Body>\r\n </soapenv:Envelope>"
headers = {
'Content-Type': 'application/xml',
'Accept-Encoding': 'gzip,deflate'
}
response = requests.request("POST", url, headers=headers, data = payload)
print(response.text.encode('utf8'))
<?php
$curl = curl_init();
curl_setopt_array($curl, array(
CURLOPT_URL => "http://api.trippro.com/api/v2/fareRules?clientId=API1916",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 0,
CURLOPT_FOLLOWLOCATION => true,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS =>"<?xml version=\"1.0\" encoding=\"utf-8\"?>\r\n\r\n <soapenv:Envelope xmlns:soapenv=\"http://schemas.xmlsoap.org/soap/envelope/\" xmlns:v2=\"http://trippro.com/webservices/farerules/v2\" xmlns:v21=\"http://trippro.com/webservices/common/v2\">\r\n <soapenv:Header />\r\n <soapenv:Body>\r\n <v2:FareRulesRequestBody>\r\n <v21:TPContext>\r\n <v21:messageId>FareRules</v21:messageId>\r\n <v21:clientId>YourID</v21:clientId>\r\n </v21:TPContext>\r\n <v2:FareRulesRequest>\r\n <v2:ItineraryId>2f5891ac8c3a472094c5397e0aa16ad70044</v2:ItineraryId>\r\n </v2:FareRulesRequest>\r\n </v2:FareRulesRequestBody>\r\n </soapenv:Body>\r\n </soapenv:Envelope>",
CURLOPT_HTTPHEADER => array(
"Content-Type: application/xml",
"Accept-Encoding: gzip,deflate"
),
));
$response = curl_exec($curl);
curl_close($curl);
echo $response;
var settings = {
"url": "http://api.trippro.com/api/v2/fareRules?clientId=API1916",
"method": "POST",
"timeout": 0,
"headers": {
"Content-Type": "application/xml",
"Accept-Encoding": "gzip,deflate"
},
"data": "<?xml version=\"1.0\" encoding=\"utf-8\"?>\r\n\r\n <soapenv:Envelope xmlns:soapenv=\"http://schemas.xmlsoap.org/soap/envelope/\" xmlns:v2=\"http://trippro.com/webservices/farerules/v2\" xmlns:v21=\"http://trippro.com/webservices/common/v2\">\r\n <soapenv:Header />\r\n <soapenv:Body>\r\n <v2:FareRulesRequestBody>\r\n <v21:TPContext>\r\n <v21:messageId>FareRules</v21:messageId>\r\n <v21:clientId>YourID</v21:clientId>\r\n </v21:TPContext>\r\n <v2:FareRulesRequest>\r\n <v2:ItineraryId>2f5891ac8c3a472094c5397e0aa16ad70044</v2:ItineraryId>\r\n </v2:FareRulesRequest>\r\n </v2:FareRulesRequestBody>\r\n </soapenv:Body>\r\n </soapenv:Envelope>",
};
$.ajax(settings).done(function (response) {
console.log(response);
});
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:v2="http://trippro.com/webservices/farerules/v2" xmlns:v21="http://trippro.com/webservices/common/v2">
<soapenv:Header />
<soapenv:Body>
<v2:FareRulesRequestBody>
<v21:TPContext>
<v21:messageId>FareRules</v21:messageId>
<v21:clientId>YourID</v21:clientId>
</v21:TPContext>
<v2:FareRulesRequest>
<v2:ItineraryId>2f5891ac8c3a472094c5397e0aa16ad70044</v2:ItineraryId>
</v2:FareRulesRequest>
</v2:FareRulesRequestBody>
</soapenv:Body>
</soapenv:Envelope>
Response XML
<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/">
<soap:Body>
<ns2:FareRulesResponseBody xmlns="http://trippro.com/webservices/common/v2" xmlns:ns2="http://trippro.com/webservices/farerules/v2">
<TPContext>
<messageId>81039f64-d36c-457e-910a-f5cad4cdaf56</messageId>
<clientId>YourID</clientId>
</TPContext>
<ns2:FareRulesResponse>
<ns2:SubSection>
<ns2:Code>PENALTIES</ns2:Code>
<ns2:Title>PENALTIES</ns2:Title>
<ns2:SubSectionNumber>1</ns2:SubSectionNumber>
<ns2:Text>
CANCELLATIONS ANY TIME TICKET IS NON-REFUNDABLE IN CASE OF CANCEL/NO-SHOW.
WAIVED FOR DEATH OF PASSENGER OR FAMILY MEMBER.
NOTE -
1. RESERVATION CANCELLED PRIOR TO THE ORIGINALLY
SCHEDULED FLIGHT RETAINS TICKET VALUE/LESS
APPLICABLE CANCELLATION FEE IN CHANGE PARAGRAPH
UP TO ONE YEAR FROM THE ORIGINAL DATE OF TICKET
ISSUE. IF THE TICKETED FLT RESERVATION IS NOT
CANCELLED PRIOR TO TICKETED FLT DEPARTURE TIME/REBOOKING IS NOT PERMITTED AND TKT HAS NOVALUE
2. DEATH WAIVER MUST BE SUBSTANTIATED BY
A VALID DEATH CERTIFICATE
3. CANCELLATION FEE DOES NOT APPLY TOINFANTS
UNDER 2 NOT OCCUPYING A SEAT.
PER TICKET CHARGE FOR LOST TICKET APPLICATION IS
USD 100.00/CAD 100.00
CHANGES
ANY TIME
CHARGE USD 300.00/CAD 300.00.
NOTE -
ITINERARIES MAY BE REBOOKED UP TO ONE YEAR FROM
ORIGINAL TICKET ISSUE DATE PROVIDED THE PASSENGER
CANCELS THE TICKETED FLIGHT RESERVATION PRIOR TO
TICKETED DEPARTURE TIME. TICKETS MUST BE REISSUED
AT TIME THE RESERVATION IS UPDATED. IF THE
TICKETED FLIGHT RESERVATION IS NOT CANCELLED PRIOR
TO TICKETED FLIGHT DEPARTURE THE CHANGE IS NOT
PERMITTED AND THE TICKET HAS NO VALUE.
.---
SEE / CHILD/INFANT DISCOUNT IN FARE RULE TO
DETERMINE IF APPLICABLE- NO CHANGE FEE IF UNDER
2YEARS OF AGE NOT OCCUPYING A SEAT.
.---
A CHANGE IS A ROUTING / DATE/ FLIGHT MODIFICATION.
WHEN MORE THAN ONE FARE COMPONENT IS BEING CHANGED
THE HIGHEST PENALTY OF ALL CHANGED FARE COMPONENTS
WILL APPLY.
.---
TICKETS MUST BE REISSUED WHEN ANY VOLUNTARY CHANGE
IS MADE. CHANGE FEE PLUS ANY DIFFERENCE IN FARE
MUST BE COLLECTED AT TIME OF CHANGE OR CHANGE WILL
NOT BE PERMITTED.
.---
WHEN CHANGE OCCURS ON THE FIRST FARE COMPONENT OF
THE JOURNEY OR OTHER FARE COMPONENT OF THE JOURNEY</ns2:Text>
</ns2:SubSection>
</ns2:FareRulesResponse>
</ns2:FareRulesResponseBody>
</soap:Body>
</soap:Envelope>
Request Message Elements
Parameter | Description | Format | Examples | Required |
---|---|---|---|---|
>> Fare Rules Request Body | Fare Rules Request Wrapper Section | Fare Rules Request Body | Yes | |
>> TPContext | TPContext Reference | Yes | ||
>> Fare Rules Request | Fare Rules Request Element | Yes | ||
>> Itinerary Id | Itinerary Id | String | 2f5891ac8c3a472094c5397e0aa16ad70044 | Yes |
>> Record Locator | PNR Value | String | 7CDY6H, 5RTE8R | No |
>> Custom Data | This element contains any custom request XML element utilized for custom Behavior implementation | Object | No |
Response Message Elements
Parameter | Description | Format | Examples | Required |
---|---|---|---|---|
>> Fare Rules Response Body | Fare Rules Response Wrapper Section | Fare Rules ResponseBody | ||
>> TPContext | TPContext Reference | No | ||
>> Fare Rules Response | Fare Rules Response Element | Yes | ||
>> Sub Section | Sub section Details | No | ||
>> Code | Fare Basis Code | String | PENALTIES | Yes |
>> Title | Title | String | Airline Penalties | No |
>> Sub Section Number | Section number for each fare rule | String | 16, 15 etc. | No |
>> Text | Description of the fare rule type | String | Fare rules text | No |
References
Web Service End Point
Production: http://api.trippro.com/api/v2/fareRules?clientId=API1916
WSDL
Production: http://api.trippro.com/api/v2/fareRules?wsdl
Read PNR API
Overview
The Read PNR API allows users to retrieve the PNR information including passenger and payment details from the GDS to the application. The response message returns the complete PNR information like itinerary segments, fares, passenger details, payment details and the billing address information requested for the PNR.
Description
The Read PNR response message returns the complete PNR information requested for the PNR.
Request XML
var settings = {
"url": "http://api.trippro.com/api/v2/readPnr?clientId=API1916",
"method": "POST",
"timeout": 0,
"headers": {
"Content-Type": "application/xml",
"Accept-Encoding": "gzip,deflate"
},
"data": "<?xml version=\"1.0\" encoding=\"utf-8\"?>\r\n\r\n <soapenv:Envelope xmlns:soapenv=\"http://schemas.xmlsoap.org/soap/envelope/\" xmlns:v2=\"http://trippro.com/webservices/readpnr/v2\" xmlns:v21=\"http://trippro.com/webservices/common/v2\">\r\n <soapenv:Header />\r\n <soapenv:Body>\r\n <v2:ReadPNRRequestBody>\r\n <v21:TPContext>\r\n <v21:messageId>Read_Pnr</v21:messageId>\r\n <v21:clientId>YourID</v21:clientId>\r\n </v21:TPContext>\r\n <v2:ReadPNRRequest>\r\n <v2:RecordLocator>4KNB69</v2:RecordLocator>\r\n </v2:ReadPNRRequest>\r\n </v2:ReadPNRRequestBody>\r\n </soapenv:Body>\r\n </soapenv:Envelope>",
};
$.ajax(settings).done(function (response) {
console.log(response);
});
<?php
$curl = curl_init();
curl_setopt_array($curl, array(
CURLOPT_URL => "http://api.trippro.com/api/v2/readPnr?clientId=API1916",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 0,
CURLOPT_FOLLOWLOCATION => true,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS =>"<?xml version=\"1.0\" encoding=\"utf-8\"?>\r\n\r\n <soapenv:Envelope xmlns:soapenv=\"http://schemas.xmlsoap.org/soap/envelope/\" xmlns:v2=\"http://trippro.com/webservices/readpnr/v2\" xmlns:v21=\"http://trippro.com/webservices/common/v2\">\r\n <soapenv:Header />\r\n <soapenv:Body>\r\n <v2:ReadPNRRequestBody>\r\n <v21:TPContext>\r\n <v21:messageId>Read_Pnr</v21:messageId>\r\n <v21:clientId>YourID</v21:clientId>\r\n </v21:TPContext>\r\n <v2:ReadPNRRequest>\r\n <v2:RecordLocator>4KNB69</v2:RecordLocator>\r\n </v2:ReadPNRRequest>\r\n </v2:ReadPNRRequestBody>\r\n </soapenv:Body>\r\n </soapenv:Envelope>",
CURLOPT_HTTPHEADER => array(
"Content-Type: application/xml",
"Accept-Encoding: gzip,deflate"
),
));
$response = curl_exec($curl);
curl_close($curl);
echo $response;
import requests
url = "http://api.trippro.com/api/v2/readPnr?clientId=API1916"
payload = "<?xml version=\"1.0\" encoding=\"utf-8\"?>\r\n\r\n <soapenv:Envelope xmlns:soapenv=\"http://schemas.xmlsoap.org/soap/envelope/\" xmlns:v2=\"http://trippro.com/webservices/readpnr/v2\" xmlns:v21=\"http://trippro.com/webservices/common/v2\">\r\n <soapenv:Header />\r\n <soapenv:Body>\r\n <v2:ReadPNRRequestBody>\r\n <v21:TPContext>\r\n <v21:messageId>Read_Pnr</v21:messageId>\r\n <v21:clientId>YourID</v21:clientId>\r\n </v21:TPContext>\r\n <v2:ReadPNRRequest>\r\n <v2:RecordLocator>4KNB69</v2:RecordLocator>\r\n </v2:ReadPNRRequest>\r\n </v2:ReadPNRRequestBody>\r\n </soapenv:Body>\r\n </soapenv:Envelope>"
headers = {
'Content-Type': 'application/xml',
'Accept-Encoding': 'gzip,deflate'
}
response = requests.request("POST", url, headers=headers, data = payload)
print(response.text.encode('utf8'))
require "uri"
require "net/http"
url = URI("http://api.trippro.com/api/v2/readPnr?clientId=API1916")
http = Net::HTTP.new(url.host, url.port);
request = Net::HTTP::Post.new(url)
request["Content-Type"] = "application/xml"
request["Accept-Encoding"] = "gzip,deflate"
request.body = "<?xml version=\"1.0\" encoding=\"utf-8\"?>\r\n\r\n <soapenv:Envelope xmlns:soapenv=\"http://schemas.xmlsoap.org/soap/envelope/\" xmlns:v2=\"http://trippro.com/webservices/readpnr/v2\" xmlns:v21=\"http://trippro.com/webservices/common/v2\">\r\n <soapenv:Header />\r\n <soapenv:Body>\r\n <v2:ReadPNRRequestBody>\r\n <v21:TPContext>\r\n <v21:messageId>Read_Pnr</v21:messageId>\r\n <v21:clientId>YourID</v21:clientId>\r\n </v21:TPContext>\r\n <v2:ReadPNRRequest>\r\n <v2:RecordLocator>4KNB69</v2:RecordLocator>\r\n </v2:ReadPNRRequest>\r\n </v2:ReadPNRRequestBody>\r\n </soapenv:Body>\r\n </soapenv:Envelope>"
response = http.request(request)
puts response.read_body
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:v2="http://trippro.com/webservices/readpnr/v2" xmlns:v21="http://trippro.com/webservices/common/v2">
<soapenv:Header />
<soapenv:Body>
<v2:ReadPNRRequestBody>
<v21:TPContext>
<v21:messageId>Read_Pnr</v21:messageId>
<v21:clientId>YourID</v21:clientId>
</v21:TPContext>
<v2:ReadPNRRequest>
<v2:RecordLocator>4KNB69</v2:RecordLocator>
</v2:ReadPNRRequest>
</v2:ReadPNRRequestBody>
</soapenv:Body>
</soapenv:Envelope>
Response XML
<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/">
<soap:Body>
<ns2:ReadPNRResponseBody xmlns="http://trippro.com/webservices/common/v2" xmlns:ns2="http://trippro.com/webservices/readpnr/v2">
<TPContext>
<messageId>267b9a29-71d2-4bed-9e51-b8181db51585</messageId>
<clientId>Your_ID</clientId>
</TPContext>
<ns2:ReadPNRResponse>
<ns2:FlightItinerary>
<ItineraryId>29753</ItineraryId>
<Citypairs>
<FlightSegment>
<SegmentRef>S1</SegmentRef>
<SegStatus>HX</SegStatus>
<DepartureLocationCode>ORD</DepartureLocationCode>
<DepartureDateTime>2015-08-16T22:15:00</DepartureDateTime>
<ArrivalLocationCode>IST</ArrivalLocationCode>
<ArrivalDateTime>2015-08-17T17:05:00</ArrivalDateTime>
<MarketingAirline>TK</MarketingAirline>
<FlightNumber>6</FlightNumber>
<NoOfStops>0</NoOfStops>
<AirlinePnr>SP5NWK</AirlinePnr>
<baggageInfoUrl>http://www.turkishairlines.com/en-int/travelinformation/baggage/free-baggage-allowance</baggageInfoUrl>
</FlightSegment>
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:v2="http://trippro.com/webservices/readpnr/v2" xmlns:v21="http://trippro.com/webservices/common/v2">
<soapenv:Header />
<soapenv:Body>
<v2:ReadPNRRequestBody>
<v21:TPContext>
<v21:messageId>Read_Pnr</v21:messageId>
<v21:clientId>YourID</v21:clientId>
</v21:TPContext>
<v2:ReadPNRRequest>
<v2:RecordLocator>4KNB69</v2:RecordLocator>
</v2:ReadPNRRequest>
</v2:ReadPNRRequestBody>
</soapenv:Body>
</soapenv:Envelope>
<FlightSegment>
<SegmentRef>S2</SegmentRef>
<DepartureLocationCode>IST</DepartureLocationCode>
<DepartureDateTime>2015-08-18T01:20:00</DepartureDateTime>
<ArrivalLocationCode>SIN</ArrivalLocationCode>
<ArrivalDateTime>2015-08-18T17:25:00</ArrivalDateTime>
<MarketingAirline>TK</MarketingAirline>
<FlightNumber>54</FlightNumber>
<NoOfStops>0</NoOfStops>
<AirlinePnr>SP5NWK</AirlinePnr>
<baggageInfoUrl>http://www.turkishairlines.com/en-int/travelinformation/baggage/free-baggage-allowance</baggageInfoUrl>
</FlightSegment>
</Citypairs>
<Citypairs>
<FlightSegment>
<SegmentRef>S1</SegmentRef>
<SegStatus>HX</SegStatus>
<DepartureLocationCode>SIN</DepartureLocationCode>
<DepartureDateTime>2015-08-26T23:15:00</DepartureDateTime>
<ArrivalLocationCode>IST</ArrivalLocationCode>
<ArrivalDateTime>2015-08-27T05:40:00</ArrivalDateTime>
<MarketingAirline>TK</MarketingAirline>
<FlightNumber>55</FlightNumber>
<NoOfStops>0</NoOfStops>
<AirlinePnr>SP5NWK</AirlinePnr>
<baggageInfoUrl>http://www.turkishairlines.com/en-int/travelinformation/baggage/free-baggage-allowance</baggageInfoUrl>
</FlightSegment>
<FlightSegment>
<SegmentRef>S2</SegmentRef>
<DepartureLocationCode>IST</DepartureLocationCode>
<DepartureDateTime>2015-08-27T13:40:00</DepartureDateTime>
<ArrivalLocationCode>ORD</ArrivalLocationCode>
<ArrivalDateTime>2015-08-27T17:25:00</ArrivalDateTime>
<MarketingAirline>TK</MarketingAirline>
<FlightNumber>5</FlightNumber>
<NoOfStops>0</NoOfStops>
<AirlinePnr>SP5NWK</AirlinePnr>
<baggageInfoUrl>http://www.turkishairlines.com/en-int/travelinformation/baggage/free-baggage-allowance</baggageInfoUrl>
</FlightSegment>
</Citypairs>
<Citypairs>
<FlightSegment>
<SegmentRef>S1</SegmentRef>
<SegStatus>HX</SegStatus>
<DepartureLocationCode>ORD</DepartureLocationCode>
<DepartureDateTime>2015-08-27T22:15:00</DepartureDateTime>
<ArrivalLocationCode>IST</ArrivalLocationCode>
<ArrivalDateTime>2015-08-28T17:05:00</ArrivalDateTime>
<MarketingAirline>TK</MarketingAirline>
<FlightNumber>6</FlightNumber>
<NoOfStops>0</NoOfStops>
<AirlinePnr>SP5NWK</AirlinePnr>
<baggageInfoUrl>http://www.turkishairlines.com/en-int/travelinformation/baggage/free-baggage-allowance</baggageInfoUrl>
</FlightSegment>
<FlightSegment>
<SegmentRef>S2</SegmentRef>
<DepartureLocationCode>IST</DepartureLocationCode>
<DepartureDateTime>2015-08-28T18:50:00</DepartureDateTime>
<ArrivalLocationCode>LHR</ArrivalLocationCode>
<ArrivalDateTime>2015-08-28T21:00:00</ArrivalDateTime>
<MarketingAirline>TK</MarketingAirline>
<FlightNumber>1983</FlightNumber>
<NoOfStops>0</NoOfStops>
<AirlinePnr>SP5NWK</AirlinePnr>
<baggageInfoUrl>http://www.turkishairlines.com/en-int/travelinformation/baggage/free-baggage-allowance</baggageInfoUrl>
</FlightSegment>
</Citypairs>
<Citypairs>
<FlightSegment>
<SegmentRef>S1</SegmentRef>
<SegStatus>HX</SegStatus>
<DepartureLocationCode>LHR</DepartureLocationCode>
<DepartureDateTime>2015-08-29T22:30:00</DepartureDateTime>
<ArrivalLocationCode>IST</ArrivalLocationCode>
<ArrivalDateTime>2015-08-30T04:20:00</ArrivalDateTime>
<MarketingAirline>TK</MarketingAirline>
<FlightNumber>1984</FlightNumber>
<NoOfStops>0</NoOfStops>
<AirlinePnr>SP5NWK</AirlinePnr>
<baggageInfoUrl>http://www.turkishairlines.com/en-int/travelinformation/baggage/free-baggage-allowance</baggageInfoUrl>
</FlightSegment>
<FlightSegment>
<SegmentRef>S2</SegmentRef>
<DepartureLocationCode>IST</DepartureLocationCode>
<DepartureDateTime>2015-08-30T13:05:00</DepartureDateTime>
<ArrivalLocationCode>SFO</ArrivalLocationCode>
<ArrivalDateTime>2015-08-30T16:25:00</ArrivalDateTime>
<MarketingAirline>TK</MarketingAirline>
<FlightNumber>79</FlightNumber>
<NoOfStops>0</NoOfStops>
<AirlinePnr>SP5NWK</AirlinePnr>
<baggageInfoUrl>http://www.turkishairlines.com/en-int/travelinformation/baggage/free-baggage-allowance</baggageInfoUrl>
</FlightSegment>
</Citypairs>
<Fares>
<BaseFare>1034.0</BaseFare>
<Taxes>1250.9</Taxes>
<CCFee>0.0</CCFee>
<FullFare>0.0</FullFare>
<PaxType>ADT</PaxType>
</Fares>
</ns2:FlightItinerary>
<ns2:PaxDetail>
<PaxRef>1</PaxRef>
<PaxType>ADT</PaxType>
<FirstName>JOHN</FirstName>
<MiddleName>ADAM</MiddleName>
<LastName></LastName>
<Gender>M</Gender>
<DateOfBirth>08/15/1983</DateOfBirth>
<PassportNumber>9DUSIJH232</PassportNumber>
<Nationality>IN</Nationality>
<CountryOfIssue>US</CountryOfIssue>
</ns2:PaxDetail>
<ns2:PaxContactInfo>
<ns2:PhoneNumber>9866176089</ns2:PhoneNumber>
<ns2:Email>johnadam@gmail.com</ns2:Email>
</ns2:PaxContactInfo>
<ns2:PaymentDetails>
<ns2:CCDetails>
<CardType>VI</CardType>
<CardNumber>XXXXXXXXXXXX1111</CardNumber>
<ExpiryDate>XX/XX</ExpiryDate>
</ns2:CCDetails>
<ns2:BillingAddress>
<Address1>HNO595 KHAIRATABAD</Address1>
<Address2>GANDHI NAGAR</Address2>
<City>HYDERABAD</City>
<State>AP</State>
<Country>IN</Country>
<ZipCode>500044</ZipCode>
</ns2:BillingAddress>
</ns2:PaymentDetails>
</ns2:ReadPNRResponse>
</ns2:ReadPNRResponseBody>
</soap:Body>
</soap:Envelope>
Request Message Elements
Parameter | Description | Format | Examples | Required |
---|---|---|---|---|
>> Read PNR Request Body | Read PNR Request Wrapper Element | Read PNR RequestBody | Yes | |
>> TPContext | TPContext Reference | Yes | ||
>> Read PNR Request | Read PNR Request Element | Yes | ||
>> Record Locator | PNR Value | String | HLEYNB, 3ERF4T | Yes |
>> Custom Data | This element contains any custom request XML element utilized for custom Behavior implementation. | Object | No |
Response Message Elements
Parameter | Description | Format | Examples | Required |
---|---|---|---|---|
>> Read PNR Response Body | Read PNR Response Wrapper Element | Read PNR Response Body | Yes | |
>> TPContext | TPContext Reference | no | ||
>> Read PNR Response | Read PNR Response Section | No | ||
>> Record Locator | PNR Value | String | HLEYNB, 3YTR5T | No |
>> Flight Itinerary | Refer Flight Itinerary Section | No | ||
>> Itinerary Id | Id of Itinerary From Flight Search Response | String | 2f5891ac8c3a472094c 5397e0aa16ad70044 | Yes |
>> City Pairs | Refers Total Flight Segment and No Of Stops | No | ||
>> Flight Segment | Refer Total Segment Details | Yes | ||
>> Segment Ref | Reference number of the segment | String | 1234, 1235 | No |
>> Segment Status | Status of the segment | String | HK | No |
>> Departure Location Code | Origin Airport Code | String | SFO,LHR,JFK | Yes |
>> Departure Date Time | Departure Date And Time | String | 2015-09-20T11:00:00 | Yes |
>> Arrival Location Code | Arrival Airport Code | String | SIN,SEA,HYD | Yes |
>> Arrival Date Time | Arrival Date And Time | String | 2015-09-20T13:59:00 | Yes |
>> Operating Airline | Operating Airline Code | String | SQ, BA, LH | No |
>> Operating Airline Name | Operating Airline Name | String | Singapore Airlines | No |
>> Marketing Airline | Marketing Airline Code | String | AA, BA, DL | No |
>> Marketing AirlineName | Marketing Airline Name | String | JetBlue Airways | No |
>> Flight Number | Flight Number | Integer | 256, 887 | No |
>> No Of Stops | Total No Of Halts | Integer | 1, 2, 3 | No |
>> Duration | Total Duration | String | 12H 33M, 2H 12M | No |
>> Booking Class | Class Which Booked | String | Like E,B,F And P | No |
>> Airline PNR | PNR of the airline | String | HGRTFF, 4RFT6H | No |
>> Intermediate Stops | Refers Intermediate Halts Count | No | ||
>> Location Code | Intermediate Stops Location Code | String | SFO,LHR, FRA | Yes |
>> Stop Duration | Intermediate Stop Duration | String | 12H 43M, 3H 45M | Yes |
>> Baggage InfoUrl | Baggage info URL | String | https://www.aa.com/i18n/travelInformation/baggage/checkedbaggage.jsp | No |
>> Duration | Total Journey Duration | String | 3H 32M, 5H 54M | Yes |
>> No Of Stops | Total No Of Halts in Journey | Integer | 1, 2 ,3 | |
>> sector | Leg Of Journey | String | SFOLHR, IADBKK | No |
>> Fares | Fares Related Section | No | ||
>> Currency Code | Currency Code | String | USD / CAD / GBP | Yes |
>> Base Fare | Base Fare Amount | Double | 600.62, 500.32 | Yes |
>> Taxes | Taxes Amount | Double | 20.32,10.10 | Yes |
>> CCFee | CC Fee Amount | Double | 0.0, 10.20 | No |
>> Full Fare | Total Fare Amount | Double | 0.0, 20.20 | Yes |
>> Pax Type | Pax Type | String | ADT,CHD and INF | Yes |
>> Fare Type | Fare type of the itinerary | String | JCB, PUB, NET | No |
>> Pax Details | Number Of Passengers | No | ||
>> Pax Ref | Reference Number of the pax | String | 1.1, 1, 2 | Yes |
>> PaxType | Type Means Adult, Child, and Infant | String | ADT, CHD, and INF | Yes |
>> User Title | User Title | String | Mr-1, Mrs-2, Ms-3, Miss-4, Dr-5, Mstr-6 | No |
>> First Name | First Name of the passenger | String | JOHN, EDWARD | Yes |
>> Middle Name | Middle Name of the passenger | String | THOMAS | No |
>> Last Name | Last Name of the passenger | String | PHILIPS | Yes |
>> Gender | Gender of the passenger | String | M, F | Yes |
>> Date Of Birth | Date of birth of the passenger | String | 15/02/1990,21/02/2000 DDMMYY | Yes |
>> Passport Number | Passport Number 12121233AD, | String | 12151415DE | No |
>> Nationality | Nationality | String | IN, US | No |
>> Country Of Issue | Passport Issued County Name | String | IN, US | No |
>> Passport Issue Date | Passport Issued Date | String | 05/22/1989,06/22/1990 MMDDYYYY | No |
>> Passport Expiry Date | Passport Expired Date | String | 09/16/2020,09/19/2020(MMDDYYYY) | No |
>> Pax Contact Info | Pax Contact Section | No | ||
>> Phone Number | Pax Contact Phone Number | String | 9878878745,9897546987 | Yes |
Pax Contact Email Id | String | apitesting@gmail.com, apiexample@gmail.com | Yes | |
>> Payment Details | Refer Payment Detail Section | No | ||
>> Payment Type | Payment Mode | String | Like Check and CreditCard | Yes |
>> CCDetails | Refer CC Details Section | No | ||
>> Card Type | Refer Type of Card | String | Like Maestro, VISA | Yes |
>> Card Number | Card Number | String | 4444333322221111,5555666699998888 | Yes |
>> CVV | CVV Number On The Card | String | 123, 254 | No |
>> Expiry Date | Card Expiry Date | String | 06/2020, 04/2020MMYYYY | Yes |
>> Check Details | Check Details Refer Section | No | ||
>> Check Number | Check Number | String | 12347,32154(must befive digits) | Yes |
>> Billing Address | Refer Billing Address Section | No | ||
>> Name | Name Of Billing Person Name | String | JOHNSON | Yes |
Address1 | Billing Address 1 | String | 4000 E 3rd Ave, FosterCity | Yes |
>> Address2 | Billing Address2 | String | CA 94404, UnitedStates | No |
>> City | Billing City Name | String | Hyderabad, Foster City | Yes |
>> State | Billing State Name | String | AP, MP | Yes |
>> Country | Billing Country Name | String | IN, US | Yes |
>> ZipCode | Billing Address Zip Code | String | 500098, 500089 | Yes |
References
Web Service End Point
Production: http://api.trippro.com/api/v2/readPnr?clientId=API1916
WSDL
Production: http://api.trippro.com/api/v2/readPnr?wsdl
Order Ticket API
Overview
The Order Ticket API allows users to place the booked PNR in the queue for ticketing. The response message returns the order ticket status confirmation of the requested PNR. The ticketing queue in the respective IPCC is being monitored through the auto ticketing application. This system issues the tickets as per the contracts applied and places it back in the ticketed queue.
Description
The order ticket API response message returns the order ticket status confirmation of the requested PNR.
Request XML
require "uri"
require "net/http"
url = URI("http://api.trippro.com/api/v2/orderTicket?ClientId=API1916")
http = Net::HTTP.new(url.host, url.port);
request = Net::HTTP::Post.new(url)
request["Content-Type"] = "application/xml"
request.body = " <?xml version=\"1.0\" encoding=\"utf-8\"?>\r\n <soapenv:Envelope xmlns:soapenv=\"http://schemas.xmlsoap.org/soap/envelope/\"\r\n xmlns:v2=\"http://trippro.com/webservices/orderticket/v2\" \r\nxmlns:v21=\"http://trippro.com/webservices/common/v2\">\r\n <soapenv:Header />\r\n <soapenv:Body>\r\n <v2:OrderTicketRequestBody>\r\n <v21:TPContext>\r\n <v21:messageId>Order_Ticket</v21:messageId>\r\n <v21:clientId>YourID</v21:clientId>\r\n </v21:TPContext>\r\n <v2:OrderTicketRequest>\r\n <v2:RecordLocator>4KNB69</v2:RecordLocator>\r\n <v2:ReferenceNumber>15W16GEF8900</v2:ReferenceNumber>\r\n </v2:OrderTicketRequest>\r\n </v2:OrderTicketRequestBody>\r\n </soapenv:Body>\r\n</soapenv:Envelope>"
response = http.request(request)
puts response.read_body
import requests
url = "http://api.trippro.com/api/v2/orderTicket?ClientId=API1916"
payload = " <?xml version=\"1.0\" encoding=\"utf-8\"?>\r\n <soapenv:Envelope xmlns:soapenv=\"http://schemas.xmlsoap.org/soap/envelope/\"\r\n xmlns:v2=\"http://trippro.com/webservices/orderticket/v2\" \r\nxmlns:v21=\"http://trippro.com/webservices/common/v2\">\r\n <soapenv:Header />\r\n <soapenv:Body>\r\n <v2:OrderTicketRequestBody>\r\n <v21:TPContext>\r\n <v21:messageId>Order_Ticket</v21:messageId>\r\n <v21:clientId>YourID</v21:clientId>\r\n </v21:TPContext>\r\n <v2:OrderTicketRequest>\r\n <v2:RecordLocator>4KNB69</v2:RecordLocator>\r\n <v2:ReferenceNumber>15W16GEF8900</v2:ReferenceNumber>\r\n </v2:OrderTicketRequest>\r\n </v2:OrderTicketRequestBody>\r\n </soapenv:Body>\r\n</soapenv:Envelope>"
headers = {
'Content-Type': 'application/xml'
}
response = requests.request("POST", url, headers=headers, data = payload)
print(response.text.encode('utf8'))
<?php
$curl = curl_init();
curl_setopt_array($curl, array(
CURLOPT_URL => "http://api.trippro.com/api/v2/orderTicket?ClientId=API1916",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 0,
CURLOPT_FOLLOWLOCATION => true,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS =>" <?xml version=\"1.0\" encoding=\"utf-8\"?>\r\n <soapenv:Envelope xmlns:soapenv=\"http://schemas.xmlsoap.org/soap/envelope/\"\r\n xmlns:v2=\"http://trippro.com/webservices/orderticket/v2\" \r\nxmlns:v21=\"http://trippro.com/webservices/common/v2\">\r\n <soapenv:Header />\r\n <soapenv:Body>\r\n <v2:OrderTicketRequestBody>\r\n <v21:TPContext>\r\n <v21:messageId>Order_Ticket</v21:messageId>\r\n <v21:clientId>YourID</v21:clientId>\r\n </v21:TPContext>\r\n <v2:OrderTicketRequest>\r\n <v2:RecordLocator>4KNB69</v2:RecordLocator>\r\n <v2:ReferenceNumber>15W16GEF8900</v2:ReferenceNumber>\r\n </v2:OrderTicketRequest>\r\n </v2:OrderTicketRequestBody>\r\n </soapenv:Body>\r\n</soapenv:Envelope>",
CURLOPT_HTTPHEADER => array(
"Content-Type: application/xml"
),
));
$response = curl_exec($curl);
curl_close($curl);
echo $response;
var settings = {
"url": "http://api.trippro.com/api/v2/orderTicket?ClientId=API1916",
"method": "POST",
"timeout": 0,
"headers": {
"Content-Type": "application/xml"
},
"data": " <?xml version=\"1.0\" encoding=\"utf-8\"?>\r\n <soapenv:Envelope xmlns:soapenv=\"http://schemas.xmlsoap.org/soap/envelope/\"\r\n xmlns:v2=\"http://trippro.com/webservices/orderticket/v2\" \r\nxmlns:v21=\"http://trippro.com/webservices/common/v2\">\r\n <soapenv:Header />\r\n <soapenv:Body>\r\n <v2:OrderTicketRequestBody>\r\n <v21:TPContext>\r\n <v21:messageId>Order_Ticket</v21:messageId>\r\n <v21:clientId>YourID</v21:clientId>\r\n </v21:TPContext>\r\n <v2:OrderTicketRequest>\r\n <v2:RecordLocator>4KNB69</v2:RecordLocator>\r\n <v2:ReferenceNumber>15W16GEF8900</v2:ReferenceNumber>\r\n </v2:OrderTicketRequest>\r\n </v2:OrderTicketRequestBody>\r\n </soapenv:Body>\r\n</soapenv:Envelope>",
};
$.ajax(settings).done(function (response) {
console.log(response);
});
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/"
xmlns:v2="http://trippro.com/webservices/orderticket/v2"
xmlns:v21="http://trippro.com/webservices/common/v2">
<soapenv:Header />
<soapenv:Body>
<v2:OrderTicketRequestBody>
<v21:TPContext>
<v21:messageId>Order_Ticket</v21:messageId>
<v21:clientId>YourID</v21:clientId>
</v21:TPContext>
<v2:OrderTicketRequest>
<v2:RecordLocator>4KNB69</v2:RecordLocator>
<v2:ReferenceNumber>15W16GEF8900</v2:ReferenceNumber>
</v2:OrderTicketRequest>
</v2:OrderTicketRequestBody>
</soapenv:Body>
</soapenv:Envelope>
Response XML
<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/">
<soap:Body>
<ns2:OrderTicketResponseBody xmlns="http://trippro.com/webservices/common/v2" xmlns:ns2="http://trippro.com/webservices/orderticket/v2">
<OrderTicketResponse>
<TPContext>
<messageId>eaa0b358-6cf0-4354-a753-981a6e25086e</messageId>
<correlationId>Order_Ticket</correlationId>
<clientId>YourID</clientId>
</TPContext>
<RecordLocator>4KNB69</RecordLocator>
<Status>TICKET ORDERED SUCCESSFULLY</Status>
</OrderTicketResponse>
</ns2:OrderTicketResponseBody>
</soap:Body>
</soap:Envelope>
Request Message Elements
Parameter | Description | Format | Examples | Required |
---|---|---|---|---|
>> Order Ticket Request Body | Order ticket request Wrapper element | Order Ticket Request Body | Yes | |
>> TPContext | TPContext Reference | Yes | ||
>> Order Ticket Request | Order ticket request section | Yes | ||
>> Record Locator | PNR Value | String | CCDKTH, 3RFG4T | Yes |
>> Reference Number | PNR Reference Number | String | 12U19WEF7001,11U19WEF7551 | Yes |
>> Custom Data | This element contains any custom response XML structure for a given custom Behavior. | Object | No |
Response Message Elements
Parameter | Description | Format | Example | Required |
---|---|---|---|---|
>> Order Ticket Response Body | Order Ticket Response wrapper section | Order Ticket Response Body | Yes | |
>> TP Context | TPContext Reference | Yes | ||
>> Order Ticket Response | Order Ticket Response Section | Yes | ||
>> Record Locator | PNR Value | String | CCDKTH, FGTRRR | Yes |
>> Status | Status Of Booked PNR | String | Ticket ordered successfully | Yes |
>> Custom Data | This element contains any custom response XML structure for a given custom Behavior | Object | No |
References
Web Service End Point
Production: http://api.trippro.com/api/v2/orderTicket?ClientId=API1916
WSDL
Production: http://api.trippro.com/api/v2/orderTicket?wsdl
Read E-Ticket API
Overview
The Read E-Ticket API allows users to read the E-Ticket Number for the ticketed PNR. The response message returns the E-Ticket number of the requested PNR.
Description
The Read E-Ticket API response message returns the E-Ticket number of the requested PNR.
Request XML
var settings = {
"url": "http://api.trippro.com/api/v2/readEticket?ClientId=API1916",
"method": "POST",
"timeout": 0,
"headers": {
"Content-Type": "application/xml"
},
"data": " <soapenv:Envelope xmlns:soapenv=\"http://schemas.xmlsoap.org/soap/envelope/\" xmlns:v2=\"http://trippro.com/webservices/readeticket/v2\" xmlns:v21=\"http://trippro.com/webservices/common/v2\">\r\n <soapenv:Header></soapenv:Header>\r\n <soapenv:Body>\r\n <v2:ReadETicketRequestBody>\r\n <v21:TPContext>\r\n <v21:messageId>ReadEticket</v21:messageId>\r\n <v21:clientId>YourID</v21:clientId>\r\n </v21:TPContext>\r\n <v2:ReadETicketRequest>\r\n <v2:RecordLocator>4KNB69</v2:RecordLocator>\r\n <v2:ReferenceNumber>15W16GEF8900</v2:ReferenceNumber>\r\n </v2:ReadETicketRequest>\r\n </v2:ReadETicketRequestBody>\r\n </soapenv:Body>\r\n</soapenv:Envelope>",
};
$.ajax(settings).done(function (response) {
console.log(response);
});
<?php
$curl = curl_init();
curl_setopt_array($curl, array(
CURLOPT_URL => "http://api.trippro.com/api/v2/readEticket?ClientId=API1916",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 0,
CURLOPT_FOLLOWLOCATION => true,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS =>" <soapenv:Envelope xmlns:soapenv=\"http://schemas.xmlsoap.org/soap/envelope/\" xmlns:v2=\"http://trippro.com/webservices/readeticket/v2\" xmlns:v21=\"http://trippro.com/webservices/common/v2\">\r\n <soapenv:Header></soapenv:Header>\r\n <soapenv:Body>\r\n <v2:ReadETicketRequestBody>\r\n <v21:TPContext>\r\n <v21:messageId>ReadEticket</v21:messageId>\r\n <v21:clientId>YourID</v21:clientId>\r\n </v21:TPContext>\r\n <v2:ReadETicketRequest>\r\n <v2:RecordLocator>4KNB69</v2:RecordLocator>\r\n <v2:ReferenceNumber>15W16GEF8900</v2:ReferenceNumber>\r\n </v2:ReadETicketRequest>\r\n </v2:ReadETicketRequestBody>\r\n </soapenv:Body>\r\n</soapenv:Envelope>",
CURLOPT_HTTPHEADER => array(
"Content-Type: application/xml"
),
));
$response = curl_exec($curl);
curl_close($curl);
echo $response;
import requests
url = "http://api.trippro.com/api/v2/readEticket?ClientId=API1916"
payload = " <soapenv:Envelope xmlns:soapenv=\"http://schemas.xmlsoap.org/soap/envelope/\" xmlns:v2=\"http://trippro.com/webservices/readeticket/v2\" xmlns:v21=\"http://trippro.com/webservices/common/v2\">\r\n <soapenv:Header></soapenv:Header>\r\n <soapenv:Body>\r\n <v2:ReadETicketRequestBody>\r\n <v21:TPContext>\r\n <v21:messageId>ReadEticket</v21:messageId>\r\n <v21:clientId>YourID</v21:clientId>\r\n </v21:TPContext>\r\n <v2:ReadETicketRequest>\r\n <v2:RecordLocator>4KNB69</v2:RecordLocator>\r\n <v2:ReferenceNumber>15W16GEF8900</v2:ReferenceNumber>\r\n </v2:ReadETicketRequest>\r\n </v2:ReadETicketRequestBody>\r\n </soapenv:Body>\r\n</soapenv:Envelope>"
headers = {
'Content-Type': 'application/xml'
}
response = requests.request("POST", url, headers=headers, data = payload)
print(response.text.encode('utf8'))
require "uri"
require "net/http"
url = URI("http://api.trippro.com/api/v2/readEticket?ClientId=API1916")
http = Net::HTTP.new(url.host, url.port);
request = Net::HTTP::Post.new(url)
request["Content-Type"] = "application/xml"
request.body = " <soapenv:Envelope xmlns:soapenv=\"http://schemas.xmlsoap.org/soap/envelope/\" xmlns:v2=\"http://trippro.com/webservices/readeticket/v2\" xmlns:v21=\"http://trippro.com/webservices/common/v2\">\r\n <soapenv:Header></soapenv:Header>\r\n <soapenv:Body>\r\n <v2:ReadETicketRequestBody>\r\n <v21:TPContext>\r\n <v21:messageId>ReadEticket</v21:messageId>\r\n <v21:clientId>YourID</v21:clientId>\r\n </v21:TPContext>\r\n <v2:ReadETicketRequest>\r\n <v2:RecordLocator>4KNB69</v2:RecordLocator>\r\n <v2:ReferenceNumber>15W16GEF8900</v2:ReferenceNumber>\r\n </v2:ReadETicketRequest>\r\n </v2:ReadETicketRequestBody>\r\n </soapenv:Body>\r\n</soapenv:Envelope>"
response = http.request(request)
puts response.read_body
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:v2="http://trippro.com/webservices/readeticket/v2" xmlns:v21="http://trippro.com/webservices/common/v2">
<soapenv:Header></soapenv:Header>
<soapenv:Body>
<v2:ReadETicketRequestBody>
<v21:TPContext>
<v21:messageId>ReadEticket</v21:messageId>
<v21:clientId>YourID</v21:clientId>
</v21:TPContext>
<v2:ReadETicketRequest>
<v2:RecordLocator>4KNB69</v2:RecordLocator>
<v2:ReferenceNumber>15W16GEF8900</v2:ReferenceNumber>
</v2:ReadETicketRequest>
</v2:ReadETicketRequestBody>
</soapenv:Body>
</soapenv:Envelope>
Response XML
<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/">
<soap:Body>
<ns2:ReadETicketResponseBody xmlns="http://trippro.com/webservices/common/v2" xmlns:ns2="http://trippro.com/webservices/readeticket/v2">
<TPContext>
<messageId>01205d21-1079-4bdb-aa36-a340db94dc24</messageId>
<correlationId>readEticket</correlationId>
<clientId>YourID</clientId>
<processingTime>3990</processingTime>
</TPContext>
<ns2:ReadETicketResponse>
<ns2:ETicketNumber>BHANUKIRAN MR/016-7272727272</ns2:ETicketNumber>
<ns2:Remarks>
<StatusCode>WA</StatusCode>
<MessageNumber>CP001</MessageNumber>
<MessageText>TICKET NUMBER GENERATED</MessageText>
</ns2:Remarks>
<ns2:GdsType>A</ns2:GdsType>
</ns2:ReadETicketResponse>
</ns2:ReadETicketResponseBody>
</soap:Body>
</soap:Envelope>
Request Message Elements
Parameter | Description | Format | Examples | Required |
---|---|---|---|---|
>> Read E-Ticket Request Body | Read ETicket Request Wrapper Element. | Read ETicket Request Body | Yes | |
>> TP Context | TP Context Reference | Yes | ||
>> Read E-Ticket Request | Read ETicket Request Element | Yes | ||
>> Record Locator | PNR Value | String | CCDKTH, 8UUH6Y | Yes |
>> Reference Number | Itinerary Reference value | String | 12V31REF7001, 12U21REF7001 | Yes |
>> Custom Data | This element contains any custom request xml element utilized for customBehavior implementation. | Object | No |
Response Message Elements
Parameter | Description | Format | Examples | Required |
---|---|---|---|---|
>> Read E-Ticket Response Body | Read ETicket Response Wrapper | Read E-Ticket Response Body | Yes | |
>> TP Context | TPContext Reference | Yes | ||
>> TP Error List | TPErrorList Reference | No | ||
>> Read E-Ticket Response | Refer Read ETicket Response Section | |||
>> E-Ticket Number | This element contains ETicket Number | String | 230-7585729075, 134-7617229817 | No |
>> GDS Type | This element represents type of GDS PNR | String | A-Amadeus PNR, S-Sabre PNR | No |
References
Web Service End Point
Production: http://api.trippro.com/api/v2/readEticket?ClientId=API1916
WSDL
Production: http://api.trippro.com/api/v2/readEticket?wsdl
Cancel PNR API
Overview
The Cancel PNR API allows users to cancel the booked PNR that is not ticketed. The response message returns the cancellation confirmation of the requested PNR.
Description
The cancel PNR API response message returns the cancellation confirmation of the requested PNR.
Request XML
require "uri"
require "net/http"
url = URI("http://api.trippro.com/api/v2/cancelPnr?clientId=API1916")
http = Net::HTTP.new(url.host, url.port);
request = Net::HTTP::Post.new(url)
request["Content-Type"] = "application/xml"
request.body = " <soapenv:Envelope xmlns:soapenv=\"http://schemas.xmlsoap.org/soap/envelope/\" xmlns:v2=\"http://trippro.com/webservices/cancelpnr/v2\" xmlns:v21=\"http://trippro.com/webservices/common/v2\">\r\n <soapenv:Header />\r\n <soapenv:Body>\r\n <v2:CancelPNRRequestBody>\r\n <v21:TPContext>\r\n <v21:messageId>Cancel_PNR</v21:messageId>\r\n <v21:clientId>YourID</v21:clientId>\r\n </v21:TPContext>\r\n <v2:CancelPNRRequest>\r\n <v2:RecordLocator>4KNB69</v2:RecordLocator>\r\n </v2:CancelPNRRequest>\r\n </v2:CancelPNRRequestBody>\r\n </soapenv:Body>\r\n</soapenv:Envelope>"
response = http.request(request)
puts response.read_body
import requests
url = "http://api.trippro.com/api/v2/cancelPnr?clientId=API1916"
payload = " <soapenv:Envelope xmlns:soapenv=\"http://schemas.xmlsoap.org/soap/envelope/\" xmlns:v2=\"http://trippro.com/webservices/cancelpnr/v2\" xmlns:v21=\"http://trippro.com/webservices/common/v2\">\r\n <soapenv:Header />\r\n <soapenv:Body>\r\n <v2:CancelPNRRequestBody>\r\n <v21:TPContext>\r\n <v21:messageId>Cancel_PNR</v21:messageId>\r\n <v21:clientId>YourID</v21:clientId>\r\n </v21:TPContext>\r\n <v2:CancelPNRRequest>\r\n <v2:RecordLocator>4KNB69</v2:RecordLocator>\r\n </v2:CancelPNRRequest>\r\n </v2:CancelPNRRequestBody>\r\n </soapenv:Body>\r\n</soapenv:Envelope>"
headers = {
'Content-Type': 'application/xml'
}
response = requests.request("POST", url, headers=headers, data = payload)
print(response.text.encode('utf8'))
<?php
$curl = curl_init();
curl_setopt_array($curl, array(
CURLOPT_URL => "http://api.trippro.com/api/v2/cancelPnr?clientId=API1916",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 0,
CURLOPT_FOLLOWLOCATION => true,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS =>" <soapenv:Envelope xmlns:soapenv=\"http://schemas.xmlsoap.org/soap/envelope/\" xmlns:v2=\"http://trippro.com/webservices/cancelpnr/v2\" xmlns:v21=\"http://trippro.com/webservices/common/v2\">\r\n <soapenv:Header />\r\n <soapenv:Body>\r\n <v2:CancelPNRRequestBody>\r\n <v21:TPContext>\r\n <v21:messageId>Cancel_PNR</v21:messageId>\r\n <v21:clientId>YourID</v21:clientId>\r\n </v21:TPContext>\r\n <v2:CancelPNRRequest>\r\n <v2:RecordLocator>4KNB69</v2:RecordLocator>\r\n </v2:CancelPNRRequest>\r\n </v2:CancelPNRRequestBody>\r\n </soapenv:Body>\r\n</soapenv:Envelope>",
CURLOPT_HTTPHEADER => array(
"Content-Type: application/xml"
),
));
$response = curl_exec($curl);
curl_close($curl);
echo $response;
var settings = {
"url": "http://api.trippro.com/api/v2/cancelPnr?clientId=API1916",
"method": "POST",
"timeout": 0,
"headers": {
"Content-Type": "application/xml"
},
"data": " <soapenv:Envelope xmlns:soapenv=\"http://schemas.xmlsoap.org/soap/envelope/\" xmlns:v2=\"http://trippro.com/webservices/cancelpnr/v2\" xmlns:v21=\"http://trippro.com/webservices/common/v2\">\r\n <soapenv:Header />\r\n <soapenv:Body>\r\n <v2:CancelPNRRequestBody>\r\n <v21:TPContext>\r\n <v21:messageId>Cancel_PNR</v21:messageId>\r\n <v21:clientId>YourID</v21:clientId>\r\n </v21:TPContext>\r\n <v2:CancelPNRRequest>\r\n <v2:RecordLocator>4KNB69</v2:RecordLocator>\r\n </v2:CancelPNRRequest>\r\n </v2:CancelPNRRequestBody>\r\n </soapenv:Body>\r\n</soapenv:Envelope>",
};
$.ajax(settings).done(function (response) {
console.log(response);
});
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:v2="http://trippro.com/webservices/cancelpnr/v2" xmlns:v21="http://trippro.com/webservices/common/v2">
<soapenv:Header />
<soapenv:Body>
<v2:CancelPNRRequestBody>
<v21:TPContext>
<v21:messageId>Cancel_PNR</v21:messageId>
<v21:clientId>YourID</v21:clientId>
</v21:TPContext>
<v2:CancelPNRRequest>
<v2:RecordLocator>4KNB69</v2:RecordLocator>
</v2:CancelPNRRequest>
</v2:CancelPNRRequestBody>
</soapenv:Body>
</soapenv:Envelope>
Response XML
<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/">
<soap:Body>
<ns2:CancelPNRResponseBody xmlns="http://trippro.com/webservices/common/v2" xmlns:ns2="http://trippro.com/webservices/cancelpnr/v2">
<TPContext>
<messageId>a0955f01-9216-4986-8796-0045f9e7cd70</messageId>
<correlationId>Cancel_PNR</correlationId>
<clientId>YourID</clientId>
<processingTime>3848</processingTime>
</TPContext>
<ns2:CancelPNRResponse>
<ns2:RecordLocator>4KNB69</ns2:RecordLocator>
<ns2:Status>CANCELLED</ns2:Status>
</ns2:CancelPNRResponse>
</ns2:CancelPNRResponseBody>
</soap:Body>
</soap:Envelope>
Request Message Elements
Parameter | Description | Format | Examples | Required |
---|---|---|---|---|
>> Cancel PNR Request Body | Cancel PNR Request Wrapper Section | CancelPNRRequestBody | Yes | |
>> TPContext | TPContextReference | Yes | ||
>> Cancel PNR Request | Cancel PNR Request Section | Yes | ||
>> Record Locator | PNR Value | String | CCDKTH, 3TRE5T | Yes |
>> Custom Data | This element contains any custom request XML element utilized for custom Behavior implementation. | Object | No |
Response Message Elements
Parameter | Description | Format | Examples | Required |
---|---|---|---|---|
>> Cancel PNR Response Body | Cancel PNR Response Wrapper Section | Cancel PNR Response Body | Yes | |
>> TP Context | TPContext Reference | No | ||
>> T P Error List | TP Error List Reference | No | ||
>> Cancel PNR Response | Cancel PNR Response Section | No | ||
>> Record Locator | PNR Value | String | CCDKTH, GFRTFR | Yes |
>> Status | Cancelled PNR Status | String | Canceled | Yes |
>> Custom Data | This element contains any custom response XML structure for a given custom Behavior | . Object | No |
References
Web Service End Point
Production: http://api.trippro.com/api/v2/cancelPnr?clientId=API1916
WSDL
Production: http://api.trippro.com/api/v2/cancelpnr
New Read_PNR/E-Ticket API
Overview
The Read_ E-Ticket PNR API allows users to retrieve the PNR information including passenger and payment details from the GDS to the application. The response message returns the complete PNR information like itinerary segments, fares, passenger details, payment details and the billing address information requested for the PNR. If the requested PNR was ticketed, it will read the E-Ticket Number for the ticketed PNR.
Description
The Read_ E-Ticket PNR response returns the complete PNR information and E-Ticket numbers for the requested PNR.
Request URL:https://map.trippro.com/resources/api/v4/readPnr Method: POST
Request Headers | |
---|---|
Content-Type | application/json |
AccessToken | <> |
Request JSON
{
"pnr": "N5ZJWW",
"productId": "10153042320101"
}
var settings = {
"url": "https://map.trippro.com/resources/api/v4/readPnr",
"method": "POST",
"timeout": 0,
"data": "{\r\n \"pnr\": \"N5ZJWW\",\r\n \"productId\": \"10153042320101\"\r\n} ",
};
$.ajax(settings).done(function (response) {
console.log(response);
});
<?php
$curl = curl_init();
curl_setopt_array($curl, array(
CURLOPT_URL => "https://map.trippro.com/resources/api/v4/readPnr",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 0,
CURLOPT_FOLLOWLOCATION => true,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS =>"{\r\n \"pnr\": \"N5ZJWW\",\r\n \"productId\": \"10153042320101\"\r\n} ",
));
$response = curl_exec($curl);
curl_close($curl);
echo $response;
import requests
url = "https://map.trippro.com/resources/api/v4/readPnr"
payload = "{\r\n \"pnr\": \"N5ZJWW\",\r\n \"productId\": \"10153042320101\"\r\n} "
headers= {}
response = requests.request("POST", url, headers=headers, data = payload)
print(response.text.encode('utf8'))
require "uri"
require "net/http"
url = URI("https://map.trippro.com/resources/api/v4/readPnr")
https = Net::HTTP.new(url.host, url.port);
https.use_ssl = true
request = Net::HTTP::Post.new(url)
request.body = "{\r\n \"pnr\": \"N5ZJWW\",\r\n \"productId\": \"10153042320101\"\r\n} "
response = https.request(request)
puts response.read_body
Response JSON
{
"Pnr": "N5ZJWW",
"PproductId": "10153042320101",
"Itinerary": {
"ItineraryId": "90e72db3050044479261f28e06a29c5b",
"ValidatingCarrierCode": null,
"Citypairs": [
{
"Duration": "4H 57M",
"NoOfStops": 1,
"FlightSegment": [
{
"DepartureLocationCode": "SFO",
"DepartureDisplayName": "San Francisco",
"OriginAirportName": null,
"ArrivalLocationCode": "SAN",
"DisplayName": "San Diego",
"DestinationAirportName": null,
"MarketingAirline": "AS",
"FlightNumber": 3333,
"OperatingAirline": "AS",
"Duration": "1H 32M",
"DurationInMinutes": 92,
"LayoverTime": "",
"FlightLogoName": null,
"AirEquipmentType": "E75",
"BookingClass": "L",
"CabinClass": "E",
"noOfStops": 0,
"NoOfStops": 0,
"DepartureDateTime": "2022-07-31T13:25:00",
"ArrivalDateTime": "2022-07-31T14:57:00",
"FareBasisCode": "",
"bagsRecheckRequired": false,
"operatingAirlineText": null,
"baggageAllowance": "0P",
"baggageDesc1": "",
"baggageDesc2": "",
"baggageInfoUrl": "",
"IntermediateStops": []
},
{
"DepartureLocationCode": "SAN",
"DepartureDisplayName": "San Diego",
"OriginAirportName": null,
"ArrivalLocationCode": "SEA",
"DisplayName": "Seattle",
"DestinationAirportName": null,
"MarketingAirline": "AS",
"FlightNumber": 323,
"OperatingAirline": "AS",
"Duration": "2H 52M",
"DurationInMinutes": 172,
"LayoverTime": "0H 33M",
"FlightLogoName": null,
"AirEquipmentType": "73J",
"BookingClass": "L",
"CabinClass": "E",
"noOfStops": 0,
"NoOfStops": 0,
"DepartureDateTime": "2022-07-31T15:30:00",
"ArrivalDateTime": "2022-07-31T18:22:00",
"FareBasisCode": "",
"bagsRecheckRequired": false,
"operatingAirlineText": null,
"baggageAllowance": "0P",
"baggageDesc1": "",
"baggageDesc2": "",
"baggageInfoUrl": "",
"IntermediateStops": []
}
]
}
],
"Fares": [
{
"CurrencyCode": "USD",
"BaseFare": 310.7,
"Taxes": 46.9,
"CCFee": 0.0,
"PaxType": "ADT"
}
],
"BrandId": null,
"BrandName": null,
"CabinClass": null,
"Rank": 0.0,
"Tag": null,
"InFlightServices": {},
"RichContentAmenities": {},
"SegmentMeals": {},
"SegmentBaggage": {},
"noOfSeats": 0,
"IsNonRefundableFare": true,
"IsBasicEconomyItin": false,
"FareType": "PUB"
},
"Travellers": [
{
"nameNumber": "1.1",
"paxTypeId": 1,
"paxType": "ADT",
"firstName": "KVP",
"lastName": "Prasad",
"gender": "M",
"passportInfo": {},
"profileAdded": false,
"travelPreferences": {
"seat": null,
"meal": null,
"redressNumber": null,
"ktn": null,
"frequentFlyerNumber": {}
},
"leadPassenger": true,
"tsaDocEntry": "1/////02MAR88/M//KVP/PRASAD",
"tpBookingTravellerRef": "22Uz28TynDKAIgjD4DAAAA==",
"pickedForExchRefund": false,
"dateOfBirth": "03/02/1988"
}
],
"TicketInfos": []
}
Request Message Elements
Parameter | Description | Format | Examples | Required |
---|---|---|---|---|
Read PNR Request Body | Read PNR Request Wrapper Element | ----- | Read PNR RequestBody | Yes |
TPContext | TPContext Reference | ---- | --- | Yes |
Read PNR Request | Read PNR Request Element | ---- | --- | Yes |
Record Locator | PNR Value | String | HLEYNB, 3ERF4T | Yes |
productId | Itinerary Reference value | String | 10153042320101 | Yes |
Response Message Elements
Parameter | Description | Format | Examples | Required |
---|---|---|---|---|
>> Read PNR Response Body | Read PNR Response Wrapper Element | ---- | Read PNR Response Body | Yes |
>> TPContext | TPContext Reference | ---- | ---- | No |
>> Read PNR Response | Read PNR Response Section | ---- | No | |
>> Record Locator | PNR Value | String | HLEYNB, 3YTR5T | No |
productId | productId | String | 10153042320101 | No |
>> Itinerary Id | Id of Itinerary From Flight Search Response | String | 2f5891ac8c3a472094c 5397e0aa16ad70044 | Yes |
>> City Pairs | Refers Total Flight Segment and No Of Stops | --- | ----- | No |
>> Flight Segment | Refer Total Segment Details | ----- | ---- | Yes |
>> Fares | Fares Related Section | ---- | ---- | No |
>>Travellers | TravellersRelated section | ---- | ----- | No |
>> Duration | Total Duration | String | 12H 33M, 2H 12M | No |
>> No Of Stops | Total No Of Halts | Integer | 1, 2, 3 | No |
>> Departure Location Code | Departure Airport Code | String | SIN,SEA,HYD | Yes |
Departure Location Name | Departure Airport Name | String | San Francisco | Yes |
>> Arrival Location Code | Arrival Airport Code | String | SIN,SEA,HYD | Yes |
Arrival Location Name | Arrival Airport Name | String | San Francisco | Yes |
>> Arrival Date Time | Arrival Date And Time | String | 2015-09-20T13:59:00 | Yes |
>> Operating Airline | Operating Airline Code | String | SQ, BA, LH | No |
>> Operating Airline Name | Operating Airline Name | String | Singapore Airlines | No |
>> Marketing Airline | Marketing Airline Code | String | AA, BA, DL | No |
>> Marketing AirlineName | Marketing Airline Name | String | JetBlue Airways | No |
>> Flight Number | Flight Number | Integer | 256, 887 | No |
>> Booking Class | Class Which Booked | String | Like E,B,F And P | No |
>> Airline PNR | PNR of the airline | String | HGRTFF, 4RFT6H | No |
>> Intermediate Stops | Refers Intermediate Halts Count | ----- | ---- | No |
>> Location Code | Intermediate Stops Location Code | String | SFO,LHR, FRA | No |
>> Location Code | Intermediate Stops Location Code | String | SFO,LHR, FRA | Yes |
>> Baggage InfoUrl | Baggage info URL | String | https://www.aa.com/i18n/travelInformation/baggage/checkedbaggage.jsp | No |
>> Duration | Total Journey Duration | String | 3H 32M, 5H 54M | Yes |
>> No Of Stops | Total No Of Halts in Journey | Integer | 1, 2 ,3 | --- |
>> sector | Leg Of Journey | String | SFOLHR, IADBKK | No |
>> Currency Code | Currency Code | String | USD / CAD / GBP | Yes |
>> Base Fare | Base Fare Amount | Doubl600.62, 500.32 | Yes | |
>> Taxes | Taxes Amount | Double | 20.32,10.10 | Yes |
>> CCFee | CC Fee Amount | Double | 0.0, 10.20 | Yes |
>> Full Fare | Total Fare Amount | Double | 0.0, 20.20 | Yes |
>> Pax Type | Pax Type | String | ADT,CHD and INF | Yes |
>> Fare Type | Fare type of the itinerary | String | JCB, PUB, NET | No |
>> Pax Details | Number Of Passengers | --- | ----- | No |
>> Pax Ref | Reference Number of the pax | String | 1.1, 1, 2 | Yes |
>> PaxType | Type Means Adult, Child, and Infant | String | ADT, CHD, and INF | Yes |
>> User Title | User Title | String | Mr-1, Mrs-2, Ms-3, Miss-4, Dr-5, Mstr-6 | No |
>> First Name | First Name of the passenger | String | JOHN, EDWARD | Yes |
>> Middle Name | Middle Name of the passenger | String | THOMAS | No |
>> Last Name | Last Name of the passenger | String | PHILIPS | Yes |
>> Gender | Gender of the passenger | String | M, F | Yes |
>> Date Of Birth | Date of birth of the passenger | Strig | 15/02/1990,21/02/2000 DDMMYY | Yes |
>> Passport Number | Passport Number 12121233AD, | String | 12151415DE | No |
>> Nationality | Nationality | String | IN, US | No |
>> Country Of Issue | Passport Issued County Name | String | IN, US | No |
>> Passport Issue Date | Passport Issued Date | String | 05/22/1989,06/22/1990 MMDDYYYY | No |
>> Passport Expiry Date | Passport Expired Date | String | 09/16/2020,09/19/2020(MMDDYYYY) | No |
>> Pax Contact Info | Pax Contact Section | --- | ----- | No |
>> Phone Number | Pax Contact Phone Number | String | 9878878745,9897546987 | Yes |
Pax Contact Email Id | String | apitesting@gmail.com, apiexample@gmail.com | Yes | |
>> Payment Details | Refer Payment Detail Section | ---- | ---- | No |
>> Payment Type | Payment Mode | String | Like Check and CreditCard | Yes |
>> CCDetails | Refer CC Details Section | ---- | ---- | No |
>> Card Type | Refer Type of Card String | Like Maestro, VISA | No | |
>> Card Number | Card Number | String | 4444333322221111,5555666699998888 | Yes |
>> CVV | CVV Number On The Card | String | 123, 254 | No |
>> Expiry Date | Card Expiry Date | String | 06/2020, 04/2020MMYYYY | Yes |
>> Check Details | Check Details Refer Section | ---- | ---- | No |
>> Check Number | Check Number | String | 12347,32154(must befive digits) | Yes |
>> Billing Address | Refer Billing Address Section | ---- | ----- | No |
>> Name | Name Of Billing Person Name | String | JOHNSON | Yes |
Address1 | Billing Address 1 | String | 4000 E 3rd Ave, FosterCity | Yes |
>> Address2 | Billing Address2 | String | CA 94404, UnitedStates | No |
>> City | Billing City Name | String | Hyderabad, Foster City | Yes |
>> State | Billing State Name | String | AP, MP | Yes |
>> Country | Billing Country Name | String | IN, US | Yes |
>> ZipCode | Billing Address Zip Code | String | 500098, 500089 | Yes |
New Cancel PNR API
Overview
The Cancel PNR API allows users to cancel the booked PNR that is not ticketed. The response message returns the cancellation confirmation of the requested PNR.
Description
The cancel PNR API response message returns the cancellation confirmation of the requested PNR.
Request URL:https://map.trippro.com/resources/api/v4/cancelPnr Method: POST
Request Headers | |
---|---|
Content-Type | application/json |
AccessToken | <> |
Request JSON
{
"pnr": "UYQMRB",
"productId": "10152477590101",
"reason": "Test Booking" -Not a Mandatory Field
}
require "uri"
require "net/http"
url = URI("https://map.trippro.com/resources/api/v4/cancelPnr")
https = Net::HTTP.new(url.host, url.port);
https.use_ssl = true
request = Net::HTTP::Post.new(url)
request.body = "{\r\n\"pnr\": \"UYQMRB\",\r\n\"productId\": \"10152477590101\",\r\n\"reason\": \"Test Booking\"\r\n}"
response = https.request(request)
puts response.read_body
import requests
url = "https://map.trippro.com/resources/api/v4/cancelPnr"
payload = "{\r\n\"pnr\": \"UYQMRB\",\r\n\"productId\": \"10152477590101\",\r\n\"reason\": \"Test Booking\"\r\n}"
headers= {}
response = requests.request("POST", url, headers=headers, data = payload)
print(response.text.encode('utf8'))
<?php
$curl = curl_init();
curl_setopt_array($curl, array(
CURLOPT_URL => "https://map.trippro.com/resources/api/v4/cancelPnr",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 0,
CURLOPT_FOLLOWLOCATION => true,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS =>"{\r\n\"pnr\": \"UYQMRB\",\r\n\"productId\": \"10152477590101\",\r\n\"reason\": \"Test Booking\"\r\n}",
));
$response = curl_exec($curl);
curl_close($curl);
echo $response;
var settings = {
"url": "https://map.trippro.com/resources/api/v4/cancelPnr",
"method": "POST",
"timeout": 0,
"data": "{\r\n\"pnr\": \"UYQMRB\",\r\n\"productId\": \"10152477590101\",\r\n\"reason\": \"Test Booking\"\r\n}",
};
$.ajax(settings).done(function (response) {
console.log(response);
});
Response JSON
{
"error": false,
"msg": "Cancellation done."
}
JSON Failure Responses
{
"error": true,
"errorMsg": "Please provide pnr."
}
{
"error": true,
"errorMsg": "Please provide productId."
}
{
"error": true,
"errorMsg": "Invalid User."
}
{
"error": true,
"errorMsg": "Please void the tickets."
}
{
"error": true,
"errorMsg": "Not able to read pnr."
}
{
"error": true,
"errorMsg": "Itinerary already has been cancelled."
}
{
"error": true,
"errorMsg": "Cancellation failed."
}
{
"error": true,
"errorMsg": "Unable to cancel pnr from service."
}
{
"error": true,
"errorMsg": "Unable to cancel pnr."
}
{
"error": true,
"errorMsg": "Invalid input."
}
Request Message Elements
Parameter | Description | Format | Examples | Required |
---|---|---|---|---|
Cancel PNR Request Body | Cancel PNR Request Wrapper Section | ----- | CancelPNRRequestBody | Yes |
TPContext | TPContextReference | ---- | ---- | Yes |
Cancel PNR Request | Cancel PNR Request Section | ---- | ---- | Yes |
Record Locator | PNR Value | String | CCDKTH, 3TRE5T | Yes |
productId | Product Id | String | 10152477590101 | Yes |
Custom Data | This element contains any custom request XML element utilized for custom Behavior implementation. | Object | ---- | No |
Response Message Elements
Parameter | Description | Format | Examples | Required |
---|---|---|---|---|
Cancel PNR Response Body | Cancel PNR Response Wrapper Section | ---- | Cancel PNR Response Body | Yes |
TP Context | TPContext Reference | ---- | ---- | No |
TP Error List | TP Error List Reference | ---- | ---- | No |
Record Locator | PNR Value | String | CCDKTH, GFRTFR | Yes |
productId | Product Id | String | 10152477590101 | Yes |
Status | Cancelled PNR Status | String | Canceled | Yes |
Custom Data | This element contains any custom response XML structure for a given custom Behavior | Object | ---- | No |
New Booking API with_Ancillaries
Method: POST URL :https://map.trippro.com/resources/v2/Flights/bookItinerary/
Headers:
Request Headers | |
---|---|
Content-Type | application/json |
AccessToken | <> |
Request Body
{
"ItineraryId": "d8c1d973ea6c4af2a9bb670f964a6048",
"BookItineraryPaxDetail": [
{
"PaxType": "ADT",
"Gender": "M",
"UserTitle": "Mr",
"FirstName": "KVP",
"MiddleName": "",
"LastName": "Prasad",
"DateOfBirth": "03/02/1988",
"FrequentFlyerNumStr": "DL",
"FrequentFlyNumber": "9xxxxxxx7",
"Redress": "NVL1xxx",
"Ktn": "9638xxxx"
}
],
//"AgentMarkup": 25,
"BookItineraryPaxContactInfo": {
"PhoneNumber": "9963176011",
"AlternatePhoneNumber": "9963176011",
"Email": "prasadkv@mmgs.com"
},
"BookItineraryPaymentDetail": {
"PaymentType": "CC",
"BookItineraryCCDetails": {
"CardType": "CA",
"CardNumber": "5111111111111118",
"CVV": "123",
"ExpiryDate": "08/22",
"BankPhoneNum": "",
"BillingPhoneNum": ""
},
"BookItineraryBillingAddress": {
"Name": "Rama Tirumala",
"Address1": "Alaska",
"Address2": "Alaska",
"ZipCode": "965846",
"City": "Alaska",
"Country": "US",
"State": "CA"
}
}
}
var settings = {
"url": "https://map.trippro.com/resources/v2/Flights/bookItinerary/",
"method": "POST",
"timeout": 0,
"headers": {
"Content-Ty": "application/json",
"access-token": ""
},
"data": "{\r\n \"ItineraryId\": \"d8c1d973ea6c4af2a9bb670f964a6048\",\r\n \"BookItineraryPaxDetail\": [\r\n {\r\n \"PaxType\": \"ADT\",\r\n \"Gender\": \"M\",\r\n \"UserTitle\": \"Mr\",\r\n \"FirstName\": \"KVP\",\r\n \"MiddleName\": \"\",\r\n \"LastName\": \"Prasad\",\r\n \"DateOfBirth\": \"03/02/1988\",\r\n \"FrequentFlyerNumStr\": \"DL\",\r\n \"FrequentFlyNumber\": \"9xxxxxxx7\",\r\n \"Redress\": \"NVL1xxx\",\r\n \"Ktn\": \"9638xxxx\"\r\n }\r\n ],\r\n \r\n \"BookItineraryPaxContactInfo\": {\r\n \"PhoneNumber\": \"9963176011\",\r\n \"AlternatePhoneNumber\": \"9963176011\",\r\n \"Email\": \"prasadkv@mmgs.com\"\r\n },\r\n \"BookItineraryPaymentDetail\": {\r\n \"PaymentType\": \"CC\",\r\n \"BookItineraryCCDetails\": {\r\n \"CardType\": \"CA\",\r\n \"CardNumber\": \"5111111111111118\",\r\n \"CVV\": \"123\",\r\n \"ExpiryDate\": \"08/22\",\r\n \"BankPhoneNum\": \"\",\r\n \"BillingPhoneNum\": \"\"\r\n },\r\n \"BookItineraryBillingAddress\": {\r\n \"Name\": \"Rama Tirumala\",\r\n \"Address1\": \"Alaska\",\r\n \"Address2\": \"Alaska\",\r\n \"ZipCode\": \"965846\",\r\n \"City\": \"Alaska\",\r\n \"Country\": \"US\",\r\n \"State\": \"CA\"\r\n }\r\n }\r\n}\r\n",
};
$.ajax(settings).done(function (response) {
console.log(response);
});
<?php
$curl = curl_init();
curl_setopt_array($curl, array(
CURLOPT_URL => "https://map.trippro.com/resources/v2/Flights/bookItinerary/",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 0,
CURLOPT_FOLLOWLOCATION => true,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS =>"{\r\n \"ItineraryId\": \"d8c1d973ea6c4af2a9bb670f964a6048\",\r\n \"BookItineraryPaxDetail\": [\r\n {\r\n \"PaxType\": \"ADT\",\r\n \"Gender\": \"M\",\r\n \"UserTitle\": \"Mr\",\r\n \"FirstName\": \"KVP\",\r\n \"MiddleName\": \"\",\r\n \"LastName\": \"Prasad\",\r\n \"DateOfBirth\": \"03/02/1988\",\r\n \"FrequentFlyerNumStr\": \"DL\",\r\n \"FrequentFlyNumber\": \"9xxxxxxx7\",\r\n \"Redress\": \"NVL1xxx\",\r\n \"Ktn\": \"9638xxxx\"\r\n }\r\n ],\r\n \r\n \"BookItineraryPaxContactInfo\": {\r\n \"PhoneNumber\": \"9963176011\",\r\n \"AlternatePhoneNumber\": \"9963176011\",\r\n \"Email\": \"prasadkv@mmgs.com\"\r\n },\r\n \"BookItineraryPaymentDetail\": {\r\n \"PaymentType\": \"CC\",\r\n \"BookItineraryCCDetails\": {\r\n \"CardType\": \"CA\",\r\n \"CardNumber\": \"5111111111111118\",\r\n \"CVV\": \"123\",\r\n \"ExpiryDate\": \"08/22\",\r\n \"BankPhoneNum\": \"\",\r\n \"BillingPhoneNum\": \"\"\r\n },\r\n \"BookItineraryBillingAddress\": {\r\n \"Name\": \"Rama Tirumala\",\r\n \"Address1\": \"Alaska\",\r\n \"Address2\": \"Alaska\",\r\n \"ZipCode\": \"965846\",\r\n \"City\": \"Alaska\",\r\n \"Country\": \"US\",\r\n \"State\": \"CA\"\r\n }\r\n }\r\n}\r\n",
CURLOPT_HTTPHEADER => array(
"Content-Ty: application/json",
"access-token: "
),
));
$response = curl_exec($curl);
curl_close($curl);
echo $response;
import requests
url = "https://map.trippro.com/resources/v2/Flights/bookItinerary/"
payload = "{\r\n \"ItineraryId\": \"d8c1d973ea6c4af2a9bb670f964a6048\",\r\n \"BookItineraryPaxDetail\": [\r\n {\r\n \"PaxType\": \"ADT\",\r\n \"Gender\": \"M\",\r\n \"UserTitle\": \"Mr\",\r\n \"FirstName\": \"KVP\",\r\n \"MiddleName\": \"\",\r\n \"LastName\": \"Prasad\",\r\n \"DateOfBirth\": \"03/02/1988\",\r\n \"FrequentFlyerNumStr\": \"DL\",\r\n \"FrequentFlyNumber\": \"9xxxxxxx7\",\r\n \"Redress\": \"NVL1xxx\",\r\n \"Ktn\": \"9638xxxx\"\r\n }\r\n ],\r\n \r\n \"BookItineraryPaxContactInfo\": {\r\n \"PhoneNumber\": \"9963176011\",\r\n \"AlternatePhoneNumber\": \"9963176011\",\r\n \"Email\": \"prasadkv@mmgs.com\"\r\n },\r\n \"BookItineraryPaymentDetail\": {\r\n \"PaymentType\": \"CC\",\r\n \"BookItineraryCCDetails\": {\r\n \"CardType\": \"CA\",\r\n \"CardNumber\": \"5111111111111118\",\r\n \"CVV\": \"123\",\r\n \"ExpiryDate\": \"08/22\",\r\n \"BankPhoneNum\": \"\",\r\n \"BillingPhoneNum\": \"\"\r\n },\r\n \"BookItineraryBillingAddress\": {\r\n \"Name\": \"Rama Tirumala\",\r\n \"Address1\": \"Alaska\",\r\n \"Address2\": \"Alaska\",\r\n \"ZipCode\": \"965846\",\r\n \"City\": \"Alaska\",\r\n \"Country\": \"US\",\r\n \"State\": \"CA\"\r\n }\r\n }\r\n}\r\n"
headers = {
'Content-Ty': 'application/json',
'access-token': ''
}
response = requests.request("POST", url, headers=headers, data = payload)
print(response.text.encode('utf8'))
require "uri"
require "net/http"
url = URI("https://map.trippro.com/resources/v2/Flights/bookItinerary/")
https = Net::HTTP.new(url.host, url.port);
https.use_ssl = true
request = Net::HTTP::Post.new(url)
request["Content-Ty"] = "application/json"
request["access-token"] = ""
request.body = "{\r\n \"ItineraryId\": \"d8c1d973ea6c4af2a9bb670f964a6048\",\r\n \"BookItineraryPaxDetail\": [\r\n {\r\n \"PaxType\": \"ADT\",\r\n \"Gender\": \"M\",\r\n \"UserTitle\": \"Mr\",\r\n \"FirstName\": \"KVP\",\r\n \"MiddleName\": \"\",\r\n \"LastName\": \"Prasad\",\r\n \"DateOfBirth\": \"03/02/1988\",\r\n \"FrequentFlyerNumStr\": \"DL\",\r\n \"FrequentFlyNumber\": \"9xxxxxxx7\",\r\n \"Redress\": \"NVL1xxx\",\r\n \"Ktn\": \"9638xxxx\"\r\n }\r\n ],\r\n \r\n \"BookItineraryPaxContactInfo\": {\r\n \"PhoneNumber\": \"9963176011\",\r\n \"AlternatePhoneNumber\": \"9963176011\",\r\n \"Email\": \"prasadkv@mmgs.com\"\r\n },\r\n \"BookItineraryPaymentDetail\": {\r\n \"PaymentType\": \"CC\",\r\n \"BookItineraryCCDetails\": {\r\n \"CardType\": \"CA\",\r\n \"CardNumber\": \"5111111111111118\",\r\n \"CVV\": \"123\",\r\n \"ExpiryDate\": \"08/22\",\r\n \"BankPhoneNum\": \"\",\r\n \"BillingPhoneNum\": \"\"\r\n },\r\n \"BookItineraryBillingAddress\": {\r\n \"Name\": \"Rama Tirumala\",\r\n \"Address1\": \"Alaska\",\r\n \"Address2\": \"Alaska\",\r\n \"ZipCode\": \"965846\",\r\n \"City\": \"Alaska\",\r\n \"Country\": \"US\",\r\n \"State\": \"CA\"\r\n }\r\n }\r\n}\r\n"
response = https.request(request)
puts response.read_body
Sample Response We can see it in Read PNR/E-Ticket Service:
https://map.trippro.com/resources/api/v4/readPnr
Headers:
Request Headers | |
---|---|
Content-Type | application/json |
AccessToken | <> |
Request
{
"pnr": "TTIRZX",
"productId": "10153125700101"
}
require "uri"
require "net/http"
url = URI("https://map.trippro.com/resources/api/v4/readPnr")
https = Net::HTTP.new(url.host, url.port);
https.use_ssl = true
request = Net::HTTP::Post.new(url)
request["Content-Ty"] = "application/json"
request["access-token"] = ""
request.body = "{\r\n \"pnr\": \"TTIRZX\",\r\n \"productId\": \"10153125700101\"\r\n}"
response = https.request(request)
puts response.read_body
import requests
url = "https://map.trippro.com/resources/api/v4/readPnr"
payload = "{\r\n \"pnr\": \"TTIRZX\",\r\n \"productId\": \"10153125700101\"\r\n}"
headers = {
'Content-Ty': 'application/json',
'access-token': ''
}
response = requests.request("POST", url, headers=headers, data = payload)
print(response.text.encode('utf8'))
<?php
$curl = curl_init();
curl_setopt_array($curl, array(
CURLOPT_URL => "https://map.trippro.com/resources/api/v4/readPnr",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 0,
CURLOPT_FOLLOWLOCATION => true,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS =>"{\r\n \"pnr\": \"TTIRZX\",\r\n \"productId\": \"10153125700101\"\r\n}",
CURLOPT_HTTPHEADER => array(
"Content-Ty: application/json",
"access-token: "
),
));
$response = curl_exec($curl);
curl_close($curl);
echo $response;
var settings = {
"url": "https://map.trippro.com/resources/api/v4/readPnr",
"method": "POST",
"timeout": 0,
"headers": {
"Content-Ty": "application/json",
"access-token": ""
},
"data": "{\r\n \"pnr\": \"TTIRZX\",\r\n \"productId\": \"10153125700101\"\r\n}",
};
$.ajax(settings).done(function (response) {
console.log(response);
});
Response
{
"Pnr": "TTIRZX",
"PproductId": "10153125700101",
"Itinerary": {
"ItineraryId": "d8c1d973ea6c4af2a9bb670f964a6048",
"ValidatingCarrierCode": "DL",
"Citypairs": [
{
"Duration": "9H 9M",
"NoOfStops": 1,
"FlightSegment": [
{
"DepartureLocationCode": "JFK",
"DepartureDisplayName": "New York",
"OriginAirportName": null,
"ArrivalLocationCode": "DTW",
"DisplayName": "Detroit",
"DestinationAirportName": null,
"MarketingAirline": "DL",
"FlightNumber": 2923,
"OperatingAirline": "DL",
"Duration": "2H 10M",
"DurationInMinutes": 130,
"LayoverTime": "",
"FlightLogoName": null,
"AirEquipmentType": "319",
"BookingClass": "H",
"CabinClass": "E",
"noOfStops": 0,
"NoOfStops": 0,
"DepartureDateTime": "2022-07-22T17:59:00",
"ArrivalDateTime": "2022-07-22T20:09:00",
"FareBasisCode": "HAVOA0MQ",
"bagsRecheckRequired": false,
"operatingAirlineText": null,
"baggageAllowance": "0P",
"baggageDesc1": "",
"baggageDesc2": "",
"baggageInfoUrl": "",
"IntermediateStops": []
},
{
"DepartureLocationCode": "DTW",
"DepartureDisplayName": "Detroit",
"OriginAirportName": null,
"ArrivalLocationCode": "LAS",
"DisplayName": "Las Vegas",
"DestinationAirportName": null,
"MarketingAirline": "DL",
"FlightNumber": 1168,
"OperatingAirline": "DL",
"Duration": "4H 18M",
"DurationInMinutes": 258,
"LayoverTime": "2H 41M",
"FlightLogoName": null,
"AirEquipmentType": "739",
"BookingClass": "H",
"CabinClass": "E",
"noOfStops": 0,
"NoOfStops": 0,
"DepartureDateTime": "2022-07-22T22:50:00",
"ArrivalDateTime": "2022-07-23T00:08:00",
"FareBasisCode": "HAVOA0MQ",
"bagsRecheckRequired": false,
"operatingAirlineText": null,
"baggageAllowance": "0P",
"baggageDesc1": "",
"baggageDesc2": "",
"baggageInfoUrl": "",
"IntermediateStops": []
}
]
}
],
"Fares": [
{
"CurrencyCode": "USD",
"BaseFare": 384.77,
"Taxes": 52.83,
"CCFee": 0.0,
"PaxType": "ADT"
}
],
"BrandId": null,
"BrandName": null,
"CabinClass": "E",
"Rank": 0.0,
"Tag": null,
"InFlightServices": {},
"RichContentAmenities": {},
"SegmentMeals": {},
"SegmentBaggage": {},
"noOfSeats": 0,
"IsNonRefundableFare": true,
"IsBasicEconomyItin": false,
"FareType": "PUB"
},
"Travellers": [
{
"paxId": 0,
"nameNumber": "1.1",
"paxTypeId": 1,
"paxType": "ADT",
"title": "MR",
"firstName": "KVP",
"lastName": "PRASAD",
"gender": "M",
"passportInfo": {},
"profileAdded": false,
"travelPreferences": {
"seat": null,
"meal": null,
"redressNumber": "NVL1xxx",
"ktn": "96xxxxxxx",
"frequentFlyerNumber": {
"airlineCode": "DL",
"flyerNumber": "930xxxxxx"
}
},
"leadPassenger": true,
"tsaDocEntry": "HK1/HK/02Mar1988/M 1.1 PRASAD/KVP",
"pickedForExchRefund": false,
"dateOfBirth": "03/02/1988"
}
],
"TicketInfos": []
}
New Seat Map
OverView:
An aircraft seat map or seating chart is a diagram of the seat layout inside a passenger airliner. They are often published by airlines for informational purposes and are of use to passengers for selection of their seat at booking or check-in.
Service URL: http://map.trippro.com/seatAvailSearch
Request Json:
{
"ItineraryId": "b576026866b84d3582b42d2973b4425c"
}
var settings = {
"url": "http://map.trippro.com/seatAvailSearch",
"method": "POST",
"timeout": 0,
"headers": {
"Content-Ty": "application/json",
"access-token": ""
},
"data": "{\r\n\"ItineraryId\": \"b576026866b84d3582b42d2973b4425c\"\r\n}",
};
$.ajax(settings).done(function (response) {
console.log(response);
});
<?php
$curl = curl_init();
curl_setopt_array($curl, array(
CURLOPT_URL => "http://map.trippro.com/seatAvailSearch",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 0,
CURLOPT_FOLLOWLOCATION => true,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS =>"{\r\n\"ItineraryId\": \"b576026866b84d3582b42d2973b4425c\"\r\n}",
CURLOPT_HTTPHEADER => array(
"Content-Ty: application/json",
"access-token: "
),
));
$response = curl_exec($curl);
curl_close($curl);
echo $response;
import requests
url = "http://map.trippro.com/seatAvailSearch"
payload = "{\r\n\"ItineraryId\": \"b576026866b84d3582b42d2973b4425c\"\r\n}"
headers = {
'Content-Ty': 'application/json',
'access-token': ''
}
response = requests.request("POST", url, headers=headers, data = payload)
print(response.text.encode('utf8'))
require "uri"
require "net/http"
url = URI("http://map.trippro.com/seatAvailSearch")
http = Net::HTTP.new(url.host, url.port);
request = Net::HTTP::Post.new(url)
request["Content-Ty"] = "application/json"
request["access-token"] = ""
request.body = "{\r\n\"ItineraryId\": \"b576026866b84d3582b42d2973b4425c\"\r\n}"
response = http.request(request)
puts response.read_body
Response Json:
{
"segmentSeatMap": [
{
"origin": "SFO",
"destination": "HND",
"flightNumber": "1",
"cabins": [
{
"cabinType": "SeatingArea",
"rowStart": 23,
"rowEnd": 27,
"seatOrder": [
"A",
"B",
"C",
"WW",
"D",
"E",
"F",
"G",
"WW",
"H",
"J",
"K"
],
"facilities": [],
"rows": [
{
"rowNumber": 23,
"seats": [
{
"seatColumn": "A",
"facilities": [],
"limitations": [],
"paxSegmentChargeRefs": [],
"empty": false,
"pantry": false,
"premium": false,
"restRoom": false,
"occupied": true
},
{
"seatColumn": "K",
"facilities": [
"electronic connection"
],
"limitations": [],
"paxSegmentChargeRefs": [],
"empty": false,
"pantry": false,
"premium": false,
"restRoom": false,
"occupied": false
}
],
"exitRow": false
}
]
}
],
"paxSeatSegmentCharges": {},
"airline": "JL"
}
],
"SeatAssignementFee": 13.95
}
Response Message Elements:
Parameter | Description | Examples | Required |
---|---|---|---|
>origin | The Origin of segment | ex:"origin": "SFO" | Yes |
>destination | The Destination of Segment | ex: "destination": "HND", | Yes |
>flightNumber | The Flight Number | "flightNumber": "1" | Yes |
>cabins | cabin is the section of an flight in which passengers travel | ----- | Yes |
>>cabinType | Represents the type of cabin available in flight. | ex:" "cabinType": "SeatingArea" | Yes |
>>rowStart | The Row Identification number where the seatingArea starts from . | ex:"rowStart": 23 | Yes |
>>rowEnd | The Row Identification number where the seatingArea ends. | ex:"rowEnd": 27, | Yes |
>>wingRowStart | The window seating row starts from, if window seat exist | ex:”WingStart”:28 | Yes |
>>wingRowEnd | The window seating row ends, if window seat exist | ex:”WingEnd”:35 | Yes |
>>seatOrder | The identification of seating order | ex:"seatOrder": [ "A", "B", "C", "WW", "D", "E", "F", "G", "WW", "H", "J", "K" | Yes |
>>rows | The rows represents the availability of seats | ------ | Yes |
>>rowNumber | The number of row represents the availability of seats | ex:"rowNumber": 23 | Yes |
>>seats | ---- | ----- | Yes |
seatColumn | The alphabetical representation of the availability seats. | "seatColumn": "A" | Yes |
Facilities | The extra features for customer convenience are available for that seating area. | ex: "facilities": [ "electronic connection"The electronic connection is available at the selected seat coloumn | Yes |
paxSegmentChargeRefs | ------ | ------ | ------ |
empty | Represents the select seat column is empty place or not | ex: "empty": false,Means the available seat column is not an empty place. | ----- |
pantry | Represents the select seat column is pantry or not. | ex:"Pantry":True,Means the available seat column is a Pantry. | Yes |
premium | Represents whether the select seat column is premium or not. | ex: "premium": false,Means the available seat is not an premium. | Yes |
restRoom | Represents the select seat column is rest room or not. | ex:"Restroom":True,Means the seat is at rest room. | Yes |
occupied | Represents the availabity of choosen seat . | ex: "occupied ":True,Means the seat is already occupied. | Yes |
exitRow | An exit row is the row of seats on an airplane that is next to the emergency exit. | ex: "exitRow": false The available row is not a exit row. | Yes |
airline | It refers The name of the airline code. | ex:"airline": "JL” | Yes |
SeatAssignementFee | The charge for the seat allocation. | ex:"SeatAssignementFee": 13.95 | Yes |
Seat Map Rules:
1.We don't have a seat map for Basic Economy Itineraries.
2.If the given itinerary or Pnr is Amadeus then we are giving seat map for the below airlines only. ex:4C,4M,A3,AC,AF,AM,AV,AY,AZ,BF,BI,BT,CA,CX,CY,CZ,DL,EK,EN,EW, EY,GA,GF,HA,HV,IB,IG,J2,JJ,JU,KA,KC,KL,KQ,LA,LG,LH,LO,LP,LR,LX, LY,MD,MH,MK,MS,MT,MT,NP,NT,NZ,OK,OS,OZ,PC,PR,PS,QF,QS,RC,RJ,S4, S7,SA,SB,SE,SK,SN,SS,SV,TA,TK,TN,TP,TX,U2,U6,UA,UL,UT,UU,UX,VA, VR,WS,WY,XL,XY,ZI.
Book pnr request with selected seats from seat map:
They are often published by airlines for informational purposes and are of use to passengers for booking a pnr with selection of their seat at booking or check-in.
Service URL: https://map.trippro.com/resources/v2/Flights/bookItinerary/
Request Json:
{
"ItineraryId": "3805110d18334421bfe58286b9c528cc",
"IpAddress": "113.108.202.250",
"BookItineraryPaxDetail": [
{
"PaxType": "ADT",
"Gender": "M",
"UserTitle": null,
"FirstName": "SANDHYA",
"MiddleName": "",
"LastName": "APPECHERLA",
"DateOfBirth": "09/05/2002",
"PassportNumber": null,
"CountryOfIssue": "CN",
"Nationality": "CN",
"PassportIssueDate": null,
"PassportExpiryDate": "12/26/2028"
}
],
"BookItineraryPaxContactInfo": {
"PhoneNumber": "18128861151",
"AlternatePhoneNumber": null,
"Email": "sandhyaa@mmgs.com"
},
"BookItineraryPaymentDetail": {
"PaymentType": "CC",
"BookItineraryCCDetails": {
"CardType": "CA",
"CardNumber": "5111111111111118",
"CVV": "123",
"ExpiryDate": "08/22",
"BankPhoneNum": "",
"BillingPhoneNum": ""
},
"SeatRequest": [
{
"cityPairNumber": 0,
"SegmentNo": 1,
"SegmentSeqNo": 1,
"SelectedSeats": [
"9A_119"
],
"PaxCount": 1,
"SubTotalAmnt": 119,
"SelectedSeatsNames": "9A,",
"SeatAssignmentFee": 10.95,
"origin": "SFO",
"destination": "IST",
"flightNum": 290,
"airline": "TK",
"SelectedSeatsInfo": null
}
]
}
require "uri"
require "net/http"
url = URI("https://map.trippro.com/resources/v2/Flights/bookItinerary/")
https = Net::HTTP.new(url.host, url.port);
https.use_ssl = true
request = Net::HTTP::Post.new(url)
request["Content-Ty"] = "application/json"
request["access-token"] = ""
request.body = "{\r\n\t\"ItineraryId\": \"3805110d18334421bfe58286b9c528cc\",\r\n\t\"IpAddress\": \"113.108.202.250\",\r\n\t\"BookItineraryPaxDetail\": [\r\n\t\t{\r\n\t\t\t\"PaxType\": \"ADT\",\r\n\t\t\t\"Gender\": \"M\",\r\n\t\t\t\"UserTitle\": null,\r\n\t\t\t\"FirstName\": \"SANDHYA\",\r\n\t\t\t\"MiddleName\": \"\",\r\n\t\t\t\"LastName\": \"APPECHERLA\",\r\n\t\t\t\"DateOfBirth\": \"09/05/2002\",\r\n\t\t\t\"PassportNumber\": null,\r\n\t\t\t\"CountryOfIssue\": \"CN\",\r\n\t\t\t\"Nationality\": \"CN\",\r\n\t\t\t\"PassportIssueDate\": null,\r\n\t\t\t\"PassportExpiryDate\": \"12/26/2028\"\r\n\t\t}\r\n\t],\r\n\t\"BookItineraryPaxContactInfo\": {\r\n\t\t\"PhoneNumber\": \"18128861151\",\r\n\t\t\"AlternatePhoneNumber\": null,\r\n\t\t\"Email\": \"sandhyaa@mmgs.com\"\r\n\t},\r\n\t\"BookItineraryPaymentDetail\": {\r\n\t\t\"PaymentType\": \"CC\",\r\n\t\t\"BookItineraryCCDetails\": {\r\n\t\t\t\"CardType\": \"CA\",\r\n\t\t\t\"CardNumber\": \"5111111111111118\",\r\n\t\t\t\"CVV\": \"123\",\r\n\t\t\t\"ExpiryDate\": \"08/22\",\r\n\t\t\t\"BankPhoneNum\": \"\",\r\n\t\t\t\"BillingPhoneNum\": \"\"\r\n\t\t},\r\n\t\t\r\n\t\r\n\t\"SeatRequest\": [\r\n\t\t{\r\n\t\t\t\"cityPairNumber\": 0,\r\n\t\t\t\"SegmentNo\": 1,\r\n\t\t\t\"SegmentSeqNo\": 1,\r\n\t\t\t\"SelectedSeats\": [\r\n\t\t\t\t\"9A_119\"\r\n\t\t\t],\r\n\t\t\t\"PaxCount\": 1,\r\n\t\t\t\"SubTotalAmnt\": 119,\r\n\t\t\t\"SelectedSeatsNames\": \"9A,\",\r\n\t\t\t\"SeatAssignmentFee\": 10.95,\r\n\t\t\t\"origin\": \"SFO\",\r\n\t\t\t\"destination\": \"IST\",\r\n\t\t\t\"flightNum\": 290,\r\n\t\t\t\"airline\": \"TK\",\r\n\t\t\t\"SelectedSeatsInfo\": null\r\n\t\t}\r\n\t]\r\n}\r\n}"
response = https.request(request)
puts response.read_body
import requests
url = "https://map.trippro.com/resources/v2/Flights/bookItinerary/"
payload = "{\r\n\t\"ItineraryId\": \"3805110d18334421bfe58286b9c528cc\",\r\n\t\"IpAddress\": \"113.108.202.250\",\r\n\t\"BookItineraryPaxDetail\": [\r\n\t\t{\r\n\t\t\t\"PaxType\": \"ADT\",\r\n\t\t\t\"Gender\": \"M\",\r\n\t\t\t\"UserTitle\": null,\r\n\t\t\t\"FirstName\": \"SANDHYA\",\r\n\t\t\t\"MiddleName\": \"\",\r\n\t\t\t\"LastName\": \"APPECHERLA\",\r\n\t\t\t\"DateOfBirth\": \"09/05/2002\",\r\n\t\t\t\"PassportNumber\": null,\r\n\t\t\t\"CountryOfIssue\": \"CN\",\r\n\t\t\t\"Nationality\": \"CN\",\r\n\t\t\t\"PassportIssueDate\": null,\r\n\t\t\t\"PassportExpiryDate\": \"12/26/2028\"\r\n\t\t}\r\n\t],\r\n\t\"BookItineraryPaxContactInfo\": {\r\n\t\t\"PhoneNumber\": \"18128861151\",\r\n\t\t\"AlternatePhoneNumber\": null,\r\n\t\t\"Email\": \"sandhyaa@mmgs.com\"\r\n\t},\r\n\t\"BookItineraryPaymentDetail\": {\r\n\t\t\"PaymentType\": \"CC\",\r\n\t\t\"BookItineraryCCDetails\": {\r\n\t\t\t\"CardType\": \"CA\",\r\n\t\t\t\"CardNumber\": \"5111111111111118\",\r\n\t\t\t\"CVV\": \"123\",\r\n\t\t\t\"ExpiryDate\": \"08/22\",\r\n\t\t\t\"BankPhoneNum\": \"\",\r\n\t\t\t\"BillingPhoneNum\": \"\"\r\n\t\t},\r\n\t\t\r\n\t\r\n\t\"SeatRequest\": [\r\n\t\t{\r\n\t\t\t\"cityPairNumber\": 0,\r\n\t\t\t\"SegmentNo\": 1,\r\n\t\t\t\"SegmentSeqNo\": 1,\r\n\t\t\t\"SelectedSeats\": [\r\n\t\t\t\t\"9A_119\"\r\n\t\t\t],\r\n\t\t\t\"PaxCount\": 1,\r\n\t\t\t\"SubTotalAmnt\": 119,\r\n\t\t\t\"SelectedSeatsNames\": \"9A,\",\r\n\t\t\t\"SeatAssignmentFee\": 10.95,\r\n\t\t\t\"origin\": \"SFO\",\r\n\t\t\t\"destination\": \"IST\",\r\n\t\t\t\"flightNum\": 290,\r\n\t\t\t\"airline\": \"TK\",\r\n\t\t\t\"SelectedSeatsInfo\": null\r\n\t\t}\r\n\t]\r\n}\r\n}"
headers = {
'Content-Ty': 'application/json',
'access-token': ''
}
response = requests.request("POST", url, headers=headers, data = payload)
print(response.text.encode('utf8'))
<?php
$curl = curl_init();
curl_setopt_array($curl, array(
CURLOPT_URL => "https://map.trippro.com/resources/v2/Flights/bookItinerary/",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 0,
CURLOPT_FOLLOWLOCATION => true,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS =>"{\r\n\t\"ItineraryId\": \"3805110d18334421bfe58286b9c528cc\",\r\n\t\"IpAddress\": \"113.108.202.250\",\r\n\t\"BookItineraryPaxDetail\": [\r\n\t\t{\r\n\t\t\t\"PaxType\": \"ADT\",\r\n\t\t\t\"Gender\": \"M\",\r\n\t\t\t\"UserTitle\": null,\r\n\t\t\t\"FirstName\": \"SANDHYA\",\r\n\t\t\t\"MiddleName\": \"\",\r\n\t\t\t\"LastName\": \"APPECHERLA\",\r\n\t\t\t\"DateOfBirth\": \"09/05/2002\",\r\n\t\t\t\"PassportNumber\": null,\r\n\t\t\t\"CountryOfIssue\": \"CN\",\r\n\t\t\t\"Nationality\": \"CN\",\r\n\t\t\t\"PassportIssueDate\": null,\r\n\t\t\t\"PassportExpiryDate\": \"12/26/2028\"\r\n\t\t}\r\n\t],\r\n\t\"BookItineraryPaxContactInfo\": {\r\n\t\t\"PhoneNumber\": \"18128861151\",\r\n\t\t\"AlternatePhoneNumber\": null,\r\n\t\t\"Email\": \"sandhyaa@mmgs.com\"\r\n\t},\r\n\t\"BookItineraryPaymentDetail\": {\r\n\t\t\"PaymentType\": \"CC\",\r\n\t\t\"BookItineraryCCDetails\": {\r\n\t\t\t\"CardType\": \"CA\",\r\n\t\t\t\"CardNumber\": \"5111111111111118\",\r\n\t\t\t\"CVV\": \"123\",\r\n\t\t\t\"ExpiryDate\": \"08/22\",\r\n\t\t\t\"BankPhoneNum\": \"\",\r\n\t\t\t\"BillingPhoneNum\": \"\"\r\n\t\t},\r\n\t\t\r\n\t\r\n\t\"SeatRequest\": [\r\n\t\t{\r\n\t\t\t\"cityPairNumber\": 0,\r\n\t\t\t\"SegmentNo\": 1,\r\n\t\t\t\"SegmentSeqNo\": 1,\r\n\t\t\t\"SelectedSeats\": [\r\n\t\t\t\t\"9A_119\"\r\n\t\t\t],\r\n\t\t\t\"PaxCount\": 1,\r\n\t\t\t\"SubTotalAmnt\": 119,\r\n\t\t\t\"SelectedSeatsNames\": \"9A,\",\r\n\t\t\t\"SeatAssignmentFee\": 10.95,\r\n\t\t\t\"origin\": \"SFO\",\r\n\t\t\t\"destination\": \"IST\",\r\n\t\t\t\"flightNum\": 290,\r\n\t\t\t\"airline\": \"TK\",\r\n\t\t\t\"SelectedSeatsInfo\": null\r\n\t\t}\r\n\t]\r\n}\r\n}",
CURLOPT_HTTPHEADER => array(
"Content-Ty: application/json",
"access-token: "
),
));
$response = curl_exec($curl);
curl_close($curl);
echo $response;
var settings = {
"url": "https://map.trippro.com/resources/v2/Flights/bookItinerary/",
"method": "POST",
"timeout": 0,
"headers": {
"Content-Ty": "application/json",
"access-token": ""
},
"data": "{\r\n\t\"ItineraryId\": \"3805110d18334421bfe58286b9c528cc\",\r\n\t\"IpAddress\": \"113.108.202.250\",\r\n\t\"BookItineraryPaxDetail\": [\r\n\t\t{\r\n\t\t\t\"PaxType\": \"ADT\",\r\n\t\t\t\"Gender\": \"M\",\r\n\t\t\t\"UserTitle\": null,\r\n\t\t\t\"FirstName\": \"SANDHYA\",\r\n\t\t\t\"MiddleName\": \"\",\r\n\t\t\t\"LastName\": \"APPECHERLA\",\r\n\t\t\t\"DateOfBirth\": \"09/05/2002\",\r\n\t\t\t\"PassportNumber\": null,\r\n\t\t\t\"CountryOfIssue\": \"CN\",\r\n\t\t\t\"Nationality\": \"CN\",\r\n\t\t\t\"PassportIssueDate\": null,\r\n\t\t\t\"PassportExpiryDate\": \"12/26/2028\"\r\n\t\t}\r\n\t],\r\n\t\"BookItineraryPaxContactInfo\": {\r\n\t\t\"PhoneNumber\": \"18128861151\",\r\n\t\t\"AlternatePhoneNumber\": null,\r\n\t\t\"Email\": \"sandhyaa@mmgs.com\"\r\n\t},\r\n\t\"BookItineraryPaymentDetail\": {\r\n\t\t\"PaymentType\": \"CC\",\r\n\t\t\"BookItineraryCCDetails\": {\r\n\t\t\t\"CardType\": \"CA\",\r\n\t\t\t\"CardNumber\": \"5111111111111118\",\r\n\t\t\t\"CVV\": \"123\",\r\n\t\t\t\"ExpiryDate\": \"08/22\",\r\n\t\t\t\"BankPhoneNum\": \"\",\r\n\t\t\t\"BillingPhoneNum\": \"\"\r\n\t\t},\r\n\t\t\r\n\t\r\n\t\"SeatRequest\": [\r\n\t\t{\r\n\t\t\t\"cityPairNumber\": 0,\r\n\t\t\t\"SegmentNo\": 1,\r\n\t\t\t\"SegmentSeqNo\": 1,\r\n\t\t\t\"SelectedSeats\": [\r\n\t\t\t\t\"9A_119\"\r\n\t\t\t],\r\n\t\t\t\"PaxCount\": 1,\r\n\t\t\t\"SubTotalAmnt\": 119,\r\n\t\t\t\"SelectedSeatsNames\": \"9A,\",\r\n\t\t\t\"SeatAssignmentFee\": 10.95,\r\n\t\t\t\"origin\": \"SFO\",\r\n\t\t\t\"destination\": \"IST\",\r\n\t\t\t\"flightNum\": 290,\r\n\t\t\t\"airline\": \"TK\",\r\n\t\t\t\"SelectedSeatsInfo\": null\r\n\t\t}\r\n\t]\r\n}\r\n}",
};
$.ajax(settings).done(function (response) {
console.log(response);
});
Request Message Elements:
Parameter | Description | Examples | Required |
---|---|---|---|
> Book Itinerary Request | Book Itinerary Request Element | ------ | Yes |
>ItineraryId | Id of Itinerary From Flight Search Response String | ex:2f5891ac8c3a472094c5397e0aa16ad70044 | Yes |
> Pax Details | Passenger details | ---- | No |
> Pax Type | Type of passenger | ex:ADT,CHD,INF | Yes |
>First Name | The first name of the passenger | ex:sandhya | Yes |
>Middle Name | The middle name of the passenger | ex:rani | No |
>Last Name | The last name of the passenger | ex:appchierla | Yes |
>Gender | The gender type of the passenger | ex:Male,female | Yes |
> Date Of Birth | Date of birth of passenger | ex:05/06/1993 | Yes |
>Passport Number | Passport Number of the passenger | ex:12345F,69874F | No |
>Nationality | Nationality | ex:indian | No |
> Country Of Issue | Passport Issued County Name | ex:CN | No |
>Passport Issue Date | Passport Issued Date | ex::05/11/1993 | No |
>Passport Expiry Date | Passport Expired Date | ex:11/10/202 | No |
>PhoneNumber | Passenger contact phone number | ex:1214587996 | Yes |
Passenger contact Email id | ex:syam@gmail.com | Yes | |
> Payment Details | Refer Payment Detail Section | ----- | No |
> Payment Type | Payment Mode | ex:CC,HOLD | Yes |
>BookItineraryCCDetails | The cc details of booked itinerary | ----- | Yes |
>ccEncryption | The encrypted cc details | ex:ytrtrgdfgdhhh | Yes |
>origin | The Origin of segment | ex:"origin": "SFO" | Yes |
>destination | The Destination of Segment | ex: "destination": "HND", | Yes |
>flightNumber | The Flight Number | "flightNumber": "1" | Yes |
>airline | It refers The name of the airline code . | ex:"airline": "JL” | Yes |
>SeatAssignementFee | The charge for the seat allocation. | ex:"SeatAssignementFee": 13.95 | Yes |
>SelectedSeatsInfo | The selected seat info available for some gds only | ex:null | Yes |
>SelectedSeatsNames | The Names of selected seats . | ex:"9A,",The seat is selected at 9th row A column | Yes |
>SubTotal Amount | The selected seats total amount (exclude seat assignment fee) | ex:119 | Yes |
>PaxCount | The total number of pax or Traveller | ex:1 | Yes |
>Seat ChargeMent | The total charged amount of seat selection(include seat assignment fee) | ex:119+10.95=219.95 (subtotal amount+seat assignment fee) | Yes |
>cityPairNumber | The city pair number refers seat selected in the onward or return flight . | ex:cityPairNumber": 0 (it refers to the seat selected in onward flight) | Yes |
>SegmentNo | It refers the number of Segment of selected seat . | ex:SegmentNo=1 (the selected seat in Segment no 1) | Yes |
>SegmentSeqNo | It refers the sequence number of Segment of selected seat | ex:"SegmentSeqNo": 1(the selected seat in Segmentsequence no 1) | Yes |
>SelectedSeats | The selected seats refers the information regarding selected seat.. | ex:"SelectedSeats": ["9A_119"(9A_seat is selected in 9 row Acoloumn) 119-the seat cost without asignemnet fee. | Yes |
Response Json:
{
"errorsList": {
"tperror": [],
"empty": true
},
"PNR": "QQCSPR",
"ReferenceNumber": "10150831180101",
"tripId": "1015083118",
"productId": "10150831180101"
}
Special Services
Travel Preferences API
Overview
The Special Service API allows users to add special remarks like secure flight information, wheel chair, meal code, seat code, frequent flier number to the PNR. The response message returns the confirmation status of the additional remarks request added..
Description
The Special Service remarks are meal code, seat code and frequent flyer number. The response message returns the confirm status of the additional remarks request added .
Request Json
{
"Pnr": "VQKNCO",
"receivedFrom": "Trippro",
"Email": "testagency@gmail.com",
"Remarks": "sandeep",
"Travellers": [
{
"nameNumber": "1.1",
"segmentNumber": "1",
"ptNumber": "1",
"TravelPreferences": {
"seatingPreference": "NSSA",
"mealPreference": "AVML",
"frequentFlyers": [
{
"frequentFlyerProgram": "DL",
"frequentFlyerNumber": "DL566786"
}
],
"otherRequest": "WCHR"
}
},
{
"nameNumber": "2.1",
"segmentNumber": "1",
"ptNumber": "1",
"TravelPreferences": {
"seatingPreference": "NSSA",
"mealPreference": "CHML",
"frequentFlyers": [
{
"frequentFlyerProgram": "DL",
"frequentFlyerNumber": "DL566786"
}
],
"otherRequest": "WCHR"
}
}
,{
"nameNumber": "3.1",
"segmentNumber": "1",
"ptNumber": "1",
"TravelPreferences": {
"seatingPreference": "",
"mealPreference": "BBML",
"frequentFlyers": [
{
"frequentFlyerProgram": "DL",
"frequentFlyerNumber": "DL566786"
}
],
"otherRequest": ""
}
}
]
}
var settings = {
"url": "",
"method": "GET",
"timeout": 0,
"data": "{\r\n\t\"Pnr\": \"VQKNCO\",\r\n\t\"receivedFrom\": \"Trippro\",\r\n\t\"Email\": \"testagency@gmail.com\",\r\n\t\"Remarks\": \"sandeep\",\r\n\t\"Travellers\": [\r\n\t\t{\r\n\t\t\t\"nameNumber\": \"1.1\",\r\n\t\t\t\"segmentNumber\": \"1\",\r\n\t\t\t\"ptNumber\": \"1\",\r\n\t\t\t\"TravelPreferences\": {\r\n\t\t\t\t\"seatingPreference\": \"NSSA\",\r\n\t\t\t\t\"mealPreference\": \"AVML\",\r\n\t\t\t\t\"frequentFlyers\": [\r\n\t\t\t\t\t{\r\n\t\t\t\t\t\t\"frequentFlyerProgram\": \"DL\",\r\n\t\t\t\t\t\t\"frequentFlyerNumber\": \"DL566786\"\r\n\t\t\t\t\t}\r\n\t\t\t\t],\r\n\t\t\t\t\"otherRequest\": \"WCHR\"\r\n\t\t\t}\r\n\t\t},\r\n\t\t{\r\n\t\t\t\"nameNumber\": \"2.1\",\r\n\t\t\t\"segmentNumber\": \"1\",\r\n\t\t\t\"ptNumber\": \"1\",\r\n\t\t\t\"TravelPreferences\": {\r\n\t\t\t\t\"seatingPreference\": \"NSSA\",\r\n\t\t\t\t\"mealPreference\": \"CHML\",\r\n\t\t\t\t\"frequentFlyers\": [\r\n\t\t\t\t\t{\r\n\t\t\t\t\t\t\"frequentFlyerProgram\": \"DL\",\r\n\t\t\t\t\t\t\"frequentFlyerNumber\": \"DL566786\"\r\n\t\t\t\t\t}\r\n\t\t\t\t],\r\n\t\t\t\t\"otherRequest\": \"WCHR\"\r\n\t\t\t}\r\n\t\t}\r\n\t\t,{\r\n\t\t\t\"nameNumber\": \"3.1\",\r\n\t\t\t\"segmentNumber\": \"1\",\r\n\t\t\t\"ptNumber\": \"1\",\r\n\t\t\t\"TravelPreferences\": {\r\n\t\t\t\t\"seatingPreference\": \"\",\r\n\t\t\t\t\"mealPreference\": \"BBML\",\r\n\t\t\t\t\"frequentFlyers\": [\r\n\t\t\t\t\t{\r\n\t\t\t\t\t\t\"frequentFlyerProgram\": \"DL\",\r\n\t\t\t\t\t\t\"frequentFlyerNumber\": \"DL566786\"\r\n\t\t\t\t\t}\r\n\t\t\t\t],\r\n\t\t\t\t\"otherRequest\": \"\"\r\n\t\t\t}\r\n\t\t}\r\n\t]\r\n}",
};
$.ajax(settings).done(function (response) {
console.log(response);
});
<?php
require_once 'HTTP/Request2.php';
$request = new HTTP_Request2();
$request->setUrl('');
$request->setMethod(HTTP_Request2::METHOD_GET);
$request->setConfig(array(
'follow_redirects' => TRUE
));
$request->setBody('{
\n "Pnr": "VQKNCO",
\n "receivedFrom": "Trippro",
\n "Email": "testagency@gmail.com",
\n "Remarks": "sandeep",
\n "Travellers": [
\n {
\n "nameNumber": "1.1",
\n "segmentNumber": "1",
\n "ptNumber": "1",
\n "TravelPreferences": {
\n "seatingPreference": "NSSA",
\n "mealPreference": "AVML",
\n "frequentFlyers": [
\n {
\n "frequentFlyerProgram": "DL",
\n "frequentFlyerNumber": "DL566786"
\n }
\n ],
\n "otherRequest": "WCHR"
\n }
\n },
\n {
\n "nameNumber": "2.1",
\n "segmentNumber": "1",
\n "ptNumber": "1",
\n "TravelPreferences": {
\n "seatingPreference": "NSSA",
\n "mealPreference": "CHML",
\n "frequentFlyers": [
\n {
\n "frequentFlyerProgram": "DL",
\n "frequentFlyerNumber": "DL566786"
\n }
\n ],
\n "otherRequest": "WCHR"
\n }
\n }
\n ,{
\n "nameNumber": "3.1",
\n "segmentNumber": "1",
\n "ptNumber": "1",
\n "TravelPreferences": {
\n "seatingPreference": "",
\n "mealPreference": "BBML",
\n "frequentFlyers": [
\n {
\n "frequentFlyerProgram": "DL",
\n "frequentFlyerNumber": "DL566786"
\n }
\n ],
\n "otherRequest": ""
\n }
\n }
\n ]
\n}');
try {
$response = $request->send();
if ($response->getStatus() == 200) {
echo $response->getBody();
}
else {
echo 'Unexpected HTTP status: ' . $response->getStatus() . ' ' .
$response->getReasonPhrase();
}
}
catch(HTTP_Request2_Exception $e) {
echo 'Error: ' . $e->getMessage();
}
require "uri"
require "net/http"
url = URI("")
http = Net::HTTP.new(url.host, url.port);
request = Net::HTTP::Get.new(url)
request.body = "{\r\n\t\"Pnr\": \"VQKNCO\",\r\n\t\"receivedFrom\": \"Trippro\",\r\n\t\"Email\": \"testagency@gmail.com\",\r\n\t\"Remarks\": \"sandeep\",\r\n\t\"Travellers\": [\r\n\t\t{\r\n\t\t\t\"nameNumber\": \"1.1\",\r\n\t\t\t\"segmentNumber\": \"1\",\r\n\t\t\t\"ptNumber\": \"1\",\r\n\t\t\t\"TravelPreferences\": {\r\n\t\t\t\t\"seatingPreference\": \"NSSA\",\r\n\t\t\t\t\"mealPreference\": \"AVML\",\r\n\t\t\t\t\"frequentFlyers\": [\r\n\t\t\t\t\t{\r\n\t\t\t\t\t\t\"frequentFlyerProgram\": \"DL\",\r\n\t\t\t\t\t\t\"frequentFlyerNumber\": \"DL566786\"\r\n\t\t\t\t\t}\r\n\t\t\t\t],\r\n\t\t\t\t\"otherRequest\": \"WCHR\"\r\n\t\t\t}\r\n\t\t},\r\n\t\t{\r\n\t\t\t\"nameNumber\": \"2.1\",\r\n\t\t\t\"segmentNumber\": \"1\",\r\n\t\t\t\"ptNumber\": \"1\",\r\n\t\t\t\"TravelPreferences\": {\r\n\t\t\t\t\"seatingPreference\": \"NSSA\",\r\n\t\t\t\t\"mealPreference\": \"CHML\",\r\n\t\t\t\t\"frequentFlyers\": [\r\n\t\t\t\t\t{\r\n\t\t\t\t\t\t\"frequentFlyerProgram\": \"DL\",\r\n\t\t\t\t\t\t\"frequentFlyerNumber\": \"DL566786\"\r\n\t\t\t\t\t}\r\n\t\t\t\t],\r\n\t\t\t\t\"otherRequest\": \"WCHR\"\r\n\t\t\t}\r\n\t\t}\r\n\t\t,{\r\n\t\t\t\"nameNumber\": \"3.1\",\r\n\t\t\t\"segmentNumber\": \"1\",\r\n\t\t\t\"ptNumber\": \"1\",\r\n\t\t\t\"TravelPreferences\": {\r\n\t\t\t\t\"seatingPreference\": \"\",\r\n\t\t\t\t\"mealPreference\": \"BBML\",\r\n\t\t\t\t\"frequentFlyers\": [\r\n\t\t\t\t\t{\r\n\t\t\t\t\t\t\"frequentFlyerProgram\": \"DL\",\r\n\t\t\t\t\t\t\"frequentFlyerNumber\": \"DL566786\"\r\n\t\t\t\t\t}\r\n\t\t\t\t],\r\n\t\t\t\t\"otherRequest\": \"\"\r\n\t\t\t}\r\n\t\t}\r\n\t]\r\n}"
response = http.request(request)
puts response.read_body
import requests
url = ""
payload = "{\r\n\t\"Pnr\": \"VQKNCO\",\r\n\t\"receivedFrom\": \"Trippro\",\r\n\t\"Email\": \"testagency@gmail.com\",\r\n\t\"Remarks\": \"sandeep\",\r\n\t\"Travellers\": [\r\n\t\t{\r\n\t\t\t\"nameNumber\": \"1.1\",\r\n\t\t\t\"segmentNumber\": \"1\",\r\n\t\t\t\"ptNumber\": \"1\",\r\n\t\t\t\"TravelPreferences\": {\r\n\t\t\t\t\"seatingPreference\": \"NSSA\",\r\n\t\t\t\t\"mealPreference\": \"AVML\",\r\n\t\t\t\t\"frequentFlyers\": [\r\n\t\t\t\t\t{\r\n\t\t\t\t\t\t\"frequentFlyerProgram\": \"DL\",\r\n\t\t\t\t\t\t\"frequentFlyerNumber\": \"DL566786\"\r\n\t\t\t\t\t}\r\n\t\t\t\t],\r\n\t\t\t\t\"otherRequest\": \"WCHR\"\r\n\t\t\t}\r\n\t\t},\r\n\t\t{\r\n\t\t\t\"nameNumber\": \"2.1\",\r\n\t\t\t\"segmentNumber\": \"1\",\r\n\t\t\t\"ptNumber\": \"1\",\r\n\t\t\t\"TravelPreferences\": {\r\n\t\t\t\t\"seatingPreference\": \"NSSA\",\r\n\t\t\t\t\"mealPreference\": \"CHML\",\r\n\t\t\t\t\"frequentFlyers\": [\r\n\t\t\t\t\t{\r\n\t\t\t\t\t\t\"frequentFlyerProgram\": \"DL\",\r\n\t\t\t\t\t\t\"frequentFlyerNumber\": \"DL566786\"\r\n\t\t\t\t\t}\r\n\t\t\t\t],\r\n\t\t\t\t\"otherRequest\": \"WCHR\"\r\n\t\t\t}\r\n\t\t}\r\n\t\t,{\r\n\t\t\t\"nameNumber\": \"3.1\",\r\n\t\t\t\"segmentNumber\": \"1\",\r\n\t\t\t\"ptNumber\": \"1\",\r\n\t\t\t\"TravelPreferences\": {\r\n\t\t\t\t\"seatingPreference\": \"\",\r\n\t\t\t\t\"mealPreference\": \"BBML\",\r\n\t\t\t\t\"frequentFlyers\": [\r\n\t\t\t\t\t{\r\n\t\t\t\t\t\t\"frequentFlyerProgram\": \"DL\",\r\n\t\t\t\t\t\t\"frequentFlyerNumber\": \"DL566786\"\r\n\t\t\t\t\t}\r\n\t\t\t\t],\r\n\t\t\t\t\"otherRequest\": \"\"\r\n\t\t\t}\r\n\t\t}\r\n\t]\r\n}"
headers= {}
response = requests.request("GET", url, headers=headers, data = payload)
print(response.text.encode('utf8'))
Response JSON
{ "message": "SUCCESS" }
Message -”Success” means selected Travel preferences added successfully.
Response if Travel Preference Not Added
{ "error": "Please send a valid request." } error:error message will be displayed.
Request Message Elements
Tag | Parameter | Description | Format | Examples | Required |
---|---|---|---|---|---|
pnr | pnr | String | QWERTY | YES | |
"Received From | "the platform of the pnr" | in which platform pnr generated | String | EX:Mondee,ExploreTrip | YES |
the traveller emaiL id | String | ex:jaganmohanm@mmgs.com | Yes | ||
Remarks | Remarks | To add any special remarks to the PNR | String | ex:jagan | Yes |
Travellers | nameNumber,segmentNumber,ptNumber | nameNumber: It wil get from readPnr service segmentNumber: Flight segments number Ex: (1,2) | String | nameNumber: 1.1,1.2 etc.segmentNumber:1,23 …. | YES |
TravelPreferences | seatingPreference,mealPreference,frequentFlyers,otherRequest | the traveller preferences | string | seatingPreference :NSSA mealPreference:AVML frequentFlyers: frequentFlyerProgram:DL, frequentFlyerNumber :DL155P9B76 otherRequest":WCHR NOTE: For detailed description and availble options see below table | YES |
Meal Preferences: Meal code is common for all GDS
Code | Meal description |
---|---|
AVML | Vegetarian Hindu meal |
BBML | Baby meal |
BLML | Bland meal |
CHML | Child meal |
DBML | Diabetic meal |
FPML | Fruit platter meal |
GFML | Gluten intolerant meal |
HNML | Hindu (non vegetarian) meal specific |
IVML | Indian vegetarian meal (UA specific) |
JPML | Japanese meal (LH specific) |
KSML | Kosher meal |
LCML | Low calorie meal |
LFML | Low fat meal |
LSML | Low salt meal |
MOML | Moslem meal |
NFML | No fish meal (LH specific) |
NLML | Low lactose meal |
OBML | Japanese Obento meal (UA specific) |
RVML | Vegetarian raw meal |
SFML | Seafood meal |
SPML | Special meal, specify food |
VGML | Vegetarian vegan meal |
VJML | Vegetarian Jain meal |
VOML | Vegetarian Oriental meal |
VLML | Vegetarian lacto-ovo meal |
Seat Preferences: Generic Seat - Common for all GDS
Code | Seat Preferences |
---|---|
NSST | NON-SMOKING SEAT |
SMST | SMOKING SEAT |
SMSB | SMOKING BULKHEAD SEAT |
NSSA | NON-SMOKING AISLE SEAT |
NSSW | NON-SMOKING WINDOW SEAT |
SMSA | SMOKING AISLE SEAT |
SMSW | SMOKING WINDOW SEAT |
NSSB | NON-SMOKING BULKHEAD SEAT |
Other Preferences:
WCHR-Wheel Chair (Note:Wheel Chair is same for all GDS - WCHR)
References
Web Service EndPoint http://api.trippro.com/pnr/travelPreferences
Seat Map
overview:
An aircraft seat map or seating chart is a diagram of the seat layout inside a passenger airliner. They are often published by airlines for informational purposes and are of use to passengers for selection of their seat at booking or check-in.
Request Json:
{
"ItineraryId": "b576026866b84d3582b42d2973b4425c"
}
import requests
url = ""
payload = "{\r\n\"ItineraryId\": \"b576026866b84d3582b42d2973b4425c\"\r\n}"
headers= {}
response = requests.request("GET", url, headers=headers, data = payload)
print(response.text.encode('utf8'))
<?php
require_once 'HTTP/Request2.php';
$request = new HTTP_Request2();
$request->setUrl('');
$request->setMethod(HTTP_Request2::METHOD_GET);
$request->setConfig(array(
'follow_redirects' => TRUE
));
$request->setBody('{
\n"ItineraryId": "b576026866b84d3582b42d2973b4425c"
\n}');
try {
$response = $request->send();
if ($response->getStatus() == 200) {
echo $response->getBody();
}
else {
echo 'Unexpected HTTP status: ' . $response->getStatus() . ' ' .
$response->getReasonPhrase();
}
}
catch(HTTP_Request2_Exception $e) {
echo 'Error: ' . $e->getMessage();
}
var settings = {
"url": "",
"method": "GET",
"timeout": 0,
"data": "{\r\n\"ItineraryId\": \"b576026866b84d3582b42d2973b4425c\"\r\n}",
};
$.ajax(settings).done(function (response) {
console.log(response);
});
require "uri"
require "net/http"
url = URI("")
http = Net::HTTP.new(url.host, url.port);
request = Net::HTTP::Get.new(url)
request.body = "{\r\n\"ItineraryId\": \"b576026866b84d3582b42d2973b4425c\"\r\n}"
response = http.request(request)
puts response.read_body
Response Json:
{
"segmentSeatMap": [
{
"origin": "SFO",
"destination": "HND",
"flightNumber": "1",
"cabins": [
{
"cabinType": "SeatingArea",
"rowStart": 23,
"rowEnd": 27,
"seatOrder": [
"A",
"B",
"C",
"WW",
"D",
"E",
"F",
"G",
"WW",
"H",
"J",
"K"
],
"facilities": [],
"rows": [
{
"rowNumber": 23,
"seats": [
{
"seatColumn": "A",
"facilities": [],
"limitations": [],
"paxSegmentChargeRefs": [],
"empty": false,
"pantry": false,
"premium": false,
"restRoom": false,
"occupied": true
},
{
"seatColumn": "K",
"facilities": [
"electronic connection"
],
"limitations": [],
"paxSegmentChargeRefs": [],
"empty": false,
"pantry": false,
"premium": false,
"restRoom": false,
"occupied": false
}
],
"exitRow": false
}
]
}
],
"paxSeatSegmentCharges": {},
"airline": "JL"
}
],
"SeatAssignementFee": 13.95
}
Response Message Elements:
Parameter | Description | Examples |
---|---|---|
>origin | The Origin of segment | ex:"origin": "SFO" |
>destination | The Destination of Segment | ex: "destination": "HND" |
>flightNumber | The Flight Number | "flightNumber": "1" |
>cabins | cabin is the section of an flight in which passengers travel. | |
>>cabinType | Represents the type of cabin available in flight. | ex:" "cabinType": "SeatingArea" |
>>rowStart | The Row Identification number where the seatingArea starts from . | ex:"rowStart": 23 |
>>rowEnd | The Row Identification number where the seatingArea ends. | ex:"rowEnd": 27, |
>>wingRowStart | The window seating row starts from, if window seat exist | ex:”WingStart”:28 |
>>wingRowEnd | The window seating row ends, if window seat exist | ex:”WingEnd”:35 |
>>seatOrder | The identification of seating order | ex:"seatOrder": "A","B","C","D","E","F","G","H","I',"J","K" |
>>rows | The rows represents the availability of seats | |
>>>rowNumber | The number of row represents the availability of seats | ex:"rowNumber": 23 |
>>seats | ||
>>>seatColumn | The alphabetical representation of the availability seats. | "seatColumn": "A" |
>>>facilities | The extra features for customer convenience are available for that seating area. | ex: "facilities": [ "electronic connection"] |
>>>paxSegmentChargeRefs | ||
>>>empty | Represents the select seat column is empty place or not. | ex: "empty": false,Means the available seat column is not an empty place. |
>>>pantry | Represents the select seat column is pantry or not. | ex: "Pantry":True, |
>>>premium | Represents whether the select seat column is premium or not. | ex: "premium": false, Means the available seat column is not an premium. |
>>>restRoom | Represents the select seat column is rest room or not. | ex: "Restroom":True,Means the available seat column is a rest room place. |
>>>occupied | Represents the availabity of choosen seat . | ex: "occupied ":True,Means the available seat column is already occupied. |
>>exitRow | An exit row is the row of seats on an airplane that is next to the emergency exit. | ex: "exitRow": false ex: "exitRow": false |
>>airline | It refers The name of the airline code . | ex:"airline": "JL” |
>>SeatAssignementFee | The charge for the seat allocation. | ex:"SeatAssignementFee": 13.95 |
Seat Map Rules:
1) We won't seat map for Basic Economy Itineraries.
2) We won't give seat map for WORLDSPAN itineraries or PNR's.
3) If itinerary or Pnr in Amadeus we give seat map for below airlines only.
Ex:
4C,4M,A3,AC,AF,AM,AV,AY,AZ,BF,BI,BT,CA,CX,CY,CZ,DL,EK,EN, EW,EY,GA,GF,HA,HV,IB,IG,J2,JJ,JU,KA,KC,KL,KQ,LA,LG,LH,LO, LP,LR,LX,LY,MD,MH,MK,MS,MT,MT,NP,NT,NZ,OK,OS,OZ,PC,PR,PS, QF,QS,RC,RJ,S4,S7,SA,SB,SE,SK,SN,SS,SV,TA,TK,TN,TP,TX,U2, U6,UA,UL,UT,UU,UX,VA,VR,WS,WY,XL,XY,ZI.
References
Web Service EndPoint
http://api.trippro.com/pnr/seatmap
Ancillary Update API
Overview
providing necessary additional support to the customer in terms of Ancillaries like Seat selection,Flexible ticket,Baggage protection etc.
Description
Ancillary Update API allows users to request Ancillary based on Ancillary Search Response. The response message contains Required Ancillary Details.
Request Json
{
"Pnr": "YAERYD",
"ItineraryTotalAmount": 649.9,
"AncillariesFare": 153.80999999999997,
"ItineraryReferenceNum": "",
"PaxInfo": [
"1.1"
],
"Ancillaries": [
{
"AncillaryId": 3,
"IsPurchased": true,
"QuotedAncillaryAmount": 86.12,
"QuotedVendorAmount": 0,
"IsChooseYourSeatOpted": false,
"AncillaryStatusId": 1,
"AncillaryDetails": "Flexible Ticket Fare"
},
{
"AncillaryId": 4,
"IsPurchased": true,
"QuotedAncillaryAmount": 11.95,
"QuotedVendorAmount": 0,
"IsChooseYourSeatOpted": false,
"AncillaryStatusId": 1,
"AncillaryDetails": "Premium"
},
{
"AncillaryId": 5,
"IsPurchased": true,
"QuotedAncillaryAmount": 5.99,
"QuotedVendorAmount": 0,
"IsChooseYourSeatOpted": false,
"AncillaryStatusId": 1,
"AncillaryDetails": "Price Drop Assurance"
},
{
"AncillaryId": 6,
"IsPurchased": false,
"QuotedAncillaryAmount": 19.99,
"QuotedVendorAmount": 0,
"IsChooseYourSeatOpted": false,
"AncillaryStatusId": 1,
"AncillaryDetails": "Purchase Guarantee Fare"
},
{
"AncillaryId": 7,
"IsPurchased": true,
"QuotedAncillaryAmount": 10.95,
"QuotedVendorAmount": 0,
"IsChooseYourSeatOpted": false,
"AncillaryStatusId": 1,
"AncillaryDetails": "Automatic CheckIn Fare"
},
{
"AncillaryId": 2,
"IsPurchased": true,
"QuotedAncillaryAmount": 13.95,
"QuotedVendorAmount": 0,
"IsChooseYourSeatOpted": false,
"AncillaryStatusId": 1,
"SeatRequest": [
{
"SegmentNo": 1,
"SelectedSeats": [
"36A_0"
],
"PaxCount": 1,
"SubTotalAmnt": "0.00",
"SelectedSeatsNames": "36A,",
"SeatAssignmentFee": 13.95
},
{
"SegmentNo": 2,
"SelectedSeats": [],
"PaxCount": 1,
"SubTotalAmnt": 0,
"SelectedSeatsNames": "",
"SeatAssignmentFee": 13.95
}
]
}
],
"IsAncillariesEnabled": true,
"UserID": 100423,
"TripId": "1014276174",
"ProductId": "10142761740101",
"SupportUserSelectedCorpAccId": 68611,
"SuppUserSelectedUserId": 70960,
"SuppUserSelectedMobileUserId": "C7A55C2F-A538-4658-9D7E-44B2240F1101",
"SuppUserSelectdUserConsoId": 9173,
"SuppUserSlctdUserAcntType": "A",
"suppUserSelectdEmailId": "qaagency6@mmgs.com",
"SuppUserSelectdUserDkNumber": "T142784",
"SelectedCustomer": {
"distribution": "TripPro US",
"platform": "TripPro",
"customerId": "2cbfed39-06e2-434c-9912-6568572eaf34",
"dkNumber": "T142784",
"customerName": "qaagency 6",
"phoneNumber": "5495985985",
"email": "qaagency6@mmgs.com",
"consolidatorId": 9173,
"agentId": "911d48e1-6ab6-4a62-a507-1d62154782e6",
"agentName": "b2buat",
"agentPhone": "7836587456",
"agentEmail": "b2bqaagencyuatall@mailinator.com"
},
"Customer": {
"platform": "TripPro",
"customerId": null,
"agentId": "911d48e1-6ab6-4a62-a507-1d62154782e6",
"agentName": "b2buat",
"agentPhone": "7836587456",
"agentEmail": "b2bqaagencyuatall@mailinator.com",
"siteId": "",
"siteName": ""
},
"UserInfo": {
"userId": "481c4828-b81c-407a-a40a-8b10000c6892",
"userName": "b2bqaagencyuatall@mailinator.com",
"userType": "Agent",
"profileType": "AgentProfile",
"platform": "TripPro",
"firstName": "b2buat",
"lastName": "all"
}
}
require "uri"
require "net/http"
url = URI("")
http = Net::HTTP.new(url.host, url.port);
request = Net::HTTP::Get.new(url)
request.body = "{\r\n\t\"Pnr\": \"YAERYD\",\r\n\t\"ItineraryTotalAmount\": 649.9,\r\n\t\"AncillariesFare\": 153.80999999999997,\r\n\t\"ItineraryReferenceNum\": \"\",\r\n\t\"PaxInfo\": [\r\n\t\t\"1.1\"\r\n\t],\r\n\t\"Ancillaries\": [\r\n\t\t{\r\n\t\t\t\"AncillaryId\": 3,\r\n\t\t\t\"IsPurchased\": true,\r\n\t\t\t\"QuotedAncillaryAmount\": 86.12,\r\n\t\t\t\"QuotedVendorAmount\": 0,\r\n\t\t\t\"IsChooseYourSeatOpted\": false,\r\n\t\t\t\"AncillaryStatusId\": 1,\r\n\t\t\t\"AncillaryDetails\": \"Flexible Ticket Fare\"\r\n\t\t},\r\n\t\t{\r\n\t\t\t\"AncillaryId\": 4,\r\n\t\t\t\"IsPurchased\": true,\r\n\t\t\t\"QuotedAncillaryAmount\": 11.95,\r\n\t\t\t\"QuotedVendorAmount\": 0,\r\n\t\t\t\"IsChooseYourSeatOpted\": false,\r\n\t\t\t\"AncillaryStatusId\": 1,\r\n\t\t\t\"AncillaryDetails\": \"Premium\"\r\n\t\t},\r\n\t\t{\r\n\t\t\t\"AncillaryId\": 5,\r\n\t\t\t\"IsPurchased\": true,\r\n\t\t\t\"QuotedAncillaryAmount\": 5.99,\r\n\t\t\t\"QuotedVendorAmount\": 0,\r\n\t\t\t\"IsChooseYourSeatOpted\": false,\r\n\t\t\t\"AncillaryStatusId\": 1,\r\n\t\t\t\"AncillaryDetails\": \"Price Drop Assurance\"\r\n\t\t},\r\n\t\t{\r\n\t\t\t\"AncillaryId\": 6,\r\n\t\t\t\"IsPurchased\": false,\r\n\t\t\t\"QuotedAncillaryAmount\": 19.99,\r\n\t\t\t\"QuotedVendorAmount\": 0,\r\n\t\t\t\"IsChooseYourSeatOpted\": false,\r\n\t\t\t\"AncillaryStatusId\": 1,\r\n\t\t\t\"AncillaryDetails\": \"Purchase Guarantee Fare\"\r\n\t\t},\r\n\t\t{\r\n\t\t\t\"AncillaryId\": 7,\r\n\t\t\t\"IsPurchased\": true,\r\n\t\t\t\"QuotedAncillaryAmount\": 10.95,\r\n\t\t\t\"QuotedVendorAmount\": 0,\r\n\t\t\t\"IsChooseYourSeatOpted\": false,\r\n\t\t\t\"AncillaryStatusId\": 1,\r\n\t\t\t\"AncillaryDetails\": \"Automatic CheckIn Fare\"\r\n\t\t},\r\n\t\t{\r\n\t\t\t\"AncillaryId\": 2,\r\n\t\t\t\"IsPurchased\": true,\r\n\t\t\t\"QuotedAncillaryAmount\": 13.95,\r\n\t\t\t\"QuotedVendorAmount\": 0,\r\n\t\t\t\"IsChooseYourSeatOpted\": false,\r\n\t\t\t\"AncillaryStatusId\": 1,\r\n\t\t\t\"SeatRequest\": [\r\n\t\t\t\t{\r\n\t\t\t\t\t\"SegmentNo\": 1,\r\n\t\t\t\t\t\"SelectedSeats\": [\r\n\t\t\t\t\t\t\"36A_0\"\r\n\t\t\t\t\t],\r\n\t\t\t\t\t\"PaxCount\": 1,\r\n\t\t\t\t\t\"SubTotalAmnt\": \"0.00\",\r\n\t\t\t\t\t\"SelectedSeatsNames\": \"36A,\",\r\n\t\t\t\t\t\"SeatAssignmentFee\": 13.95\r\n\t\t\t\t},\r\n\t\t\t\t{\r\n\t\t\t\t\t\"SegmentNo\": 2,\r\n\t\t\t\t\t\"SelectedSeats\": [],\r\n\t\t\t\t\t\"PaxCount\": 1,\r\n\t\t\t\t\t\"SubTotalAmnt\": 0,\r\n\t\t\t\t\t\"SelectedSeatsNames\": \"\",\r\n\t\t\t\t\t\"SeatAssignmentFee\": 13.95\r\n\t\t\t\t}\r\n\t\t\t]\r\n\t\t}\r\n\t],\r\n\t\"IsAncillariesEnabled\": true,\r\n\t\"UserID\": 100423,\r\n\t\"TripId\": \"1014276174\",\r\n\t\"ProductId\": \"10142761740101\",\r\n\t\"SupportUserSelectedCorpAccId\": 68611,\r\n\t\"SuppUserSelectedUserId\": 70960,\r\n\t\"SuppUserSelectedMobileUserId\": \"C7A55C2F-A538-4658-9D7E-44B2240F1101\",\r\n\t\"SuppUserSelectdUserConsoId\": 9173,\r\n\t\"SuppUserSlctdUserAcntType\": \"A\",\r\n\t\"suppUserSelectdEmailId\": \"qaagency6@mmgs.com\",\r\n\t\"SuppUserSelectdUserDkNumber\": \"T142784\",\r\n\t\"SelectedCustomer\": {\r\n\t\t\"distribution\": \"TripPro US\",\r\n\t\t\"platform\": \"TripPro\",\r\n\t\t\"customerId\": \"2cbfed39-06e2-434c-9912-6568572eaf34\",\r\n\t\t\"dkNumber\": \"T142784\",\r\n\t\t\"customerName\": \"qaagency 6\",\r\n\t\t\"phoneNumber\": \"5495985985\",\r\n\t\t\"email\": \"qaagency6@mmgs.com\",\r\n\t\t\"consolidatorId\": 9173,\r\n\t\t\"agentId\": \"911d48e1-6ab6-4a62-a507-1d62154782e6\",\r\n\t\t\"agentName\": \"b2buat\",\r\n\t\t\"agentPhone\": \"7836587456\",\r\n\t\t\"agentEmail\": \"b2bqaagencyuatall@mailinator.com\"\r\n\t},\r\n\t\"Customer\": {\r\n\t\t\"platform\": \"TripPro\",\r\n\t\t\"customerId\": null,\r\n\t\t\"agentId\": \"911d48e1-6ab6-4a62-a507-1d62154782e6\",\r\n\t\t\"agentName\": \"b2buat\",\r\n\t\t\"agentPhone\": \"7836587456\",\r\n\t\t\"agentEmail\": \"b2bqaagencyuatall@mailinator.com\",\r\n\t\t\"siteId\": \"\",\r\n\t\t\"siteName\": \"\"\r\n\t},\r\n\t\"UserInfo\": {\r\n\t\t\"userId\": \"481c4828-b81c-407a-a40a-8b10000c6892\",\r\n\t\t\"userName\": \"b2bqaagencyuatall@mailinator.com\",\r\n\t\t\"userType\": \"Agent\",\r\n\t\t\"profileType\": \"AgentProfile\",\r\n\t\t\"platform\": \"TripPro\",\r\n\t\t\"firstName\": \"b2buat\",\r\n\t\t\"lastName\": \"all\"\r\n\t}\r\n}"
response = http.request(request)
puts response.read_body
import requests
url = ""
payload = "{\r\n\t\"Pnr\": \"YAERYD\",\r\n\t\"ItineraryTotalAmount\": 649.9,\r\n\t\"AncillariesFare\": 153.80999999999997,\r\n\t\"ItineraryReferenceNum\": \"\",\r\n\t\"PaxInfo\": [\r\n\t\t\"1.1\"\r\n\t],\r\n\t\"Ancillaries\": [\r\n\t\t{\r\n\t\t\t\"AncillaryId\": 3,\r\n\t\t\t\"IsPurchased\": true,\r\n\t\t\t\"QuotedAncillaryAmount\": 86.12,\r\n\t\t\t\"QuotedVendorAmount\": 0,\r\n\t\t\t\"IsChooseYourSeatOpted\": false,\r\n\t\t\t\"AncillaryStatusId\": 1,\r\n\t\t\t\"AncillaryDetails\": \"Flexible Ticket Fare\"\r\n\t\t},\r\n\t\t{\r\n\t\t\t\"AncillaryId\": 4,\r\n\t\t\t\"IsPurchased\": true,\r\n\t\t\t\"QuotedAncillaryAmount\": 11.95,\r\n\t\t\t\"QuotedVendorAmount\": 0,\r\n\t\t\t\"IsChooseYourSeatOpted\": false,\r\n\t\t\t\"AncillaryStatusId\": 1,\r\n\t\t\t\"AncillaryDetails\": \"Premium\"\r\n\t\t},\r\n\t\t{\r\n\t\t\t\"AncillaryId\": 5,\r\n\t\t\t\"IsPurchased\": true,\r\n\t\t\t\"QuotedAncillaryAmount\": 5.99,\r\n\t\t\t\"QuotedVendorAmount\": 0,\r\n\t\t\t\"IsChooseYourSeatOpted\": false,\r\n\t\t\t\"AncillaryStatusId\": 1,\r\n\t\t\t\"AncillaryDetails\": \"Price Drop Assurance\"\r\n\t\t},\r\n\t\t{\r\n\t\t\t\"AncillaryId\": 6,\r\n\t\t\t\"IsPurchased\": false,\r\n\t\t\t\"QuotedAncillaryAmount\": 19.99,\r\n\t\t\t\"QuotedVendorAmount\": 0,\r\n\t\t\t\"IsChooseYourSeatOpted\": false,\r\n\t\t\t\"AncillaryStatusId\": 1,\r\n\t\t\t\"AncillaryDetails\": \"Purchase Guarantee Fare\"\r\n\t\t},\r\n\t\t{\r\n\t\t\t\"AncillaryId\": 7,\r\n\t\t\t\"IsPurchased\": true,\r\n\t\t\t\"QuotedAncillaryAmount\": 10.95,\r\n\t\t\t\"QuotedVendorAmount\": 0,\r\n\t\t\t\"IsChooseYourSeatOpted\": false,\r\n\t\t\t\"AncillaryStatusId\": 1,\r\n\t\t\t\"AncillaryDetails\": \"Automatic CheckIn Fare\"\r\n\t\t},\r\n\t\t{\r\n\t\t\t\"AncillaryId\": 2,\r\n\t\t\t\"IsPurchased\": true,\r\n\t\t\t\"QuotedAncillaryAmount\": 13.95,\r\n\t\t\t\"QuotedVendorAmount\": 0,\r\n\t\t\t\"IsChooseYourSeatOpted\": false,\r\n\t\t\t\"AncillaryStatusId\": 1,\r\n\t\t\t\"SeatRequest\": [\r\n\t\t\t\t{\r\n\t\t\t\t\t\"SegmentNo\": 1,\r\n\t\t\t\t\t\"SelectedSeats\": [\r\n\t\t\t\t\t\t\"36A_0\"\r\n\t\t\t\t\t],\r\n\t\t\t\t\t\"PaxCount\": 1,\r\n\t\t\t\t\t\"SubTotalAmnt\": \"0.00\",\r\n\t\t\t\t\t\"SelectedSeatsNames\": \"36A,\",\r\n\t\t\t\t\t\"SeatAssignmentFee\": 13.95\r\n\t\t\t\t},\r\n\t\t\t\t{\r\n\t\t\t\t\t\"SegmentNo\": 2,\r\n\t\t\t\t\t\"SelectedSeats\": [],\r\n\t\t\t\t\t\"PaxCount\": 1,\r\n\t\t\t\t\t\"SubTotalAmnt\": 0,\r\n\t\t\t\t\t\"SelectedSeatsNames\": \"\",\r\n\t\t\t\t\t\"SeatAssignmentFee\": 13.95\r\n\t\t\t\t}\r\n\t\t\t]\r\n\t\t}\r\n\t],\r\n\t\"IsAncillariesEnabled\": true,\r\n\t\"UserID\": 100423,\r\n\t\"TripId\": \"1014276174\",\r\n\t\"ProductId\": \"10142761740101\",\r\n\t\"SupportUserSelectedCorpAccId\": 68611,\r\n\t\"SuppUserSelectedUserId\": 70960,\r\n\t\"SuppUserSelectedMobileUserId\": \"C7A55C2F-A538-4658-9D7E-44B2240F1101\",\r\n\t\"SuppUserSelectdUserConsoId\": 9173,\r\n\t\"SuppUserSlctdUserAcntType\": \"A\",\r\n\t\"suppUserSelectdEmailId\": \"qaagency6@mmgs.com\",\r\n\t\"SuppUserSelectdUserDkNumber\": \"T142784\",\r\n\t\"SelectedCustomer\": {\r\n\t\t\"distribution\": \"TripPro US\",\r\n\t\t\"platform\": \"TripPro\",\r\n\t\t\"customerId\": \"2cbfed39-06e2-434c-9912-6568572eaf34\",\r\n\t\t\"dkNumber\": \"T142784\",\r\n\t\t\"customerName\": \"qaagency 6\",\r\n\t\t\"phoneNumber\": \"5495985985\",\r\n\t\t\"email\": \"qaagency6@mmgs.com\",\r\n\t\t\"consolidatorId\": 9173,\r\n\t\t\"agentId\": \"911d48e1-6ab6-4a62-a507-1d62154782e6\",\r\n\t\t\"agentName\": \"b2buat\",\r\n\t\t\"agentPhone\": \"7836587456\",\r\n\t\t\"agentEmail\": \"b2bqaagencyuatall@mailinator.com\"\r\n\t},\r\n\t\"Customer\": {\r\n\t\t\"platform\": \"TripPro\",\r\n\t\t\"customerId\": null,\r\n\t\t\"agentId\": \"911d48e1-6ab6-4a62-a507-1d62154782e6\",\r\n\t\t\"agentName\": \"b2buat\",\r\n\t\t\"agentPhone\": \"7836587456\",\r\n\t\t\"agentEmail\": \"b2bqaagencyuatall@mailinator.com\",\r\n\t\t\"siteId\": \"\",\r\n\t\t\"siteName\": \"\"\r\n\t},\r\n\t\"UserInfo\": {\r\n\t\t\"userId\": \"481c4828-b81c-407a-a40a-8b10000c6892\",\r\n\t\t\"userName\": \"b2bqaagencyuatall@mailinator.com\",\r\n\t\t\"userType\": \"Agent\",\r\n\t\t\"profileType\": \"AgentProfile\",\r\n\t\t\"platform\": \"TripPro\",\r\n\t\t\"firstName\": \"b2buat\",\r\n\t\t\"lastName\": \"all\"\r\n\t}\r\n}"
headers= {}
response = requests.request("GET", url, headers=headers, data = payload)
print(response.text.encode('utf8'))
var settings = {
"url": "",
"method": "GET",
"timeout": 0,
"data": "{\r\n\t\"Pnr\": \"YAERYD\",\r\n\t\"ItineraryTotalAmount\": 649.9,\r\n\t\"AncillariesFare\": 153.80999999999997,\r\n\t\"ItineraryReferenceNum\": \"\",\r\n\t\"PaxInfo\": [\r\n\t\t\"1.1\"\r\n\t],\r\n\t\"Ancillaries\": [\r\n\t\t{\r\n\t\t\t\"AncillaryId\": 3,\r\n\t\t\t\"IsPurchased\": true,\r\n\t\t\t\"QuotedAncillaryAmount\": 86.12,\r\n\t\t\t\"QuotedVendorAmount\": 0,\r\n\t\t\t\"IsChooseYourSeatOpted\": false,\r\n\t\t\t\"AncillaryStatusId\": 1,\r\n\t\t\t\"AncillaryDetails\": \"Flexible Ticket Fare\"\r\n\t\t},\r\n\t\t{\r\n\t\t\t\"AncillaryId\": 4,\r\n\t\t\t\"IsPurchased\": true,\r\n\t\t\t\"QuotedAncillaryAmount\": 11.95,\r\n\t\t\t\"QuotedVendorAmount\": 0,\r\n\t\t\t\"IsChooseYourSeatOpted\": false,\r\n\t\t\t\"AncillaryStatusId\": 1,\r\n\t\t\t\"AncillaryDetails\": \"Premium\"\r\n\t\t},\r\n\t\t{\r\n\t\t\t\"AncillaryId\": 5,\r\n\t\t\t\"IsPurchased\": true,\r\n\t\t\t\"QuotedAncillaryAmount\": 5.99,\r\n\t\t\t\"QuotedVendorAmount\": 0,\r\n\t\t\t\"IsChooseYourSeatOpted\": false,\r\n\t\t\t\"AncillaryStatusId\": 1,\r\n\t\t\t\"AncillaryDetails\": \"Price Drop Assurance\"\r\n\t\t},\r\n\t\t{\r\n\t\t\t\"AncillaryId\": 6,\r\n\t\t\t\"IsPurchased\": false,\r\n\t\t\t\"QuotedAncillaryAmount\": 19.99,\r\n\t\t\t\"QuotedVendorAmount\": 0,\r\n\t\t\t\"IsChooseYourSeatOpted\": false,\r\n\t\t\t\"AncillaryStatusId\": 1,\r\n\t\t\t\"AncillaryDetails\": \"Purchase Guarantee Fare\"\r\n\t\t},\r\n\t\t{\r\n\t\t\t\"AncillaryId\": 7,\r\n\t\t\t\"IsPurchased\": true,\r\n\t\t\t\"QuotedAncillaryAmount\": 10.95,\r\n\t\t\t\"QuotedVendorAmount\": 0,\r\n\t\t\t\"IsChooseYourSeatOpted\": false,\r\n\t\t\t\"AncillaryStatusId\": 1,\r\n\t\t\t\"AncillaryDetails\": \"Automatic CheckIn Fare\"\r\n\t\t},\r\n\t\t{\r\n\t\t\t\"AncillaryId\": 2,\r\n\t\t\t\"IsPurchased\": true,\r\n\t\t\t\"QuotedAncillaryAmount\": 13.95,\r\n\t\t\t\"QuotedVendorAmount\": 0,\r\n\t\t\t\"IsChooseYourSeatOpted\": false,\r\n\t\t\t\"AncillaryStatusId\": 1,\r\n\t\t\t\"SeatRequest\": [\r\n\t\t\t\t{\r\n\t\t\t\t\t\"SegmentNo\": 1,\r\n\t\t\t\t\t\"SelectedSeats\": [\r\n\t\t\t\t\t\t\"36A_0\"\r\n\t\t\t\t\t],\r\n\t\t\t\t\t\"PaxCount\": 1,\r\n\t\t\t\t\t\"SubTotalAmnt\": \"0.00\",\r\n\t\t\t\t\t\"SelectedSeatsNames\": \"36A,\",\r\n\t\t\t\t\t\"SeatAssignmentFee\": 13.95\r\n\t\t\t\t},\r\n\t\t\t\t{\r\n\t\t\t\t\t\"SegmentNo\": 2,\r\n\t\t\t\t\t\"SelectedSeats\": [],\r\n\t\t\t\t\t\"PaxCount\": 1,\r\n\t\t\t\t\t\"SubTotalAmnt\": 0,\r\n\t\t\t\t\t\"SelectedSeatsNames\": \"\",\r\n\t\t\t\t\t\"SeatAssignmentFee\": 13.95\r\n\t\t\t\t}\r\n\t\t\t]\r\n\t\t}\r\n\t],\r\n\t\"IsAncillariesEnabled\": true,\r\n\t\"UserID\": 100423,\r\n\t\"TripId\": \"1014276174\",\r\n\t\"ProductId\": \"10142761740101\",\r\n\t\"SupportUserSelectedCorpAccId\": 68611,\r\n\t\"SuppUserSelectedUserId\": 70960,\r\n\t\"SuppUserSelectedMobileUserId\": \"C7A55C2F-A538-4658-9D7E-44B2240F1101\",\r\n\t\"SuppUserSelectdUserConsoId\": 9173,\r\n\t\"SuppUserSlctdUserAcntType\": \"A\",\r\n\t\"suppUserSelectdEmailId\": \"qaagency6@mmgs.com\",\r\n\t\"SuppUserSelectdUserDkNumber\": \"T142784\",\r\n\t\"SelectedCustomer\": {\r\n\t\t\"distribution\": \"TripPro US\",\r\n\t\t\"platform\": \"TripPro\",\r\n\t\t\"customerId\": \"2cbfed39-06e2-434c-9912-6568572eaf34\",\r\n\t\t\"dkNumber\": \"T142784\",\r\n\t\t\"customerName\": \"qaagency 6\",\r\n\t\t\"phoneNumber\": \"5495985985\",\r\n\t\t\"email\": \"qaagency6@mmgs.com\",\r\n\t\t\"consolidatorId\": 9173,\r\n\t\t\"agentId\": \"911d48e1-6ab6-4a62-a507-1d62154782e6\",\r\n\t\t\"agentName\": \"b2buat\",\r\n\t\t\"agentPhone\": \"7836587456\",\r\n\t\t\"agentEmail\": \"b2bqaagencyuatall@mailinator.com\"\r\n\t},\r\n\t\"Customer\": {\r\n\t\t\"platform\": \"TripPro\",\r\n\t\t\"customerId\": null,\r\n\t\t\"agentId\": \"911d48e1-6ab6-4a62-a507-1d62154782e6\",\r\n\t\t\"agentName\": \"b2buat\",\r\n\t\t\"agentPhone\": \"7836587456\",\r\n\t\t\"agentEmail\": \"b2bqaagencyuatall@mailinator.com\",\r\n\t\t\"siteId\": \"\",\r\n\t\t\"siteName\": \"\"\r\n\t},\r\n\t\"UserInfo\": {\r\n\t\t\"userId\": \"481c4828-b81c-407a-a40a-8b10000c6892\",\r\n\t\t\"userName\": \"b2bqaagencyuatall@mailinator.com\",\r\n\t\t\"userType\": \"Agent\",\r\n\t\t\"profileType\": \"AgentProfile\",\r\n\t\t\"platform\": \"TripPro\",\r\n\t\t\"firstName\": \"b2buat\",\r\n\t\t\"lastName\": \"all\"\r\n\t}\r\n}",
};
$.ajax(settings).done(function (response) {
console.log(response);
});
<?php
require_once 'HTTP/Request2.php';
$request = new HTTP_Request2();
$request->setUrl('');
$request->setMethod(HTTP_Request2::METHOD_GET);
$request->setConfig(array(
'follow_redirects' => TRUE
));
$request->setBody('{
\n "Pnr": "YAERYD",
\n "ItineraryTotalAmount": 649.9,
\n "AncillariesFare": 153.80999999999997,
\n "ItineraryReferenceNum": "",
\n "PaxInfo": [
\n "1.1"
\n ],
\n "Ancillaries": [
\n {
\n "AncillaryId": 3,
\n "IsPurchased": true,
\n "QuotedAncillaryAmount": 86.12,
\n "QuotedVendorAmount": 0,
\n "IsChooseYourSeatOpted": false,
\n "AncillaryStatusId": 1,
\n "AncillaryDetails": "Flexible Ticket Fare"
\n },
\n {
\n "AncillaryId": 4,
\n "IsPurchased": true,
\n "QuotedAncillaryAmount": 11.95,
\n "QuotedVendorAmount": 0,
\n "IsChooseYourSeatOpted": false,
\n "AncillaryStatusId": 1,
\n "AncillaryDetails": "Premium"
\n },
\n {
\n "AncillaryId": 5,
\n "IsPurchased": true,
\n "QuotedAncillaryAmount": 5.99,
\n "QuotedVendorAmount": 0,
\n "IsChooseYourSeatOpted": false,
\n "AncillaryStatusId": 1,
\n "AncillaryDetails": "Price Drop Assurance"
\n },
\n {
\n "AncillaryId": 6,
\n "IsPurchased": false,
\n "QuotedAncillaryAmount": 19.99,
\n "QuotedVendorAmount": 0,
\n "IsChooseYourSeatOpted": false,
\n "AncillaryStatusId": 1,
\n "AncillaryDetails": "Purchase Guarantee Fare"
\n },
\n {
\n "AncillaryId": 7,
\n "IsPurchased": true,
\n "QuotedAncillaryAmount": 10.95,
\n "QuotedVendorAmount": 0,
\n "IsChooseYourSeatOpted": false,
\n "AncillaryStatusId": 1,
\n "AncillaryDetails": "Automatic CheckIn Fare"
\n },
\n {
\n "AncillaryId": 2,
\n "IsPurchased": true,
\n "QuotedAncillaryAmount": 13.95,
\n "QuotedVendorAmount": 0,
\n "IsChooseYourSeatOpted": false,
\n "AncillaryStatusId": 1,
\n "SeatRequest": [
\n {
\n "SegmentNo": 1,
\n "SelectedSeats": [
\n "36A_0"
\n ],
\n "PaxCount": 1,
\n "SubTotalAmnt": "0.00",
\n "SelectedSeatsNames": "36A,",
\n "SeatAssignmentFee": 13.95
\n },
\n {
\n "SegmentNo": 2,
\n "SelectedSeats": [],
\n "PaxCount": 1,
\n "SubTotalAmnt": 0,
\n "SelectedSeatsNames": "",
\n "SeatAssignmentFee": 13.95
\n }
\n ]
\n }
\n ],
\n "IsAncillariesEnabled": true,
\n "UserID": 100423,
\n "TripId": "1014276174",
\n "ProductId": "10142761740101",
\n "SupportUserSelectedCorpAccId": 68611,
\n "SuppUserSelectedUserId": 70960,
\n "SuppUserSelectedMobileUserId": "C7A55C2F-A538-4658-9D7E-44B2240F1101",
\n "SuppUserSelectdUserConsoId": 9173,
\n "SuppUserSlctdUserAcntType": "A",
\n "suppUserSelectdEmailId": "qaagency6@mmgs.com",
\n "SuppUserSelectdUserDkNumber": "T142784",
\n "SelectedCustomer": {
\n "distribution": "TripPro US",
\n "platform": "TripPro",
\n "customerId": "2cbfed39-06e2-434c-9912-6568572eaf34",
\n "dkNumber": "T142784",
\n "customerName": "qaagency 6",
\n "phoneNumber": "5495985985",
\n "email": "qaagency6@mmgs.com",
\n "consolidatorId": 9173,
\n "agentId": "911d48e1-6ab6-4a62-a507-1d62154782e6",
\n "agentName": "b2buat",
\n "agentPhone": "7836587456",
\n "agentEmail": "b2bqaagencyuatall@mailinator.com"
\n },
\n "Customer": {
\n "platform": "TripPro",
\n "customerId": null,
\n "agentId": "911d48e1-6ab6-4a62-a507-1d62154782e6",
\n "agentName": "b2buat",
\n "agentPhone": "7836587456",
\n "agentEmail": "b2bqaagencyuatall@mailinator.com",
\n "siteId": "",
\n "siteName": ""
\n },
\n "UserInfo": {
\n "userId": "481c4828-b81c-407a-a40a-8b10000c6892",
\n "userName": "b2bqaagencyuatall@mailinator.com",
\n "userType": "Agent",
\n "profileType": "AgentProfile",
\n "platform": "TripPro",
\n "firstName": "b2buat",
\n "lastName": "all"
\n }
\n}');
try {
$response = $request->send();
if ($response->getStatus() == 200) {
echo $response->getBody();
}
else {
echo 'Unexpected HTTP status: ' . $response->getStatus() . ' ' .
$response->getReasonPhrase();
}
}
catch(HTTP_Request2_Exception $e) {
echo 'Error: ' . $e->getMessage();
}
Response JSON
{ "result": true }
Result: "True” means the ancillary updated successfully. Response if Ancillary Not Updated { "error": "Please send a valid request." } Error: error message will be displayed.
Request Message Elements
Tag | Parameter | Description | Format | Examples | Required |
---|---|---|---|---|---|
PNR | PNR | STRING | QWERTY | Yes | |
"Ancillaries | "AncillaryId" | identification of ancillary type | Number | "AncillaryId"-3:Flexible Ticket, "AncillaryId"-4:Premium", "AncillaryId"-2Seat Selection,"AncillaryId"-5:"Price Drop Assurance", "AncillaryId"-6:"Purchase Guarantee Fare", "AncillaryId"-7:Automatic CheckIn Fare" | Yes |
"Is Purchased Purchase value | String | True- Ancillary already purchased False-Purchase now | Yes | ||
"QuotedAncillaryAmount":Ancillary amount | Number | ex:10.95,19.99 | Yes | ||
Ancillary Status": | String | ||||
"IsAncillariesEnabled | Ancillaries enabled or not | String | EX:TRUE-ancillarary are enable False-Ancillaries are not enabled | Yes | |
"AncillaryDetails" | Name of Ancillary | String ex:automatic check in,flexible ticket | Yes | ||
Selected Customer | Selected Customer Object | Selected Customer Object Consisted Of distribution,platform,customerId,dkNumber,customerName,phoneNumber,email,consolidatorId,agentId,agentName,agentPhone,agentEmail | String | "distribution": "TripPro US","platform": "TripPro","customerId": "2cbfed39-06e2-434c-9912-6568572eaf34","dkNumber": "T142784","customerName": "qaagency 6", "phoneNumber": "5495985985", "email": "qaagency6@mmgs.com", "consolidatorId": 9173, "agentId": "911d48e1-6ab6-4a62-a507-1d62154782e6", "agentName": "b2buat", "agentPhone": "7836587456", "agentEmail": "b2bqaagencyuatall@mailinator.com" | Yes |
Customer | Customer | "Customer Object Consisted Of platform,customerId,agentId,agentName,agentPhone,agentEmail,SiteId,Site name. | String | { "platform": "TripPro", "customerId": null, "agentId": "911d48e1-6ab6-4a62-a507-1d62154782e6", "agentName": "b2buat","agentPhone": "7836587456", "agentEmail": "b2bqaagencyuatall@mailinator.com", "siteId": "", "siteName": "" }, | Yes |
User Info | User Info | User Info Consisted of User Info Object consist of User Id,User name, User Type,Profile Type ,platform,first name,last name | String | { "userId": "481c4828-b81c-407a-a40a-8b10000c6892", "userName": "b2bqaagencyuatall@mailinator.com", "userType": "Agent","profileType": "AgentProfile","platform": "TripPro", "firstName": "b2buat", "lastName": "all"}} | Yes |
References
Web Service EndPoint
URL:http://api.trippro.com/v2/Operations/Pnr/updateAncillaries
FAQ’S
Q. How to bypass IP restriction to access trippro API as our server IP's will change dynamically?
We will be providing you a Search Token upon request
Q. How to add multiple credit cards?
Currently it’s not possible to book with 2 credit Cards.
Q. How to do payment for hold itinerary?
Mondee Accounts team will contact the customer and proceed accordingly.
Q. Is the check number mandatory for Check details payment?
Yes, and it should be 5 Digits (Ex: ABCDE).
Q. How to check Low fare to the ticketed one?
There is no option
Q. We need to have full access to the PNR's which are booked through trip pro API for Indian eagle IPCC's in Amadeus & Sabre GDS?
Upon request, we will provide Mondee user id and password so that customers can see the tickets booked history.
Q. How to handle Schedule change? Do we have any queue where we can read all schedule change PNR’s?
We have a dedicated Service team in Mondee and it will be done manually by speaking to the Agent.
Q. How to handle Change of date?
We have a dedicated Service team in Mondee and it will be done manually by speaking to the Agent.
Q. Why fare increased not returning when invoking reprice itinerary multiple times?
Reprice will retrieve the latest price from the Service and will return as "Invalid literary" by providing a new literary ID.
Q. Not getting the number of seats left in each segment from rest search API?
It’s not possible.
Q. Not getting surcharges from rest search API?
It’s not possible.
Q. Not getting whether itinerary is refundable or non-refundable from rest search API?
It’s not possible.
Q. Not getting the Last ticketing date from rest search API?
We can retrieve it through Read PNR.
Q. The count of requests for Search Restful API is 120 per second. Could you add the number for our client id if it is not enough?
Yes
Q. What is the format of fare Basis Code when the segment contains morethan one fare basis Code?
We will not pass any farebasis code in search API (in response will get multiple fare basis codes based on class ex: "FareBasisCode": "RVOLA").
Q. What is the unit of baggage Allowance, piece or KG?
We will return with 1P or 2P or 3P.
Q. What is the meaning of "CC fee”?
Is it useful or helpful for us? It’s the Credit Card Fee which will be issued by the Gateway (It's purely airline end fee and it will for few airlines only).
Q. What is the meaning of "FullFare", is it useful or helpful for us? And the difference with "Base_fare”?
Full Fare is the Total Fare amount for that particular literary.
Q. Is cabin class the same or different in Round trip and Multi-City search?
Yes you need to give the same cabin class for RT and MC search.
Q. Will the price of a single passenger change with the same booking class?
Yes.
Q. When will the guest's price change?
It depends on the GDS when we request Reprice.
Q. Could we set fares with error prices or with null? (Sometimes the guests have a PNR with details of flights and pax count (without price information) and they want to know the cheapest price with the specified flights and pax count.Do Reprice API will be able to provide the required information?
Not in Reprice
Q. Is the PNR code in response data belong to the GDS or airlines?
GDS
Q. How many types of status are there of the "SegStatus"? And which of them are available status?
HK Holds confirmed can issue tickets on this.
KK Carrier confirmed need to change to HK
KL Waitlist confirmed need to change to HK
Q. We need to check the status of every segment before our guests pay for their orders. Only with the status of every segment is available our guests can pay for it. Is the Read PNR API could deal with it?
No
Q. The response data of Read PNR API don't contains SSR_Code of children and infants, did you have checked it?
SSR Codes (DOB, Gender, and Passport) will be available in ReadPNR response.
Q. How many types of status in response data? And which of them represents cancel succeed? How could we deal with other status?
The message will show 'No Itinerary' UC Unable conf. or wait Need to cancel from GDS UN Unable - no flight Need to cancel from GDS US Unable to sell Need to cancel from GDS
Q. According to our current process of the API connection with other suppliers, we only have four steps: Flight Search, Flight Booking, Order Ticket, Read Ticket So we are wondering do we need to use all the APIinterface according to your API document ?
Yes.
Q. All the interface in the lateset API document is just for our test or they are the production environment for normally use?If they are the production environment, can you provide the test interface environment for us ?
Yes.
Q. Can you please let me know what the different Status available in Read eTicket API are?
CREDIT CARD DENIAL - When the credit card was declined or denial or exceeds withdrawal or card not accepted REQUEST IS IN PROGRESS,
PLEASE WAIT. - Ticketing request initiated, but not yet ticketed or failed
TICKET NOT GENERATED - When the ticket numbers not generated.
PNR CANCELLED ALREADY - When the PNR already cancelled.
TICKET NUMBER GENERATED - When the ticket numbers generated.
Q. My Company has dynamic IPs and these will change every time. How to proceed with the API Integration for Mondee API?
We will be providing you a Search Token upon request
Q. How to get the price details for the Valid literary?
Upon request, we will provide you the details of price by making configuration changes internal to Mondee.
Q. How to get the search responses within 6 sec?
We need to configure a few changes in our internal system to make it happen. Please send out an email to API XXXXX for the same so that we will look into this.
Q. Does the Flight Search API have any return of the remaining seats corresponding to the Flight space?
No.
Q. Is there any limit for the origin and destination dates?
Yes we are giving search results up to 333 days only.
Q. How to add multiple passenger details in booking requests?
Just copy and paste the parameters respective of age (ex: If you want to add adult2 details just you need to copy and paste adult parameters only)
Q. Why my API price is greater than the Mondee price?
Because, we add CC Fee as at the time of the search.
Q. Did the Search API will return the number of seats remaining?
No
Q. Could you return the IPCC of Itinerary?
No
Q. Can you explain what does it mean "158LCM" ?
L means Length , CM means Centimeters , 158 length in Centimeters
Run In Postman
Here we are gonna put the content about how to use Postman (or) about Postman