---
title: "Modify Book"
method: POST
path: "/v2/air/modify-book"
tags: ["Air"]
---

# Modify Book

`POST /v2/air/modify-book`

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

## Request body

- AirModifyBookingRequest
  - `bookingId` string, required — Booking id returned in successful response of air-revalidate-itin api call in the booking flow.
  - `tripData` TripData, required — Trip data to book a PNR.
    - `approverEmail` string — Email address of the approver who should receives approval email for the current booking.
    - `approverName` string — Name of the approver.
    - `hardApprovalRequired` boolean — Whether the current booking requires hard approval or soft approval. This flag should be used only if valid approver is present.
    - `outOfPolicy` boolean — If the given booking is out of policy.
    - `policyId` string — Policy Id for which violation is done.
    - `policyVersion` integer — Version of policy.
    - `tripId` TripId, required — Id of trip.
      - `id` string, required — Id.
  - `skipTicketing` boolean — If this is true, the PNR is not set up for ticketing.
  - `postPaymentVerificationInfo` union — Payment information sent after the verification of payment method.
    - object — Wrapper for post stripe verification info object.
      - `postStripeVerificationInfo` PostStripeVerificationInfo — Object to indicate successful stripe verification and provide payment information for next steps.
        - `paymentMethodId` string — Stripe's payment method id for which the verification was performed.
      - `paymentKey` string — Serialized key to identify the payment executed on payment gateway that will be used for post payment verification.
    - object — Wrapper for post url based verification info object.
      - `postUrlBasedVerificationInfo` PostUrlBasedVerificationInfo
        - `pnrId` string — Pnr Id, to continue with the booking flow/check the status of the pnr.
      - `paymentKey` string — Serialized key to identify the payment executed on payment gateway that will be used for post payment verification.
    - object — Wrapper for amadeus checkout verification info object
      - `amadeusCheckoutVerificationInfo` AmadeusCheckoutVerificationInfo
        - `paymentActionTokens` AmadeusPaymentActionToken[], required
          - `paymentRequestId` string, required — Initial payment id generated by checkout SDK to initiate payment
          - `actionToken` string, required — Token returned by checkout SDK to create/validate FOP in PSS order
        - `paymentRequestId` string — Initial payment id generated by checkout SDK to initiate payment
        - `actionToken` string — Token returned by checkout SDK to create/validate FOP in PSS order
        - `confirmPayment` boolean — Flag which indicates that the payment confirmation is now required (after 3ds or redirection)
      - `paymentKey` string — Serialized key to identify the payment executed on payment gateway that will be used for post payment verification.
    - object — Wrapper for 3DS2 post verification info object
      - `threeDSecure2PostVerificationInfo` ThreeDSecure2PostVerificationInfo — Result of 3DS2 verification.
        - `results` ThreeDSecure2VerificationResultItem[], required — List of 3DS2 verification results.
          - `cardId` string, required — Card id for which the verification was performed.
          - `sessionId` string, required — session id of the payment service provider.
          - `success` boolean, required — Whether the 3DSecure2 authentication was successful.
      - `paymentKey` string — Serialized key to identify the payment executed on payment gateway that will be used for post payment verification.
    - object — Wrapper for post razorpay verification info object.
      - `postRazorpayVerificationInfo` RazorpayPostVerificationInfo — Object to indicate successful stripe verification and provide payment information for next steps.
        - `paymentId` string, required — Razorpay payment id for which the verification was performed.
        - `orderId` string — Razorpay order id in which the payment was added.
        - `signature` string — Razorpay signature to validate the payment.
      - `paymentKey` string — Serialized key to identify the payment executed on payment gateway that will be used for post payment verification.
  - `customFieldV3Responses` CustomFieldV3Response[] — Custom field responses for the booking.
    - `fieldId` string, uuid, required — Custom field id
    - `fieldName` string — Name of the custom field
    - `armId` string, uuid, required — Arm id which is applicable
    - `includeLocations` IncludeLocation[]
    - `selectedOptions` CustomFieldSelectedOption[], required — The list of options that are selected by user or auto populated.
      - `name` string, required — Value of the selection
      - `translatedName` string — Translated value of the selection
      - `description` string — Description of the selection
      - `translatedDescription` string — Translated description of the selection
      - `additionalUserInput` string — Additional user input
      - `additionalInfos` string[] — Actual values of the additional infos
      - `additionalInfoConfigs` AdditionalInfo[] — Additional info configs for the selected option
        - union — Additional data need to be sent along with the custom field response.
          - object — Variable defining the additional value to be sent along with custom field response.
            - `type` string, required
            - `name` 'PUBLISHED_FARE' | 'LLF' | 'ADD_COLLECT_AMOUNT' | 'SELECTED_FARE' | 'SPLIT_PAYMENT_FARE', required — Name of the variable.
          - object — Expression consisting of variables and constants which needs to be sent along with custom field response.
            - `type` string, required
            - `formatExpression` string, required — The expression must be of format : `<any_text> ${expression} <any_text>`.The expression can consist of a combination of variables and mathematical operations. Variable names must be same as VariableName Enum. To define mathematical operations, the operation name should follow the format `math.<math_op>(arg1, arg2)`. Both `arg1` and `arg2` can be variables or constants. The supported math operations (math_op) include: `add, mul, div, sub, min, and max`. All keywords, such as `<math_op>, math, and var` must be written in lowercase.
            - `variables` VariableName[] — Reference names of the variables present in the expression.
  - `waiveOffInfo` WaiveOffInfo — Waive off info.
    - `waiveOffInfoPerModules` WaiveOffInfoPerModule[] — Waive off info per module.
      - `moduleId` 'BOOKING' | 'AGENT' — Module id
      - `waiveOffFeeReason` WaiveOffFeeReason — Fee waive off reason info.
        - `reasonCode` string — Fee waive off reason code.
        - `reason` string — Fee waive off reason description.
  - `callbackUrlVerificationInfo` CallbackUrlVerificationInfo — Callback URL to the source post successful verification by the supplier.
    - `sourceCallbackUrl` string — The callback URL to redirect to after successful verification.

