Air API (v2)

Download OpenAPI description
Languages
Servers
Staging URL
https://apis.spotnana.com/
Spotnana mock server
https://developer.spotnana.com/_mock/openapi/airapi/

Air

APIs to perform search, checkout and book an air pnr

Operations

Modify Book

Request

Book[cancel] new[existing] legs into an existing pnr using the selected rate option from airModifySearch operation.

Bodyapplication/jsonrequired
bookingIdstringrequired

Booking id returned in successful response of air-revalidate-itin api call in the booking flow.

Example: "ChBlMTFmOTVkZTcwZmZjMmI2EhAwZjVkNDhhNGJjNWExZTMw"
tripDataobject(TripData)required

Trip data to book a PNR.

Example: {"tripId":{"id":"9527251668"}}
tripData.​approverEmailstring

Email address of the approver who should receives approval email for the current booking.

tripData.​approverNamestring

Name of the approver.

tripData.​hardApprovalRequiredboolean

Whether the current booking requires hard approval or soft approval. This flag should be used only if valid approver is present.

tripData.​outOfPolicyboolean

If the given booking is out of policy.

tripData.​policyIdstring

Policy Id for which violation is done.

tripData.​policyVersioninteger(int32)

Version of policy.

tripData.​tripIdobject(TripId)required

Id of the trip.

Example: {"id":"9527251668"}
tripData.​tripId.​idstringrequired

Id.

Example: "9527251668"
skipTicketingboolean

If this is true, the PNR is not set up for ticketing.

Example: true
postPaymentVerificationInfoPostPaymentVerificationInfo (object) or PostPaymentVerificationInfo (object) or PostPaymentVerificationInfo (object) or PostPaymentVerificationInfo (object) or PostPaymentVerificationInfo (object)(PostPaymentVerificationInfo)
One of:

Wrapper for post stripe verification info object.

customFieldV3ResponsesArray of objects(CustomFieldV3Response)

Custom field responses for the booking.

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"
      }
    }
  }'

Responses

OK

Bodyapplication/json
pnrNumberstring(Source PNR ID)
Example: "AXKJDF"
pnrStatusstring(PnrStatus)

Status of PNR

Enum"UNKNOWN""INITIATED""CANCELLED""CONFIRMED""GROUP_BOOKING_ON_REQUEST""WAITLISTED""PENDING""AIRLINE_UPGRADE""WAITLIST_CONFIRMED""BOOKING_DENIED_CONTACT_SUPPORT"
Example: "CONFIRMED"
pnrIdstring

Spotnana PNR ID

Example: "1213124111"
paymentVerificationInfoPaymentVerificationInfo (object) or PaymentVerificationInfo (object) or PaymentVerificationInfo (object) or PaymentVerificationInfo (object)(PaymentVerificationInfo)
One of:

Wrapper for stripe verification Info.

Response
application/json
{ "pnrNumber": "AXKJDF", "pnrStatus": "CONFIRMED", "pnrId": "1213124111" }

Edit PNR

Request

Edit specific traveler information in an existing PNR. This API allows you to edit and modify Special Service Requests (SSR), seat selection, loyalty number, ancillaries, redress number, Known Traveler Number (KTN), check-in preferences, and Other Service Information (OSI).

Path
pnrIdstringrequired

PNR ID created by Spotnana for the booking.

Example: 1213124111
Bodyapplication/jsonrequired
pnrRemarksArray of objects(PnrNoteRemark)

Note remarks to be added for pnr at time of pnr update

pnrIdstringrequired

PNR ID created by Spotnana for the booking.

Example: "1234567890"
travelerInfoArray of objects(TravelerUpdateInfo)required

Traveler information.

Example: [{"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"]}]
travelerInfo[].​travelerobject(AirTravelerInfo)required

Traveler details

travelerInfo[].​traveler.​travelerIdstring

Unique ID for traveler

Example: "1"
travelerInfo[].​traveler.​adhocTravelerInfoTravelerInfoResponse (object) or TravelerInfoResponse (object)(TravelerInfoResponse)
One of:

Adhoc Traveler info for this traveler

travelerInfo[].​traveler.​travelerInfoobject(Traveler)Deprecated

Traveler Information

travelerInfo[].​seatsArray of objects(SeatDetail)
travelerInfo[].​seatPreferencestring

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

Enum"AISLE""WINDOW"
travelerInfo[].​otherAncillariesArray of objects(OtherAncillaryDetail)
travelerInfo[].​specialServiceRequestsArray of objects(SpecialServiceRequestInfo)

List of all Special Service Requests (SSR) for the traveler.

travelerInfo[].​updateTypesArray of stringsuniquerequired
Items Enum"LOYALTY_INFO""REDRESS_NUMBER""KNOWN_TRAVELER_NUMBER""SEAT""SPECIAL_SERVICE_REQUEST""OTHER_ANCILLARY""UNDO_CHECK_IN""CHECK_IN""SEAT_PREFERENCE""PASSPORT"
seatMapResponseIdstring

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.

Example: "8bc4ec0e1839aabc"
preSearchAnswersobject

Contains a list of custom fields or pre search answers.

pnrUpdateTypesArray of strings
Items Value"OTHER_SERVICE_INFO"
Example: ["OTHER_SERVICE_INFO"]
otherServiceInformationItemsArray of objects(OtherServiceInformation)

The list of all Other Service Information (OSI) to be included in the PNR.

bookingPaymentDetailsobject(BookingPaymentDetails)

Payment details used for booking.

postPaymentVerificationInfoPostPaymentVerificationInfo (object) or PostPaymentVerificationInfo (object) or PostPaymentVerificationInfo (object) or PostPaymentVerificationInfo (object) or PostPaymentVerificationInfo (object)(PostPaymentVerificationInfo)
One of:

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"
        ]
      }
    ]
  }'

Responses

Success

Bodyapplication/json
paymentVerificationInfoPaymentVerificationInfo (object) or PaymentVerificationInfo (object) or PaymentVerificationInfo (object) or PaymentVerificationInfo (object)(PaymentVerificationInfo)
One of:

Wrapper for stripe verification Info.

Response
application/json
{ "paymentVerificationInfo": { "gatewayIdentifier": {}, "paymentKey": "string", "stripeVerificationInfo": {} } }

Get Special Service Requests (SSR)

Request

Returns the list of all Special Service Requests (SSR) supported by Spotnana. This API doesn't require a request payload or a query parameter. You can use this endpoint anytime during the air booking or exchange workflow to view the list of SSRs currently supported by Spotnana.

curl -i -X GET \
  https://apis.spotnana.com/v2/air/special-service-requests \
  -H 'Authorization: Bearer <YOUR_TOKEN_HERE>'

Responses

OK

Bodyapplication/json
specialServiceRequestsArray of objects(SpecialServiceRequest)
Response
application/json
{ "specialServiceRequests": [ {} ] }

Loyalty Programs

Operations