Documentation - Flight

Overview

Search & Pricing
API: Extreme Search For applications that assemble the best deals, you can check prices quickly across a large combination of dates
Customer/App: Dated Search Once the dates of a trip are known, you can now search for more exact prices on the correct dates
API: SearchFlightAvailability This takes longer than calendar search as it checks live pricing across dozens of airlines
Booking
Customer/App: Flight Selected Once a flight is selected, you can give your customer a URL for booking that option on CheapoAir, or you can complete the booking in your app/website.
API: FlightVerification If you want to complete the booking, this step will contact the airline supplier directly to reconfirm the availability and pricing.
API: FareRules This API generates the required legalese to which the customer must agree before booking a flight.
API: Booking With credit card details you can now book the flight.
API: Post Booking After a flight is booked, the itinerary details and status can be retrieved.

Security Authorization Header

The API authenticates all requests via an http header. You must calculate the header authorization credential from your Fareportal username and password by creating a Base64 string encoding of username + ":" + password. The expected headers are:

  • "Authorization", "Basic 78fp9NfdTV23IF5fdsGVHJ5V9jioHjk9" (Base64 of username:password)
  • "Content-Type", "application/json"

Here is sample .NET code for creating the credential and adding the headers to a request:


string username = "Your username";
string password = "Your password";

string svcCredentials = Convert.ToBase64String(ASCIIEncoding.ASCII.GetBytes(username + ":" + password));

request.Headers.Add("Authorization", "Basic " + svcCredentials);
request.Headers.Add("Content-Type", "application/json");
    

Search API Target and Method

The API expects a POST request to the following URL:
https://api-dev.fareportallabs.com/air/api/search/searchflightavailability

The request body should contain the below parameters:

Request Properties

Field Expected values Req'd Example value
Adults 0-9 (passengers age 25+) Yes 1
Child 0-8 (age 2-15) No 1
Seniors 0-9 (age 65+) No 1
InfantOnSeat 0-5 (age 0-2) No 1
InfantInLap 0-4 (age 0-2, no seat) No 1
Youths 0-9 (age 16-25) No 1
TypeOfTrip ROUNDTRIP | ONEWAYTRIP | OPENJAW | MULTICITY Yes "ROUNDTRIP"
ClassOfService ECONOMY | BUSINESS | FIRST Yes "FIRST"
ResponseVersion VERSION41 (API version) Yes "VERSION41"
SegmentDetails Array of SegmentDetail objects (see below for SegmentDetail object spec) Yes "[ { "Origin": "NYC", "Destination": "LON", "DepartureDate": "", "DepartureTime": "1100" }, { "Origin": "LON", "Destination": "NYC", "DepartureDate": "", "DepartureTime": "1100" } ]"
SearchAlternateDates true | false No "true"

Segment Details Array Elements

Field Expected values Req'd Example value
Origin 3-letter IATA code Yes "NYC"
Destination 3-letter IATA code Yes "CLT"
DepartureDate yyyy-mm-dd or dd-mm-yyyy Yes "" or ""
DepartureTime HHMM Yes "1100"

Validations

  • The maximum number of passengers is 9 and must include one adult or senior.
  • InfantInLap cannot exceed Adults + Seniors.
  • There is a maximum of two infants (InfantInLap or InfantOnSeat) per Adult/Senior.
  • DepartureDate is today or later.
  • The first segment’s DepartureDate is no more than 11 months in the future.
  • The maximum number of segments is 6 for MultiCity, and 1 or 2 otherwise.

Example POST Request Body:


{
"ResponseVersion": "VERSION41",
"FlightSearchRequest": {
    "Adults": "1",
    "Child": "0",
    "ClassOfService": "ECONOMY",
    "InfantInLap": "0",
    "InfantOnSeat": "0",
    "Seniors": "0",
    "TypeOfTrip": "ROUNDTRIP",
    "SegmentDetails": [
                            {
                            "DepartureDate": "",
                            "DepartureTime": "1100",
                            "Destination": "NYC",
                            "Origin": "LON"
                            },
                            {
                            "DepartureDate": "",
                            "DepartureTime": "1100",
                            "Destination": "LON",
                            "Origin": "NYC"
                            }
                        ]
                    }
    }
  


Reading Server Response

Following response received from the method “SearchFlightAavailability” :

Attribute Type Description
FPFlightSearchResponse This the wrapper class of the response.
FpSearchAirLowFaresRS In this type whole response resides
CardFeeDetails This property contains the booking charges for types of the card: Fee, Source and Type.
CheapestFare float This property contains cheapest fare if any.
CntKey string This is the unique key for every contract.
CurrencyCode string This field lets you know the currency type like USD, rupee.
FlexiOption FPFlexiOption If flexibility available for any flight then this field contains -DepartureDate, ReturnDate, Fare.
OriginDestinationOptions FPOriginDestinationOptionsV2 there are 2 options – Inbound option and outbound option.
InBoundOption FPInBoundOptions This field contains incoming flight segment details.
OutBoundOption FPOutBoundOption This field contains outgoing flight segment details.
FlightSegment FPFlightSegment This field contains all information about the flight as follows:
  1. ArrivalAirport (type of FPArrivalAirport):
  2. Destination Airport.

  3. DepartureAirport (type of FPDepartureAirport):
  4. Source Airport.

  5. Equipment (type of FPEquipment):
  6. type of Equipment

  7. FlightCabin (type of FPFlightCabin):
  8. Contains cabin type in the flight.

  9. FlightClass (type of FPFlightClass):
  10. Class of Flight

  11. MarketingAirline (type of FPMarketingAirline):
  12. Marketing Airline code

  13. OperatedByAirline (type of FPOperatedByAirline):
  14. Code of Airline operating the flight

  15. Flight (type of FPFlight):
  16. type fo flight. O/I O: outbound, I: Inbound

  17. OpaqueType (type of string):
  18. Opaq type possible values -1,0,1,2,3,4.

    • If value is >-1 hide the airline details, else show flight details.
  19. ShowBaggageAlert (type of bool) :
  20. show baggage alert otherwise not.

  21. StopAirports (type of StopDetails) :
  22. information about stopage.

  23. FlightNumber (type of string) :
  24. flight number.

  25. DepartureDateTime (type of string):
  26. flight leaving date time.

  27. ArrivalDateTime (type of string):
  28. date of arrival at destination.

  29. FlightDuration (type of string):
  30. Time taken by flight.

  31. FDType (type of string):
  32. Possible Values S/T

    • If S then flight duration is specific to flight
    • If T then flight duration is duration of Trip

  33. StopQuantity (type of int):
  34. how many times flight stops for technical needs.

  35. RPH (type of int)
SegmentReference FPSegmentReference This property is referenced to Flight Segment consist of following information:
  1. PTC_FareBreakdown type of (FPFareBreakdown):
  2. It contains passengers fares breakups.
  3. InBoundOptionId type of (string)
  4. OutBoundOptionId type of (string)
  5. TaxCode type of (FPFareBreakdown)
TAAmount float Travel assistance amount.
  1. VerificationEngines type of(string):
  2. This field will tell what are the engines require verification.
  3. CurrencySpecified type of(boolean):
  4. This filed will tell you whether currency is specified or not.
  5. IsSearchCompleted type of(boolean):
  6. This indicates the search was completed or not.
  7. ContractIdsToDrop type if(Int):
  8. This is a list of Contract ids which indicates what are the contracts will be dropped.

JSON Sample Response:

Please refer detailed response attached herewith.

   One way trip Response - Click here

   Round trip Response - Click here


Reading Server Errors Response

In order to ascertain a valid response, the FPWebBox application must be provided with correct request. In case of errors, we’ve some set of error codes and descriptions to be sent in response.

Sample JSON Error Response:


{
    "FlightResponse": {
        "FpSearch_AirLowFaresRS": null,
        "ErrorReport": {
            "ErrorCode": "FPWB A9107",
            "ErrorDescription": "Please select atleast one adult or senior."
                        }
                    },
    "IsSearchCompleted": false,
    "ContractIdsToDrop": null,
    "ServerName": "UCSABCTXTECH25V"
}

See Error Codes for more detailed description on Errors



Farerule API Target and Method

The API expects a POST request to the following URL:
https://api-dev.fareportallabs.com/air/api/book/getfarerule

The request body should contain the below parameters:
Attribute Type Description
ContractId Int32 This is an int mandatory field. Every Contract received in the Search, is decorated with unique id is called ContractId. Assign ContractId in this field to verify selected contract.
ContractLocatorKey String This is a string mandatory field, every Search result is decorated with single unique key which is called “ContractLocatorKey”. It needs to be set here to begin the verification.

Request snippet:

{
"FlightFareRuleRQ":
    {
        "ContractId": "1973",
        "ContractLocatorKey": "702f57dd-066d-4c08-b938-3b88d601a29f"
    }
}


Reading Server Response

Following response received from the method “GetFareRule”:


"FareRules": "

Norwegian Air Shuttle rule

