APIs to perform search, checkout and book an air pnr
The list of all legs (to keep as same, to remove and to be added). In the example shared, if there is a trip from SFO to ANC with one Leg containing a direct flight from mentioned source to destination, and traveller needs to add a visit to Seattle in between changing his trip to now contain two legs SFO->SEA and SEA->ANC, then we would remove the first existing leg(indexed 0) SFO->ANC and add two new legs SFO->SEA and SEA->ANC.
New leg to be added in the pnr.
curl -i -X POST \
https://apis.spotnana.com/v2/air/modify-search \
-H 'Authorization: Bearer <YOUR_TOKEN_HERE>' \
-H 'Content-Type: application/json' \
-d '{
"pnrId": "1213124111",
"legs": [
{
"index": 0,
"remove": true
},
{
"origin": "SFO",
"destination": "SEA",
"date": "2022-01-21T17:00"
},
{
"origin": "SEA",
"destination": "ANC",
"date": "2022-01-22T17:00"
}
]
}'
{ "searchId": "ChBjZDg3ZjRjZmRmMTFmMWFiEhBjZDg3Z", "itineraryDetails": { "itineraries": [ … ], "flightData": [ … ] }, "paginationParams": { "numResults": 0, "numPages": 0 }, "metadata": { "airlineInfo": [ … ], "applicableAlliances": [ … ], "legBylegPricing": true, "enableFareCategories": [ … ] } }
Booking id returned in successful response of air-revalidate-itin api call in the booking flow.
Trip data to book a PNR.
Email address of the approver who should receives approval email for the current booking.
Whether the current booking requires hard approval or soft approval. This flag should be used only if valid approver is present.
Wrapper for post stripe verification info object.
curl -i -X POST \
https://apis.spotnana.com/v2/air/modify-book \
-H 'Authorization: Bearer <YOUR_TOKEN_HERE>' \
-H 'Content-Type: application/json' \
-d '{
"bookingId": "ChBlMTFmOTVkZTcwZmZjMmI2EhAwZjVkNDhhNGJjNWExZTMw",
"tripData": {
"tripId": {
"id": "9527251668"
}
}
}'
{ "pnrNumber": "AXKJDF", "pnrStatus": "CONFIRMED", "pnrId": "1213124111" }
Traveler information.
Traveler details
In case seat is not selected for the traveler, this field can be used to set the seat preference and reserve seat if it is free of cost
List of all Special Service Requests (SSR) for the traveler.
The seatMapResponseId
generated using the Get flight seat map API. This field is only required if the seat selection is being changed for the traveler.
The list of all Other Service Information (OSI) to be included in the PNR.
Wrapper for post stripe verification info object.
curl -i -X POST \
https://apis.spotnana.com/v2/air/pnrs/1213124111/update \
-H 'Authorization: Bearer <YOUR_TOKEN_HERE>' \
-H 'Content-Type: application/json' \
-d '{
"pnrId": "1234567890",
"seatMapResponseId": "8bc4ec0e1839aabc",
"pnrUpdateTypes": [
"OTHER_SERVICE_INFO"
],
"travelerInfo": [
{
"traveler": {
"travelerId": "1",
"travelerInfo": {
"userOrgId": {
"userId": {
"id": "8ec7ef81-e314-4b2a-ad62-9157262aeb11"
},
"organizationId": {
"id": "5ec7ef81-e314-4b2a-ad62-9157262aeb11"
},
"organizationAgencyId": {
"id": "2ec7ef81-e314-4b2a-ad62-9157262aeb11"
},
"tmcInfo": {
"id": {
"id": "2ec7ef81-e314-4b2a-ad62-9157262aeb11"
},
"primaryServiceProviderTmc": {
"tmcId": {
"id": "2ec7ef81-e314-4b2a-ad62-9157262aeb11"
}
},
"secondaryServiceProviderTmcs": []
},
"tmcBasicInfo": {
"contractingTmc": {
"id": {
"id": "2ec7ef81-e314-4b2a-ad62-9157262aeb11"
}
},
"bookingTmc": {
"id": {
"id": "2ec7ef81-e314-4b2a-ad62-9157262aeb11"
}
}
}
}
}
},
"seats": [
{
"flightIndex": 1,
"seatNumber": "10A"
}
],
"specialServiceRequests": [
{
"flightIndex": 1,
"code": "SPML",
"info": "Special meal without egg."
}
],
"updateTypes": [
"SPECIAL_SERVICE_REQUEST",
"SEAT"
]
}
]
}'
{ "paymentVerificationInfo": { "gatewayIdentifier": { … }, "paymentKey": "string", "stripeVerificationInfo": { … } } }