APIs to perform search, checkout and book an air pnr
API reference
/Air
/- Initiate booking
Get air itineraries
Get flight attributes
Get selected itinerary
Get Airlines Information (Air)
Get flight checkout details
Get flight seat map
Validate air itinerary
Validate air itinerary (interim)
Create air pnr
Cancel Air Pnr
Get PNR exchange details
Modify Search
Modify Book
Edit PNR
Get Special Service Requests (SSR)
Get Special Service Requests (SSR) for a Category
Returns the Air Raw Fare Rules for a Segment or Pnr
Initiate booking
Air API (v2)
Download OpenAPI description
Languages
Servers
Sandbox URL
https://api-ext-sboxmeta.partners.spotnana.com/
Spotnana mock server
https://developer.spotnana.com/_mock/openapi/airapi/
Bodyapplication/jsonrequired
Information about the travelers on the itinerary.
Type of passenger
Enum"UNKNOWN_PASSENGER_TYPE""ADULT""CHILD""INFANT""INFANT_ON_LAP""YOUTH""SENIOR""TEEN"
Age of the traveler. Only required if traveler type is Child.
- Sandbox URLhttps://api-ext-sboxmeta.partners.spotnana.com/v2/air/seat-map
- Spotnana mock serverhttps://developer.spotnana.com/_mock/openapi/airapi/v2/air/seat-map
- curl
- JavaScript
- Node.js
- Python
curl -i -X POST \
https://api-ext-sboxmeta.partners.spotnana.com/v2/air/seat-map \
-H 'Authorization: Bearer <YOUR_TOKEN_HERE>' \
-H 'Content-Type: application/json' \
-d '{
"itinerary": {
"airItineraryId": {
"searchId": "Xjdks78X",
"itineraryId": "ijdks78X"
}
},
"travelerInfos": [
{
"travelerType": "ADULT",
"travelerAge": {
"numYears": 22
},
"travelerInfo": {
"userId": {
"id": "497f6eca-6276-4993-bfeb-53cbbbba6f08"
}
},
"loyaltyInfos": [
{
"flightId": "flight_0",
"loyaltyInfos": [
{
"appliedTo": [
null
],
"id": "firstId",
"issuedBy": "firstIssuedBy",
"type": "AIR",
"linked": false
}
]
}
]
}
],
"indexes": [
{
"legIndex": 0,
"flightIndex": [
0
]
}
]
}'Response
application/json
{ "seatMapResponseId": "seat1234", "travelerSeatMaps": [ { … } ], "seatMaps": [ { … } ] }
Request
Initiates a new air booking for the trip. The identityDocs field supports the following traveler identity documents: Passport, National ID, Known Traveler Number (KTN), redress number, and immigration documents. The traveler can choose one among the list of identity documents available and provide its information during checkout.
Security
Bearer
The set of unique response ids associated with initiate booking workflow.
Booking contact for the itinerary. Airlines send all update and change information to booking contact as well.
- Sandbox URLhttps://api-ext-sboxmeta.partners.spotnana.com/v2/air/initiate-booking
- Spotnana mock serverhttps://developer.spotnana.com/_mock/openapi/airapi/v2/air/initiate-booking
- curl
- JavaScript
- Node.js
- Python
curl -i -X POST \
https://api-ext-sboxmeta.partners.spotnana.com/v2/air/initiate-booking \
-H 'Authorization: Bearer <YOUR_TOKEN_HERE>' \
-H 'Content-Type: application/json' \
-d '{
"initiateBookingWorkflowIds": {
"checkoutResponseId": "string",
"seatMapResponseId": "string"
},
"travelers": [
{
"travelerDetails": {
"travelerId": {
"id": "497f6eca-6276-4993-bfeb-53cbbbba6f08"
},
"travelerInfo": {
"userId": {
"id": "497f6eca-6276-4993-bfeb-53cbbbba6f08"
}
},
"travelerType": "ADULT",
"title": "MR",
"name": {
"family1": "Gandas",
"family2": "FamilyTwo",
"given": "Vichitr",
"middle": "Kumar",
"suffix": "SR",
"preferred": "Don"
},
"gender": "FEMALE",
"dob": {
"iso8601": "2017-07-21"
},
"phoneNumber": {
"countryCode": 91,
"countryCodeSource": "FROM_NUMBER_WITH_PLUS_SIGN",
"extension": "222",
"isoCountryCode": "IN",
"italianLeadingZero": true,
"nationalNumber": 8150,
"numberOfLeadingZeros": 1,
"preferredDomesticCarrierCode": "7",
"rawInput": "77777",
"type": "MOBILE"
},
"email": "example@email.com",
"identityDocs": [
{
"passport": {
"docId": "PassportID",
"expiryDate": {},
"issueCountry": "IN",
"issuedDate": {},
"nationalityCountry": "IN",
"type": "REGULAR"
}
}
],
"address": {
"addressLines": [
"Golden Gate Bridge"
],
"administrativeArea": "CA",
"administrativeAreaName": "California",
"description": "San Francisco Home",
"isDefault": true,
"languageCode": "en",
"locality": "San Francisco",
"locationCode": "LAX",
"organization": "Spotnana",
"postalCode": "94130",
"continentCode": "AF",
"recipients": [
"string"
],
"regionCode": "US",
"regionName": "America",
"revision": 1,
"sortingCode": "Jamaica",
"sublocality": "string",
"timezone": "America/Los_Angeles",
"coordinates": {
"latitude": 77.1025,
"longitude": 28.7041
}
},
"emergencyContactInfo": {
"address": {
"addressLines": [
"Golden Gate Bridge"
],
"administrativeArea": "CA",
"administrativeAreaName": "California",
"description": "San Francisco Home",
"isDefault": true,
"languageCode": "en",
"locality": "San Francisco",
"locationCode": "LAX",
"organization": "Spotnana",
"postalCode": "94130",
"continentCode": "AF",
"recipients": [
"string"
],
"regionCode": "US",
"regionName": "America",
"revision": 1,
"sortingCode": "Jamaica",
"sublocality": "string",
"timezone": "America/Los_Angeles",
"coordinates": {
"latitude": 77.1025,
"longitude": 28.7041
}
},
"designation": "MANAGER",
"email": "emergency-contact@email.com",
"name": {
"family1": "Gandas",
"family2": "FamilyTwo",
"given": "Vichitr",
"middle": "Kumar",
"suffix": "SR",
"preferred": "Don"
},
"phoneNumber": {
"countryCode": 91,
"countryCodeSource": "FROM_NUMBER_WITH_PLUS_SIGN",
"extension": "222",
"isoCountryCode": "IN",
"italianLeadingZero": true,
"nationalNumber": 8150,
"numberOfLeadingZeros": 1,
"preferredDomesticCarrierCode": "7",
"rawInput": "77777",
"type": "MOBILE"
},
"userOrgId": {
"organizationAgencyId": {
"id": "string"
},
"organizationId": {
"id": "string"
},
"userId": {
"id": "497f6eca-6276-4993-bfeb-53cbbbba6f08"
},
"tmcInfo": {
"id": {},
"primaryServiceProviderTmc": {},
"secondaryServiceProviderTmcs": [
null
],
"partnerTmcId": {}
},
"tmcBasicInfo": {
"contractingTmc": {},
"bookingTmc": {}
}
}
},
"loyaltyInfos": [
{
"appliedTo": [
"TAJ"
],
"id": "firstId",
"issuedBy": "firstIssuedBy",
"type": "AIR",
"linked": false
}
],
"emergencyContact": {
"name": "John Smith",
"email": "emergency-contact@email.com",
"designation": "MANAGER",
"relation": "SPOUSE",
"phoneNumbers": [
{
"countryCode": 91,
"countryCodeSource": "FROM_NUMBER_WITH_PLUS_SIGN",
"extension": "222",
"isoCountryCode": "IN",
"italianLeadingZero": true,
"nationalNumber": 8150,
"numberOfLeadingZeros": 1,
"preferredDomesticCarrierCode": "7",
"rawInput": "77777",
"type": "MOBILE"
}
],
"preferredLanguage": "en-US"
}
},
"seats": [
{
"flightId": "string",
"seatNumbers": [
"string"
]
}
],
"baggages": [
{
"legId": "string",
"baggageIds": [
"string"
]
}
],
"ancillaries": [
{
"ancillaryId": "ancillary_0"
}
],
"shareContactInfo": false,
"specialServiceRequests": [
{
"indexes": {
"legIndex": 1,
"flightIndex": 2
},
"flightIndex": 0,
"code": "WCHC",
"info": "Special meal without egg."
}
]
}
],
"bookingCharges": [
{
"amount": {
"base": {
"amount": 510,
"currencyCode": "GBP",
"convertedAmount": 715.42,
"convertedCurrency": "USD",
"otherCoinage": [
{
"coinageCode": "BREX_POINTS",
"amount": 1000,
"conversionRate": 0.01,
"preferredCurrencyConversionRate": 0.01
}
]
},
"tax": {
"amount": 510,
"currencyCode": "GBP",
"convertedAmount": 715.42,
"convertedCurrency": "USD",
"otherCoinage": [
{
"coinageCode": "BREX_POINTS",
"amount": 1000,
"conversionRate": 0.01,
"preferredCurrencyConversionRate": 0.01
}
]
},
"taxBreakdown": [
{
"amount": {
"amount": 510,
"currencyCode": "GBP",
"convertedAmount": 715.42,
"convertedCurrency": "USD",
"otherCoinage": [
{}
]
},
"taxCode": "VAT",
"percentage": 9
}
]
},
"paymentMethod": {
"selectedPaymentSource": {
"paymentSourceId": "f49d00fe-1eda-4304-ba79-a980f565281d",
"rawPaymentSource": {
"type": "string",
"cardDetails": {
"company": "VISA",
"token": "4111111111111111",
"expiry": {}
}
},
"postPaymentRedirectionUrl": "https://mycompany.com/checkout?paymentSourceId=f49d00fe-1eda-4304-ba79-a980f565281d",
"cvv": "string",
"amount": {
"amount": 510,
"currencyCode": "GBP",
"convertedAmount": 715.42,
"convertedCurrency": "USD",
"otherCoinage": [
{}
]
}
}
}
}
],
"bookingContact": {
"emailAddress": "mail@mail.com",
"phoneNumber": {
"countryCode": 91,
"countryCodeSource": "FROM_NUMBER_WITH_PLUS_SIGN",
"extension": "222",
"isoCountryCode": "IN",
"italianLeadingZero": true,
"nationalNumber": 8150,
"numberOfLeadingZeros": 1,
"preferredDomesticCarrierCode": "7",
"rawInput": "77777",
"type": "MOBILE"
}
},
"useExistingBooking": true
}'Response
application/json
{ "initiateBookingResponseId": "CuwDQ2hCa09HVTJZemsyWVRFNFlUUm", "paymentSourcePrePaymentInformation": [ { … } ] }
- Sandbox URLhttps://api-ext-sboxmeta.partners.spotnana.com/v2/air/revalidate-itinerary
- Spotnana mock serverhttps://developer.spotnana.com/_mock/openapi/airapi/v2/air/revalidate-itinerary
- curl
- JavaScript
- Node.js
- Python
curl -i -X POST \
https://api-ext-sboxmeta.partners.spotnana.com/v2/air/revalidate-itinerary \
-H 'Authorization: Bearer <YOUR_TOKEN_HERE>' \
-H 'Content-Type: application/json' \
-d '{
"workflowIds": {
"checkoutResponseId": "string",
"seatMapResponseId": "string",
"paymentSetupResponseId": "string",
"initiateBookingId": "string"
},
"tripId": {
"id": "2783425534"
},
"travelers": [
{
"travelerDetails": {
"travelerId": {
"id": "497f6eca-6276-4993-bfeb-53cbbbba6f08"
},
"travelerInfo": {
"userId": {
"id": "497f6eca-6276-4993-bfeb-53cbbbba6f08"
}
},
"travelerType": "ADULT",
"title": "MR",
"name": {
"family1": "Gandas",
"family2": "FamilyTwo",
"given": "Vichitr",
"middle": "Kumar",
"suffix": "SR",
"preferred": "Don"
},
"gender": "FEMALE",
"dob": {
"iso8601": "2017-07-21"
},
"phoneNumber": {
"countryCode": 91,
"countryCodeSource": "FROM_NUMBER_WITH_PLUS_SIGN",
"extension": "222",
"isoCountryCode": "IN",
"italianLeadingZero": true,
"nationalNumber": 8150,
"numberOfLeadingZeros": 1,
"preferredDomesticCarrierCode": "7",
"rawInput": "77777",
"type": "MOBILE"
},
"email": "example@email.com",
"identityDocs": [
{
"passport": {
"docId": "PassportID",
"expiryDate": {},
"issueCountry": "IN",
"issuedDate": {},
"nationalityCountry": "IN",
"type": "REGULAR"
}
}
],
"address": {
"addressLines": [
"Golden Gate Bridge"
],
"administrativeArea": "CA",
"administrativeAreaName": "California",
"description": "San Francisco Home",
"isDefault": true,
"languageCode": "en",
"locality": "San Francisco",
"locationCode": "LAX",
"organization": "Spotnana",
"postalCode": "94130",
"continentCode": "AF",
"recipients": [
"string"
],
"regionCode": "US",
"regionName": "America",
"revision": 1,
"sortingCode": "Jamaica",
"sublocality": "string",
"timezone": "America/Los_Angeles",
"coordinates": {
"latitude": 77.1025,
"longitude": 28.7041
}
},
"emergencyContactInfo": {
"address": {
"addressLines": [
"Golden Gate Bridge"
],
"administrativeArea": "CA",
"administrativeAreaName": "California",
"description": "San Francisco Home",
"isDefault": true,
"languageCode": "en",
"locality": "San Francisco",
"locationCode": "LAX",
"organization": "Spotnana",
"postalCode": "94130",
"continentCode": "AF",
"recipients": [
"string"
],
"regionCode": "US",
"regionName": "America",
"revision": 1,
"sortingCode": "Jamaica",
"sublocality": "string",
"timezone": "America/Los_Angeles",
"coordinates": {
"latitude": 77.1025,
"longitude": 28.7041
}
},
"designation": "MANAGER",
"email": "emergency-contact@email.com",
"name": {
"family1": "Gandas",
"family2": "FamilyTwo",
"given": "Vichitr",
"middle": "Kumar",
"suffix": "SR",
"preferred": "Don"
},
"phoneNumber": {
"countryCode": 91,
"countryCodeSource": "FROM_NUMBER_WITH_PLUS_SIGN",
"extension": "222",
"isoCountryCode": "IN",
"italianLeadingZero": true,
"nationalNumber": 8150,
"numberOfLeadingZeros": 1,
"preferredDomesticCarrierCode": "7",
"rawInput": "77777",
"type": "MOBILE"
},
"userOrgId": {
"organizationAgencyId": {
"id": "string"
},
"organizationId": {
"id": "string"
},
"userId": {
"id": "497f6eca-6276-4993-bfeb-53cbbbba6f08"
},
"tmcInfo": {
"id": {},
"primaryServiceProviderTmc": {},
"secondaryServiceProviderTmcs": [
null
],
"partnerTmcId": {}
},
"tmcBasicInfo": {
"contractingTmc": {},
"bookingTmc": {}
}
}
},
"loyaltyInfos": [
{
"appliedTo": [
"TAJ"
],
"id": "firstId",
"issuedBy": "firstIssuedBy",
"type": "AIR",
"linked": false
}
],
"emergencyContact": {
"name": "John Smith",
"email": "emergency-contact@email.com",
"designation": "MANAGER",
"relation": "SPOUSE",
"phoneNumbers": [
{
"countryCode": 91,
"countryCodeSource": "FROM_NUMBER_WITH_PLUS_SIGN",
"extension": "222",
"isoCountryCode": "IN",
"italianLeadingZero": true,
"nationalNumber": 8150,
"numberOfLeadingZeros": 1,
"preferredDomesticCarrierCode": "7",
"rawInput": "77777",
"type": "MOBILE"
}
],
"preferredLanguage": "en-US"
}
},
"seats": [
{
"flightId": "string",
"seatNumbers": [
"string"
]
}
],
"baggages": [
{
"legId": "string",
"baggageIds": [
"string"
]
}
],
"ancillaries": [
{
"ancillaryId": "ancillary_0"
}
],
"shareContactInfo": false,
"specialServiceRequests": [
{
"indexes": {
"legIndex": 1,
"flightIndex": 2
},
"flightIndex": 0,
"code": "WCHC",
"info": "Special meal without egg."
}
]
}
],
"bookingCharges": [
{
"amount": {
"base": {
"amount": 510,
"currencyCode": "GBP",
"convertedAmount": 715.42,
"convertedCurrency": "USD",
"otherCoinage": [
{
"coinageCode": "BREX_POINTS",
"amount": 1000,
"conversionRate": 0.01,
"preferredCurrencyConversionRate": 0.01
}
]
},
"tax": {
"amount": 510,
"currencyCode": "GBP",
"convertedAmount": 715.42,
"convertedCurrency": "USD",
"otherCoinage": [
{
"coinageCode": "BREX_POINTS",
"amount": 1000,
"conversionRate": 0.01,
"preferredCurrencyConversionRate": 0.01
}
]
},
"taxBreakdown": [
{
"amount": {
"amount": 510,
"currencyCode": "GBP",
"convertedAmount": 715.42,
"convertedCurrency": "USD",
"otherCoinage": [
{}
]
},
"taxCode": "VAT",
"percentage": 9
}
]
},
"paymentMethod": {
"selectedPaymentSource": {
"paymentSourceId": "f49d00fe-1eda-4304-ba79-a980f565281d",
"rawPaymentSource": {
"type": "string",
"cardDetails": {
"company": "VISA",
"token": "4111111111111111",
"expiry": {}
}
},
"postPaymentRedirectionUrl": "https://mycompany.com/checkout?paymentSourceId=f49d00fe-1eda-4304-ba79-a980f565281d",
"cvv": "string",
"amount": {
"amount": 510,
"currencyCode": "GBP",
"convertedAmount": 715.42,
"convertedCurrency": "USD",
"otherCoinage": [
{}
]
}
}
}
}
],
"promotionCode": {
"code": "NEWUSER"
}
}'Response
application/json
{ "bookingId": "bookingid", "fareBreakDown": { "totalFare": { … }, "merchantFee": { … }, "airlineFee": { … }, "changeFee": { … } }, "legPrices": [ { … } ], "perTravelerPrices": [ { … } ], "policyDetails": { "policies": [ … ], "ruleResultInfos": [ … ] }, "mcoIssuanceEligibility": "ELIGIBLE" }