(50)----1
RU.RULE APPLICATION
NORWEGIAN OW/RT INTERNATIONAL ECONOMY CLASS RESTRICTED FARES
APPLICATION
AREA
THESE FARES APPLY
BETWEEN SCANDINAVIA AND AREA 1.
CLASS OF SERVICE
THESE FARES APPLY FOR ECONOMY CLASS SERVICE.
TYPES OF TRANSPORTATION
FARES GOVERNED BY THIS RULE CAN BE USED TO CREATE
ONE-WAY/ROUND-TRIP JOURNEYS.
OTHER CONDITIONS
FARE INCLUDES ADVANCE SEAT RESERVATION / MEAL
SERVICE ONBOARD / 2 X 20 KG CHECKED BAG.
(6)----2
MN.MIN STAY
NO RESTRICTIONS
(7)----3
MX.MAX STAY
NO RESTRICTIONS
(3)----4
SE.SEASONS
APPLIES ALL YEAR
(11)----5
BO.BLACKOUTS
NONE
(2)----6
DA.DAY/TIME
NO RESTRICTIONS
(14)----8
TR.TVL RESTRICTION
NO RESTRICTIONS
(5)----9
AP.ADVANCE RES/TKT

RESERVATIONS FOR ALL SECTORS AND TICKETING MUST BE
COMPLETED AT THE SAME TIME.
(4)----10
FL.FLT APPLICATION

THE FARE COMPONENT MUST BE ON
ONE OR MORE OF THE FOLLOWING
ANY DY FLIGHT.
(8)----15
SO.STOPOVERS

NO STOPOVERS PERMITTED.
(9)----16
TF.TRANSFERS/RTGS

NO TRANSFERS PERMITTED
FARE BREAK AND EMBEDDED SURFACE SECTORS NOT PERMITTED ON
THE FARE COMPONENT.
(12)----17
SU.SURCHARGES
BETWEEN EUROPE AND AREA 1

THE PROVISIONS BELOW APPLY ONLY AS FOLLOWS -
SALE IS RESTRICTED TO SPECIFIC AGENTS.
THERE IS NO CHARGE FOR TRAVEL.

IF INFANT UNDER 02 WITHOUT A SEAT.
THERE IS NO CHARGE FOR TRAVEL.

OTHERWISE
A SURCHARGE OF NOK 550 PER COUPON WILL BE ADDED TO THE
APPLICABLE FARE FOR TRAVEL.
(1)----18
EL.ELIGIBILITY
NO RESTRICTIONS
(13)----19
AC.ACCOMPANY TVL
NO RESTRICTIONS
(16)----21
PE.PENALTIES
BETWEEN UNITED KINGDOM AND AREA 1

CANCELLATIONS

TICKET IS NON-REFUNDABLE.
NOTE -
FUEL SURCHARGE /YQ/ IS NOT REFUNDABLE.
.
.
FOR CHANGES - SEE BELOW
NOTE THAT CURRENCY/PENALTY AMOUNTS MAY VARY BY
DIRECTION OF TRAVEL.

FROM UNITED KINGDOM -
CHANGES

ANY TIME
PER COUPON CHARGE GBP 75.00 FOR REISSUE/
REVALIDATION.
NOTE -
A CHANGE IS DATE/ FLIGHT/ ROUTING OR
NAME CHANGE.
REBOOKING/REISSUE/PAYMENT OF FEE AND FARE
DIFFERENCE MUST BE MADE IN ONE TRANSACTION NOT
LATER THAN 30 MINUTES BEFORE DEPARTURE OF EITHER
THE FLIGHT BEING CHANGED OR THE NEW FLIGHT
WHICHEVER IS EARLIER.
--
FOR CHANGES TO DATE/ FLIGHT/ ROUTING.
APPLY THE CHANGE FEE TO EACH CHANGED COUPON
PER PASSENGER FOR ADULT AND CHILD ACCORDING TO
DIRECTION OF TRAVEL. AMOUNTS MAY BE FOUND IN FARE
NOTE UNDER VOLUNTARY CHANGES.
INFANT WITHOUT SEAT - FREE OF CHARGE.
MUST BE COLLECTED ON EMD.
WHERE EMD IS NOT AVAILABLE PENALTY MUST BE
COLLECTED USING DU TAX. FOR 1G AND 1S IN ARC
AREAS COLLECT USING Q-SURCHARGE.
TOTAL AMOUNT MUST BE ADDED TO PNR IN AN OSI
FIELD.
--
IF CHANGE TO THE FIRST FARE COMPONENT OF JOURNEY
RECALCULATE NEW CURRENT FARE EFFECTIVE ON THE DAY
OF REISSUE.
NEW FARE MAY BE EQUAL/HIGHER/LOWER.
IF CHANGE RESULTS IN LOWER FARE THEN PENALTY
APPLIES AND THERE IS NO REFUND OF RESIDUAL FARE.
WHEN UPGRADING TO A HIGHER FARE ANY NON-
REFUNDABLE AMOUNT REMAINS NON-REF AND MUST BE
NOTED AS SUCH IN THE REISSUED TICKET.
--
FOR NAME CHANGE -
CHARGE PER COUPON
MUST BE COLLECTED ON EMD.
WHERE EMD IS NOT AVAILABLE PENALTY MUST BE
COLLECTED USING DU TAX. FOR 1G AND 1S IN ARC
AREAS COLLECT USING Q-SURCHARGE.
TOTAL AMOUNT MUST BE ADDED TO PNR IN AN OSI
FIELD.
NOK 350/ SEK 370/ DKK 320/ EUR 45/ GBP 36/ USD 60
DOMESTIC NO - NOK 318 PLUS NOK 32 NV VAT
DOMESTIC SE - SEK 349 PLUS SEK 21 XS VAT
DOMESTIC FI - EUR 40 PLUS EUR 5 YF VAT
DOMESTIC DK - DKK 320
DOMESTIC ES - EUR 45 INCL ES VAT /VARIABLE/

TO UNITED KINGDOM -
CHANGES

ANY TIME
PER COUPON CHARGE USD 125.00 FOR REISSUE/
REVALIDATION.
NOTE -
A CHANGE IS DATE/ FLIGHT/ ROUTING OR
NAME CHANGE.
REBOOKING/REISSUE/PAYMENT OF FEE AND FARE
DIFFERENCE MUST BE MADE IN ONE TRANSACTION NOT
LATER THAN 30 MINUTES BEFORE DEPARTURE OF EITHER
THE FLIGHT BEING CHANGED OR THE NEW FLIGHT
WHICHEVER IS EARLIER.
--
FOR CHANGES TO DATE/ FLIGHT/ ROUTING.
APPLY THE CHANGE FEE TO EACH CHANGED COUPON
PER PASSENGER FOR ADULT AND CHILD ACCORDING TO
DIRECTION OF TRAVEL. AMOUNTS MAY BE FOUND IN FARE
NOTE UNDER VOLUNTARY CHANGES.
INFANT WITHOUT SEAT - FREE OF CHARGE.
MUST BE COLLECTED ON EMD.
WHERE EMD IS NOT AVAILABLE PENALTY MUST BE
COLLECTED USING DU TAX. FOR 1G AND 1S IN ARC
AREAS COLLECT USING Q-SURCHARGE.
TOTAL AMOUNT MUST BE ADDED TO PNR IN AN OSI
FIELD.
--
IF CHANGE TO THE FIRST FARE COMPONENT OF JOURNEY
RECALCULATE NEW CURRENT FARE EFFECTIVE ON THE DAY
OF REISSUE.
NEW FARE MAY BE EQUAL/HIGHER/LOWER.
IF CHANGE RESULTS IN LOWER FARE THEN PENALTY
APPLIES AND THERE IS NO REFUND OF RESIDUAL FARE.
WHEN UPGRADING TO A HIGHER FARE ANY NON-
REFUNDABLE AMOUNT REMAINS NON-REF AND MUST BE
NOTED AS SUCH IN THE REISSUED TICKET.
--
FOR NAME CHANGE -
CHARGE PER COUPON
MUST BE COLLECTED ON EMD.
WHERE EMD IS NOT AVAILABLE PENALTY MUST BE
COLLECTED USING DU TAX. FOR 1G AND 1S IN ARC
AREAS COLLECT USING Q-SURCHARGE.
TOTAL AMOUNT MUST BE ADDED TO PNR IN AN OSI
FIELD.
NOK 350/ SEK 370/ DKK 320/ EUR 45/ GBP 36/ USD 60
DOMESTIC NO - NOK 318 PLUS NOK 32 NV VAT
DOMESTIC SE - SEK 349 PLUS SEK 21 XS VAT
DOMESTIC FI - EUR 40 PLUS EUR 5 YF VAT
DOMESTIC DK - DKK 320
DOMESTIC ES - EUR 45 INCL ES VAT /VARIABLE/
(10)----22
CO.COMBINABILITY
APPLICABLE ADD-ON CONSTRUCTION IS ADDRESSED IN
MISCELLANEOUS PROVISIONS - CATEGORY 23.
END-ON-END
END-ON-END COMBINATIONS PERMITTED. VALIDATE ALL FARE
COMPONENTS. SIDE TRIPS PERMITTED.
PROVIDED -
COMBINATIONS ARE FOR CARRIER DY/D8
OPEN JAWS/ROUND TRIPS/CIRCLE TRIPS
FARES MAY BE COMBINED ON A HALF ROUND TRIP BASIS
-TO FORM SINGLE OR DOUBLE OPEN JAWS/ROUND TRIPS/CIRCLE
TRIPS.
PROVIDED -
COMBINATIONS ARE WITH ANY FARE FOR CARRIER DY/D8 IN ANY
RULE AND TARIFF.
(17)----23
HI.HIGHER INTERMEDIATE POINT
DOES NOT APPLY
(29)----24
DE.DEPOSITS
NO RESTRICTIONS
(26)----25
GP.GROUPS
DOES NOT APPLY
(27)----26
TO.TOURS
DOES NOT APPLY
(28)----27
VI.VISIT ANOTHER COUNTRY
DOES NOT APPLY
(23)----28
MD.MISCELLANEOUS DATA
NONE