## Response `200`

OK

- AirModifyBookingResponse
  - `pnrNumber` string
  - `pnrStatus` 'UNKNOWN' | 'INITIATED' | 'CANCELLED' | 'CONFIRMED' | 'GROUP_BOOKING_ON_REQUEST' | 'WAITLISTED' | 'PENDING' | 'AIRLINE_UPGRADE' | 'WAITLIST_CONFIRMED' | 'BOOKING_DENIED_CONTACT_SUPPORT' | 'NO_SHOW' | 'CONTACT_SUPPORT' | 'STATUS_CHANGED_CONTACT_SUPPORT' | 'SCHEDULE_CHANGE' | 'SEGMENT_REQUEST' | 'SCHEDULE_CHANGE_WAITLISTED_BOOKING' | 'REQUEST_PENDING' | 'WAITLISTED_NOT_CONFIRMED' | 'SCHEDULE_CHANGE_NOT_CONFIRMED' | 'SCHEDULE_CHANGE_PENDING_STATUS' | 'MIS_CONNECTION' | 'REQUESTED' | 'TICKETED' | 'VOIDED' | 'CANCELLED_BY_VENDOR' | 'CANCELLATION_IN_PROGRESS' | 'REINSTATED' | 'BOOKING_ON_HOLD' | 'AIRLINE_CONTROL' | 'MODIFIED' | 'PAYMENT_DECLINED' | 'INOPERATIVE' | 'UNCONFIRMED' — Status of PNR
  - `pnrId` string — Spotnana PNR ID
  - `paymentVerificationInfo` union — VerificationInfo required for the payment operation.
    - object — Wrapper for stripe verification Info.
      - `stripeVerificationInfo` StripeVerificationInfo — Verification information required for card stripe verification.
        - `stripeCardTokens` StripeCardTokens — Stripe card tokens used by clients in authorizing newly added cards.
          - `paymentProcessor` string, required — Payment processor involved.
          - `paymentMethodId` string, required — Stripe's payment-method-id for the card.
          - `setupIntentClientSecret` string, required — Stripe client secret for attaching the card to the setup-intent.
          - `connectedAccountId` string — Account Id of the connected account in which above payment-method and setup-intent exist. This is populated only when a connected account is used.
          - `publishableKey` string — Publishable key of the Stripe platform account.
      - `gatewayIdentifier` GatewayIdentifier
        - `gatewayId` string — Gateway Id for which the payment method should be verified.
        - `gatewayType` 'PAYMENT_GATEWAY_UNKNOWN' | 'STRIPE' | 'BREX' | 'RAZORPAY' — Gateway Type for of the verification gateway.
      - `paymentKey` string — Serialized key to identify the payment executed on payment gateway that will be used for post payment verification.
    - object — Wrapper for stripe verification Info.
      - `urlVerificationInfo` UrlVerificationInfo — Verification information required for url based payment verification.
        - `ccVerificationUrl` string — Verification url for the payment source.
      - `gatewayIdentifier` GatewayIdentifier
        - `gatewayId` string — Gateway Id for which the payment method should be verified.
        - `gatewayType` 'PAYMENT_GATEWAY_UNKNOWN' | 'STRIPE' | 'BREX' | 'RAZORPAY' — Gateway Type for of the verification gateway.
      - `paymentKey` string — Serialized key to identify the payment executed on payment gateway that will be used for post payment verification.
    - object — Wrapper for 3DS2 verification Info.
      - `threeDSecure2VerificationInfo` ThreeDSecure2VerificationInfo — Verification information required for 3DS2 authentication.
        - `verificationInfoList` ThreeDSecure2VerificationInfoItem[], required — List of 3DS2 verification info.
          - `cardId` string, required — Card id for which the verification was performed.
          - `sessionId` string, required — session id of the payment service provider.
          - `redirectUrl` string, required — 3DS2 verification redirect url.
      - `gatewayIdentifier` GatewayIdentifier
        - `gatewayId` string — Gateway Id for which the payment method should be verified.
        - `gatewayType` 'PAYMENT_GATEWAY_UNKNOWN' | 'STRIPE' | 'BREX' | 'RAZORPAY' — Gateway Type for of the verification gateway.
      - `paymentKey` string — Serialized key to identify the payment executed on payment gateway that will be used for post payment verification.
    - object — Wrapper for Razorpay verification Info.
      - `razorPayVerificationInfo` RazorpayVerificationInfo — Verification information required when card is tokenized via Razorpay for Indian markets.
        - `paymentProcessor` string, required — Payment processor involved.
        - `paymentAuthUrl` string — URL for authorizing the payment on the card.
      - `gatewayIdentifier` GatewayIdentifier
        - `gatewayId` string — Gateway Id for which the payment method should be verified.
        - `gatewayType` 'PAYMENT_GATEWAY_UNKNOWN' | 'STRIPE' | 'BREX' | 'RAZORPAY' — Gateway Type for of the verification gateway.
      - `paymentKey` string — Serialized key to identify the payment executed on payment gateway that will be used for post payment verification.
  - `processingWarning` string — Optional warning message if processing is taking longer than expected

## Other responses

- `401` — Unauthorized
- `403` — Forbidden
- `404` — The specified resource was not found.

---

[API](https://skmtc.net/spotnana/apis/air-api.md) · [All operations](https://skmtc.net/spotnana/apis/air-api/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/spotnana/air-api/versions/3009937ca024/schema)
