Trip API (v2)

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

Trips

APIs to manage trips and PNRs.

Operations

Add Remark

Request

This endpoint provided adding third party remarks to the given PNR.

Path
tripIdstringrequired

Trip ID

Example: 6926658168
pnrIdstringrequired

PNR ID

Example: 6926658168
Bodyapplication/jsonrequired
remarksArray of SabrePnrRemarkWrapper (object)(ThirdPartyPnrRemark)required

The list of remarks to be added to the give PNR.

One of:

Third party remarks to the given PNR

remarks[].​sabreobject(SabrePnrRemark)

Sabre Remark

curl -i -X POST \
  https://apis.spotnana.com/v3/trips/6926658168/pnrs/6926658168/remarks \
  -H 'Authorization: Bearer <YOUR_TOKEN_HERE>' \
  -H 'Content-Type: application/json' \
  -d '{
    "remarks": [
      {
        "sabre": {
          "type": "GENERAL",
          "text": "PREF ALLIANCES 1-ONE WORLD/AA",
          "legIndex": 1,
          "flightIndex": 0
        }
      }
    ]
  }'

Responses

OK

Bodyapplication/json
processedRemarksArray of SabrePnrRemarkWrapper (object)(ThirdPartyPnrRemark)

The list of remarks added to the given PNR.

ignoredRemarksArray of SabrePnrRemarkWrapper (object)(ThirdPartyPnrRemark)

The list of remarks ignored.

Response
application/json
{ "processedRemarks": [ {} ], "ignoredRemarks": [ {} ] }

Finalize the given pnr.

Request

This endpoint changes the metadata of PNR to finalized and triggers supplier actions if required.

Path
tripIdstringrequired

Trip Id

Example: 6926658168
pnrIdstringrequired

Pnr Id

Example: 6926658168
Bodyapplication/json
finalizeIntentFinalizeIntent (object) or FinalizeIntent (object) or FinalizeIntent (object)(FinalizeIntent)
One of:

Wrapper for AirPriceOptimizationMetadata.

finalizeMetadataobject(FinalizeMetadata)

Metadata information related to finalize request

customFieldV3UserResponsesArray of objects(CustomFieldV3Response)

Custom field user responses for the booking.

preBookAnswersobject(PreBookAnswers)Deprecated
curl -i -X POST \
  https://apis.spotnana.com/v3/trips/6926658168/pnrs/6926658168/finalize \
  -H 'Authorization: Bearer <YOUR_TOKEN_HERE>' \
  -H 'Content-Type: application/json' \
  -d '{
    "preBookAnswers": {
      "answers": [
        {
          "entityId": "string",
          "userInput": "string",
          "itemIds": [
            0
          ],
          "answers": [
            {
              "item": "string",
              "value": "string",
              "description": "string"
            }
          ],
          "customFieldType": "QUESTION",
          "questionDisplayText": "string",
          "question": {
            "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
            "name": "string",
            "questionFormat": "CHECKBOX",
            "optionInfo": {
              "source": "MANUAL",
              "sourceMetadata": {
                "companyConfig": {}
              },
              "totalNumOptions": 0,
              "options": [
                {}
              ]
            },
            "isRequired": true,
            "isDisabled": true,
            "includeInItinerary": true,
            "customFieldLocations": [
              "POLICY_APPROVAL_EMAIL"
            ],
            "matchConditions": {
              "travelerConditions": {
                "workerTypes": [
                  null
                ],
                "countries": [
                  null
                ],
                "legalEntities": [
                  null
                ],
                "departments": [
                  null
                ],
                "costCenters": [
                  null
                ],
                "offices": [
                  null
                ]
              },
              "travelTypes": [
                "AIR"
              ],
              "travelRegionTypes": [
                "DOMESTIC"
              ],
              "tripUsageTypes": [
                "STANDARD"
              ]
            },
            "questionType": {
              "preSearchQuestionType": "PURPOSE_OF_TRIP",
              "preCheckoutQuestionType": "OOP_REASON_CODE"
            }
          }
        }
      ],
      "preBookQuestionResponseId": "string"
    },
    "finalizeIntent": {
      "airPriceOptimizationMetadata": {
        "oldTickets": [
          "0111234567890"
        ],
        "newTickets": [
          "0111234567890"
        ],
        "oldPnrId": "6789533589",
        "newPnrId": "6789533589",
        "oldPrice": {
          "amount": 510,
          "currencyCode": "GBP",
          "convertedAmount": 715.42,
          "convertedCurrency": "USD",
          "otherCoinage": [
            {
              "coinageCode": "BREX_POINTS",
              "amount": 1000,
              "conversionRate": 0.01,
              "preferredCurrencyConversionRate": 0.01
            }
          ]
        },
        "newPrice": {
          "amount": 510,
          "currencyCode": "GBP",
          "convertedAmount": 715.42,
          "convertedCurrency": "USD",
          "otherCoinage": [
            {
              "coinageCode": "BREX_POINTS",
              "amount": 1000,
              "conversionRate": 0.01,
              "preferredCurrencyConversionRate": 0.01
            }
          ]
        },
        "priceDrop": {
          "amount": 510,
          "currencyCode": "GBP",
          "convertedAmount": 715.42,
          "convertedCurrency": "USD",
          "otherCoinage": [
            {
              "coinageCode": "BREX_POINTS",
              "amount": 1000,
              "conversionRate": 0.01,
              "preferredCurrencyConversionRate": 0.01
            }
          ]
        },
        "penaltyPrice": {
          "amount": 510,
          "currencyCode": "GBP",
          "convertedAmount": 715.42,
          "convertedCurrency": "USD",
          "otherCoinage": [
            {
              "coinageCode": "BREX_POINTS",
              "amount": 1000,
              "conversionRate": 0.01,
              "preferredCurrencyConversionRate": 0.01
            }
          ]
        }
      }
    },
    "finalizeMetadata": {
      "isMandatoryTicketing": true,
      "mandatorySkipTicketing": true
    },
    "customFieldV3UserResponses": [
      {
        "fieldId": "84922011-b03d-4966-bc95-c5b49bc2e342",
        "fieldName": "string",
        "armId": "0fd508db-63ff-4444-bfb1-b89c43061433",
        "selectedOptions": [
          {
            "name": "string",
            "description": "string",
            "additionalUserInput": "string",
            "additionalInfos": [
              "string"
            ],
            "additionalInfoConfigs": [
              {
                "type": "VARIABLE",
                "name": "PUBLISHED_FARE"
              }
            ]
          }
        ]
      }
    ]
  }'

Responses

OK

Response
No content

Suspend the given pnr.

Request

This endpoint suspends the PNR, transitioning it into a read-only state. Once suspended, updates via OBT will be restricted. This API serves various use cases, such as price optimization and rebooking.

Path
tripIdstringrequired

Trip Id

Example: 6926658168
pnrIdstringrequired

Pnr Id

Example: 6926658168
Bodyapplication/jsonrequired
reasonstringrequired

Reason for suspending the pnr

Enum"AIR_PRICE_OPTIMIZATION""EXCHANGE""GDS_EXCHANGE"
Example: "AIR_PRICE_OPTIMIZATION"
curl -i -X POST \
  https://apis.spotnana.com/v3/trips/6926658168/pnrs/6926658168/suspend \
  -H 'Authorization: Bearer <YOUR_TOKEN_HERE>' \
  -H 'Content-Type: application/json' \
  -d '{
    "reason": "AIR_PRICE_OPTIMIZATION"
  }'

Responses

OK

Response
No content

Invoicing

Operations

Approval

Operations