Ukraine Intl Airl rule

(50)----1
RU.RULE APPLICATION
SPECIAL ECONOMY FARES
APPLICATION
AREA
THESE FARES APPLY
BETWEEN THE UNITED STATES AND AREA 2/AREA 3.
CLASS OF SERVICE
THESE FARES APPLY FOR ECONOMY CLASS SERVICE.
TYPES OF TRANSPORTATION
FARES GOVERNED BY THIS RULE CAN BE USED TO CREATE
ONE-WAY/ROUND-TRIP/OPEN-JAW JOURNEYS.
(6)----2
MN.MIN STAY
NO RESTRICTIONS
(7)----3
MX.MAX STAY
NONE UNLESS OTHERWISE SPECIFIED
(3)----4
SE.SEASONS
BETWEEN NYC AND LON FOR LOW/OFF-PEAK SEASON FARES

PERMITTED 21AUG 17 THROUGH 31MAY 18 OR 21AUG 18 THROUGH
31MAY 19.
(11)----5
BO.BLACKOUTS

TRAVEL IS NOT PERMITTED ON 06NOV 17.
(2)----6
DA.DAY/TIME
NO RESTRICTIONS
(14)----8
TR.TVL RESTRICTION
FOR FARES WITH FOOTNOTE 7A

FOR TICKETING ON/AFTER 08AUG 17
VALID FOR TRAVEL COMMENCING ON/AFTER 08AUG 17 AND ON/
BEFORE 05NOV 17. ALL TRAVEL MUST BE COMPLETED BY
MIDNIGHT ON 05NOV 17.
(5)----9
AP.ADVANCE RES/TKT
FOR HL1SAP5 TYPE FARES

RESERVATIONS ARE REQUIRED FOR ALL SECTORS.
NOTE -
OPEN RETURN DATE NOT PERMITTED
(4)----10
FL.FLT APPLICATION

THE FARE COMPONENT MUST BE ON
ONE OR MORE OF THE FOLLOWING
ANY PS FLIGHT OPERATED BY PS.
(8)----15
SO.STOPOVERS
FOR HL1SAP5 TYPE FARES

UNLIMITED STOPOVERS PERMITTED ON THE PRICING UNIT.
A STOPOVER MAY NOT EXCEED 5 DAYS.
OR - UNLIMITED STOPOVERS PERMITTED ON THE PRICING UNIT AT
USD 75.00 EACH.
NO STOPOVER OCCURS IF PASSENGER TAKES NEXT
AVAILABLE FLIGHT WITHIN 5 DAYS HOWEVER A STOPOVER
MAY NOT EXCEED 10 DAYS.
(9)----16
TF.TRANSFERS/RTGS

UNLIMITED TRANSFERS PERMITTED ON THE PRICING UNIT
FARE BREAK AND EMBEDDED SURFACE SECTORS NOT PERMITTED ON
THE FARE COMPONENT.
(12)----17
SU.SURCHARGES

THE PROVISIONS BELOW APPLY ONLY AS FOLLOWS - RESERVATIONS
ARE REQUIRED FOR ALL SECTORS.
TICKETING MUST BE COMPLETED AT LEAST 10 DAYS BEFORE
DEPARTURE.
THERE IS NO CHARGE FOR TRAVEL PER FARE COMPONENT.

OTHERWISE
A SURCHARGE OF USD 4.00 PER COUPON WILL BE ADDED TO THE
APPLICABLE FARE FOR TRAVEL. APPLIES PER ADULT. CHILD/
INFANT DISCOUNTS APPLY.
NOTE -
FEE FOR LATE PURCHASE
--------------------
THE SURCHARGE MUST BE COLLECTED AND SHOWN IN THE
FARE CALCULATION AREA USING THE Q CODE.
---------------
IN CASE FARE IS NON-REFUNDABLE Q-SURCHARGE IS
ALSO NON-REFUNDABLE
(1)----18
EL.ELIGIBILITY
NO RESTRICTIONS
(13)----19
AC.ACCOMPANY TVL
NO RESTRICTIONS
(16)----21
PE.PENALTIES
FOR HL1SAP5 TYPE FARES

CANCELLATIONS

BEFORE DEPARTURE
CHARGE USD 170.00 FOR CANCEL/REFUND.
CHILD/INFANT DISCOUNTS APPLY.
NOTE -
IN CASE OF NO-SHOW ADDITIONAL CHARGE USD150 MUST
BE APPLIED
---------
FULL REFUND PERMITTED WITHIN 24 HOURS AFTER
TICKET ISSUANCE FOR ALL RESERVATIONS MADE 7 OR
MORE DAYS BEFORE DEPARTURE
----------------
YQ IS NON REFUNDABLE IN CASE CANCELLATION LESS
THAN 24H BEFORE FLIGHT DEPARTURE
--------
CANCELLATIONS PERMITTED FOR CANCEL/REFUND.
NOTE -
APPLIES IN CASE OF VISA REFUSAL.FULL REFUND 72
HOURS PRIOR TO DEPARTURE FOR UNUSED TICKET IN CASE
OF VISA REFUSAL. OFFICIAL REFUSAL CONFIRMATION
REQUIRED.VISA REFUSAL COUNTRY MUST MATCH FARE
DESTINATION POINT/POINT OF ORIGIN OR
STOPOVER/TRANSFER POINT.

AFTER DEPARTURE
CHARGE 60 PERCENT FOR CANCEL/REFUND.
NOTE -
AND PLUS PENALTY CHARGE USD 90.00
------------------------------
IN CASE OF NO-SHOW ADDITIONAL CHARGE USD150 MUST
BE APPLIED.
----------------
YQ IS NON REFUNDABLE IN CASE CANCELLATION LESS
THAN 24H BEFORE FLIGHT DEPARTURE
--------
IN CASE OF PARTIAL USE OF OUTBOUND OR INBOUND
FARE COMPONENT THE AMOUNT OF THIS FARE COMPONENT
IS FULLY NONREFUNDABLE
------------------------
CHD/INF DISCOUNT APPLIES TO REFUND PENALTIES.

CHANGES

ANY TIME
CHARGE USD 120.00 FOR REISSUE/REVALIDATION.
CHILD/INFANT DISCOUNTS APPLY.
NOTE -
IN CASE OF NO-SHOW ADDITIONAL CHARGE USD150 MUST
BE APPLIED
---------------------
UPGRADE TO HIGHER FARE PERMITTED UPON PAYMENT OF
THE DIFFERENCE BETWEEN FARE PAID AND HIGHER FARE
RECALCULATED FROM THE POINT OF ORIGIN PLUS
USD120.IN SUBSEQUENTLY CHANGES AND REFUND RULES
OF NEW FARE WILL BE APPLIED BUT NON-REFUNDABLE
AMOUNT REMAINS NON-REFUNDABLE.
-----------------
IN CASE OF VOLUNTARY SERVICE UPGRADE TO PREMIUM
ECONOMY/BUSINESS CLASSES WITHOUT DATE CHANGE OR
REROUTING FEE FOR UPGRADE DO NOT APPLY.OTHERWISE
FARE RULE CONDITIONS MUST BE APPLY
-----------------------------------------
REROUTING PERMITTED ON PS FARES ONLY WITH
APPLICABLE CHANGE FEE WITH COLLECTION ADDITIONAL
TAXES/FARE AMOUNT/ IF NEW FARE IS LOWER NO FARE
DIFFERENCE REFUND
------------------------
IN CASE OF FARES COMBINATION MORE RESTRICTED
FARE RULES APPLIED.
(10)----22
CO.COMBINABILITY
CIRCLE TRIPS NOT PERMITTED.
APPLICABLE ADD-ON CONSTRUCTION IS ADDRESSED IN
MISCELLANEOUS PROVISIONS - CATEGORY 23.
END-ON-END
END-ON-END COMBINATIONS PERMITTED WITH DOMESTIC/
INTERNATIONAL FARES. VALIDATE ALL FARE COMPONENTS. SIDE
TRIPS NOT PERMITTED.
PROVIDED -
COMBINATIONS ARE FOR CARRIER B6
OPEN JAWS
FARES MAY BE COMBINED ON A HALF ROUND TRIP BASIS WITH PS
FARES
-TO FORM SINGLE OR DOUBLE OPEN JAWS.
OPEN JAWS NOTE -
IN CASE OF COMBINATION THE MOST RESTRICTIVE
CONDITIONS APPLY.
PROVIDED -
COMBINATIONS ARE WITH ANY FARE FOR CARRIER PS IN ANY
RULE AND TARIFF.
ROUND TRIPS
FARES MAY BE COMBINED ON A HALF ROUND TRIP BASIS
-TO FORM ROUND TRIPS.
ROUND TRIPS NOTE -
IN CASE OF COMBINATION THE MOST RESTRICTIVE
CONDITIONS APPLY.
PROVIDED -
COMBINATIONS ARE WITH ANY FARE FOR CARRIER PS IN ANY
RULE AND TARIFF.
(17)----23
HI.HIGHER INTERMEDIATE POINT

