NAV Navbar
python Perl ruby javascript php
  • Mondee API Documentation
  • Introduction
  • Flight Search REST API
  • Reprice Itinerary API
  • Flight Booking API
  • Fare Rules API
  • References
  • Read PNR API
  • Order Ticket API
  • Read E-Ticket API
  • Cancel PNR API
  • New Read_PNR/E-Ticket API
  • New Cancel PNR API
  • New Booking API with_Ancillaries
  • New Seat Map
  • Special Services
  • FAQ’S
  • Run In Postman
    • Run in Postman
  • 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

    Audience

    Audience is all about to whom we are representing this

    The audience for this specification includes:

    Mondee API Process Flow

    flow chart

    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

    Click to Copy
    
    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 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
    >> Email 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

    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
    >> Email 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
    >> Email 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
    >Email 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
    Email Email 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.

    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

    Run in Postman

    Here we are gonna put the content about how to use Postman (or) about Postman