Book overview
This method is used to make booking or hold booking .
You will have the possibility of customizing the bookings according to the different business scenarios such residents discounts, unaccompanied minors, large families discount, additional information such docs , doca for trips to USA and all possible scenarios thanks to api flexibility.
Booking on hold and emit on book
You also have the possibility to make a booking on hold ( issuance pending ) only getting PNR or reservation number .
In some airlines when you add Anciliaries services like baggages and seats its not possible to keep holding book and you need to book and issue the tickets into the same process this scenario is Emit on Book
Low cost Carriers like Easyjet , Ryanar dot not have possibility to keep hold booking because the Book and issuance need to be done simoultaneously
Important advice : You need to add on Book Request the same token returned from Avail response also used in Pricing , Catalogue , policy , Multi Family
Mandatory parameters to make a booking
On book query you need to add the following parameters returned from Avail response
API KEY = Your password
Token = Remember to use the same token returned from avail response
SolutionID = The solution from Avail response that contains the journeys you want to book
Journeys= the journeys into Solution ID contain the flights you select to book
Standard book request Sample
Header
{
"json": true,
"headers": {
"Content-Type": "application/json",
"x-api-key": "your api key xxxxxx",
"Authorization": "Basic cxxxxxxxxxxxxxxxxxx"
}
Book request
{ "query": { "solutions": [ { "id": "qW5d6e37f21a2f1", "journeys": ["IB063120191127"] } ], "holder": { "name": "Miguel", "surnames": [ "Perezuno", "Perezdos" ], "contact": { "mails": [ "om@lleego.com" ], "phones": [ { "countryPref": "+34", "number": "661866354" } ] } }, "travellers": [ { "type": "ADT", "gender": "Male", "title": "Mr", "name": "Miguel", "surnames": ["Perezuno", "Perezdos"], "birthDate": "1979-12-12", "contact": { "type": "Emergency", "name": "Fernando", "surnames": ["Perezuno", "Perezdos"], "phones": [ { "countryPref": "+34", "number": "661866354" } ] }, "documents": [ { "type": "FF", "number": "IB79283746" }, { "type": "PP", "number": "70243789", "city": "", "country": "ESP", "nationality": "ESP", "issuedDate": "", "expiryDate": "" } ] } ] } }
Front Reservation Sample
The minimun mandatory methods to get a Reservation number or PNR
Avail
Pricing
Book
You have the possibility to enrich the book content using Standalone Catalogue to add baggages during booking process.
You have the possibility to get all Fare family aplicability and available fares options for selected flight using Multi Family Method during booking process.
You have the possibility to get the fare policy conditions for selected flight using Policy during booking process.
Particular Scenarios to take in account
Spanish Residents, you need to include residents data on Book query like DNI and resident town
Some suppliers needs Docs before emit ( USA Destination )
UNMR unaccompanied minor needs parents contact on book query RM or CTC with parents contact
Large Families need family card on book query
Dynamics parameters for Low Cost Carriers on book
Scenarios
Spanish Resident specifications on BOOK
The following mandatory information need to be added on Book Request for resident
Document{
Type
Document Type - NI: National identity document - TR: Resident Card -
[ NI, TR, ]
Number title: Document Number
City Municipality of residence. Mandatory for resident discount.
Country Document emission country
nationality Document nationality
issue_date Document issue date
expiry_date Document expiration date
validated Indicates if the document was validated by the provider.
Used by residents, validation S.A.R.A.
Check our “Residents documentation” Residentes
Docs
Some suppliers may need extended information for Passport number and traveller personal information
Specially when the passenger travels to USA , Canadar or outside European Community
Sample
Unaccompanied minor
It is the child travelling alone and who is requested a special accompaniement service
important not all providers have this service available
the contact details for responsible person need to be added at origin and destination city by Remarks or other format requested by supplier.
Example
Large Family
Special discount for families with three or more childrens
the discount average arround 5 and 10 % only apply traveling into Spain
BOOK RESPONSE
Reservation status
RSVD = RESERVED The order is reserved but not issued
CNFD = CONFIRMED The order is confirmed (issued)
VOID = VOID Tickets cancelled during the first hours after issuance ( only if supplier allows it )
CNLD = CANCELLED Reservation is cancelled
RFND = REFUNDED The order is refunded
ONRQ = ORDER ON REQUEST This status is applicable for low cost bookings when the order is not completed during the booking process. This is a temporary status that will end in:
CNFD: If the order is finally completed on the provider/airline side
CNLD: If the order is not completed on the provider/airline side
MANL: If after some time the reservation does not end in any of the previous status.
MANL = MANUAL. Applicable for low cost bookings. Starting from ONRQ status, the booking will change to MANL status if after some time the reservation does not end in any of the previous status: CNFD / CNLD.
PAYG = PAYING. Applicable for low cost booking. This is a temporary status while the order is being paid by 3DS.
The reservation status would apply to all providers, which must be taken into account that for low cost providers such TravelFusion, at the time the reservation is made is also paid and issued this proccess is call Emit on Book , then the status with Travelfusion will always be CNFD (Confirmed and issued)
With respect to GDS, once the reservation is made, it will return the status RSVD = RESERVED Not issued, once you do the emit, the status changes to CNFD = von signed and issued.
CANCEL It is also important before canceling a reservation it has to be in status RSVD = ReservedYou can never execute a cancel on an Issued CNFD reservation.
VOID you have the possibility to VOID and CANCEL the tickets issued during the first 24 hrs after issuence only if the carrier allow it
Important ! Vueling and Low cost carriers cannot be VOID
Book Response structure
Is important to understand the book reply with all the nodes related traveller and journey reserved
Token = Your token
solution ID= solution id selected to make reservation
creation date = date of PNR creation
Booking reference = PNR or Reservation number ex WCYYYXX
third locator= Supplier Locator: sometime the airline may have different locator and its depends of hosting system used
Status = RSVD reserved
External View = Link to the supplier to check the booking on front
Holder = Reservation holder
Contact = agency or passenger contact
Phone = phone number
Travellers = passengers
documents = type , number , all info related documments
Travel ID = the solution you previously selected to book
Provider = PNR Host supplier amadeus , galileo , ndc , renfe
ID examplle UX215220210922
= Segment who contains all info related flight fare, class etc
Origin =ID with all info departure city/airport
Destination =ID with all info arrival city /airport
departure date time = all info related departure
arrival date time = all info related arrival
Opetaring company = the carrier who operate the flight
transport number = flight number
class of service = the class maped into the fare
cabin = type of cabin Eco Business First
equipment = Aircraft type
status = Booking status HK
baggage = inlcuded or not
fare type = type of fare Public / private
book response sample
"token": "Ey611a2db303302", "version": 2, "_doc_version": 1, "booking": { "id": "f2bdc091-fe7", "created": "2021-08-16T11:40:10", "modified": "2021-08-16T11:40:10", "lines": [ { "id": "f2bddb7c-fe75-11eb-ac13-06d5738e1992", "created": "2021-08-16T11:40:10", "booking_reference": { "locator": "XXX11223", "status": "RSVD", "external_view": "https://www.iberia.com/web/retrievePNR.do?apellido=SACRISTANTORRALBA&localizador=N5T1D&market=ES&language=es&mmb=true", "source_i_d": "IB7f398fe09f7b493d92b1053f136093f8OC" }, "holder": { "type": "ADT", "gender": "Male", "title": "Mr", "name": "TEST", "surnames": [ "TEST APELLIDO" ], "contact": { "type": "Passenger", "name": "TEST", "surnames": "TEST2", "mails": [ "TEST@TEST.es" ], "phones": [ { "country_pref": "+34", "number": "12121212121", "country_code": "ES" } ] }, "documents": [ {} ], "in_booking": true, "index": 0
traveller structure
}, "travellers": [ { "code": "970964", "source_i_d": "ADULT_01", "type": "ADT", "gender": "Male", "title": "Mr", "name": "test", "surnames": [ "test2" ], "contact": { "type": "Passenger", "name": "test", "surnames": "test", "mails": [ "test@mail" ], "phones": [ { "country_pref": "+34", "number": "91212", "country_code": "ES" }
travel ID with all info related travel like flights departure arrival etc
"travel": { "id": "ne611a2db40c7f20018", "source_i_d": "Qm9va2luZ0BHVy0xNjI5MTA1NTg3MTQ2LTBGSU4w#IB7f398fe09f7b493d92b1053f136093f8OC-3-2", "services_groups": [ { "source_i_d": "MADMAH", "services": [ { "source_i_d": "MADMAH20210918111500", "segments": [ { "source_i_d": "IB379420210918", "origin": { "id": "52e6e452090b", "short_name": "BARAJAS ADOLFO SUÁREZ", "long_name": "BARAJAS ADOLFO SUÁREZ", "type": "Airport", "iata": "MAD", "latitude": 40.4722222222, "longitude": -3.56083333333, "geonames": "", "time_zone": "Europe/Madrid", "country": "ES", "country_name": "ESPAÑA", "city_name": "MADRID", "iata_city": "MAD", "localizacion": "ESP" }, "destination": { "id": "52e6e4520cc1", "short_name": "MENORCA", "long_name": "MENORCA", "type": "Airport", "iata": "MAH", "latitude": 39.8333333, "longitude": 4.2666667, "geonames": "", "time_zone": "Europe/Madrid", "country": "ES", "country_name": "ESPAÑA", "city_name": "MENORCA", "iata_city": "MAH", "localizacion": "BID" },
Price with all breakdownn of fare taxes etc
"price": { "currency": "EUR", "base": 180, "total_taxes": 28.45, "total_external_fees": 0, "fee": 0, "commission_percentage": "0.00", "commission_amount": "0.00", "amount": 208.45, "total": 208.45, "fares": [ { "source_i_d": "IB7f398fe09f7b493d92b1053f136093f8OC_01", "tags": [ { "source_i_d": "RP" } ], "context": 0, "passenger_type": "ADT", "passenger_refs": [ "ADULT_01" ], "quantity": 1, "currency": "EUR", "base": 180, "total_taxes": 28.45, "taxes": [ { "tax_code": "QV", "amount": 3.53 }, { "tax_code": "OG", "amount": 0.65 }, { "tax_code": "JD", "amount": 15.62 }, { "tax_code": "QV", "amount": 3 }, { "tax_code": "OG", "amount": 0.55 }, { "tax_code": "JD", "amount": 5.1 } ], "fee": 0, "markup": 0, "amount": 208.45, "total": 208.45, "validating_company": { "id": "5522e2516a51", "short_name": "IBERIA", "long_name": "Iberia Lineas Aereas de Espana S.A.", "iata": "IB", "icao": "IBE", "need_doc": false }, "last_ticket_date": {}, "last_date": "2021-08-16T23:59:00", "public": true, "refundable": false }