THE HIGHER INTERMEDIATE POINT RULE DOES NOT APPLY FOR
STOPOVERS.
NOTE -
HIGHER INTERMEDIATE POINT/MILEAGE EXCEPTIONS
DO NOT APPLY.
DIFFERENTIAL DOES NOT APPLY.
AND - THE HIGHER INTERMEDIATE POINT RULE DOES NOT APPLY
FOR CONNECTIONS.
NOTE -
HIGHER INTERMEDIATE POINT/MILEAGE EXCEPTIONS
DO NOT APPLY.
DIFFERENTIAL DOES NOT APPLY.

NOTE -
HIGHER INTERMEDIATE POINT/MILEAGE EXCEPTIONS
DO NOT APPLY.
DIFFERENTIAL DOES NOT APPLY.
(29)----24
DE.DEPOSITS
NO RESTRICTIONS
(26)----25
GP.GROUPS
DOES NOT APPLY
(27)----26
TO.TOURS
DOES NOT APPLY
(28)----27
VI.VISIT ANOTHER COUNTRY
DOES NOT APPLY
(23)----28
MD.MISCELLANEOUS DATA

THIS FARE MUST NOT BE USED AS THE HIGH OR THE LOW FARE
WHEN CALCULATING A DIFFERENTIAL. THIS FARE MUST NOT BE
USED AS THE THROUGH FARE WHEN PRICING A FARE COMPONENT
WITH A DIFFERENTIAL.

(50)----1
RU.RULE APPLICATION
SPECIAL ECONOMY FARES
APPLICATION
AREA
THESE FARES APPLY
BETWEEN THE UNITED STATES AND AREA 2/AREA 3.
CLASS OF SERVICE
THESE FARES APPLY FOR ECONOMY CLASS SERVICE.
TYPES OF TRANSPORTATION
FARES GOVERNED BY THIS RULE CAN BE USED TO CREATE
ONE-WAY/ROUND-TRIP/OPEN-JAW JOURNEYS.
(6)----2
MN.MIN STAY
NO RESTRICTIONS
(7)----3
MX.MAX STAY
NONE UNLESS OTHERWISE SPECIFIED
(3)----4
SE.SEASONS
BETWEEN NYC AND LON FOR LOW/OFF-PEAK SEASON FARES

PERMITTED 21AUG 17 THROUGH 31MAY 18 OR 21AUG 18 THROUGH
31MAY 19.
(11)----5
BO.BLACKOUTS

TRAVEL IS NOT PERMITTED 08AUG 17 THROUGH 05NOV 17.
(2)----6
DA.DAY/TIME
NO RESTRICTIONS
(14)----8
TR.TVL RESTRICTION
NO RESTRICTIONS
(5)----9
AP.ADVANCE RES/TKT
FOR HL1SAP5 TYPE FARES

RESERVATIONS ARE REQUIRED FOR ALL SECTORS.
NOTE -
OPEN RETURN DATE NOT PERMITTED
(4)----10
FL.FLT APPLICATION

THE FARE COMPONENT MUST BE ON
ONE OR MORE OF THE FOLLOWING
ANY PS FLIGHT OPERATED BY PS.
(8)----15
SO.STOPOVERS
FOR ONE WAY HL1SAP5 TYPE FARES WITH FOOTNOTE 8A

1 FREE STOPOVER PERMITTED ON THE PRICING UNIT.
A STOPOVER MAY NOT EXCEED 5 DAYS.
OR - UNLIMITED STOPOVERS PERMITTED ON THE PRICING UNIT AT
USD 50.00 EACH.
NO STOPOVER OCCURS IF PASSENGER TAKES NEXT
AVAILABLE FLIGHT WITHIN 5 DAYS HOWEVER A STOPOVER
MAY NOT EXCEED 10 DAYS.
(9)----16
TF.TRANSFERS/RTGS

UNLIMITED TRANSFERS PERMITTED ON THE PRICING UNIT
FARE BREAK AND EMBEDDED SURFACE SECTORS NOT PERMITTED ON
THE FARE COMPONENT.
(12)----17
SU.SURCHARGES

THE PROVISIONS BELOW APPLY ONLY AS FOLLOWS - RESERVATIONS
ARE REQUIRED FOR ALL SECTORS.
TICKETING MUST BE COMPLETED AT LEAST 10 DAYS BEFORE
DEPARTURE.
THERE IS NO CHARGE FOR TRAVEL PER FARE COMPONENT.

OTHERWISE
A SURCHARGE OF USD 4.00 PER COUPON WILL BE ADDED TO THE
APPLICABLE FARE FOR TRAVEL. APPLIES PER ADULT. CHILD/
INFANT DISCOUNTS APPLY.
NOTE -
FEE FOR LATE PURCHASE
--------------------
THE SURCHARGE MUST BE COLLECTED AND SHOWN IN THE
FARE CALCULATION AREA USING THE Q CODE.
---------------
IN CASE FARE IS NON-REFUNDABLE Q-SURCHARGE IS
ALSO NON-REFUNDABLE
(1)----18
EL.ELIGIBILITY
NO RESTRICTIONS
(13)----19
AC.ACCOMPANY TVL
NO RESTRICTIONS
(16)----21
PE.PENALTIES
FOR HL1SAP5 TYPE FARES

CANCELLATIONS

BEFORE DEPARTURE
CHARGE USD 170.00 FOR CANCEL/REFUND.
CHILD/INFANT DISCOUNTS APPLY.
NOTE -
IN CASE OF NO-SHOW ADDITIONAL CHARGE USD150 MUST
BE APPLIED
---------
FULL REFUND PERMITTED WITHIN 24 HOURS AFTER
TICKET ISSUANCE FOR ALL RESERVATIONS MADE 7 OR
MORE DAYS BEFORE DEPARTURE
----------------
YQ IS NON REFUNDABLE IN CASE CANCELLATION LESS
THAN 24H BEFORE FLIGHT DEPARTURE
--------
CANCELLATIONS PERMITTED FOR CANCEL/REFUND.
NOTE -
APPLIES IN CASE OF VISA REFUSAL.FULL REFUND 72
HOURS PRIOR TO DEPARTURE FOR UNUSED TICKET IN CASE
OF VISA REFUSAL. OFFICIAL REFUSAL CONFIRMATION
REQUIRED.VISA REFUSAL COUNTRY MUST MATCH FARE
DESTINATION POINT/POINT OF ORIGIN OR
STOPOVER/TRANSFER POINT.

AFTER DEPARTURE
CHARGE 60 PERCENT FOR CANCEL/REFUND.
NOTE -
AND PLUS PENALTY CHARGE USD 90.00
------------------------------
IN CASE OF NO-SHOW ADDITIONAL CHARGE USD150 MUST
BE APPLIED.
----------------
YQ IS NON REFUNDABLE IN CASE CANCELLATION LESS
THAN 24H BEFORE FLIGHT DEPARTURE
--------
IN CASE OF PARTIAL USE OF OUTBOUND OR INBOUND
FARE COMPONENT THE AMOUNT OF THIS FARE COMPONENT
IS FULLY NONREFUNDABLE
------------------------
CHD/INF DISCOUNT APPLIES TO REFUND PENALTIES.

CHANGES

ANY TIME
CHARGE USD 120.00 FOR REISSUE/REVALIDATION.
CHILD/INFANT DISCOUNTS APPLY.
NOTE -
IN CASE OF NO-SHOW ADDITIONAL CHARGE USD150 MUST
BE APPLIED
---------------------
UPGRADE TO HIGHER FARE PERMITTED UPON PAYMENT OF
THE DIFFERENCE BETWEEN FARE PAID AND HIGHER FARE
RECALCULATED FROM THE POINT OF ORIGIN PLUS
USD120.IN SUBSEQUENTLY CHANGES AND REFUND RULES
OF NEW FARE WILL BE APPLIED BUT NON-REFUNDABLE
AMOUNT REMAINS NON-REFUNDABLE.
-----------------
IN CASE OF VOLUNTARY SERVICE UPGRADE TO PREMIUM
ECONOMY/BUSINESS CLASSES WITHOUT DATE CHANGE OR
REROUTING FEE FOR UPGRADE DO NOT APPLY.OTHERWISE
FARE RULE CONDITIONS MUST BE APPLY
-----------------------------------------
REROUTING PERMITTED ON PS FARES ONLY WITH
APPLICABLE CHANGE FEE WITH COLLECTION ADDITIONAL
TAXES/FARE AMOUNT/ IF NEW FARE IS LOWER NO FARE
DIFFERENCE REFUND
------------------------
IN CASE OF FARES COMBINATION MORE RESTRICTED
FARE RULES APPLIED.
(10)----22
CO.COMBINABILITY
CIRCLE TRIPS NOT PERMITTED.
APPLICABLE ADD-ON CONSTRUCTION IS ADDRESSED IN
MISCELLANEOUS PROVISIONS - CATEGORY 23.
END-ON-END
END-ON-END COMBINATIONS PERMITTED WITH DOMESTIC/
INTERNATIONAL FARES. VALIDATE ALL FARE COMPONENTS. SIDE
TRIPS NOT PERMITTED.
PROVIDED -
COMBINATIONS ARE FOR CARRIER B6
OPEN JAWS
FARES MAY BE COMBINED ON A HALF ROUND TRIP BASIS WITH PS
FARES
-TO FORM SINGLE OR DOUBLE OPEN JAWS.
OPEN JAWS NOTE -
IN CASE OF COMBINATION THE MOST RESTRICTIVE
CONDITIONS APPLY.
PROVIDED -
COMBINATIONS ARE WITH ANY FARE FOR CARRIER PS IN ANY
RULE AND TARIFF.
ROUND TRIPS
FARES MAY BE COMBINED ON A HALF ROUND TRIP BASIS
-TO FORM ROUND TRIPS.
ROUND TRIPS NOTE -
IN CASE OF COMBINATION THE MOST RESTRICTIVE
CONDITIONS APPLY.
PROVIDED -
COMBINATIONS ARE WITH ANY FARE FOR CARRIER PS IN ANY
RULE AND TARIFF.
(17)----23
HI.HIGHER INTERMEDIATE POINT

