# Cancel Air Pnr Cancel the air pnr and issues applicable refunds Endpoint: POST /v2/air/cancel-pnr Version: v2 Security: Bearer ## Request fields (application/json): - `pnrId` (string, required) The spotnana assigned unique PNR id of the booking. Example: "1234567819" - `optionId` (string, required) Cancellation option id chosen by the traveler prior to cancelling the booking. The trip->cancellation-details API returns a bunch of options like whether the traveler wants to keep the ticket as unused or get the refunds with applicable penalties. Example: "OPTION123" - `cancellationOverride` (object) Cancellation info override details, like cancellation penalty, waiver code, etc. - `cancellationOverride.waiverCode` (string) A waiver code to be applied to the refund. Typically a waiver code will be supplied by the airline for the agent to use to override a cancellation fee. Example: "WAV123" - `cancellationOverride.tourCode` (string) A tourcode to be applied to the refund. Input of a tourcode will override any tourcode on the original ticket. Example: "TRAC345" - `cancellationOverride.newCancellationPenalty` (object) The new cancellation penalty, this will override the existing cancellation penalty. - `cancellationOverride.newCancellationPenalty.amount` (number, required) The numeric value for the amount of money. Example: 510 - `cancellationOverride.newCancellationPenalty.currencyCode` (string, required) The 3-letter currency code for the money amount (defined using ISO 4217 standard). Example: "GBP" - `cancellationOverride.newCancellationPenalty.convertedAmount` (number) The converted currency and amount that has been converted (if a currency conversion has been requested). For example, if the call requests that money be sent in a specified currency (because the frontend requested the backend to send money in the user's preferred currency). Example: 715.42 - `cancellationOverride.newCancellationPenalty.convertedCurrency` (string) The 3-letter currency code for the converted currency (defined using ISO 4217 standard). Example: "USD" - `cancellationOverride.newCancellationPenalty.otherCoinage` (array) List of the dollar amount in other coinage systems like reward points, cryptocurrency etc. - `cancellationOverride.newCancellationPenalty.otherCoinage.coinageCode` (string) Payment method Enum: "PAYMENT_METHOD_UNKNOWN", "CREDIT_CARD", "BREX_POINTS", "CASH", "QANTAS_POINTS", "VENDOR_PROGRAM_PAYMENT", "DELAYED_INVOICING", "FLIGHT_CREDITS", "QANTAS_TRAVEL_FUND", "CUSTOM_VIRTUAL_PAYMENT", "FLIGHT_PASS", "MISCELLANEOUS_CREDIT_ORDER" - `cancellationOverride.newCancellationPenalty.otherCoinage.amount` (number) Example: 1000 - `cancellationOverride.newCancellationPenalty.otherCoinage.conversionRate` (number) 1 coin in this system equals to how many currency value Example: 0.01 - `cancellationOverride.newCancellationPenalty.otherCoinage.preferredCurrencyConversionRate` (number) 1 coin in this system equals to how many currency value Example: 0.01 - `customFieldV3Responses` (array) Custom field responses for the booking. - `customFieldV3Responses.fieldId` (string, required) Custom field id - `customFieldV3Responses.fieldName` (string) Name of the custom field - `customFieldV3Responses.armId` (string, required) Arm id which is applicable - `customFieldV3Responses.includeLocations` (array) Enum: "BOOKING_CONFIRMATION_EMAILS", "APPROVAL_EMAILS", "COMPANY_REPORTS", "CONSOLIDATED_ITINERARY_EMAILS" - `customFieldV3Responses.selectedOptions` (array, required) The list of options that are selected by user or auto populated. - `customFieldV3Responses.selectedOptions.name` (string, required) Value of the selection - `customFieldV3Responses.selectedOptions.description` (string) Description of the selection - `customFieldV3Responses.selectedOptions.additionalUserInput` (string) Additional user input - `customFieldV3Responses.selectedOptions.additionalInfos` (array) Actual values of the additional infos - `customFieldV3Responses.selectedOptions.additionalInfoConfigs` (array) Additional info configs for the selected option ## Response 200 fields (application/json): - `sourcePnrId` (string) Source pnr id of the cancellation. Example: "ABCDEF" - `status` (string) - CANCELLED: PNR is cancelled. - AGENT_TASK_CREATED: Agent task is created for the cancellation. Enum: "CANCELLED", "AGENT_TASK_CREATED" - `automaticCancellationInfo` (object) Information about automatic processing that was performed during cancellation - `automaticCancellationInfo.segmentsCancelled` (boolean) Whether segments were successfully cancelled Example: true - `automaticCancellationInfo.automaticRefundSuccessful` (boolean) Whether automatic refund was attempted and successful Example: true - `automaticCancellationInfo.refundedTicketNumbers` (array) List of ticket numbers that were automatically refunded Example: ["1234567890123"] - `automaticCancellationInfo.automaticProcessingMessage` (string) Human-readable message describing what was automatically processed Example: "Refunded tickets: 1234567890123" ## Response 401 fields (application/json): - `debugIdentifier` (string) Link to debug the error internally. - `errorMessages` (array) - `errorMessages.errorCode` (string) Error code to identify the specific errors. - `errorMessages.message` (string) Message containing details of error. - `errorMessages.errorParameters` (array) Error message parameters. - `errorMessages.errorParameters.name` (string) Parameter name - `errorMessages.errorParameters.value` (string) Parameter value - `errorMessages.errorDetail` (string) More details about the error. ## Response 403 fields (application/json): - `debugIdentifier` (string) Link to debug the error internally. - `errorMessages` (array) - `errorMessages.errorCode` (string) Error code to identify the specific errors. - `errorMessages.message` (string) Message containing details of error. - `errorMessages.errorParameters` (array) Error message parameters. - `errorMessages.errorParameters.name` (string) Parameter name - `errorMessages.errorParameters.value` (string) Parameter value - `errorMessages.errorDetail` (string) More details about the error. ## Response 404 fields (application/json): - `debugIdentifier` (string) Link to debug the error internally. - `errorMessages` (array) - `errorMessages.errorCode` (string) Error code to identify the specific errors. - `errorMessages.message` (string) Message containing details of error. - `errorMessages.errorParameters` (array) Error message parameters. - `errorMessages.errorParameters.name` (string) Parameter name - `errorMessages.errorParameters.value` (string) Parameter value - `errorMessages.errorDetail` (string) More details about the error.