THE HIGHER INTERMEDIATE POINT RULE DOES NOT APPLY FOR
STOPOVERS.
NOTE -
HIGHER INTERMEDIATE POINT/MILEAGE EXCEPTIONS
DO NOT APPLY.
DIFFERENTIAL DOES NOT APPLY.
AND - THE HIGHER INTERMEDIATE POINT RULE DOES NOT APPLY
FOR CONNECTIONS.
NOTE -
HIGHER INTERMEDIATE POINT/MILEAGE EXCEPTIONS
DO NOT APPLY.
DIFFERENTIAL DOES NOT APPLY.

NOTE -
HIGHER INTERMEDIATE POINT/MILEAGE EXCEPTIONS
DO NOT APPLY.
DIFFERENTIAL DOES NOT APPLY.
(29)----24
DE.DEPOSITS
NO RESTRICTIONS
(26)----25
GP.GROUPS
DOES NOT APPLY
(27)----26
TO.TOURS
DOES NOT APPLY
(28)----27
VI.VISIT ANOTHER COUNTRY
DOES NOT APPLY
(23)----28
MD.MISCELLANEOUS DATA

THIS FARE MUST NOT BE USED AS THE HIGH OR THE LOW FARE
WHEN CALCULATING A DIFFERENTIAL. THIS FARE MUST NOT BE
USED AS THE THROUGH FARE WHEN PRICING A FARE COMPONENT
WITH A DIFFERENTIAL.
", "ErrorCode": null, "ErrorAtNode": null }


Reading Server Errors Response:

In order to ascertain a valid response, the Web API must be provided with correct request. In case of errors, we’ve some set of error codes and descriptions to be sent in response.

Sample JSON Error Responses:

{
    "FareRules": null,
    "ErrorCode": "FPWB A9111",
    "ErrorAtNode": "Results Timed Out, Please continue with a new search."
} 
{
    "FareRules": null,
    "ErrorCode": "FPWB A9105",
    "ErrorAtNode": "Required Property Cannot be Null. Authentication Details"
}

See Error Codes for more detailed description on Errors



Booking API Target and Method

The API expects a POST request to the following URL:
https://api-dev.fareportallabs.com/air/api/book/BookFlightAvailibilty

The request body should contain the below parameters:
Field Description Example Value
CCExpirationDate Credit card expiration month "2019-01"
CVNumber CVV number "123"
CardCode VI, CA, AX, DC, DS, CB, PP, PPC, or AP "VI"
CardHolderName Name on payment card. "Mickey Mouse"
CardNumber Credit card number "4222222222222222"
CertifiedPerson Name of certified person traveling to Cuba. null
AffiliateCode Tracking string useful for analytics null
AllowSimilarBooking set to false false
BillingInfo Object containing Address1, Address2, City, ContactPhone, Country, Email, FlatNumber, Phone, State, Zip, and ShippingDetail (i.e. delivery instructions) { "Phone": "2222222222", "Email": "abc@abc.com", "Address1": "111 1st Ave", "Address2": null, "City": "new york", "State": "AK", "Country": "US", "Zip": "11111", "FlatNumber": null, "ContactPhone": "2222222222", "ShippingDetail": null }
ClientIP Client IP Address null
ContractId The ID number of the contract that was received in the flight search response. Typically 1-3 digits. 123
ContractLocatorKey The CntKey value of the relevant contract being purchased from the flight response. "4181182c-e0f8-4b2b-8e05-e9249a29876a"
CouponCode null null
CultureCode null null
CurrencyCode Leave as a blank string as long as search currency is same as booking currency ""
DeviceId null null
DeviceIdentifier null null
DiscountCouponKey null null
FareType One of the following: NONE, Tango, Tango_Plus, Latitude, Executive_Class_Lowest, Executive_Class_Flexible, Executive_First_Lowest, Executive_First_Flexible, Flex, Choice_Essential, Choice_Plus, Premium_Economy, Premium_Economy_Lowest, Premium_Economy_Flexible "NONE"
FingerPrintAuthId blank ""
GiftCardCode null null
InsuranceInscreasedPriceAccepted false false
IsChoiceSeatBooked false false
IsDebitCard true or false false
IsInsuranceSelected false false
IsRebookFare false false
IsTravelAssistClassicSelected false false
IsTravelAssistSelected false false
IsUpgradeFareAccepted false false
KountSessionId blank ""
MarketingCode blank ""
MarketingCodeType null null
PageComponent blank ""
PayPalBuyerId null null
PayPalTokenId null null
PushToken null null
ReasonToTravel null null
SiftSessionId blank ""
SubAffiliateCode Tracking parameter for analytics "CampaignABC123"
UserAuthType "NONE" "NONE"
UserId -1 -1
UserProfileToken null null
WantToSubscribeForNewsletter false false
traveler array of traveler objects, described in table below. [ { "PaxOrder":0, "PaxType":"ADULT", "BirthDate":"1990-01-01T00:00:00", "Title":"", "FirstName":"Mickey", "MiddleInitial":"", "LastName":"Mouse", "TicketNumber":null, "FreqFlightNo":null, "SeatPreference":null, "MealPreference":null, "SpecialRequest":null, "Gender":"MALE", "TSARedressNumber":"", "AssociatedOrderID":-1, "PassportDetail":null } ]
AssociatedOrderID Should be -1 or should be the PaxOrder of the relevant adult for lap infants -1
BirthDate Birthdate in format "yyyy-mm-dd" "1999-01-01"
FirstName First name "Mickey"
FreqFlightNo Frequent Flier Number "1234567"
Gender "NONE", "MALE" or "FEMALE" "FEMALE"
LastName Last name, can't be null "Mouse"
MealPreference One of: NOMEALSERVICENEEDED, ASIANVEGMEAL, INFBABYFOOD, BLANDMEAL, CHILDMEAL, DIABETICMEAL, GLUTENFREE, HIGHFIBERMEAL, HINDU, KOSHER, LOWCALORIE, LOWCARBOHYDRATE, LOWCHOLESFAT, LOWPROTEIN, LOWSODIUM, MUSLIMMEAL, NONLACTOSE, NOSALTMEAL, ORIENTAL, PEANUTFREEMEAL, LOWPURINEMEAL, RAWVEGETARIAN, SEAFOODMEAL, SPECREQUEST, VEGETARIAN, VEGLACTOOVO null
MiddleInitial Middle name or initial null
PaxOrder Number your passenger array objects from 1 to total passengers, and assign this number here 1
PaxType One of ADULT, CHILD, SENIOR, INFANTONSEAT, INFANTINLAP, YOUTH "ADULT"
SeatPreference One of ANY, NOSMOKINGAISLESEAT, NOSMOKINGBULKHEADSEAT, NONSMOKINGSEAT, NOSMOKINGWINDOWSEAT, SEATREQUEST null
SpecialRequest One of NOSPECIALSERVICENEEDED, BLINDPASSENGER, BASSINETFORINFANT, DEAFPASSENGER, STRETCHERASSISTANCE, WHEELCHAIRMUSTBECARRIED, WHEELCHAIRCANWALKUPSTAIRS, WHEELCHAIRCANWALKTOSEAT null
TSARedressNumber Use number or leave blank ""
TicketNumber null null
Title Title of traveller example MR/MRS "DR"
PassportDetail Use object described below if required by airline null
ExpirationDate Format is ‘yyyy-mm-dd’ and cannot be null. "2040-01-11"
IssueDate Format is ‘yyyy-mm-dd’ and cannot be null. "21975-01-11"
IssuingCity Just the city New York
IssuingCounty 2-letter country code US
Number Usually a number 12345678

Sample Booking JSON Request:

{
"BookingVersion":"VERSION24",
"FlightBookRequest":{
        "BillingInfo":
                {"Address1":"123 Main Street",
                "City":"Newyork",
                "ContactPhone":"222222222222222",
                "Email":"rahul.agrawal.tech+ac@fareportal.com",
                "Country":"United states",
                "Phone":"222222222222222",
                "State":"NY",
                "Zip":"10001"
                },
        "CCExpirationDate":"2017-2-01T00:00:00",
        "CVNumber":"111",
        "CardCode":"VI",
        "CardHolderName":"steve roberts",
        "CardNumber":"4222222222222222",
        "ContractId":1152,
        "ContractLocatorKey":"d99c0af3-ed87-42e3-8267-4a2d0b040241",
        "IsInsuranceSelected":true,
        "IsRebookFare":false,
        "IsTravelAssistSelected":false,
        "IsUpgradeFareAccepted":"false",
        "traveler":[{
                "AssociatedOrderID":"1",
                "BirthDate":"1985-1-22T00:00:00",
                "Gender":"Male",
                "FirstName":"Tom",
                "LastName":"Robinson",
                "MiddleInitial":"",
                "PaxOrder":0,
                "PaxType":"ADULT",
                "TSARedressNumber":"",
                "Title":"Mr",
                "PassportDetail":
                        {
                        "ExpirationDate":"22-02-2025T00:00:00",
                        "IssueDate":"22-02-2005T00:00:00",
                        "IssuingCity":"London",
                        "IssuingCounty":"UK",
                        "Number":"passportabc"
                        }
                 }]
                }
}


Reading Server Response

Click here for: Booking Response

Booking will have one of the below status:
SUCCESS
PRICECHANGED
SOLDOUT
RESULTEXPIRED
Type Description
Success If the selected contract is available for booking it will be returned as SUCCESS.
Price Changed: If there is any price change in any of the pax fare it will be returned as PRICECHANGED and details of the new price will be available in response.
Sold-out If any of the flight in the contract got sold out contract will be sold out and status will come as sold-out.
Result Expired This is will only come if result expired at service end, this is the least possible status.

Response Snippets:

Price Change Response:
{
    "PNR": null,
    "Messages": null,
    "IsConfirmed": false,
    "TotalAmount": 0,
    "ErrorCode": "FPWB A7208",
    "ErrorAtNode": "Prices Changed.",
    "BookedCurrency": null,
    "DisplayCurrency": null,
    "DisplayConversionRate": null,
    "IncreasedPriceDetails": {
                                "OldPriceTotal": 707.74,
                                "IncreasedPriceTotal": 901.740051
                             },
    "IncreasedPriceBreakDown": {
                                "AdultFare": {
                                                "BasePrice": 724.13,
                                                "ServiceFee": 33,
                                                "Tax": 135.66,
                                                "Discount": -10,
                                                "InsuranceFee": 51.95
                                             },
                                "SeniorFare": null,
                                "ChildFare": null,
                                "InfantOnSeatFare": null,
                                "InantInLapFare": null,
                                "YouthFare": null
                                },
    "IncreasedInsurancePrice": null,
    "SoldOutFlights": null,
    "AirlinePnrs": "",
    "InsuranceAmount": 0,
    "NewInsuranceBreakdown": [
                                {
                                    "PaxType": "ADULT",
                                    "BasicInsAmt": 51.95,
                                    "ChoiceInsAmt": 0,
                                    "ChoicePlusInsAmt": 0
                                }
                             ],
    "BookingDetailsRS": null,
    "BookingNumber": 0,
    "CouponDiscountDetail": null,
    "BookingGUID": null
}

Sold-Out Response:
"SoldOutFlights": 
[
    {
        "AirlineCode": "AA",
        "AirlineNumber": "925",
        "ClassOfFlight": "O",
        "DepartureDate": "2017-08-30T00:00:00",
        "DepartureTime": "09:01 AM",
        "DepartureAirport": "PHX",
        "Bound": 1
    }
]

Error Response:
"ErrorCode"  : "FPWB A9101",
"ErrorAtNode": "Object Containing Invalid Value for Property. ContractLocatorKey"
 

See Error Codes for more detailed description on Errors



Post Booking API Target and Method

The API expects a POST request to the following URL:
https://api-dev.fareportallabs.com/air/api/postbook/getallbookingdetails

The request body should contain the below parameters:
Attribute Type Description
BookingGUID String This property must contain string value GUID generated in booking.
PostBookingVersion Enum This property shall contain enum value:
NONE = 0,
VERSION20 = 20,
VERSION21 = 21,
VERSION22 = 22

Request code snippet below:

{
"PostBookingDetailsRequest":
    {
	"BookingGUID":"47fdaba4-7d10-4982-b0ae-7e4fac0d1f55",
	"PostBookingVersion":"VERSION22"
	}
  }

Reading server response

Following response received from the method “GetBookingDetails”:

Attribute Type Description
FPBookingDetailsRS In this type whole response resides
AdditionalServiceDetails This property contains the list of the additional service details like below:
  1. TravelerService (string):
  2. Type of Insurace.
  3. ServicePrice (float):
  4. Service Charges.
  5. ServiceIncluded (bool):
  6. service is included or not.
  7. IsADSApplicable(bool):
  8. Additional service applicable or not.
AirBookingGUID string In this type whole response resides
BaggageTaxAmount float Tax applied on baggage
BookedCurrency string This field lets you know the currency type like USD, rupee.
BookedOn Datetime Date & time of booking.
BookingNumber Int This property contains booking number
ContactNumber Datetime Date & time of booking.
BookingStatus String This field contains Contact number encrypted.
CouponDiscountAmount float This field contains amount available in discount.
CreditCardDeclined bool Credit card has been declined or not.
CurrencyFromProvider string This property contains Provider currency USD OR POUND etc.
CurrencyFromProviderConversionratio int This field contains CurrencyFromProvider Conversion ratio.
DisplayConversionRate int
DisplayCurrency string This field contains showing currency:USD/rupee
Email string This field contains booking user email id which is encrypted
EngineID string This field contains booking user email id which is encrypted.
Flights array This is a list of flight details.
FlightDetails object This object contains Flight information:
  1. AirlineName
  2. Alternatedate
  3. ArrivalTime
  4. BaggageDetail
  5. BaggageInfo
  6. BoundType
  7. Cabin
  8. Class
  9. ConvfirmationNumber
  10. DepartureTime
  11. DestinationCity
  12. DestinationCityName
  13. Duration
  14. Equipment
  15. FDType
  16. FlightNumber
  17. Nearbyairport
  18. OperatedBy
  19. SeatDetails
  20. SourceCity
  21. SourceCityName
  22. Stops
InsuranceAmount float This field contains insurance amount.
IsBasicEconomy bool Whether this class is basic economy or not.
LMFAmountPayable float This property contains LMF amount.
LastMinumteBooking bool is last minute booking.
LoyaltyPointStatusDetails array This is the array of loyaly point status.
LoyaltyPointStatusDetail object This Object contains:
  1. ActivePoints
  2. ExpiredPoints
  3. PendingPoints
  4. TransactionId
PNR String This property contains PNR number.
PaidAmount String This field contains Contact number encrypted.
PaymentDetails array List of payment details object.
PaymentDetail object This field contains payment information:
  1. AccountHolderName
  2. Address1
  3. Address2
  4. Amount
  5. BillingPhone
  6. BillingPhoneCode
  7. BillingPhoneCountry
  8. CardExpiryDate
  9. CardNumber
  10. CardType
  11. City
  12. PaymentFor
  13. State
  14. Zip
PostBookingCharges float if any.
PriceDetails string This property contains pricing information:
  1. Pax type
  2. BasePrice
  3. TaxandFee
  4. TotalPrice
ShippingAmount float This field contains shipping amount.
State string This filed contains state.
TicketExpireTime datetime This filed contains expiry time of the booked ticket.
TicketType string This property contains ticket type like e-ticket.
TicketedOn datetime This field contains date time when the ticket was booked.
TotalAmount float This field contains total amount in for booking.
Travelers array This is a list of travelers.
Traveler object This field contains traveler details:
  1. AssociatedOrderID
  2. BirthDate
  3. FirstName
  4. FreqFlightNo
  5. Gender
  6. LastName
  7. MealPreference
  8. MiddleInitial
  9. PassportDetail
  10. PaxOrder
  11. PaxType
  12. SeatPreference
  13. SpecialRequest
  14. TSARedressNumber
  15. TicketNumber
  16. Title
TripType enum This field contains the type of trip whether it is onewaytrip, roundtrip or multicity.
Zip string Not Used

Sample JSON Response:Post booking response


Reading Server Errors Response

In order to ascertain a valid response, the PowerXML application must be provided with correct request. In case of errors, we’ve some set of error codes and descriptions to be sent in response.

Sample JSON:

{
"ErrorCode": "FPWB A9105",
"ErrorAtNode": "Required Property Cannot be Null. SoapAuthentication",
}

See Error Codes for more detailed description on Errors



Fare Verfication API Target and Method

The API expects a POST request to the following URL:
https://api-dev.fareportallabs.com/air/api/book/verifyflight

The request body should contain the below parameters:
Field Description Example Value
ContractId The ID number of the contract that was received in the flight search response. Typically 1-3 digits. 123
ContractLocatorKey The CntKey value of the relevant contract being purchased from the flight response. "4181182c-e0f8-4b2b-8e05-e9249a29876a"
IsInsuranceSelected false false
IsTravelAssistSelected false false
DoFareVerification false false
IsTravelAssistClassicSelected false false

Request snippet:


{
"FlightVerificationRQ": {
        "ContractId": "1",
        "ContractLocatorKey": "9ae53f46-cee1-4506-bb89-7a9cb934034a",
        "IsInsuranceSelected": "true",
        "DoFareVerification":"false",
        "IsTravelAssistClassicSelected":"true",
"IsTravelAssistSelected":"false"
    }
}

Reading Server Response:

Following response received from the method “Verifyflight”:

Attribute Type Description
ChangedPriceDetails FPChangedPriceDetails This object contains price change details during flight verification.
"ChangedPriceDetails": {
    "AdultFare": {
        "BasePrice": 47.78375,
        "ServiceFee": 33,
        "Tax": 47.19625,
        "Discount": -10,
        "InsuranceFee": 6.95
    },
    "SeniorFare": null,
    "ChildFare": null,
    "InfantOnSeatFare": null,
    "InantInLapFare": null,
    "YouthFare": null
FlightVerificationStatus Enum This field will let you know status of verification:
NONE=0,
SUCCESS=1,
PRICECHANGED=2,
SOLDOUT=3,
RESULTEXPIRED =4
ErrorCode string This field provide specific error code if any suring verification. E.g. "ErrorCode": "FPWB A7201"
ErrorAtNode string This field provide specific error message for above error code.E.g. "ErrorAtNode": "Invalid value supplied in CNTId node.",
CardFeeDetails CardFeesDetails This object contains cards & their fee details for LCC Contracts.
"CardFeeDetails": {
"Currency": "USD",
"CardChargeDetails": [
    {
        "Type": "Credit",
        "CardName": "American Express",
        "CardFee": 0,
        "CardCode": "AX"
    },
    {
        "Type": "Debit",
        "CardName": "Mastercard Debit",
        "CardFee": 0,
        "CardCode": "CA"
    },
    {
        "Type": "Debit",
        "CardName": "Visa Debit",
        "CardFee": 0,
        "CardCode": "VI"
    }
]
}
SoldOutFlights SoldFlight[] This array will let you know if flights are sold out.
BrandedFares BrandedFare If flexibility available for any flight then this field contains -DepartureDate, ReturnDate, Fare.
FlightsInsurance Insurance[] If user has selected FlightInsurance =true ,this array will contain Insurance details:
"FlightsInsurance": [
{
    "PaxType": "ADULT",
    "BasicInsAmt": 7.95,
    "ChoiceInsAmt": 0,
    "ChoicePlusInsAmt": 0
}
],
SplitPaymentOption SplitPaymentInfo This object contains split payment option:
"SplitPaymentOption": {
"IsEnable": true,
"NumberOfSplitPaymentCards": 2,
"DefaultPercentageForFirstCreditCard": 100,
"IsShowCardHolderNameOnlyForFirstCard": true
 }
EnabledModeOfPayment string This field contains modes of available payments:
"EnabledModeOfPayment": "MasterPass,GoogleWallet,GiftCard,PLCC"
ThirdPartyPaymentDetails ThirdPartyPaymentDetail This a list of third party payment details.
TransitVisa string
isSeatMapEnabled boolean This field will indicate whether Seat map is available or not during booking.
ProviderName string This field will let you know about vendor name.Eg:"ProviderName": "BIZTRL"
PromotionalDiscountMessage string If any discount is applied on contract will be shown in this field by text message.
ProviderCurrency
Conversionratio float This field tells you conversion ratio from one currency to another currency.
IsPassportManditory boolean This field lets you know whether passport is required or not.
TravelAssistAmount float If Travel Assist is purchased then this amount will come.
TravelAssistCLassicAmount float If Travel Assist Classic is purchased then this amount will come.
RequireBookingReason boolean Any reason for booking.
UpsellDetails UpsellDetail if any contract is upgradable then this object shows flight & fare details to be upgraded from one class to upper class.
"UpsellDetails": {
"FareDetails": [
{
"paxType": 0,
"BasePrice": 43.999752,
"ServiceFee": 1.04999924,
"UpgradeFee": 13.9500008
}
],
"FlightDetails": [
{
"AirlineCode": "UA",
"FlightNo": "1454",
"ClassofFlight": "G"
},
{
"AirlineCode": "UA",
"FlightNo": "1693",
"ClassofFlight": "G"
}
]
}
OcashPoints float This filed contains no. of rewards points.

Response JSON Sample:

{
"ChangedPriceDetails": null,
"FlightVerificationStatus": 1,
"ErrorCode": null,
"ErrorAtNode": null,
"CardFeeDetails": null,
"SoldOutFlights": null,
"BrandedFares": null,
"FlightsInsurance": [
    {
        "PaxType": "ADULT",
        "BasicInsAmt": 6.95,
        "ChoiceInsAmt": 0,
        "ChoicePlusInsAmt": 0
    }
],
"SplitPaymentOption": {
    "IsEnable": true,
    "NumberOfSplitPaymentCards": 2,
    "DefaultPercentageForFirstCreditCard": 100,
    "IsShowCardHolderNameOnlyForFirstCard": true
},
"EnabledModeOfPayment": "Paypal,Paypal Credit,MasterPass,GoogleWallet,GiftCard,PLCC",
"ThirdPartyPaymentDetails": [
    {
        "PaymentMethod": "PAYPAL",
        "MerchantSignature": "ApNFD.ZzsUY2XmvDxUE92LDkjFcZACUAdGTHzSabIaQaoIAc3TwD582r",
        "UserName": "kusalatestseller_api1.fareportal.com",
        "Password": "4KR928AA33LAR6MM"
    }
],
"TransitVisa": "",
"isSeatMapEnabled": true,
"ProviderName": "BIZTRL",
"PromotionalDiscountMessage": null,
"ProviderCurrency": null,
"Conversionratio": 0,
"IsPassportManditory": false,
"TravelAssistAmount": 14.95,
"TravelAssistCLassicAmount": 9.95,
"RequireBookingReason": false,
"UpsellDetails": null,
"OCashPoints": 5.32099962
}

Reading Server Errors Response:

In order to ascertain a valid response, the Web API must be provided with correct request. In case of errors, we’ve some set of error codes and descriptions to be sent in response:

"FlightResponse":
{
"FpSearch_AirLowFaresRS": null,
"ErrorReport": {
    "ErrorCode": "FPWB A9101",
    "ErrorDescription": "Object Containing Invalid Value for Property. UserName/Password"
}

See Error Codes for more detailed description on Errors




Error Codes

The value of the node ErrorCode is the error code.
And, the value of the node ErrorDescription is the brief description of error.

Find the List of Error Codes below:

Error Code Error Description
FPWB A4101 InValid XML Supplied.
FPWB A4102 InValid XML Supplied. Probable causes of error may be either Root node is missing or node mismatch.
FPWB A4201 XML validation failed, invalid node supplied. Node name =
FPWB A4202 Depart date should be greater than today.
FPWB A4203 Return date should be greater than DepartDate
FPWB A4204 Invalid date supplied. Date Must be in Valid format.
FPWB A4205 Same day departure search is not allowed other than to US/Canada
FPWB A4301 Unrecognised request received. Please Check the supplied Xml and Try again.
FPWB A4302 Error occured while reading supplied Xml at node =
FPWB A4303 An unexpected node found. Node Name is :
FPWB A5101 Request Returned. Unable to Store SessionState in DataBase, Please try Again!!!
FPWB A5201 InValid Credential supplied for Close Session Request.
FPWB A6101 Unable to process your request because Sessionid is invalid or expired . You may request again for a new SessionID.
FPWB A6102 InValid Credential Supplied for Session Request. Try Again!!!
FPWB A6103 InValid Credential Supplied for Airfare Request. Please Try Again!!!
FPWB A6104 Session Request send is above limit. Try after some time.
FPWB A6105 No Itinerary generated for the given request. Please try again with modified parameters!!!.
FPWB A6106 Invalid CNTKey/ContractId supplied or Contract Timedout.
FPWB A6107 Request is Above Limit.
FPWB A6108 No Flexi date results found.
FPWB A7101 Invalid number of Childs
FPWB A7102 No of Passengers should be less than or equal to 9.
FPWB A7103 Source-Destination cannot be same.
FPWB A7104 Depart date must be within 11 months from today's date.
FPWB A7105 Return date must be within 11 months from today's date.
FPWB A7106 Black list destination.
FPWB A7201 Invalid value supplied in CNTId node.
FPWB A7202 Invalid CardNumber or CVNumber according to Card Type.
FPWB A7203 Invalid CreditCard Detail.
FPWB A7204 Invalid Credit Card Expiration Date.
FPWB A7205 Pax type or no of Passenger differs w.r.t. Passenger detail searched for.
FPWB A7206 Card Expiration Date must be 15 days later from the date of Booking.
FPWB A7207 Pax type or no of Passenger differs w.r.t. Passenger detail searched for.
FPWB A7208 Unable to Book.
FPWB A7209 InValid Credential Supplied for Booking Request. Please Try Again!!!
FPWB A7210 InValid value found in Email node.
FPWB A7211 Error Occured while booking please recheck your requestxml for proper values.
FPWB A7212 You are not authorised to Book Contract.
FPWB A7213 You are not authorised for this service.
FPWB A7214 Not Booked
FPWB A7216 User Profile Service response
FPWB A7215 Sold out
FPWB A7301 InValid Credential Supplied for Cancel Air Contract Request. Please Try Again!!!
FPWB A7302 PNR Already Cancelled..
FPWB A7303 UnAuthorised Request to Cancel PNR.
FPWB A7304 Invalid PNR
FPWB A7305 Unable to handle your request. Please try after sometime.
FPWB A8101 InHouse Authentication Failed!!!
FPWB A8102 Wuid supplied is not supported for this CntKey
FPWB A8103 File doesn't Exits..
FPWB A8104 Error Occured while reading from stream...
FPWB A8105 Exception Occured in InhouseGateway Web Service.
FPWB A9101 Object Containing Invalid Value for Property.
FPWB A9102 Null / Empty will not be handled.
FPWB A9103 Segment doesnot Confirmed for ROUNDTRIP / OPENJAW
FPWB A9104 InValid Airport / City Code Found for :
FPWB A9105 Required Property Cannot be Null.
FPWB A9106 Depart Source / Destination Cannot Be Same.
FPWB A9107 Please select atleast one adult or senior.
FPWB A9108 Infants cannot be more than the double of adults+seniors.
FPWB A9109 LapInfant should be equal to number of adults.
FPWB A1100 System Error !!!!
FPWB A1102 Currently Not Working With this Module.
FPWB A9110 We are sorry. We do not provide service from the given origin/destination location. You can modify your search and try again !!!
FPWB A9111 Results Timed Out, Please continue with a new search.
FPWB A9112 Age of Adult, on departure date, should be greater than or equal to 16years
FPWB A9113 Age of Senior should be greater than 64years and less than 109 years.
FPWB A9114 Age of Child should be greater than 2years and less than 12years.
FPWB A9115 Age of InfantOnSeat/InfantInLap should be less than 2years.
FPWB A9116 3rd Party credit card not allowed, card holder should be a traveler.
FPWB A9117 We could not process you furthur because credit card entry is invalid.
FPWB A9118 DUPLICATE BOOKING
FPWB A9119 Input has restricted keyword.
FPWB A9120 Duplicate Pax Names.
FPWB A9121 Invalid Booking Number!!! .
FPWB A9122 Cannot process this booking number !!! .
FPWB A9123 Atleast one Adult Should be 16 years or more.
FPWB A9124 Multicity Search is not supported by this method. Use method SearchFlightAvailability30.
FPWB A9201 Not able to add given traveler service.
FPWB A9202 No services found.
FPWB A9203 Services already added
FPWB A9204 Number of request must be less then 6.
FPWB A9205 InvValid Number of Segments
FPWB A9206 No Flight Segments Supplied
FPWB A9207 Invalid Depart Date Supplied
FPWB A9208 Authentication Details Not Supplied
FPWB A9209 Deprecated Method.
FPWB A9301 Unable to apply promo code
FPWB A9302 Internal error while saving coupon discount response.
FPWB A9303 Coupon not applied before booking.
FPWB A9304 Issue inconvenience coupon for this customer
FPWB A9305 UnAuthorised for applying discount coupon.
FPWB A9307 This is special fare. Coupon can't be applied.
FPWB A9306 SeatMap response not retreived or file not found
FPWB A9401 Internal Server Error.
FPWB A9402 Feedback Points should be between 0 to 6 only.
FPWB A9403 No booking found with given combination of email , last name and Zip/Phone
FPWB A9501 Weather Info Not available for requested airport
FPWB A9502 Origin Airport can not be blank
FPWB A9503 Destination Airport can not be blank
FPWB A9504 Origin Airport is not in correct format
FPWB A9505 Destination Airport is not in correct format
FPWB A9506 Origin and Destination Airport should be different
FPWB A9507 Origin/Destination Airport is not valid
FPWB A9601 International booking is not allowed for supplied country
FPWB A9602 Service Tracking is not enabled
FPWB A9603 Invalid Service/Method Name found
FPWB A9701 No interactive seat map found
FPWB A9702 Invalid Booking GUID
FPWB A9703 Additional service not purchased
FPWB A9704 Invalid booking request
FPWB A9705 Invalid number of seat booking request
FPWB A9706 Invalid pax name in booking request
FPWB A9707 Pax name can not repeat for same flight
FPWB A9708 LapInfant Request not allowed
FPWB A9709 More than one pax not allowed on one seat
FPWB A9710 Wrong airline Name/Number
FPWB A9711 Invalid Row Number/Column Name/SeatType
FPWB A9712 Invalid Row Number/Column Name for generic seat map
FPWB A9713 Invalid seat type for generic request
FPWB A9714 Invalid seat type SEATTOGTHER for single passenger
FPWB A9715 Seat already requested for this pax and flight
FPWB A9716 Seat already booked by other pax
FPWB A9717 For Generic Seat map send request for every travllers excluding lapInfant
FPWB A9718 No any seats booked for this booking
FPWB A9719 All booked seats already canceled for this booking
FPWB A9720 Requested seat is not booked for this traveller
FPWB A9721 Requested seat is not booked for any traveller
FPWB A9722 Can not cancel generic seat
FPWB A9723 Row Number/Seat Name not sent
FPWB A9724 Booking is not tickted yet
FPWB A9731 Special request purchase failed
FPWB A9732 Invalid value send for special request/ meal preference/ seat preference
FPWB A9733 Please send request for each pax type except lapinfant.
FPWB A9734 Please choose a request for a pax type.
FPWB A9735 Required property Paxname can't be null.
FPWB A9736 Invalid pax name in booking special request.
FPWB A9737 Special request for LapInfant not allowed
FPWB A9738 Child meal or inf baby food request not accepted for adult/Senior
FPWB A9801 Failed to update Payment Details
FPWB A9802 Failed to Reprice
FPWB A9803 Failed to Handel Price Change
FPWB A9804 Failed to Update credit card details In GDS And Inititate Payment Action Status
FPWB A9805 Failed to Perform Post Payment Update And Queued to Auto Ticketing
FPWB A9806 Authorization of Credit Card is failed
FPWB A9807 Value of IsIncreasedPriceAccepted should be TRUE
FPWB A9808 Value of BookingGuid Can not be null or empty
FPWB A9809 Fare is no longer valid
FPWB A9810 Price is Increased
FPWB A9811 Can not process because either Card is not rejected or booking status is Ticketed/Canceled/OnHold
FPWB A9812 Invalid Flow Type,It should be either AIR, CAR or HOTEL
FPWB A9813 Payment details has been updated successfully and queued to autoticketing
FPWB A9814 Invalid Flow Type,It should be AIR
FPWB A9815 Note: -Insurance is not being added to your booking beacause Insurance is not applicable for your billing/destination country
FPWB A9816 Note: -Insurance is not applicable for your billing country
FPWB A9817 Total number of passengers (excl. lap infant) cannot be less than 10 and more than 100
FPWB A9818 Presently we do not support this service for
FPWB A9819 Insurance will not be added to your booking beacause Insurance price is changed
FPWB A9820 Insurance is not applicable for your booking
FPWB A9901 Failed to retrieve fare rules
FPWB A9821 #ADS# is not applicable for your booking.
FPWB A9902 You are not authorized to get fare rules
FPWB A9905 Tax Breakdown is not available for this contract
FPWB A9906 Service updated successfully
FPWB A9907 Service is not added. Unsubscribe failed
FPWB A9908 Flight Watcher Unsubscribing has been failed
FPWB A9909 Flight Watcher Unsubscribing has been done successfully
FPWB A9910 Service not added
FPWB A9911 No advanced flight information available
FPWB A9912 No information available for provided flight number and airline code
FPWB A9913 No information available for requested booking
FPWB A9914 Giftcard is not activated
FPWB A9915 No Balance in GiftCard
FPWB A9916 Giftcard code is cancelled.
FPWB A9917 Invalid Giftcard
FPWB A9918 Giftcard code is disabled.
FPWB A9919 Giftcard Service is not available
FPWB A9920 Unable to apply giftcard code
FPWB A9921 Internal error while saving gift card response.
FPWB A9922 Gift Card not applied before booking.
FPWB A9923 Null/Empty Gift Card code is not allowed.
FPWB A9924 Split Payment is not allowed.
FPWB A9925 Primary card amount should be greater than 0
FPWB A9926 Invalid Engine For Split Payment
FPWB A9927 Required field missing [EmailID or PhoneNumber or Phone Service Provider]
FPWB A9928 Secondry card holder name not required
FPWB A9929 Invalid Airline for Split Payment
FPWB A9930 Gift Card and Promo Code can't applied at the same booking
FPWB A9931 Other pax search is not allowed along with YOUTH
FPWB A9932 Pax type YOUTH search is not enabled
FPWB A9933 Attention should be at least 4 letters
FPWB A9934 Shipping Type is missing
FPWB A9935 Invalid Mode of payment for this booking
FPWB A9936 There is an existing booking with the same Traveler details
FPWB A9937 This Payment Network is not valid
FPWB A9938 This Mode of payment is not supported for this user
FPWB A9940 Expiration month is not valid
FPWB A9941 Expiration year is not valid
FPWB A9942 Expiration year and month should be greater than or equal to current year and month
FPWB A9943 Provide ECI indicator for this booking
FPWB A9944 Synchrony is not applicable for this booking
FPWB A9945 Invalid amount
FPWB A9946 Synchrony PLCC card is not applicable
FPWB A9947 Age of Adult should be greater than 18 years
FPWB A9948 Certified person name is not found
FPWB A9949 Reason to travel CUBA, is miss match
FPWB A9950 The date of birth that you have entered for traveler occurs in the future. Please enter a valid date
FPWB A9951 Either select Travel Assist or Travel Assist Classic
FPWB A9952 Card Amount is more than Total Amount
FPWB A9953 Card Amount is less than Total Amount
FPWB A9954 Age of Youth should be greater than 16years and less than 25years.
FPWB A9955 We do not sell flights From the chosen city or airport. Please choose a different From city or airport.
FPWB A9956 We do not sell flights From the chosen city or airport. Please choose a different To city or airport.
FPWB A9957 Zero auth card verification failed.