# Get PNR

This endpoint gets PNR for a given trip ID and PNR ID.

Endpoint: GET /v3/trips/{tripId}/pnrs/{pnrId}
Version: v2
Security: Bearer

## Security:

  - `Bearer` (unknown)
    http bearer

## Path parameters:

  - `tripId` (string, required)
    Trip ID

  - `pnrId` (string, required)
    Pnr Id

## Response 200:

  - `200` (unknown)
    OK

## Response 200 fields (application/json):

  - `version` (integer)
    Current PNR version. This field is used for handling conflicts in case of concurrent 
updates. This should be sent unmodified in update request.
    Example: 1

  - `createdVia` (string)
    Indicates the source of creation of PNR, like SHELL, OBT, etc.
    Enum: "OFFLINE", "OBT", "SHELL", "PASSIVE", "API"

  - `sourceInfo` (object)
    Information about the source of booking

  - `sourceInfo.sourcePnrId` (string)
    The source PNR ID
    Example: AEDAVF

  - `sourceInfo.bookingSource` (string, required)
    The source of booking
    Example: United.com

  - `sourceInfo.thirdParty` (string)
    The known third party source of the booking.
    Example: United.com

  - `sourceInfo.bookingDateTime` (object)
    ISO8601 UTC Date Time

  - `sourceInfo.bookingDateTime.iso8601` (string, required)
    Example: 2017-07-21T17:32Z

  - `sourceInfo.posDescriptor` (string)
    Point of sale descriptor for this pnr from source
    Example: LA5K

  - `sourceInfo.iataNumber` (string)
    IATA number associated with this pnr
    Example: 426666

  - `invoiceDelayedBooking` (boolean)
    True if the billing is delayed
    Example: false

  - `travelers` (array)

  - `travelers.travelerPersonalInfo` (object)
    Traveler personal information.

  - `travelers.travelerPersonalInfo.loyaltyInfos` (array)

  - `travelers.travelerPersonalInfo.loyaltyInfos.appliedTo` (array)

  - `travelers.travelerPersonalInfo.loyaltyInfos.id` (string, required)
    Example: firstId

  - `travelers.travelerPersonalInfo.loyaltyInfos.issuedBy` (string, required)
    Example: firstIssuedBy

  - `travelers.travelerPersonalInfo.loyaltyInfos.type` (string, required)
    Enum: "UNKNOWN_TYPE", "AIR", "HOTEL", "CAR", "RAIL"

  - `travelers.travelerPersonalInfo.loyaltyInfos.linked` (boolean)
    Indicates if this loyalty account is linked to the external provider. Only applicable for certain loyalty types.
    Example: false

  - `travelers.travelerPersonalInfo.loyaltyInfos.tier` (string)
    Loyalty membership tier name echoed from the supplier.
    Example: GOLD

  - `travelers.travelerPersonalInfo.travelPref` (object)
    Travel preferences.

  - `travelers.travelerPersonalInfo.travelPref.airPref` (object)
    Travel preferences related to air travel.

  - `travelers.travelerPersonalInfo.travelPref.airPref.airlinePrefs` (array)

  - `travelers.travelerPersonalInfo.travelPref.airPref.airlinePrefs.airlines` (array)

  - `travelers.travelerPersonalInfo.travelPref.airPref.airlinePrefs.flightType` (string)
    Enum: "UNKNOWN_FLIGHT_TYPE", "DOMESTIC", "INTERNATIONAL", "ALL"

  - `travelers.travelerPersonalInfo.travelPref.airPref.alliancePref` (object)
    Alliance preferences.

  - `travelers.travelerPersonalInfo.travelPref.airPref.alliancePref.alliances` (array, required)

  - `travelers.travelerPersonalInfo.travelPref.airPref.farePref` (object)
    Fare preferences.

  - `travelers.travelerPersonalInfo.travelPref.airPref.farePref.fareTypes` (array, required)

  - `travelers.travelerPersonalInfo.travelPref.airPref.homeAirport` (string)
    Example: NEW YORK

  - `travelers.travelerPersonalInfo.travelPref.airPref.mealPref` (object)
    Meal preferences.

  - `travelers.travelerPersonalInfo.travelPref.airPref.mealPref.exclMealPrefs` (array)

  - `travelers.travelerPersonalInfo.travelPref.airPref.mealPref.inclMealPrefs` (array)

  - `travelers.travelerPersonalInfo.travelPref.airPref.mealPref.specialMealDescription` (string)
    Example: Veg only meal

  - `travelers.travelerPersonalInfo.travelPref.airPref.numStopPref` (object)
    Preferred number of stops.

  - `travelers.travelerPersonalInfo.travelPref.airPref.numStopPref.numOfStops` (integer, required)
    Example: 34

  - `travelers.travelerPersonalInfo.travelPref.airPref.seatAmenityPref` (object)
    Seat amenity preference.

  - `travelers.travelerPersonalInfo.travelPref.airPref.seatAmenityPref.seatAmenityTypes` (array, required)

  - `travelers.travelerPersonalInfo.travelPref.airPref.seatLocationPrefs` (array)

  - `travelers.travelerPersonalInfo.travelPref.airPref.seatLocationPrefs.cabins` (array)

  - `travelers.travelerPersonalInfo.travelPref.airPref.seatLocationPrefs.isBulkHeadPref` (boolean)
    Example: false

  - `travelers.travelerPersonalInfo.travelPref.airPref.seatLocationPrefs.maxFlightDurationInHours` (integer)
    Example: 3

  - `travelers.travelerPersonalInfo.travelPref.airPref.seatLocationPrefs.position` (string)
    Enum: "UNKNOWN_POSITION", "AISLE", "WINDOW", "AISLE_OR_WINDOW"

  - `travelers.travelerPersonalInfo.travelPref.airPref.preferredAirports` (array)
    A list of user preferred airports.

  - `travelers.travelerPersonalInfo.travelPref.airPref.preferredAirports.airportName` (string)
    Airport name.
    Example: San Francisco International Airport

  - `travelers.travelerPersonalInfo.travelPref.airPref.preferredAirports.airportCode` (string, required)
    IATA airport code.
    Example: SFO

  - `travelers.travelerPersonalInfo.travelPref.airPref.preferredAirports.label` (string, required)
    The label of preferred airport or rail station.
    Enum: "HOME", "WORK", "OTHER"

  - `travelers.travelerPersonalInfo.travelPref.preferredCurrency` (string)
    Example: USD

  - `travelers.travelerPersonalInfo.travelPref.railCards` (array)

  - `travelers.travelerPersonalInfo.travelPref.railCards.cardNumber` (string)
    Number of card

  - `travelers.travelerPersonalInfo.travelPref.railCards.expiryDate` (object)
    Date in ISO 8601 standard.

  - `travelers.travelerPersonalInfo.travelPref.railCards.expiryDate.iso8601` (string, required)
    Example: 2017-07-21

  - `travelers.travelerPersonalInfo.travelPref.railCards.name` (string, required)
    Name of the Rail Card.
    Example: Veterans Railcard

  - `travelers.travelerPersonalInfo.travelPref.railCards.spotnanaCode` (string, required)
    Unique Spotnana code/identifier for Rail Card.
    Example: VET

  - `travelers.travelerPersonalInfo.travelPref.railCards.vendor` (string, required)
    Vendor Name.
    Example: ATOC

  - `travelers.travelerPersonalInfo.travelPref.railPref` (object)
    Travel preferences related to rail station.

  - `travelers.travelerPersonalInfo.travelPref.railPref.preferredRailStations` (array)
    A list of user preferred rail stations.

  - `travelers.travelerPersonalInfo.travelPref.railPref.preferredRailStations.stationName` (string)
    Rail station name.
    Example: Chicago Union Station

  - `travelers.travelerPersonalInfo.travelPref.railPref.preferredRailStations.stationCode` (string, required)
    Rail station code.
    Example: CHI

  - `travelers.travelerPersonalInfo.travelPref.railPref.preferredRailStations.cityName` (string)
    Name of city where the rail station is located.
    Example: Chicago

  - `travelers.travelerPersonalInfo.travelPref.railPref.preferredRailStations.countryCode` (string)
    Alpha-2 country code where the rail station is located.

  - `travelers.travelerPersonalInfo.travelPref.railPref.seatPreference` (object)
    Preference about seat of rail.

  - `travelers.travelerPersonalInfo.travelPref.railPref.seatPreference.hasAccessibility` (boolean)
    Whether or not requires assistance for disability.
    Example: false

  - `travelers.travelerPersonalInfo.travelPref.railPref.seatPreference.seatTypes` (array)

  - `travelers.travelerPersonalInfo.travelPref.railPref.seatPreference.seatLocations` (array)

  - `travelers.travelerPersonalInfo.travelPref.railPref.seatPreference.deckLevels` (array)

  - `travelers.travelerPersonalInfo.travelPref.railPref.seatPreference.seatDirections` (array)

  - `travelers.travelerPersonalInfo.travelPref.railPref.travelClasses` (array)
    A list of class of service for rail.

  - `travelers.travelerPersonalInfo.travelPref.railPref.coachPreferences` (array)
    A list of coach preference for rail.

  - `travelers.travelerPersonalInfo.travelPref.railPref.conditionalRates` (array)
    A list of conditional rates for rail.

  - `travelers.travelerPersonalInfo.travelPref.carPref` (object)
    Travel preferences related to car.

  - `travelers.travelerPersonalInfo.travelPref.carPref.vendors` (array)
    A list of car vendors.

  - `travelers.travelerPersonalInfo.travelPref.carPref.vendors.code` (string, required)
    Vendor code
    Example: ZE

  - `travelers.travelerPersonalInfo.travelPref.carPref.vendors.name` (string, required)
    Vendor name
    Example: HERTZ

  - `travelers.travelerPersonalInfo.travelPref.carPref.vendors.isPresentInPreferredVendors` (boolean)
    Whether the car vendor is present in preferred vendor list. This is an optional field which gets populated only in the preferred vendor autocomplete API.
    Example: true

  - `travelers.travelerPersonalInfo.travelPref.carPref.carTypes` (array)
    A list of types of car.

  - `travelers.travelerPersonalInfo.travelPref.carPref.engineTypes` (array)
    A list of types of engine.

  - `travelers.travelerPersonalInfo.travelPref.carPref.transmissionTypes` (array)
    A list of types of transmission.

  - `travelers.travelerPersonalInfo.travelPref.carPref.conditionalRates` (array)
    A list of conditional rates for rail.

  - `travelers.travelerPersonalInfo.travelPref.hotelPref` (object)
    Travel preferences related to hotel.

  - `travelers.travelerPersonalInfo.travelPref.hotelPref.hotelParentChains` (array)
    A list of hotel parent chains.

  - `travelers.travelerPersonalInfo.travelPref.hotelPref.hotelParentChains.chainCode` (string)
    The code of hotel chain.
    Example: EM

  - `travelers.travelerPersonalInfo.travelPref.hotelPref.hotelParentChains.chainName` (string)
    The name of hotel chain.
    Example: Mariott

  - `travelers.travelerPersonalInfo.travelPref.hotelPref.hotelBrands` (array)
    A list of hotel brands.

  - `travelers.travelerPersonalInfo.travelPref.hotelPref.hotelBrands.brandCode` (string)
    The code of hotel brand.
    Example: HY

  - `travelers.travelerPersonalInfo.travelPref.hotelPref.hotelBrands.brandName` (string)
    The name of hotel brand.
    Example: Global Hytt Corp.

  - `travelers.travelerPersonalInfo.travelPref.hotelPref.hotelAmenityTypes` (array)
    A list of HotelAmenities.

  - `travelers.travelerPersonalInfo.travelPref.hotelPref.roomPreference` (object)
    Room options and stay preference.

  - `travelers.travelerPersonalInfo.travelPref.hotelPref.roomPreference.isMobilityAccessible` (boolean)
    Whether or not mobility accessible room, tub.
    Example: false

  - `travelers.travelerPersonalInfo.travelPref.hotelPref.roomPreference.bedCount` (string)
    The number of bed in the room.
    Enum: "ONE_BED", "TWO_BEDS"

  - `travelers.travelerPersonalInfo.travelPref.hotelPref.roomPreference.roomType` (string)
    Single selection of type of room.
    Enum: "SMOKING", "NON_SMOKING"

  - `travelers.travelerPersonalInfo.travelPref.hotelPref.roomPreference.mostImportantFact` (string)
    Single selection of the most import fact.
    Enum: "ROOM_TYPE", "BED_COUNT", "ROOM_LOCATION"

  - `travelers.travelerPersonalInfo.travelPref.hotelPref.roomPreference.roomLocation` (string)
    Location of the hotel room
    Enum: "HIGH_FLOOR", "LOW_FLOOR", "NEAR_ELEVATOR"

  - `travelers.travelerPersonalInfo.travelPref.hotelPref.roomPreference.pillowType` (string)
    The type of pillow in hotel room.
    Enum: "FOAM", "EXTRA_FOAM", "EXTRA_FEATHER"

  - `travelers.travelerPersonalInfo.travelPref.hotelPref.roomPreference.roomAmenityPrefs` (array)

  - `travelers.travelerPersonalInfo.travelPref.hotelPref.conditionalRates` (array)
    A list of conditional rates for rail.

  - `travelers.travelerPersonalInfo.blockLoyalty` (boolean)
    If true, hides the loyalty program input on the checkout page for this traveler.
    Example: false

  - `travelers.user` (object)
    User details.

  - `travelers.user.addresses` (array)

  - `travelers.user.addresses.addressLines` (array, required)
    Address lines

  - `travelers.user.addresses.administrativeArea` (string)
    Code of administrative area. For example: DL for Delhi, India.
Highest administrative subdivision which is used for postal
addresses of a country or region.
For example, this can be a state, a province, an oblast, or a prefecture.
Specifically, for Spain this is the province and not the autonomous
community (e.g. "Barcelona" and not "Catalonia").
Many countries don't use an administrative area in postal addresses. E.g.
in Switzerland this should be left unpopulated.
    Example: CA

  - `travelers.user.addresses.administrativeAreaName` (string)
    Name of administrative area. This is full name corresponding to administrativeArea. 
Like Delhi for DL area code. For some places, code and name maybe same as well like Tokyo.
    Example: California

  - `travelers.user.addresses.description` (string)
    Address description
    Example: San Francisco Home

  - `travelers.user.addresses.isDefault` (boolean)
    Whether this address is default address in case multiple addresses are specified.
    Example: true

  - `travelers.user.addresses.languageCode` (string)
    BCP-47 language code of the contents of this address (if known). This is often the UI 
language of the input form or is expected to match one of the languages used in the 
address' country/region, or their transliterated equivalents.
This can affect formatting in certain countries, but is not critical to the correctness 
of the data and will never affect any validation or other non-formatting related operations.
Examples: "zh-Hant", "ja", "ja-Latn", "en".
    Example: en

  - `travelers.user.addresses.locality` (string)
    Generally refers to the city/town portion of the address.
    Example: San Francisco

  - `travelers.user.addresses.locationCode` (string)
    IATA 3-letter location code. See https://www.iata.org/en/services/codes.
    Example: LAX

  - `travelers.user.addresses.organization` (string)
    The name of the organization at the address.
    Example: Spotnana

  - `travelers.user.addresses.postalCode` (string)
    Postal code of the address. This is a required field when setting for a user/legal entity/company etc.
    Example: 94130

  - `travelers.user.addresses.continentCode` (string)
    2 letter continent code of the continent this address falls in.
    Example: AF

  - `travelers.user.addresses.recipients` (array)
    The recipient at the address.

  - `travelers.user.addresses.regionCode` (string, required)
    Region code of the country/region of the address.
    Example: US

  - `travelers.user.addresses.regionName` (string)
    Region name of the country/region of the address.
    Example: America

  - `travelers.user.addresses.revision` (integer)
    Example: 1

  - `travelers.user.addresses.sortingCode` (string)
    Additional, country-specific, sorting code. This is not used
in most regions. Where it is used, the value is either a string like
"CEDEX", optionally followed by a number (e.g. "CEDEX 7"), or just a number
alone, representing the "sector code" (Jamaica), "delivery area indicator"
(Malawi) or "post office indicator" (e.g. Côte d'Ivoire).
    Example: Jamaica

  - `travelers.user.addresses.sublocality` (string)
    Sublocality of the address. This can be neighborhoods, boroughs, districts.

  - `travelers.user.addresses.timezone` (string)
    Time zone of the address.
    Example: America/Los_Angeles

  - `travelers.user.addresses.coordinates` (object)
    Latitude and Longitude for a Location

  - `travelers.user.addresses.coordinates.latitude` (number, required)
    Latitude of the Location
    Example: 77.1025

  - `travelers.user.addresses.coordinates.longitude` (number, required)
    Longitude of the Location
    Example: 28.7041

  - `travelers.user.email` (string)
    Example: example@email.com

  - `travelers.user.emergencyContactInfo` (object)
    Emergency contact information.

  - `travelers.user.emergencyContactInfo.designation` (string)
    Example: MANAGER

  - `travelers.user.emergencyContactInfo.email` (string, required)
    Example: emergency-contact@email.com

  - `travelers.user.emergencyContactInfo.name` (object)
    Full name containing first, middle, last (family) names, and suffix.

  - `travelers.user.emergencyContactInfo.name.family1` (string, required)
    Last (family) name.
    Example: Gandas

  - `travelers.user.emergencyContactInfo.name.family2` (string)
    Example: FamilyTwo

  - `travelers.user.emergencyContactInfo.name.given` (string, required)
    First (given) name.
    Example: Vichitr

  - `travelers.user.emergencyContactInfo.name.middle` (string)
    Middle name.
    Example: Kumar

  - `travelers.user.emergencyContactInfo.name.suffix` (string)
    Suffix for name
    Enum: "NAME_SUFFIX_UNKNOWN", "SR", "JR", "MD", "PHD", "II", "III", "IV", "DO", "ATTY", "V", "VI", "ESQ", "DC", "DDS", "VM", "JD", "SECOND", "THIRD"

  - `travelers.user.emergencyContactInfo.name.preferred` (string)
    Informal preferred name added by traveler. This is not used on any PNR or tickets
    Example: Don

  - `travelers.user.emergencyContactInfo.phoneNumber` (object)
    Properly formatted phone number.

  - `travelers.user.emergencyContactInfo.phoneNumber.countryCode` (integer)
    two digit country code
    Example: 91

  - `travelers.user.emergencyContactInfo.phoneNumber.countryCodeSource` (string)
    Enum: "UNSPECIFIED", "FROM_NUMBER_WITH_PLUS_SIGN", "FROM_NUMBER_WITH_IDD", "FROM_NUMBER_WITHOUT_PLUS_SIGN", "FROM_DEFAULT_COUNTRY"

  - `travelers.user.emergencyContactInfo.phoneNumber.extension` (string)
    phone number extension
    Example: 222

  - `travelers.user.emergencyContactInfo.phoneNumber.isoCountryCode` (string)
    ISO alpha-2 code
    Example: IN

  - `travelers.user.emergencyContactInfo.phoneNumber.italianLeadingZero` (boolean)
    Example: true

  - `travelers.user.emergencyContactInfo.phoneNumber.nationalNumber` (integer)
    Example: 8150

  - `travelers.user.emergencyContactInfo.phoneNumber.numberOfLeadingZeros` (integer)
    Example: 1

  - `travelers.user.emergencyContactInfo.phoneNumber.preferredDomesticCarrierCode` (string)
    Example: 7

  - `travelers.user.emergencyContactInfo.phoneNumber.rawInput` (string)
    Example: 77777

  - `travelers.user.emergencyContactInfo.phoneNumber.type` (string)
    Enum: "UNKNOWN_TYPE", "MOBILE", "LANDLINE"

  - `travelers.user.emergencyContactInfo.userOrgId` (object)
    User and user's organization information.

  - `travelers.user.emergencyContactInfo.userOrgId.organizationAgencyId` (object)
    Agency id for the organization.

  - `travelers.user.emergencyContactInfo.userOrgId.organizationAgencyId.id` (string, required)

  - `travelers.user.emergencyContactInfo.userOrgId.organizationId` (object, required)
    Organization id for traveler.

  - `travelers.user.emergencyContactInfo.userOrgId.organizationId.id` (string, required)

  - `travelers.user.emergencyContactInfo.userOrgId.userId` (object, required)
    User identifier

  - `travelers.user.emergencyContactInfo.userOrgId.userId.id` (string, required)

  - `travelers.user.emergencyContactInfo.userOrgId.tmcInfo` (object)
    TMC config information.

  - `travelers.user.emergencyContactInfo.userOrgId.tmcInfo.id` (object, required)
    Company ID

  - `travelers.user.emergencyContactInfo.userOrgId.tmcInfo.id.id` (string, required)
    Example: f49d00fe-1eda-4304-ba79-a980f565281d

  - `travelers.user.emergencyContactInfo.userOrgId.tmcInfo.primaryServiceProviderTmc` (object, required)
    Primary service provider TMC info

  - `travelers.user.emergencyContactInfo.userOrgId.tmcInfo.secondaryServiceProviderTmcs` (array)
    Secondary service provider TMCs for the TMC.

  - `travelers.user.emergencyContactInfo.userOrgId.tmcInfo.secondaryServiceProviderTmcs.supplier` (string, required)
    Supplier type like Sabre, TravelFusion etc.
    Enum: "SABRE", "AMADEUS", "TRAVEL_FUSION", "FARELOGIX_NDC", "ATPCO_NDC", "TRAINLINE", "AVIA", "QBR", "BCD", "QANTAS_HOTELS", "SOUTHWEST", "EXPEDIA", "HOTEL_HUB", "NDC", "MARRIOTT", "CLEARTRIP", "KYTE", "GROUNDSPAN", "SABRE_NDC", "BOOKING_COM", "CARTRAWLER", "PREMIER_INN", "TRAVELODGE", "ENTERPRISE", "HYATT", "HILTON", "NATIONAL", "ALAMO", "HERTZ", "DOLLAR", "THRIFTY", "FIREFLY", "EUROSTAR", "AVIS", "BUDGET", "AMADEUS_NDC", "SIXT"

  - `travelers.user.emergencyContactInfo.userOrgId.tmcInfo.secondaryServiceProviderTmcs.travelType` (string, required)
    Travel Type
    Enum: "AIR", "HOTEL", "CAR", "RAIL", "LIMO", "MISC", "ALL"

  - `travelers.user.emergencyContactInfo.userOrgId.tmcBasicInfo` (object)
    TMC related basic information.

  - `travelers.user.emergencyContactInfo.userOrgId.tmcBasicInfo.contractingTmc` (object, required)
    Basic information about a company.

  - `travelers.user.emergencyContactInfo.userOrgId.tmcBasicInfo.contractingTmc.name` (string)

  - `travelers.user.emergencyContactInfo.userOrgId.tmcBasicInfo.contractingTmc.logo` (object)
    An image with meta data. Either the `data` or `url` property must be supplied to load the image.

  - `travelers.user.emergencyContactInfo.userOrgId.tmcBasicInfo.contractingTmc.logo.data` (string)
    Example: 6935813e12584abda0e43d71cd2ea260

  - `travelers.user.emergencyContactInfo.userOrgId.tmcBasicInfo.contractingTmc.logo.dimensions` (object)
    Image dimensions ie width and height.

  - `travelers.user.emergencyContactInfo.userOrgId.tmcBasicInfo.contractingTmc.logo.dimensions.height` (integer)
    Example: 120

  - `travelers.user.emergencyContactInfo.userOrgId.tmcBasicInfo.contractingTmc.logo.dimensions.width` (integer)
    Example: 240

  - `travelers.user.emergencyContactInfo.userOrgId.tmcBasicInfo.contractingTmc.logo.url` (string)
    Example: https://static.wixstatic.com/media/73f2e2_6935813e12584abda0e43d71cd2ea260~mv2.png/v1/fill/w_630,h_94,al_c,q_85,usm_0.66_1.00_0.01/Spotnana%403x.webp

  - `travelers.user.emergencyContactInfo.userOrgId.tmcBasicInfo.contractingTmc.logo.metadata` (object)
    Metadata associated with an image.

  - `travelers.user.emergencyContactInfo.userOrgId.tmcBasicInfo.contractingTmc.logo.metadata.variant` (string)
    Image variant.
    Enum: "LIGHT", "DARK"

  - `travelers.user.emergencyContact` (object)
    Emergency contact information.

  - `travelers.user.emergencyContact.name` (string, required)
    Full name of contact.
    Example: John Smith

  - `travelers.user.emergencyContact.email` (string)
    Email address of contact.
    Example: emergency-contact@email.com

  - `travelers.user.emergencyContact.designation` (string)
    Job title of contact.
    Example: MANAGER

  - `travelers.user.emergencyContact.relation` (string)
    Relation of contact to user.
    Enum: "RELATION_UNKNOWN", "SPOUSE", "PARENT", "SIBLING", "CHILD", "FRIEND", "RELATIVE", "COLLEAGUE", "OTHER"

  - `travelers.user.emergencyContact.phoneNumbers` (array, required)
    Phone numbers of contact.

  - `travelers.user.emergencyContact.preferredLanguage` (string)
    Language preferred by user.
    Example: en-US

  - `travelers.user.gender` (string)
    Enum: "MALE", "FEMALE", "UNSPECIFIED", "UNDISCLOSED", "GENDER_REDACTED"

  - `travelers.user.identityDocs` (array)
    List of user identity documents.
    Example: [{"passport":{"docId":"PASSPORTID","expiryDate":{"iso8601":"2017-07-21"},"issueCountry":"IN","issuedDate":{"iso8601":"2017-07-21"},"nationalityCountry":"IN","type":"REGULAR"}},{"ktn":{"number":"123456…

  - `travelers.user.identityDocs.passport` (object)
    Passport details.

  - `travelers.user.identityDocs.passport.docId` (string, required)
    Example: PassportID

  - `travelers.user.identityDocs.passport.issueCountry` (string, required)
    Example: IN

  - `travelers.user.identityDocs.passport.nationalityCountry` (string, required)
    Example: IN

  - `travelers.user.identityDocs.passport.type` (string)
    Enum: "UNKNOWN", "REGULAR"

  - `travelers.user.identityDocs.immigrationDoc` (object)
    Immigration document details.

  - `travelers.user.identityDocs.immigrationDoc.authorizedStayDuration` (object)
    Represents a duration of time with specific units of time.

  - `travelers.user.identityDocs.immigrationDoc.authorizedStayDuration.iso8601` (string)
    Durations define the amount of intervening time in a time interval and are represented by the
format P[n]Y[n]M[n]DT[n]H[n]M[n]S.
The [n] is replaced by the value for each of the date and time elements that follow the [n].
Leading zeros are not required. The capital letters P, Y, M, W, D, T, H, M, and S are
designators for each of the date and time elements and are not replaced. P is the duration
designator (for period) placed at the start of the duration representation.
Y is the year designator.
M is the month designator.
W is the week designator.
D is the day designator.
T is the time designator.
H is the hour designator.
M is the minute designator.
S is the second designator and can include decimal digits with arbitrary precision.
    Example: PT19H55M

  - `travelers.user.identityDocs.immigrationDoc.docId` (string, required)
    The ID of the immigration document.
    Example: ImmigrationDocumentID

  - `travelers.user.identityDocs.immigrationDoc.issueCountry` (string, required)
    The country that issued the immigration document.
    Example: IN

  - `travelers.user.identityDocs.immigrationDoc.nationalityCountry` (string)
    Example: IN

  - `travelers.user.identityDocs.immigrationDoc.type` (string)
    Enum: "UNKNOWN", "VISA"

  - `travelers.user.identityDocs.redress` (object)
    Redress details

  - `travelers.user.identityDocs.redress.number` (string, required)
    Example: 12345

  - `travelers.user.identityDocs.redress.issueCountry` (string, required)
    Example: US

  - `travelers.user.identityDocs.ktn` (object)
    Information about the Known Traveler Number (KTN).

  - `travelers.user.identityDocs.ktn.number` (string, required)
    Example: 12345

  - `travelers.user.identityDocs.ktn.issueCountry` (string, required)
    Example: US

  - `travelers.user.identityDocs.nationalDoc` (object)
    National Document Id details.

  - `travelers.user.identityDocs.nationalDoc.docId` (string, required)
    Unique id identifying the national document.
    Example: NationalDocId

  - `travelers.user.identityDocs.nationalDoc.issueCountry` (string, required)
    IS0 2 letter country code of the country issuing this id.
    Example: IN

  - `travelers.user.identityDocs.nationalDoc.type` (string)
    Enum: "DNI", "NIE", "CPF", "MTP", "CIN", "NID"

  - `travelers.user.paymentInfos` (array)

  - `travelers.user.paymentInfos.applicableTo` (array)

  - `travelers.user.paymentInfos.card` (object, required)
    User card info

  - `travelers.user.paymentInfos.card.id` (string)
    Unique identifier for this card
    Example: 34d536b6-f8ff-11eb-9a61-0242ac180002

  - `travelers.user.paymentInfos.card.type` (string)
    Type of card
    Enum: "UNKNOWN", "CREDIT", "DEBIT"

  - `travelers.user.paymentInfos.card.company` (string)
    The issuing company of card
    Enum: "NONE", "VISA", "MASTERCARD", "AMEX", "DISCOVER", "AIR_TRAVEL_UATP", "CARTE_BLANCHE", "DINERS_CLUB", "JCB", "BREX", "UNION_PAY", "EURO_CARD", "ACCESS_CARD", "ELO_CARD"

  - `travelers.user.paymentInfos.card.name` (string)
    Name on card
    Example: Harrison Schwartz

  - `travelers.user.paymentInfos.card.number` (string, required)
    Card number
    Example: 4111111111111111

  - `travelers.user.paymentInfos.card.expiryMonth` (integer)
    Expiry month
    Example: 1

  - `travelers.user.paymentInfos.card.expiryYear` (integer)
    Expiry year
    Example: 2010

  - `travelers.user.paymentInfos.card.cvv` (string)
    Card cvv number
    Example: 012

  - `travelers.user.paymentInfos.card.label` (string)
    Card Label
    Example: Label amex

  - `travelers.user.paymentInfos.card.currency` (string)
    Native currency of the card.
    Example: USD

  - `travelers.user.paymentInfos.card.externalId` (string)
    Spotnana partner card id.
    Example: bxt_RNGsNfzgJDaTstKIKqK4xEuhGYAnMdYK8T40

  - `travelers.user.paymentInfos.card.vaultId` (string)
    ID of the vault used for creating the card.
    Example: 34d536b6-f8ff-11eb-9a61-0242ac180002

  - `travelers.user.paymentInfos.card.expiry` (object)
    Contains the expiry of a Card.

  - `travelers.user.paymentInfos.card.expiry.tokenizedExpiry` (object)
    Contains the tokenized expiry of a Card.

  - `travelers.user.paymentInfos.card.expiry.tokenizedExpiry.expiryMonth` (string, required)
    Tokenized Expiry month
    Example: KvAuPANQWCpjwRQxcC8EXg==

  - `travelers.user.paymentInfos.card.expiry.tokenizedExpiry.expiryYear` (string, required)
    Tokenized Expiry year
    Example: fPBm0OWrKwPyIrCVcbg4cA==

  - `travelers.user.paymentInfos.card.expiry.expiry` (object)
    Contains the expiry of a Card.

  - `travelers.user.paymentInfos.card.expiry.expiry.expiryMonth` (integer, required)
    Expiry month
    Example: 1

  - `travelers.user.paymentInfos.card.expiry.expiry.expiryYear` (integer, required)
    Expiry year
    Example: 2010

  - `travelers.user.paymentInfos.card.ownershipLabel` (string)
    Ownership label of the card whether it is personal, corporate or central.
    Enum: "CORPORATE", "PERSONAL", "CENTRAL"

  - `travelers.user.paymentInfos.accessType` (string)
    Identifies the different ways the card can be used across an organization
    Enum: "UNKNOWN_TYPE", "CENTRALISED", "INDIVIDUAL", "PERSONAL", "TMC", "APPLICATION", "ITINERARY", "EVENTS", "TRAVEL_ARRANGER_MANAGED", "COMPANY_TRAVEL_ARRANGER_MANAGED", "EVENT_TEMPLATE"

  - `travelers.user.paymentInfos.access` (object)
    Access type for cards to check who in the organization has permission to use it

  - `travelers.user.paymentInfos.access.entityIds` (array, required)
    Holds the ids for for all users who can access the card or organization id

  - `travelers.user.paymentInfos.access.entities` (array)
    A list of cardAccessEntity consisting of central card access level if present and entity id.

  - `travelers.user.paymentInfos.access.entities.entityId` (string, required)
    Holds the id for for the user who can access the card or organization id or legal entity

  - `travelers.user.paymentInfos.access.entities.centralCardAccessLevel` (string)
    Identifies at which level central card is applicable, for example organization or legal entity.
    Enum: "UNKNOWN", "ORGANIZATION", "LEGAL_ENTITY", "TMC"

  - `travelers.user.phoneNumbers` (array)

  - `travelers.user.nationality` (string)
    Nationality of user
    Example: Indian

  - `travelers.user.title` (string)
    Enum: "TITLE_UNKNOWN", "MR", "MS", "MRS", "MX", "MASTER", "MISS", "DR", "PROFESSOR", "CAPTAIN", "REVEREND", "HONOURABLE", "SIR", "LADY", "AMBASSADOR", "LORD", "BRIGADIER", "SENATOR", "DAME", "JUSTICE", "UK", "TITLE_REDACTED"

  - `travelers.userBusinessInfo` (object)
    User business information.

  - `travelers.userBusinessInfo.department` (object)
    Department details.

  - `travelers.userBusinessInfo.department.id` (object, required)
    Department id.

  - `travelers.userBusinessInfo.department.id.id` (string, required)
    Example: 631ccbcf-9414-5fe0-c234-b324dfbe7422

  - `travelers.userBusinessInfo.department.name` (string, required)
    Example: IT Department

  - `travelers.userBusinessInfo.department.externalId` (string)
    External id of the department
    Example: department-ext-id

  - `travelers.userBusinessInfo.department.employeeCount` (integer)
    Count of employees in the department
    Example: 57

  - `travelers.userBusinessInfo.designation` (string)
    Example: MANAGER

  - `travelers.userBusinessInfo.email` (string, required)
    Example: user@business.com

  - `travelers.userBusinessInfo.employeeId` (string, required)
    Unique employee id. Can use email if a company don't use employee ids.
    Example: 101

  - `travelers.userBusinessInfo.grade` (object)
    Grade details.

  - `travelers.userBusinessInfo.grade.employeeCount` (integer)
    Count of employees in the grade
    Example: 75

  - `travelers.userBusinessInfo.grade.id` (object, required)
    Grade id.

  - `travelers.userBusinessInfo.grade.id.id` (string, required)
    Example: 831ccbcb-1416-7fe2-e236-d324dfbe7424

  - `travelers.userBusinessInfo.grade.name` (string, required)
    Example: Grade

  - `travelers.userBusinessInfo.legalEntityId` (object, required)
    The ID of the legal entity.

  - `travelers.userBusinessInfo.legalEntityId.id` (string, required)
    Example: fc1ccbce-8413-4fe9-b233-a324dfbe7421

  - `travelers.userBusinessInfo.managerBasicInfo` (object)
    Basic user information.

  - `travelers.userBusinessInfo.managerBasicInfo.persona` (string)
    Persona of the user
    Enum: "UNKNOWN_PERSONA", "EMPLOYEE", "GUEST", "PERSONAL", "RELATIVE", "ADHOC"

  - `travelers.userBusinessInfo.managerBasicInfo.email` (string)
    Example: example@email.com

  - `travelers.userBusinessInfo.managerBasicInfo.tier` (string)
    Tier of User.
Note: In default UI, BASIC is displayed as Standard, and SEAT1A is displayed as VIP.
Display names for other tiers are driven by the company tier configuration.
    Enum: "BASIC", "SEAT1A", "TIER_2", "TIER_3", "TIER_4", "TIER_5", "TIER_6", "TIER_7", "TIER_8", "TIER_9", "TIER_10", "TIER_11", "TIER_12", "TIER_13", "TIER_14", "TIER_15", "TIER_16", "TIER_17", "TIER_18", "TIER_19", "TIER_20", "TIER_21", "TIER_22", "TIER_23", "TIER_24", "TIER_25", "TIER_26", "TIER_27", "TIER_28", "TIER_29", "TIER_30", "TIER_31"

  - `travelers.userBusinessInfo.managerBasicInfo.employeeId` (string)
    Employee id of the user

  - `travelers.userBusinessInfo.managerBasicInfo.isActive` (boolean)
    Whether user profile is active or not.
    Example: true

  - `travelers.userBusinessInfo.office` (object)
    Office details.

  - `travelers.userBusinessInfo.office.id` (object, required)
    The unique ID of the office.

  - `travelers.userBusinessInfo.office.id.id` (string, required)
    The value of the unique ID for the office.
    Example: 531ccbce-8413-4fe9-b233-a324dfbe7421

  - `travelers.userBusinessInfo.office.name` (string, required)
    Example: Office

  - `travelers.userBusinessInfo.office.taxId` (string)
    Example: 133232

  - `travelers.userBusinessInfo.phoneNumbers` (array)

  - `travelers.userBusinessInfo.userCostCenter` (object)
    Cost center details.

  - `travelers.userBusinessInfo.userCostCenter.id` (object, required)

  - `travelers.userBusinessInfo.userCostCenter.id.id` (string, required)
    Example: 731ccbca-0415-6fe1-d235-c324dfbe7423

  - `travelers.userBusinessInfo.userCostCenter.name` (string, required)
    Example: CostCenter

  - `travelers.userBusinessInfo.userCostCenter.externalId` (string)
    Example: external-id

  - `travelers.userBusinessInfo.designatedApproverInfos` (array)
    A list of user basic info for designated approvers.

  - `travelers.userBusinessInfo.designatedApproverUserIds` (array)
    A list of userId for designated approvers.

  - `travelers.userBusinessInfo.authorizerEmail` (string)
    Email address to be used as approval authorizer, when a manager is not present.
    Example: example@email.com

  - `travelers.isActive` (boolean)
    A boolean flag to show if traveler is active.
    Example: true

  - `travelers.adhocUserInfo` (object)
    Basic information related to ad-hoc traveler profile.

  - `travelers.adhocUserInfo.profileOwner` (object, required)
    Basic information about the owner of the ad-hoc user.

  - `travelers.adhocUserInfo.isSaved` (boolean)
    A boolean flag to show if ad-hoc traveler is visible in search. While updating the user 
if client tries to update this field, it will throw exception.

  - `travelers.externalId` (string)
    External id of this user.

  - `pnrTravelers` (array)
    List of travelers on this pnr and their information. This is a required field.

  - `pnrTravelers.travelerInfo` (object)
    The traveler identifiers. These can be either the Spotnana user IDs of the travelers or information regarding
the adhoc travelers.

  - `pnrTravelers.travelerInfo.adhocTravelerInfo` (object)
    Describes an adhoc traveler.

  - `pnrTravelers.travelerInfo.adhocTravelerInfo.externalId` (string)
    External Id of user
    Example: qwert123

  - `pnrTravelers.personalInfo` (object)
    User details.

  - `pnrTravelers.personalInfo.addresses` (array)

  - `pnrTravelers.personalInfo.email` (string)
    Example: example@email.com

  - `pnrTravelers.personalInfo.identityDocs` (array)
    List of user identity documents.
    Example: [{"passport":{"docId":"PASSPORTID","expiryDate":{"iso8601":"2017-07-21"},"issueCountry":"IN","issuedDate":{"iso8601":"2017-07-21"},"nationalityCountry":"IN","type":"REGULAR"}},{"ktn":{"number":"123456…

  - `pnrTravelers.personalInfo.phoneNumbers` (array)

  - `pnrTravelers.personalInfo.nationality` (string)
    Nationality of user
    Example: Indian

  - `pnrTravelers.personalInfo.preferredLanguage` (string)
    Language preferred by user.
    Example: en-US

  - `pnrTravelers.personalInfo.preferredPronoun` (string)
    Enum: "SHE_HER_HERS", "HE_HIM_HIS", "THEY_THEM_THEIRS"

  - `pnrTravelers.loyalties` (array)

  - `pnrTravelers.businessInfo` (object)
    Business information of the traveler

  - `pnrTravelers.businessInfo.legalEntity` (object)
    Legal entity of the traveler

  - `pnrTravelers.businessInfo.legalEntity.id` (string)
    Legal entity ID

  - `pnrTravelers.businessInfo.legalEntity.name` (string)
    Name of the legal entity
    Example: Spotnana India

  - `pnrTravelers.businessInfo.legalEntity.ein` (string)
    EIN of the traveler

  - `pnrTravelers.businessInfo.legalEntity.externalId` (string)
    External Id of the legal entity
    Example: abcd

  - `pnrTravelers.businessInfo.legalEntity.companySpecifiedAttributes` (array)

  - `pnrTravelers.businessInfo.legalEntity.companySpecifiedAttributes.fieldName` (string, required)
    Field name of the attribute
    Example: businessId

  - `pnrTravelers.businessInfo.legalEntity.companySpecifiedAttributes.value` (string, required)
    Field value of the attribute
    Example: ABCD

  - `pnrTravelers.businessInfo.legalEntity.countryCode` (string)
    2-letter ISO country code of the legal entity
    Example: IN

  - `pnrTravelers.businessInfo.legalEntity.billingCurrency` (string)
    Billing currency for the legal entity.
    Example: USD

  - `pnrTravelers.businessInfo.legalEntity.registeredName` (string)
    The official name of this legal entity as registered with local tax authorities.
    Example: Spotnana India Private Limited

  - `pnrTravelers.businessInfo.legalEntity.registeredEmail` (string)
    The primary email (or alias) used for the "Registered name" of this legal entity.
Used for official communications, including regulatory, compliance, and invoicing
purposes.
    Example: contact@spotnana.in

  - `pnrTravelers.businessInfo.companyInfo` (object)
    Company information of the traveler

  - `pnrTravelers.businessInfo.companyInfo.name` (string)
    Name of the company
    Example: Spotnana

  - `pnrTravelers.businessInfo.companyInfo.externalId` (string)
    External Id of the company
    Example: abcd

  - `pnrTravelers.businessInfo.workerType` (string)
    The type of worker.
    Enum: "EMPLOYEE", "CONTINGENT", "SEASONAL", "INTERN", "GUEST"

  - `pnrTravelers.businessInfo.employeeId` (string)
    Employee id of the user
    Example: 1234

  - `pnrTravelers.businessInfo.companySpecifiedAttributes` (array)

  - `pnrTravelers.businessInfo.companySpecifiedAttributes.fixedColumnName` (string, required)
    Example: contingentType

  - `pnrTravelers.businessInfo.companySpecifiedAttributes.value` (string, required)
    Example: FSTV

  - `pnrTravelers.businessInfo.department` (object)
    Department details.

  - `pnrTravelers.businessInfo.department.id` (string, required)

  - `pnrTravelers.businessInfo.department.name` (string, required)
    Name of the department
    Example: IT Department

  - `pnrTravelers.businessInfo.department.externalId` (string)
    External id of the department
    Example: department-ext-id

  - `pnrTravelers.businessInfo.accountingCode` (string)
    Code used for accounting.
    Example: 123

  - `pnrTravelers.blockLoyalty` (boolean)
    If true, hides the loyalty program input on the checkout page for this traveler.
    Example: false

  - `costOfGoodsSold` (object)
    Payment information about all goods sold. This is a required field for now.

  - `costOfGoodsSold.payments` (array, required)
    Potentially multiple payments that spotnana will pay to vendors for this booking

  - `costOfGoodsSold.payments.travelerIndices` (array, required)
    The list of traveler indices on which this payment applies.
    Example: [0,1]

  - `costOfGoodsSold.payments.userIds` (array)
    The list of traveler user IDs on which this payment applies.

  - `costOfGoodsSold.payments.amount` (object)
    Fare amount including base fare and tax.

  - `costOfGoodsSold.payments.amount.base` (object, required)
    Money object containing details such as the amount, the currency code, and the converted amount.

  - `costOfGoodsSold.payments.amount.base.amount` (number, required)
    The numeric value for the amount of money.
    Example: 510

  - `costOfGoodsSold.payments.amount.base.currencyCode` (string, required)
    The 3-letter currency code for the money amount (defined using ISO 4217 standard).
    Example: GBP

  - `costOfGoodsSold.payments.amount.base.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

  - `costOfGoodsSold.payments.amount.base.convertedCurrency` (string)
    The 3-letter currency code for the converted currency (defined using ISO 4217 standard).
    Example: USD

  - `costOfGoodsSold.payments.amount.base.otherCoinage` (array)
    List of the dollar amount in other coinage systems like reward points, cryptocurrency etc.

  - `costOfGoodsSold.payments.amount.base.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", "NO_PREPAYMENT", "DELAYED_PAYMENT"

  - `costOfGoodsSold.payments.amount.base.otherCoinage.amount` (number)
    Example: 1000

  - `costOfGoodsSold.payments.amount.base.otherCoinage.conversionRate` (number)
    1 coin in this system equals to how many currency value
    Example: 0.01

  - `costOfGoodsSold.payments.amount.base.otherCoinage.preferredCurrencyConversionRate` (number)
    1 coin in this system equals to how many currency value
    Example: 0.01

  - `costOfGoodsSold.payments.amount.base.otherCoinage.otherCoinageMetadata` (any)
    Metadata to store additional information related to the payment method

  - `costOfGoodsSold.payments.amount.base.otherCoinage.otherCoinageMetadata.metadataType` (string)
    Discriminator field for polymorphic deserialization
    Enum: "FlightPassPaymentMetadata"

  - `costOfGoodsSold.payments.amount.base.otherCoinage.otherCoinageMetadata.flightPassMetadata` (object, required)
    Metadata specific to Flight Pass payment method in OtherCoinage.

  - `costOfGoodsSold.payments.amount.base.otherCoinage.otherCoinageMetadata.flightPassMetadata.flightPassNumber` (string)
    Flight pass number
    Example: FP123456789

  - `costOfGoodsSold.payments.amount.base.otherCoinage.otherCoinageMetadata.flightPassMetadata.flightPassAmounts` (object)
    Fare breakdown for the flight pass booking.

  - `costOfGoodsSold.payments.amount.taxBreakdown` (array)

  - `costOfGoodsSold.payments.amount.taxBreakdown.taxCode` (string)
    Tax code
    Example: VAT

  - `costOfGoodsSold.payments.amount.taxBreakdown.percentage` (number)
    Tax amount to total amount
    Example: 9

  - `costOfGoodsSold.payments.amount.taxBreakdown.description` (string)
    Tax name or Tax Description
    Example: AIR TRAVELLERS SECURITY CHARGE

  - `costOfGoodsSold.payments.fop` (object)
    Information about form of payment to be used to charge customer

  - `costOfGoodsSold.payments.fop.type` (string)
    Type of payment used
    Enum: "UNKNOWN", "CARD", "CASH", "TFPAY", "CHEQUE", "BREX_POINTS", "QANTAS_POINTS"

  - `costOfGoodsSold.payments.fop.additionalInfo` (string)
    Additional info to be added if payment type is 'UNKNOWN'.

  - `costOfGoodsSold.payments.fop.paymentMetadata` (object)
    Payment metadata related to form of payment

  - `costOfGoodsSold.payments.fop.paymentMetadata.customPaymentMethodMetadata` (object)
    Metadata related to custom payment method

  - `costOfGoodsSold.payments.fop.paymentMetadata.customPaymentMethodMetadata.brexBudgetMetadata` (object)
    Metadata for Brex Budget

  - `costOfGoodsSold.payments.fop.paymentMetadata.customPaymentMethodMetadata.brexBudgetMetadata.budgetName` (string)
    Name of the budget
    Example: Travel budget

  - `costOfGoodsSold.payments.fop.paymentMetadata.customPaymentMethodMetadata.brexBudgetMetadata.paidByPersonalCard` (boolean)
    Whether it was paid by budget card or personal card
    Example: false

  - `costOfGoodsSold.payments.fop.paymentMetadata.customPaymentMethodMetadata.noPrepaymentMetadata` (object)
    Metadata for No Prepayment payment source (car bookings on no-guarantee rates).

  - `costOfGoodsSold.payments.fop.paymentMetadata.customPaymentMethodMetadata.noPrepaymentMetadata.label` (string, required)
    Label for No Prepayment payment source.
    Example: No Prepayment

  - `costOfGoodsSold.payments.fop.paymentMetadata.customPaymentMethodMetadata.virtualPaymentMetadata` (object)
    Metadata for custom virtual payment source.

  - `costOfGoodsSold.payments.fop.paymentMetadata.customPaymentMethodMetadata.virtualPaymentMetadata.label` (string, required)
    Label for custom virtual payment source.
    Example: Custom payment card

  - `costOfGoodsSold.payments.fop.paymentMetadata.customPaymentMethodMetadata.virtualPaymentMetadata.provider` (string)
    How this virtual payment source is integrated with Spotnana. EXTERNAL marks a virtual card deployed outside Spotnana (label-only, no card operations).
    Enum: "BCD", "EXTERNAL"

  - `costOfGoodsSold.payments.fop.paymentMetadata.vendorProgramPaymentMetadata` (object)
    Metadata related to vendor program payment method

  - `costOfGoodsSold.payments.fop.paymentMetadata.vendorProgramPaymentMetadata.directBilling` (object, required)
    Metadata for Direct Billing

  - `costOfGoodsSold.payments.fop.paymentMetadata.vendorProgramPaymentMetadata.directBilling.vendorId` (string, required)
    Unique vendor id/code
    Example: ZI

  - `costOfGoodsSold.payments.fop.paymentMetadata.vendorProgramPaymentMetadata.directBilling.directBillingCode` (string)
    Direct billing code provided by the vendor
    Example: 123456

  - `costOfGoodsSold.payments.fop.paymentMetadata.vendorProgramPaymentMetadata.uaPassPlusMetadata` (object, required)
    Details for UAPassPlus Metadata.

  - `costOfGoodsSold.payments.fop.paymentMetadata.vendorProgramPaymentMetadata.uaPassPlusMetadata.uatpInfo` (object)
    UATP card information for UAPassPlus

  - `costOfGoodsSold.payments.fop.paymentMetadata.virtualCardMetadata` (object)
    Metadata for Virtual Card.

  - `costOfGoodsSold.payments.fop.paymentMetadata.virtualCardMetadata.vendorInfo` (object, required)
    Virtual card related information like vendor, cardId, card-pool id of vendor etc.

  - `costOfGoodsSold.payments.fop.paymentMetadata.virtualCardMetadata.vendorInfo.vendor` (string)
    Type of Virtual card vendor
    Enum: "CONFERMA"

  - `costOfGoodsSold.payments.fop.paymentMetadata.virtualCardMetadata.vendorInfo.vendorCardId` (string, required)
    Virtual card id.
    Example: 68793680

  - `costOfGoodsSold.payments.fop.paymentMetadata.virtualCardMetadata.vendorInfo.virtualCardVendorCardPoolId` (string, required)
    Card pool id of virtual card vendor.
    Example: 51907

  - `costOfGoodsSold.payments.fop.paymentMetadata.virtualCardMetadata.vendorInfo.confermaInfo` (object)
    Details of conferma - one of virtual card vendors.

  - `costOfGoodsSold.payments.fop.paymentMetadata.virtualCardMetadata.vendorInfo.confermaInfo.deploymentId` (integer, required)
    Unique identifier assigned to the virtual card deployment at the point of creation.
    Example: 68793680

  - `costOfGoodsSold.payments.fop.paymentMetadata.virtualCardMetadata.cardInfo` (object)
    Virtual card information like maximum deployment amount, valid date range.

  - `costOfGoodsSold.payments.fop.paymentMetadata.virtualCardMetadata.cardInfo.dateRange` (object)
    Date range within which the virtual card can be charged.

  - `costOfGoodsSold.payments.fop.paymentMetadata.virtualCardMetadata.cardInfo.dateRange.startDate` (object, required)
    Local date and time in ISO 8601 format.

  - `costOfGoodsSold.payments.fop.paymentMetadata.virtualCardMetadata.cardInfo.dateRange.startDate.iso8601` (string, required)
    Example: 2017-07-21T17:32

  - `costOfGoodsSold.payments.fop.paymentMetadata.virtualCardMetadata.paymentInstructionId` (string)
    Payment instruction id set during addition of virtual card payment source
    Example: 1eb8b778-f0a6-4037-865c-4580982fa36e

  - `costOfGoodsSold.payments.fop.paymentMetadata.virtualCardMetadata.shouldReveal` (boolean)
    Identifier for when to reveal virtual cards as they are revealed to travellers only 24hrs before check-in.
    Example: false

  - `costOfGoodsSold.payments.fop.paymentMetadata.cardMetadata` (object)
    Metadata for Card payment source.

  - `costOfGoodsSold.payments.fop.paymentMetadata.cardMetadata.isLodgeCard` (boolean)
    Whether the payment is made using a lodge card
    Example: false

  - `costOfGoodsSold.payments.fop.paymentMetadata.cardMetadata.bta` (string)
    Whether this is a BTA card. Possible values are 'Y' or 'N'. Relevant only for lodge cards.
    Example: Y

  - `costOfGoodsSold.payments.fop.paymentSourceType` (string)
    Type of Payment Source
    Enum: "CARD", "VIRTUAL_CARD", "REWARDS_PROGRAM", "DELAYED_INVOICING", "CUSTOM_PAYMENT_METHOD", "VENDOR_PROGRAM_PAYMENT", "UNUSED_CREDIT", "CASH"

  - `costOfGoodsSold.payments.paymentReference` (string)
    Reference number for original payment made for this service
    Example: HAH2618716871

  - `costOfGoodsSold.payments.paymentType` (string, required)
    Service for which this payment is made
    Enum: "UNKNOWN", "FLIGHTS", "SERVICE_FEE", "MISCELLANEOUS", "HOTELS", "CARS", "RAILS", "LIMO", "MISC"

  - `costOfGoodsSold.payments.paymentThirdParty` (string)
    Third party who is processing the payment
    Enum: "UNKNOWN_PARTY", "STRIPE", "TFPAY", "TRAINLINE", "BREX", "OUTSIDE_OBT", "RAZORPAY", "EUROSTAR"

  - `costOfGoodsSold.payments.paymentId` (string)
    The payment id for this transaction

  - `costOfGoodsSold.payments.paymentGateway` (string)
    Third party payment gateway used to process the payment
    Enum: "PAYMENT_GATEWAY_UNKNOWN", "STRIPE", "BREX"

  - `costOfGoodsSold.payments.isRefunded` (boolean)
    Whether the payment is refunded to the customer
    Example: false

  - `costOfGoodsSold.payments.selectedPaymentSource` (object)
    Describes the selected payment source for the booking.

  - `costOfGoodsSold.payments.selectedPaymentSource.paymentSourceId` (string)
    Unique identifier identifying this payment source.
    Example: f49d00fe-1eda-4304-ba79-a980f565281d

  - `costOfGoodsSold.payments.selectedPaymentSource.rawPaymentSource` (object)
    Raw Details of the Payment Source

  - `costOfGoodsSold.payments.selectedPaymentSource.rawPaymentSource.type` (string, required)
    Payment source type. Should be set to DPAN for card details.
    Enum: "DPAN"

  - `costOfGoodsSold.payments.selectedPaymentSource.rawPaymentSource.cardDetails` (object, required)
    Card Details

  - `costOfGoodsSold.payments.selectedPaymentSource.rawPaymentSource.cardDetails.token` (string, required)
    Tokenized Card Number
    Example: 4111111111111111

  - `costOfGoodsSold.payments.selectedPaymentSource.rawPaymentSource.type` (string, required)
    Payment source type. Should be set to CREDIT for unused credit details.
    Enum: "CREDIT"

  - `costOfGoodsSold.payments.selectedPaymentSource.rawPaymentSource.pnrOwningPcc` (string, required)
    PCC the PNR was created on.

  - `costOfGoodsSold.payments.selectedPaymentSource.rawPaymentSource.unusedCreditPcc` (string, required)
    PCC the credit was issued on.

  - `costOfGoodsSold.payments.selectedPaymentSource.rawPaymentSource.departureCountry` (string)
    3 letter country code of the departure country associated with the original ticket.
    Example: USA

  - `costOfGoodsSold.payments.selectedPaymentSource.rawPaymentSource.arrivalCountry` (string)
    3 letter country code of the arrival country associated with the original ticket.
    Example: USA

  - `costOfGoodsSold.payments.selectedPaymentSource.rawPaymentSource.ticketType` (string, required)
    Type of credit.
    Enum: "TICKET_TYPE_UNKNOWN", "ETICKET", "MCO"

  - `costOfGoodsSold.payments.selectedPaymentSource.rawPaymentSource.segmentsAvailable` (string)
    Whether all segments are unused or some have already been used.
    Enum: "UNKNOWN", "ALL_OPEN", "PARTIAL", "OTHER"

  - `costOfGoodsSold.payments.selectedPaymentSource.rawPaymentSource.traveler` (object)
    The traveler identifiers. These can be either the Spotnana user IDs of the travelers or information regarding
the adhoc travelers.

  - `costOfGoodsSold.payments.selectedPaymentSource.rawPaymentSource.airlineInfo` (object, required)
    Detailed information about the airline.

  - `costOfGoodsSold.payments.selectedPaymentSource.rawPaymentSource.airlineInfo.airlineCode` (string, required)
    IATA code for airline.
    Example: AA

  - `costOfGoodsSold.payments.selectedPaymentSource.rawPaymentSource.airlineInfo.airlineName` (string)
    Airline name
    Example: American Airlines

  - `costOfGoodsSold.payments.selectedPaymentSource.rawPaymentSource.source` (string, required)
    Enum: "UNKNOWN_SOURCE", "SABRE", "TRAVEL_FUSION", "AVIA", "NDC", "TRAINLINE", "ATPCO_NDC", "FARELOGIX_NDC", "OFFLINE", "CONNEXUS", "ROUTEHAPPY", "AMADEUS", "GIATA", "QBR", "BCD", "QANTAS_HOTELS", "SOUTHWEST", "EXPEDIA", "HOTEL_HUB", "MARRIOTT", "CLEARTRIP", "KYTE", "GROUNDSPAN", "SABRE_NDC", "BOOKING_COM", "CARTRAWLER", "PREMIER_INN", "TRAVELODGE", "ENTERPRISE", "HYATT", "HILTON", "EUROSTAR", "NATIONAL", "ALAMO", "AVIS", "BUDGET", "HERTZ", "DOLLAR", "THRIFTY", "FIREFLY", "AMADEUS_NDC", "SIXT"

  - `costOfGoodsSold.payments.selectedPaymentSource.rawPaymentSource.sourcePnr` (string, required)
    PNR number corresponding to third party through which booking was made.
    Example: MC5ONS

  - `costOfGoodsSold.payments.selectedPaymentSource.rawPaymentSource.flightIds` (array)
    ID of the flights on which this credit applies.

  - `costOfGoodsSold.payments.selectedPaymentSource.rawPaymentSource.ticketNumber` (string, required)
    Ticket number for the ticket that was converted into an unused credit.
    Example: 5267779139217

  - `costOfGoodsSold.payments.selectedPaymentSource.rawPaymentSource.travelerIndex` (integer)
    credit associated to the traveler having this index in the air search request. If not passed, credit will be associated in order of the travelers
    Example: 2

  - `costOfGoodsSold.payments.selectedPaymentSource.postPaymentRedirectionUrl` (string)
    Url for post payment redirection if payment source navigates user to a third party url
    Example: https://mycompany.com/checkout?paymentSourceId=f49d00fe-1eda-4304-ba79-a980f565281d

  - `costOfGoodsSold.payments.selectedPaymentSource.cvv` (string)
    CVV associated with associated payment source, if any.

  - `costOfGoodsSold.payments.networkTransactionId` (string)
    Network transaction id provided by the card network. Applicable only for cards.
    Example: 721107212171711

  - `costOfGoodsSold.payments.tmcGatewayInfo` (object)
    Tmc Gateway related info.

  - `costOfGoodsSold.payments.tmcGatewayInfo.gatewayType` (string)
    Third party payment gateway used to process the payment
    Enum: "STRIPE", "BREX", "RAZORPAY"

  - `costOfGoodsSold.payments.tmcGatewayInfo.gatewayId` (string)
    GatewayId for related gatewayInfo.
    Example: demo-us:1

  - `costToCustomer` (object)
    Cost of services, charged to customer

  - `costToCustomer.payments` (array, required)
    Potentially multiple payments that spotnana will charge the clients

  - `transactions` (array)

  - `transactions.paymentReqId` (string)
    payment request id
    Example: 3077eeb8-b706-47e5-a762-8442638c07a4

  - `transactions.paymentReference` (string)
    Reference number for original payment made for this service
    Example: pi_3Rgx3qQXFM6BpXYh0kUcOFND

  - `transactions.ctc` (array)

  - `transactions.ctc.isRefunded` (boolean)
    If the relevant amount was refunded.
    Example: true

  - `transactions.ctc.isGuarantee` (boolean)
    If the booking can be reserved now and paid later on site.
    Example: true

  - `transactions.ctc.transactionStatus` (string)
    Transaction status for service fee transaction.
    Enum: "ISSUED", "DELAYED_INVOICE", "FAILED", "CHARGED", "REFUNDED", "FORFEITED", "BILLED_TO_COMPANY", "NO_CHARGE", "GUARANTEE", "TO_BE_CHARGED", "SUCCESS", "MANUAL", "WAIVED_OFF", "TO_BE_ISSUED", "APPLIED", "NOT_APPLICABLE", "DELAYED_PAYMENT"

  - `transactions.itemGroups` (array)

  - `transactions.itemGroups.transactionType` (string)
    type of the transaction
    Enum: "TRIP_SERVICE_FEE", "AIR_TICKET_ISSUED", "AIR_TICKET_VOIDED", "AIR_TICKET_REFUNDED", "AIR_TICKET_EXCHANGED", "AIR_TICKET_UNDETERMINED", "HOTEL_BOOKED", "HOTEL_MODIFIED", "HOTEL_CANCELLED", "CAR_BOOKED", "CAR_MODIFIED", "CAR_CANCELLED", "RAIL_BOOKED", "RAIL_REFUNDED", "RAIL_EXCHANGED", "RAIL_CANCELLED", "LIMO_BOOKED", "LIMO_CANCELLED", "MISC_BOOKED", "MISC_CANCELLED", "FLIGHT_CREDIT_ISSUED", "TMC_FEE", "CHANGE_FEE", "MCO_ISSUED", "EMD_TICKET", "HOTEL_ANCILLARY_BOOKED", "HOTEL_ANCILLARY_CANCELLED"

  - `transactions.itemGroups.confirmationNumber` (string)
    The supplier reference this item group was booked or ticketed under: the ticket number for air, the vendor confirmation number for hotel and car, the order reference id for rail. For air this differs from the PNR-level `vendorConfirmationNumber` because a ticket is issued per traveler.
    Example: 2797091789401

  - `transactions.itemGroups.incompleteTransactionReasons` (array)
    Reasons the underlying booking is incomplete (e.g. SYS_TICKET). Explains why paymentDetails / amounts on the transaction may be empty.

  - `transactions.itemGroups.originalTicketNumber` (string)
    Original ticket number if this is an exchanged ticket

  - `transactions.itemGroups.invoiceData` (object)
    Data related to invoice is kept in this object for an item group

  - `transactions.itemGroups.invoiceData.invoiceNumber` (string)
    The invoice number for an invoice
    Example: 2797091789401

  - `transactions.itemGroups.invoiceData.buyer` (object)
    Buyer of items mentioned in the invoice.

  - `transactions.itemGroups.invoiceData.buyer.name` (string, required)
    Name of buyer, usually a traveler.
    Example: John Doe

  - `transactions.itemGroups.invoiceData.buyer.address` (string, required)
    Address of buyer. Could be office, legal entity or org address.
    Example: 115 Broadway Suite 04-101,
New York, NY 10006

  - `transactions.itemGroups.invoiceData.buyer.taxId` (string)
    Tax number for the seller, for ex GSTN in India
    Example: TXG239023092

  - `transactions.itemGroups.invoiceData.buyer.idInfo` (array)
    The seller ID information.

  - `transactions.itemGroups.invoiceData.buyer.idInfo.idType` (string, required)
    The type of Id.
    Enum: "TAX_ID", "VAT_ID", "VAT_REG_NO", "GST_NO", "ABN", "GSTIN", "SIRET", "BUSINESS_REG_NO", "UID", "CVR_NO", "EIN"

  - `transactions.itemGroups.invoiceData.buyer.idInfo.value` (string, required)
    Value of the Id.
    Example: TXG239023092

  - `transactions.itemGroups.invoiceData.seller` (object)
    Entity that sold the items mentioned in the invoice.

  - `transactions.itemGroups.invoiceData.seller.name` (string, required)
    Name of seller, usually a TMC Legal Entity.
    Example: Spotnana India Pvt. Ltd.

  - `transactions.itemGroups.invoiceData.seller.address` (string, required)
    Address of seller.
    Example: 115 Broadway Suite 04-101,
New York, NY 10006

  - `transactions.itemGroups.invoiceData.seller.taxId` (string)
    Tax number for the seller, for ex GSTN in India
    Example: TXG239023092

  - `transactions.itemGroups.invoiceData.seller.idInfo` (array)
    The seller ID information.

  - `transactions.itemGroups.invoiceData.documentType` (string)
    Type of document generated for an invoice.
    Enum: "INVOICE", "RECEIPT"

  - `transactions.itemGroups.items` (array)

  - `transactions.itemGroups.items.itemType` (string, required)
    Type of the item.
    Enum: "AIR_ITEM", "RAIL_ITEM", "CAR_ITEM", "HOTEL_ITEM", "LIMO_ITEM", "TMC_FEE_ITEM", "MISC_ITEM"

  - `transactions.itemGroups.items.airItemType` (string)
    type of air item
    Enum: "FLIGHT", "ANCILLARY"

  - `transactions.itemGroups.items.flights` (array)

  - `transactions.itemGroups.items.flights.marketing` (object)
    Flight number and airline code.

  - `transactions.itemGroups.items.flights.marketing.num` (string, required)
    Flight number.
    Example: 321

  - `transactions.itemGroups.items.flights.marketing.airlineCode` (string, required)
    Two-letter IATA airline code.
    Example: AA

  - `transactions.itemGroups.items.flights.origin` (object)
    Airport Details

  - `transactions.itemGroups.items.flights.origin.airportCode` (string, required)
    Unique code for the Airport
    Example: LHR

  - `transactions.itemGroups.items.flights.origin.airportName` (string, required)
    Full Name of the Airport
    Example: Heathrow Airport

  - `transactions.itemGroups.items.flights.origin.cityCode` (string, required)
    City Code for the location
    Example: LON

  - `transactions.itemGroups.items.flights.origin.location` (object)
    Location details

  - `transactions.itemGroups.items.flights.origin.groupInfo` (object)
    Grouping criteria for the airports in same group

  - `transactions.itemGroups.items.flights.cabin` (string)
    Flight cabin
    Enum: "UNKNOWN_CABIN", "ECONOMY", "PREMIUM_ECONOMY", "BUSINESS", "FIRST"

  - `transactions.itemGroups.items.flights.marketingAirlineName` (string)
    Name of the marketing airline (enriched from PNR metadata).
    Example: American Airlines

  - `transactions.itemGroups.items.flights.operatingAirlineName` (string)
    Name of the operating airline (enriched from PNR metadata).
    Example: American Airlines

  - `transactions.itemGroups.items.ancillaryTypes` (array)

  - `transactions.itemGroups.items.oldFlights` (array)

  - `transactions.itemGroups.items.airlineConfirmationNumbers` (array)
    Airline confirmation numbers (record locators) for the flights in this item.

  - `transactions.itemGroups.items.legInfos` (array)

  - `transactions.itemGroups.items.legInfos.originInfo` (object)
    Details of the station.

  - `transactions.itemGroups.items.legInfos.originInfo.name` (string, required)
    Name of the station

  - `transactions.itemGroups.items.legInfos.originInfo.code` (string)
    Unique code of the station.

  - `transactions.itemGroups.items.legInfos.originInfo.cityCode` (string)
    City Code for the Railway Station
    Example: LON

  - `transactions.itemGroups.items.legInfos.originInfo.timeZone` (string)
    TimeZone of the Railway Station
    Example: Europe/London

  - `transactions.itemGroups.items.legInfos.originInfo.countryCode` (string)
    Unique Code of the Country of Railway Station
    Example: GB

  - `transactions.itemGroups.items.legInfos.originInfo.localCode` (string)
    Local code of the station.
    Example: EUS1444

  - `transactions.itemGroups.items.legInfos.originInfo.uicCodes` (array)
    List of UIC codes of the station.

  - `transactions.itemGroups.items.legInfos.originInfo.sourceRefInfos` (array)
    Source Reference Info

  - `transactions.itemGroups.items.legInfos.originInfo.stationType` (string)
    Status of the journey.
    Enum: "INDIVIDUAL", "STATION_GROUP", "METRO", "BUS_STOP", "FERRY_TERMINAL"

  - `transactions.itemGroups.items.legInfos.originInfo.cityName` (string)
    City Name of the Railway Station
    Example: LONDON

  - `transactions.itemGroups.items.legInfos.originInfo.stateCode` (string)
    State code for the Railway Station
    Example: MA

  - `transactions.itemGroups.items.legInfos.originInfo.continentCode` (string)
    Unique Code of the Railway Station's Continent
    Example: EU

  - `transactions.itemGroups.items.legInfos.originInfo.spotnanaRailStationId` (integer)
    Canonical Spotnana rail station id.

  - `transactions.itemGroups.items.legInfos.originInfo.thirdPartyInfos` (array)
    Per-supplier codes and inventories for this station.

  - `transactions.itemGroups.items.legInfos.vendorName` (string)
    Name of the rail vendor (enriched from PNR rail leg info).
    Example: Deutsche Bahn

  - `transactions.itemGroups.items.legInfos.carrierName` (string)
    Name of the rail carrier (enriched from PNR rail vehicle info).
    Example: ICE

  - `transactions.itemGroups.items.legInfos.transportName` (string)
    Name of the transport service (enriched from PNR rail vehicle info).
    Example: TGV

  - `transactions.itemGroups.items.legInfos.timetableId` (string)
    Timetable identifier for the rail service (enriched from PNR rail vehicle info).
    Example: ICE 373

  - `transactions.itemGroups.items.legInfos.carrierConfirmationNumber` (string)
    Carrier-specific confirmation number (enriched from PNR rail leg info).
    Example: ABC123

  - `transactions.itemGroups.items.ancillaries` (array)

  - `transactions.itemGroups.items.ancillaries.travelCard` (object)
    Travel card to select.

  - `transactions.itemGroups.items.ancillaries.travelCard.fareType` (object)
    Type of fare.

  - `transactions.itemGroups.items.ancillaries.travelCard.rateInfo` (object)
    Rate for the itinerary.

  - `transactions.itemGroups.items.ancillaries.travelCard.travelCardKey` (string, required)
    Base64 encoded string to uniquely identify the card.
    Example: CilvcH5VfmZmMjU0MjVhLTQ1ZGYtNDRlZi1iYjFmLWRhZTYxMDFkMDhiORIkYjJiMTdkZmYtNDgwNy00YzgyLWI2YWEtMWM5Yjc0ZTEzOWZi

  - `transactions.itemGroups.items.ancillaries.travelCard.validityPeriod` (object)
    Time validity for journey.

  - `transactions.itemGroups.items.ancillaries.travelCard.vendorName` (string, required)
    Vendor which provides the card.
    Example: ATOC

  - `transactions.itemGroups.items.ancillaries.travelCard.zoneValidity` (string)
    Zones in which travel card is valid.
    Example: London Travelcard Zones 1-4

  - `transactions.itemGroups.items.ancillaries.type` (string, required)
    Type of the ancillary
    Enum: "TRAVEL_CARD"

  - `transactions.itemGroups.items.pickUpLocation` (object)
    Pickup and drop-off location info.

  - `transactions.itemGroups.items.pickUpLocation.counterLocation` (string)
    Rental car counter location.
    Enum: "UNKNOWN_COUNTER", "NON_AIRPORT_LOCATION", "IN_TERMINAL", "OFF_AIRPORT_RENTAL_SHUTTLE", "IN_TERMINAL_RENTAL_SHUTTLE", "ON_AIRPORT_RENTAL_SHUTTLE", "ON_AIRPORT_AIRPORT_SHUTTLE", "CALL_FOR_SHUTTLE", "TWO_SHUTTLES_AIRPORT_AND_RENTAL"

  - `transactions.itemGroups.items.pickUpLocation.contactInfo` (object)
    Contact info of the location

  - `transactions.itemGroups.items.pickUpLocation.contactInfo.phone` (array)

  - `transactions.itemGroups.items.pickUpLocation.contactInfo.fax` (array)

  - `transactions.itemGroups.items.pickUpLocation.contactInfo.email` (array)

  - `transactions.itemGroups.items.pickUpLocation.operatingSchedule` (object)
    Operating schedule of vendor

  - `transactions.itemGroups.items.pickUpLocation.operatingSchedule.interval` (array, required)
    Operating schedule interval

  - `transactions.itemGroups.items.pickUpLocation.weeklyOperatingSchedule` (array)
    Weekly operating schedule of vendor

  - `transactions.itemGroups.items.pickUpLocation.weeklyOperatingSchedule.interval` (array, required)
    Operating schedule intervals

  - `transactions.itemGroups.items.pickUpLocation.weeklyOperatingSchedule.dayOfWeek` (string)
    Day of the week for which operating schedule is valid
    Example: SUN

  - `transactions.itemGroups.items.carSpec` (object)
    Car spec.

  - `transactions.itemGroups.items.carSpec.airConditioning` (string)
    Whether air conditioning is available.
    Enum: "UNKNOWN_AC", "AC_AVAILABLE", "AC_NOT_AVAILABLE"

  - `transactions.itemGroups.items.carSpec.amenities` (object)
    Car amenities.

  - `transactions.itemGroups.items.carSpec.amenities.numDoors` (integer)
    Number of doors.
    Example: 4

  - `transactions.itemGroups.items.carSpec.amenities.numLargeBags` (integer)
    Number of large bags.
    Example: 2

  - `transactions.itemGroups.items.carSpec.amenities.numSeatBelts` (integer)
    Number of seats belts.
    Example: 5

  - `transactions.itemGroups.items.carSpec.amenities.numSeats` (integer)
    Number of seats.
    Example: 5

  - `transactions.itemGroups.items.carSpec.amenities.numSmallBags` (integer)
    Number of small bags.
    Example: 5

  - `transactions.itemGroups.items.carSpec.displayName` (string)
    Car display name.
    Example: Economy

  - `transactions.itemGroups.items.carSpec.modelName` (string)
    Car make and model.
    Example: Kia Picanto

  - `transactions.itemGroups.items.carSpec.imageGroups` (array)
    Collection of car images.

  - `transactions.itemGroups.items.carSpec.imageGroups.caption` (string)
    Caption for the image.
    Example: Exterior

  - `transactions.itemGroups.items.carSpec.imageGroups.images` (array, required)
    List of images.

  - `transactions.itemGroups.items.carSpec.transmission` (string)
    Transmission types.
    Enum: "UNKNOWN_TRANSMISSION", "MANUAL_UNSPECIFIED_DRIVE", "MANUAL_4WD", "MANUAL_AWD", "AUTO_UNSPECIFIED_DRIVE", "AUTO_4WD", "AUTO_AWD"

  - `transactions.itemGroups.items.carDailyAverageRate` (object)
    Contains daily rate for the relevant car.

  - `transactions.itemGroups.items.dailyRates` (array)
    Daily rates for rental car in the date range.

  - `transactions.itemGroups.items.vendorCode` (string)
    Car rental vendor code (enriched from PNR car vendor info).
    Example: ZE

  - `transactions.itemGroups.items.vendorName` (string)
    Name of the car rental vendor (enriched from PNR car vendor info).
    Example: Hertz

  - `transactions.itemGroups.items.isPrepaid` (boolean)
    If the booking is prepaid
    Example: false

  - `transactions.itemGroups.items.averageNightlyRate` (object)
    Contains nightly rate for the relevant hotel.

  - `transactions.itemGroups.items.nightlyRates` (array)
    Rates for all nights in stay date range.

  - `transactions.itemGroups.items.hotelData` (object)
    Hotel specific details.

  - `transactions.itemGroups.items.hotelData.hotelName` (string)
    Name of the hotel.
    Example: Marriott Bellandur

  - `transactions.itemGroups.items.rateType` (string)
    Enum: "PUBLISHED", "CORPORATE", "SPOTNANA", "REGULAR", "AAA", "AARP", "SENIOR_CITIZEN", "GOVERNMENT", "MILITARY", "MEMBERSHIP", "BEST_AVAILABLE_RATE", "TMC"

  - `transactions.itemGroups.items.ancillaryCategory` (string)
    Category of the hotel ancillary (only set for ancillary transactions).
    Enum: "ANCILLARY_UNKNOWN", "EARLY_CHECKIN", "LATE_CHECKOUT", "WIFI", "BREAKFAST", "PARKING", "PETS", "MEAL_PLAN", "OTHER"

  - `transactions.itemGroups.items.ancillaryDisplayName` (string)
    Display name of the ancillary (only set for ancillary transactions).

  - `transactions.itemGroups.items.roomName` (string)
    Name of the booked room type (enriched from PNR hotel room spec).
    Example: Standard King Room

  - `transactions.itemGroups.items.limoType` (string)
    Limo type.
    Enum: "STANDARD_CAR", "EXECUTIVE_CAR", "BUSINESS_VAN", "FIRST_CLASS", "SUV", "SEDAN", "EXECUTIVE_SEDAN", "LUXURY_SEDAN", "EXECUTIVE_VAN", "BUSINESS_SEDAN"

  - `transactions.itemGroups.items.vendorName` (string)
    Name of the limo vendor (enriched from PNR limo vendor info).
    Example: Blacklane

  - `transactions.itemGroups.items.feeInfo` (object)
    Details of the fee charged, discriminated by `feeType`.

  - `transactions.itemGroups.items.feeInfo.feeType` (string, required)
    Type of the fee
    Example: BOOKING_FEE

  - `transactions.itemGroups.items.feeInfo.bookingFeeType` (string, required)
    Enum: "TRIP_FEE", "TRANSACTION_FEE"

  - `transactions.itemGroups.items.feeInfo.chargeProcessorInfo` (object)
    Information about the processor that calculated the charge

  - `transactions.itemGroups.items.feeInfo.transactionFeeType` (string)
    Transaction type for service fee
    Enum: "TRANSACTION_TYPE_BOOKING", "TRANSACTION_TYPE_MODIFICATION", "TRANSACTION_TYPE_CANCELLATION", "TRANSACTION_TYPE_AGENT_CONTACT"

  - `transactions.itemGroups.items.feeInfo.bookingFeeType` (string, required)
    Type of the booking fee
    Enum: "VALUE_ADDED_SERVICE_FEE", "OTHER_FEE"

  - `transactions.itemGroups.items.feeInfo.valueAddedServiceFeeType` (string)
    Value added service fee type
    Enum: "VIRTUAL_CARD_PAYMENT", "PRICE_OPTIMIZATION", "UNUSED_CREDIT_APPLICATION", "MERCHANT_FEE"

  - `transactions.itemGroups.items.feeInfo.feeName` (string)
    Name of the fee to be charged.
    Example: Payment Admin Fee

  - `transactions.itemGroups.items.feeInfo.otherFeeType` (string, required)
    Other fee type
    Enum: "MERCHANT_FEE"

  - `transactions.itemGroups.items.feeInfo.agentFeeType` (string, required)
    Enum: "AGENT_ASSISTED_TRIP_FEE", "AGENT_ASSISTED_TRANSACTION_FEE"

  - `transactions.itemGroups.items.visibleToTraveler` (boolean)
    If the tmc fee is visible to traveler
    Example: true

  - `transactions.itemGroups.items.description` (string)
    Free-text description of the miscellaneous segment this item covers, as entered by the agent or carried over from the source booking.
    Example: Visa processing fee

  - `transactions.itemGroups.transactionFares` (array)
    Deprecated: will be removed in transactions v3. Use transactionFareDetails instead.

  - `transactions.itemGroups.transactionFares.transactionFareType` (string)
    type of the fare in this transaction.
    Enum: "BASE_AMOUNT", "OTHER_FEE_AND_TAXES", "PENALTY", "OB_FEES", "DESTINATION_FEES", "TOTAL", "VAT", "DROP_OFF_CHARGE", "HST", "QST", "GST", "CHARGE_BASE", "CHARGE_TOTAL", "SUB_TOTAL", "OB_FEES_GST", "FORFEITED_AMOUNT", "PENALTY_GST", "PENALTY_QST", "PENALTY_HST"

  - `transactions.itemGroups.transactionFares.amountList` (array)

  - `transactions.itemGroups.previousTransactionFares` (array)
    Deprecated: will be removed in transactions v3. Use previousTransactionFareDetails instead.

  - `transactions.itemGroups.transactionFareDetails` (array)
    Detailed fare information for email display.

  - `transactions.itemGroups.transactionFareDetails.chargeCode` (string)
    Charge code for transaction fare detail, used for email display ordering.
    Enum: "BASE", "SUBTOTAL", "CHANGE_FEE_CHARGE", "AIRLINE_FEES_CHARGE", "DESTINATION_FEES_CHARGE", "TOTAL_DELTA", "TOTAL_CHARGE", "CANCEL_FEE_CHARGE", "PREVIOUS_TOTAL_CHARGE", "MISCELLANEOUS_CHARGE", "PREPAID_FEE", "POSTPAID_FEE"

  - `transactions.itemGroups.transactionFareDetails.chargeName` (string)
    Display name for the charge.
    Example: Base

  - `transactions.itemGroups.transactionFareDetails.isInformational` (boolean)
    Whether this is informational only (e.g., subtotal - derived value with no standalone identity).
    Example: false

  - `transactions.itemGroups.transactionFareDetails.taxDefinitions` (array)
    Tax definitions associated with this fare.

  - `transactions.itemGroups.transactionFareDetails.taxDefinitions.taxShortName` (string)
    Short name of the tax (e.g., "Other fees").
    Example: Other fees

  - `transactions.itemGroups.transactionFareDetails.taxDefinitions.taxCode` (string)
    Tax code identifier.
    Example: XF

  - `transactions.itemGroups.transactionFareDetails.taxDefinitions.sortPriority` (integer)
    Sort priority for display ordering within taxes.
    Example: 1

  - `transactions.itemGroups.transactionFareDetails.additionalAmounts` (array)
    Additional amounts for multi-currency scenarios (e.g., USD + Flight Pass).

  - `transactions.itemGroups.transactionFareDetails.sortPriority` (integer)
    Sort priority for display ordering (determines which charge codes appear first).
    Example: 1

  - `transactions.itemGroups.transactionFareDetails.total` (object)
    Computed total for a transaction fare detail with coinage relation.

  - `transactions.itemGroups.transactionFareDetails.total.coinageRelation` (string)
    Relationship between the primary currency amount and other coinage in a fare total.
    Enum: "OR", "AND"

  - `transactions.itemGroups.previousTransactionFareDetails` (array)
    Previous detailed fare information for email display.

  - `transactions.itemGroups.associatedTicketNumber` (string)
    Associated ticket number in case of penalty and taxes in separate ticket

  - `transactions.itemGroups.productName` (string)
    Product name for this item group when the ticket type is EMD.
    Example: REFUNDABLE_BALANCE

  - `transactions.pnrVersion` (integer)
    Version number associated with the Pnr

  - `transactions.splitPayment` (object)
    Split payment details for claiming reimbursements.

  - `transactions.splitPayment.isAmountReimbursable` (boolean)
    If the in policy amount is reimbursable or not.

  - `transactions.bookerInfo` (object)
    Details of User associated with a Transaction

  - `transactions.bookerInfo.bookerName` (string)
    Name of the Booker
    Example: Harry Potter

  - `transactions.bookerInfo.bookerRole` (string)
    User facing role of the Booker
    Enum: "AGENT", "TRAVEL_MANAGER", "TRAVELER", "REGISTRAR", "ADMIN"

  - `isFinalized` (boolean)
    Indicates if finalize action has been performed on the pnr.
    Example: false

  - `policyInfo` (object)
    Policy related info for this booking

  - `policyInfo.outOfPolicy` (boolean, required)
    True if the booking is out of policy, else false
    Example: false

  - `policyInfo.reasonCode` (string)
    Predefined answers to pre search/pre checkout questions
    Enum: "UNKNOWN_CHECKOUT_ANSWER_TYPE", "OTHER", "TIMING_OR_SCHEDULING", "AIRLINE_PREFERENCE", "AIRPORT_PREFERENCE", "MILEAGE_OR_PROGRAM_UPGRADE", "NO_OTHER_OPTION_AVAILABLE", "FASTER_OPTION", "NO_ANSWER", "NOT_AVAILABLE"

  - `policyInfo.reason` (string)
    Free form text if selected reason code is OTHER
    Example: Business class cheaper than economy

  - `policyInfo.appliedPolicyInfo` (object)
    Policy Info applicable for the associated itinerary

  - `policyInfo.appliedPolicyInfo.policies` (array)
    List of policies applied to the itinerary.

  - `policyInfo.appliedPolicyInfo.policies.id` (string, required)
    Policy id

  - `policyInfo.appliedPolicyInfo.policies.version` (string, required)
    version of the policy

  - `policyInfo.appliedPolicyInfo.policies.policyName` (string)
    Name of the policy applied.

  - `policyInfo.appliedPolicyInfo.policies.approvalType` (string)
    Enum: "HARD_APPROVAL", "SOFT_APPROVAL", "PASSIVE_APPROVAL"

  - `policyInfo.appliedPolicyInfo.policies.policyType` (string)
    Enum: "GLOBAL", "DEFAULT", "GROUP"

  - `policyInfo.appliedPolicyInfo.ruleResultInfos` (array)

  - `policyInfo.appliedPolicyInfo.ruleResultInfos.violationInfos` (array)

  - `policyInfo.appliedPolicyInfo.ruleResultInfos.violationInfos.predicateString` (string)

  - `policyInfo.appliedPolicyInfo.ruleResultInfos.violationInfos.predicate` (string)
    This contains the enum mentioning the policy rule which was violated.
    Enum: "UNKNOWN_PREDICATE_STRING", "MAX_FARE_PER_TRAVELLER_VIOLATION", "FARE_MORE_THAN_MINIMUM", "FARE_MORE_THAN_MEDIAN", "FARE_LESS_THAN_MEDIAN", "FARE_MORE_THAN_LLF", "MAX_FARE_PER_TRAVELLER_VIOLATION_INCLUDING_TAX", "MAX_FARE_PER_TRAVELLER_VIOLATION_EXCLUDING_TAX", "HOTEL_PAYMENT_OPTIONS_VIOLATION", "RAIL_BOOKING_WINDOW_GAP_VIOLATION", "RAIL_TRAVEL_CLASS_VIOLATION", "RAIL_TICKET_REFUNDABLE_VIOLATION", "RAIL_MAX_BOOKING_PRICE_VIOLATION_INCLUDING_TAX", "RAIL_MAX_BOOKING_PRICE_VIOLATION_EXCLUDING_TAX", "AIR_MAX_PRICE_MORE_THAN_LLF_VIOLATION_INCLUDING_TAX", "AIR_MAX_PRICE_MORE_THAN_LLF_VIOLATION_EXCLUDING_TAX", "HOTEL_RESTRICTED_KEYWORDS_VIOLATION", "RESTRICTED_LOCATION_VIOLATION", "FLIGHT_ADVANCE_BOOKING_WINDOW_DOMESTIC_VIOLATION", "FLIGHT_ADVANCE_BOOKING_WINDOW_INTERNATIONAL_VIOLATION", "FLIGHT_ADVANCE_BOOKING_WINDOW_VIOLATION", "ITINERARY_WITHIN_EVENT_TRAVEL_WINDOW", "HOTEL_IN_ALLOWED_HOTEL_LIST", "PAYMENT_ACCESS_VIOLATION", "AIRPORT_IN_ALLOWED_AIRPORT_LIST", "ITINERARY_TYPE_IS_NOT_IN_ALLOWED_BOOKING_TYPES", "PAYMENT_AIR_ADDON_VIOLATION", "MAX_HOTEL_BOOKING_PRICE_INCLUDING_TAX", "MAX_HOTEL_BOOKING_PRICE_EXCLUDING_TAX", "AIR_NUM_TRAVELERS_ALLOWED", "PREFERRED_VENDOR_VIOLATION", "SEAT_ADDON_VIOLATION", "BAGGAGE_ADDON_VIOLATION", "EARLY_BIRD_ADDON_VIOLATION", "WIFI_ADDON_VIOLATION", "RESTRICTED_BOOKING_VIOLATION", "HIGHEST_ALLOWED_CABIN_VIOLATION", "LOWEST_FARE_PER_HOTEL_PROPERTY_VIOLATION", "AIR_RESTRICTED_FARES_VIOLATION", "AIR_ANCILLARY_VIOLATION"

  - `policyInfo.appliedPolicyInfo.ruleResultInfos.violationInfos.expectedValue` (object)

  - `policyInfo.appliedPolicyInfo.ruleResultInfos.violationInfos.expectedValue.displaySuffix` (string)
    Optional display suffix for the policy const value

  - `policyInfo.appliedPolicyInfo.ruleResultInfos.violationInfos.expectedValue.i` (integer)

  - `policyInfo.appliedPolicyInfo.ruleResultInfos.violationInfos.expectedValue.l` (integer)

  - `policyInfo.appliedPolicyInfo.ruleResultInfos.violationInfos.expectedValue.s` (string)

  - `policyInfo.appliedPolicyInfo.ruleResultInfos.violationInfos.expectedValue.d` (number)

  - `policyInfo.appliedPolicyInfo.ruleResultInfos.violationInfos.expectedValue.b` (boolean)

  - `policyInfo.appliedPolicyInfo.ruleResultInfos.violationInfos.expectedValue.iList` (array)

  - `policyInfo.appliedPolicyInfo.ruleResultInfos.violationInfos.expectedValue.dList` (array)

  - `policyInfo.appliedPolicyInfo.ruleResultInfos.violationInfos.expectedValue.sList` (array)

  - `policyInfo.appliedPolicyInfo.ruleResultInfos.violationInfos.expectedValue.length` (object)
    Specifies the length or a distance.

  - `policyInfo.appliedPolicyInfo.ruleResultInfos.violationInfos.expectedValue.length.length` (number, required)
    Distance from search point.
    Example: 150

  - `policyInfo.appliedPolicyInfo.ruleResultInfos.violationInfos.expectedValue.length.unit` (string, required)
    Unit of measure being applied.
    Enum: "UNKNOWN_UNIT", "KM", "MILE", "CENTIMETER", "METER"

  - `policyInfo.appliedPolicyInfo.ruleResultInfos.violationInfos.expectedValue.userOrgIdList` (array)

  - `policyInfo.appliedPolicyInfo.ruleResultInfos.violationInfos.expectedValue.legalEntityIdList` (array)

  - `policyInfo.appliedPolicyInfo.ruleResultInfos.violationInfos.expectedValue.officeIdList` (array)
    A list of office IDs.

  - `policyInfo.appliedPolicyInfo.ruleResultInfos.violationInfos.expectedValue.rating` (number)

  - `policyInfo.appliedPolicyInfo.ruleResultInfos.violationInfos.expectedValue.percentage` (number)

  - `policyInfo.appliedPolicyInfo.ruleResultInfos.violationInfos.expectedValue.iRange` (object)

  - `policyInfo.appliedPolicyInfo.ruleResultInfos.violationInfos.expectedValue.iRange.min` (integer)
    Minimum value - inclusive.

  - `policyInfo.appliedPolicyInfo.ruleResultInfos.violationInfos.expectedValue.iRange.max` (integer)
    Maximum value - inclusive.

  - `policyInfo.appliedPolicyInfo.ruleResultInfos.violationInfos.expectedValue.dRange` (object)

  - `policyInfo.appliedPolicyInfo.ruleResultInfos.violationInfos.expectedValue.dRange.min` (number)
    Minimum value - inclusive.

  - `policyInfo.appliedPolicyInfo.ruleResultInfos.violationInfos.expectedValue.dRange.max` (number)
    Maximum value - inclusive.

  - `policyInfo.appliedPolicyInfo.ruleResultInfos.violationInfos.expectedValue.personaList` (array)

  - `policyInfo.appliedPolicyInfo.ruleResultInfos.violationInfos.expectedValue.railTravelClass` (string)
    Rail Travel classes in hierarchy numbering higher to keep scope for future additions in 
between.
    Enum: "UNKNOWN", "STANDARD", "COACH", "STANDARD_PREMIUM", "BUSINESS", "BUSINESS_PREMIUM", "FIRST", "SLEEPER"

  - `policyInfo.appliedPolicyInfo.ruleResultInfos.violationInfos.expectedValue.keywordWithReasonList` (object)

  - `policyInfo.appliedPolicyInfo.ruleResultInfos.violationInfos.expectedValue.keywordWithReasonList.keywords` (array)

  - `policyInfo.appliedPolicyInfo.ruleResultInfos.violationInfos.expectedValue.workerTypeList` (array)

  - `policyInfo.appliedPolicyInfo.ruleResultInfos.violationInfos.expectedValue.airRestrictedFaresParams` (object)

  - `policyInfo.appliedPolicyInfo.ruleResultInfos.violationInfos.expectedValue.airRestrictedFaresParams.airRestrictedKeywords` (array)
    List of keywords grouped by airline

  - `policyInfo.appliedPolicyInfo.ruleResultInfos.subViolationInfos` (array)
    In case of complex rules this will contain extra information as to how the rule was 
calculated.

  - `policyInfo.appliedPolicyInfo.ruleResultInfos.actions` (array)
    Followed actions if rule was satisfied else violated actions.

  - `policyInfo.appliedPolicyInfo.ruleResultInfos.actions.flag` (object)

  - `policyInfo.appliedPolicyInfo.ruleResultInfos.actions.flag.message` (string)

  - `policyInfo.appliedPolicyInfo.ruleResultInfos.actions.hide` (boolean)

  - `policyInfo.appliedPolicyInfo.ruleResultInfos.actions.alertOnSelection` (object)

  - `policyInfo.appliedPolicyInfo.ruleResultInfos.actions.alertOnSelection.message` (string)

  - `policyInfo.appliedPolicyInfo.ruleResultInfos.actions.takeApproval` (object)

  - `policyInfo.appliedPolicyInfo.ruleResultInfos.actions.takeApproval.numHierarchyLevels` (integer)
    How many levels of hierarchy should approval be taken? If it's just immediate manager, 
this value would be 1. If it's manager and their manager, this would ge 2 and so on.

  - `policyInfo.appliedPolicyInfo.ruleResultInfos.actions.takeApproval.positionTitles` (array)
    What position in the cost center or department. For eg, any business class upgrade 
might require VP approval.

  - `policyInfo.appliedPolicyInfo.ruleResultInfos.actions.takeApproval.userOrgIds` (array)
    The specific users from whom to take approval. For eg, say for a company, all approvals
go through Adam.

  - `policyInfo.appliedPolicyInfo.ruleResultInfos.actions.takeApproval.allRequired` (boolean)
    This tells whether all the people above needs to approve or if any of these approve, 
it is sufficient.

  - `policyInfo.appliedPolicyInfo.ruleResultInfos.actions.takeApproval.hardApprovalRequired` (boolean)
    Whether to take soft approval (false) or hard approval (true).

  - `policyInfo.appliedPolicyInfo.ruleResultInfos.actions.takeApproval.approvalType` (string)
    Type of APPROVAL
    Enum: "HARD_APPROVAL", "SOFT_APPROVAL", "PASSIVE_APPROVAL", "PRE_APPROVAL"

  - `policyInfo.appliedPolicyInfo.ruleResultInfos.actions.preventBooking` (object)
    Whether to allow booking if a rule is violated.

  - `policyInfo.appliedPolicyInfo.ruleResultInfos.actions.preventBooking.prevent` (boolean)
    True if booking is to be blocked if rule is violated, else false

  - `policyInfo.appliedPolicyInfo.ruleResultInfos.actions.preventBooking.reason` (string)
    Reason describing why was that specific itinerary not allowed to book.

  - `policyInfo.isPersonalUpgrade` (boolean)
    Indicates that this booking exceeded the allowed policy budget with the extra amount being charged on the traveler.
    Example: false

  - `airPnr` (object)
    Air PNR information

  - `airPnr.legs` (array, required)
    List of legs that are part of this bookings

  - `airPnr.legs.flights` (array, required)
    List of flights in this leg

  - `airPnr.legs.flights.flightId` (string)
    Unique identifier for a flight.
    Example: CjoKOGNsYXNzIERhdGVUaW1lTG9jYWwgewogICAgaXNvO

  - `airPnr.legs.flights.origin` (string, required)
    3 letter IATA airport code for origin
    Example: SFO

  - `airPnr.legs.flights.destination` (string, required)
    3 letter IATA airport code for destination
    Example: LHR

  - `airPnr.legs.flights.departureGate` (object)
    Flight boarding / arrival gate

  - `airPnr.legs.flights.departureGate.gate` (string)
    Gate number
    Example: 1A

  - `airPnr.legs.flights.departureGate.terminal` (string)
    Airport terminal
    Example: 1

  - `airPnr.legs.flights.operatingAirlineName` (string)
    Free text operating airline name that has to be displayed to the user if present
    Example: SKYWEST DBA UNITED EXPRESS

  - `airPnr.legs.flights.hiddenStops` (array)
    Stops for refueling or getting more passengers

  - `airPnr.legs.flights.hiddenStops.airport` (string, required)
    3 letter IATA airport code
    Example: LHR

  - `airPnr.legs.flights.vendorConfirmationNumber` (string)
    Flight confirmation number
    Example: ABQTEJ

  - `airPnr.legs.flights.bookingCode` (string)
    Flight Booking Code
    Example: A

  - `airPnr.legs.flights.flightStatus` (string)
    Status of PNR
    Enum: "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"

  - `airPnr.legs.flights.otherStatuses` (array)
    Details about any duplicate flight segment. Cabin code and status of other duplicate 
segments.

  - `airPnr.legs.flights.co2EmissionDetail` (object)
    CO2 emission details for the flight.

  - `airPnr.legs.flights.co2EmissionDetail.emissionValue` (number, required)
    Estimated C02 emissions value for selected flight and seating class, per passenger (in tons)
    Example: 10

  - `airPnr.legs.flights.co2EmissionDetail.averageEmissionValue` (number)
    Average estimated C02 emissions per passenger for same route (in tons)
    Example: 10

  - `airPnr.legs.flights.co2EmissionDetail.flightDistanceKm` (number)
    Total distance flown by the flight in kilometres.
    Example: 10

  - `airPnr.legs.flights.co2EmissionDetail.isApproximate` (boolean)
    Indicates whether the emissions value is approximate or not.
    Example: true

  - `airPnr.legs.flights.restrictions` (array)
    Restrictions such as seat booking, loyalty etc

  - `airPnr.legs.flights.flightUpdates` (object)
    Flight alerts like departure datetime change, gate change, etc.

  - `airPnr.legs.flights.flightUpdates.baggageBelt` (string)
    Baggage belt / claim carousel number for arrival (from FlightStats)
    Example: 7

  - `airPnr.legs.flights.sourceStatus` (string)
    Flight status code from supplier

  - `airPnr.legs.flights.equipment` (object)
    The type of the aircraft equipment

  - `airPnr.legs.flights.equipment.code` (string)
    Aircraft equipment code
    Example: 777

  - `airPnr.legs.flights.equipment.type` (string)
    Code representing the type of the equipment
    Example: N

  - `airPnr.legs.flights.equipment.name` (string)
    The name of the flight aircraft type
    Example: Boeing 737-800

  - `airPnr.legs.flights.flightWaiverCodes` (array)
    List of waiver codes for flight

  - `airPnr.legs.flights.flightWaiverCodes.waiverCode` (string)
    Flight waiver code

  - `airPnr.legs.flights.flightWaiverCodes.policyLinks` (array)
    List of waiver codes policy link

  - `airPnr.legs.flights.flightWaiverCodes.policyLinks.name` (string)
    Name of the link

  - `airPnr.legs.flights.flightWaiverCodes.policyLinks.url` (string)
    Url of the link

  - `airPnr.legs.flights.flightWaiverCodes.additionalInfo` (string)
    Textual information about waiver policies

  - `airPnr.legs.flights.amenities` (array)
    The amenities associated with the flight.

  - `airPnr.legs.flights.amenities.seatAmenity` (object)
    Seat Amenity properties

  - `airPnr.legs.flights.amenities.seatAmenity.displayText` (string)
    Example: Full flat all aisle access

  - `airPnr.legs.flights.amenities.seatAmenity.seatType` (string)
    Example: full flat pod

  - `airPnr.legs.flights.amenities.seatAmenity.width` (string)

  - `airPnr.legs.flights.amenities.seatAmenity.legroom` (string)

  - `airPnr.legs.flights.amenities.seatAmenity.pitch` (number)
    Example: 78

  - `airPnr.legs.flights.amenities.wifiAmenity` (object)
    Wifi Amenity properties

  - `airPnr.legs.flights.amenities.wifiAmenity.displayText` (string)
    Example: Basic web browsing (fee)

  - `airPnr.legs.flights.amenities.wifiAmenity.cost` (string)
    Example: paid

  - `airPnr.legs.flights.amenities.powerAmenity` (object)
    Power Amenity properties

  - `airPnr.legs.flights.amenities.powerAmenity.displayText` (string)
    Example: Power USB outlets

  - `airPnr.legs.flights.amenities.powerAmenity.powerType` (string)
    Example: power/usb

  - `airPnr.legs.flights.amenities.powerAmenity.cost` (string)
    Example: free

  - `airPnr.legs.flights.amenities.powerAmenity.usbPort` (string)
    Example: yes

  - `airPnr.legs.flights.amenities.powerAmenity.powerOutlet` (string)
    Example: yes

  - `airPnr.legs.flights.amenities.entertainmentAmenity` (object)
    The properties of an entertainment amenity.

  - `airPnr.legs.flights.amenities.entertainmentAmenity.displayText` (string)
    Example: Seatback on-demand video

  - `airPnr.legs.flights.amenities.entertainmentAmenity.entertainmentType` (string)
    Example: on-demand

  - `airPnr.legs.flights.amenities.entertainmentAmenity.cost` (string)
    Example: free

  - `airPnr.legs.flights.amenities.beverageAmenity` (object)
    Beverage amenity option properties.

  - `airPnr.legs.flights.amenities.beverageAmenity.displayText` (string)
    Example: Premium alcohol beverages provided

  - `airPnr.legs.flights.amenities.beverageAmenity.beverageType` (string)
    Example: premium alcoholic

  - `airPnr.legs.flights.amenities.beverageAmenity.alcoholCost` (string)
    Example: free

  - `airPnr.legs.flights.amenities.aircraftAmenity` (object)
    Aircraft Amenity properties

  - `airPnr.legs.flights.amenities.aircraftAmenity.displayText` (string)
    Example: 789 (widebody)

  - `airPnr.legs.flights.amenities.aircraftAmenity.aircraftType` (string)
    Example: widebody

  - `airPnr.legs.flights.amenities.aircraftAmenity.aircraftModel` (string)
    Example: 787

  - `airPnr.legs.flights.amenities.layoutAmenity` (object)
    Layout Amenity properties

  - `airPnr.legs.flights.amenities.layoutAmenity.displayText` (string)
    Example: 1-2-1 seat layout

  - `airPnr.legs.flights.amenities.layoutAmenity.directAisleAccess` (string)
    Example: yes

  - `airPnr.legs.flights.amenities.freshFoodAmenity` (object)
    Properties associated with the fresh food amenity.

  - `airPnr.legs.flights.amenities.freshFoodAmenity.displayText` (string)

  - `airPnr.legs.flights.amenities.freshFoodAmenity.freshFoodType` (string)

  - `airPnr.legs.flights.amenities.freshFoodAmenity.cost` (string)

  - `airPnr.legs.flights.amenities.cleaningAmenity` (object)
    Cleaning amenity properties.

  - `airPnr.legs.flights.amenities.cleaningAmenity.displayText` (string)
    Example: Enhanced aircraft cleaning every flight

  - `airPnr.legs.flights.amenities.cleaningAmenity.cleaningDescription` (string)
    Example: This flight features an aircraft that will be thoroughly cleaned using disinfectants for every flight

  - `airPnr.legs.flights.amenities.cleaningAmenity.cleaningAttrDescription` (string)
    Example: enhanced every flight

  - `airPnr.legs.flights.amenities.maskAmenity` (object)
    Properties associated with the mask amenity.

  - `airPnr.legs.flights.amenities.maskAmenity.displayText` (string)
    The basic text displayed for mask amenity.
    Example: Face covering required

  - `airPnr.legs.flights.amenities.maskAmenity.maskDescription` (string)
    A full description of the mask amenity.
    Example: All passengers are required to wear a face covering throughout their journey

  - `airPnr.legs.flights.amenities.maskAmenity.maskAttrDescription` (string)
    Example: yes

  - `airPnr.legs.flights.amenities.temperatureAmenity` (object)
    Temperature Amenity properties

  - `airPnr.legs.flights.amenities.temperatureAmenity.displayText` (string)
    Example: No pre-flight temperature check

  - `airPnr.legs.flights.amenities.temperatureAmenity.temperatureDescription` (string)
    Example: A temperature check is not required before boarding

  - `airPnr.legs.flights.amenities.temperatureAmenity.temperatureAttrDescription` (string)
    Example: no

  - `airPnr.legs.flights.amenities.passengerCapacityAmenity` (object)
    Passenger capacity amenity properties.

  - `airPnr.legs.flights.amenities.passengerCapacityAmenity.displayText` (string)
    Example: Standard passenger capacity

  - `airPnr.legs.flights.amenities.passengerCapacityAmenity.passengerCapacityDescription` (string)
    Example: Ticket sales are not limited for this flight

  - `airPnr.legs.flights.amenities.passengerCapacityAmenity.passengerCapacityAttrDescription` (string)
    Example: no

  - `airPnr.legs.flights.amenities.blockedAdjacentSeatsAmenity` (object)
    Passenger Capacity Amenity properties

  - `airPnr.legs.flights.amenities.blockedAdjacentSeatsAmenity.displayText` (string)
    Example: No blocked adjacent seats

  - `airPnr.legs.flights.amenities.blockedAdjacentSeatsAmenity.blockedAdjacentSeatsDescription` (string)
    Example: Adjacent seats are not blocked on this flight

  - `airPnr.legs.flights.amenities.blockedAdjacentSeatsAmenity.blockedAdjacentSeatsAttrDescription` (string)
    Example: no

  - `airPnr.legs.flights.amenities.covidTestingAmenity` (object)
    Covid testing amenity properties.

  - `airPnr.legs.flights.amenities.covidTestingAmenity.displayText` (string)
    Example: No COVID-19 test required

  - `airPnr.legs.flights.amenities.covidTestingAmenity.covidTestingDescription` (string)
    Example: A negative COVID-19 test is not required for this flight; check with the airline for possible destination requirements or other restrictions.

  - `airPnr.legs.flights.amenities.covidTestingAmenity.covidTestingAttrDescription` (string)

  - `airPnr.legs.flights.amenities.vaccineAmenity` (object)
    Vaccine Amenity properties

  - `airPnr.legs.flights.amenities.vaccineAmenity.displayText` (string)
    Example: Vaccination facility available

  - `airPnr.legs.flights.amenities.vaccineAmenity.vaccineDescription` (string)
    chek

  - `airPnr.legs.flights.amenities.vaccineAmenity.vaccineAttrDescription` (string)

  - `airPnr.legs.flights.flightIndex` (integer)
    Index of flight in the leg
    Example: 0

  - `airPnr.legs.flights.upas` (array)

  - `airPnr.legs.flights.upas.headline` (string)
    Example: A fully flat bed

  - `airPnr.legs.flights.upas.upaDescription` (string)
    Example: Arrive well-rested in our 180-degree flat-bed seating with illuminated seat controls.

  - `airPnr.legs.flights.upas.smallIconUrl` (string)
    Example: https://d13cihc9138cdj.cloudfront.net/icons/1d571a8b-559a-4c16-8be2-088566b2adaf/small/lay-flat.png?channel_id\u003dys18ftmp

  - `airPnr.legs.flights.upas.largeIconUrl` (string)
    Example: https://d13cihc9138cdj.cloudfront.net/icons/1d571a8b-559a-4c16-8be2-088566b2adaf/large/lay-flat.png?channel_id\u003dys18ftmp

  - `airPnr.legs.flights.upas.externalDetailsUrl` (string)
    Example: https://www.united.com/web/en-US/content/travel/inflight/businessfirst.aspx

  - `airPnr.legs.flights.upas.categories` (array)

  - `airPnr.legs.flights.upas.photo` (array)

  - `airPnr.legs.flights.upas.photo.caption` (string)
    Caption for the image.
    Example: Exterior

  - `airPnr.legs.flights.upas.photo.images` (array, required)
    List of images.

  - `airPnr.legs.flights.upas.video` (array)

  - `airPnr.legs.flights.upas.tour` (array)

  - `airPnr.legs.flights.utaIndices` (array)
    Indices into the Air.utas array for this flight's UTAs

  - `airPnr.legs.brandName` (string)
    Brand name
    Example: BUSFLEX

  - `airPnr.legs.validatingAirlineCode` (string)
    2 letter IATA airline code for validating airline
    Example: AA

  - `airPnr.legs.legStatus` (string)
    User facing booking status
    Enum: "UNKNOWN_STATUS", "PENDING_STATUS", "CONFIRMED_STATUS", "ACTIVE_STATUS", "COMPLETED_STATUS", "CANCELLED_STATUS", "REFUNDED_STATUS", "VOIDED_STATUS", "PROCESSING_STATUS", "UNCONFIRMED_STATUS", "AIRLINE_CONTROL_STATUS", "PAYMENT_DECLINED_STATUS", "SCHEDULE_CHANGE_STATUS", "HOLD_STATUS", "APPROVAL_REQUESTED_STATUS", "APPROVAL_DENIED_STATUS", "CANCELLATION_IN_PROGRESS_STATUS", "INOPERATIVE_STATUS", "FLIGHT_UNCONFIRMED_STATUS"

  - `airPnr.legs.sortingPriority` (integer)
    This field sets the sorting priority of the leg to determine its order of display on the
trips page
    Example: 1

  - `airPnr.legs.travelerRestrictions` (array)
    Per traveler list of restrictions such as loyalty, ktn edit etc.

  - `airPnr.legs.travelerRestrictions.restrictions` (array)

  - `airPnr.legs.fareOffers` (array)
    Fare offers for this leg including baggage, cancellation policy, etc

  - `airPnr.legs.fareOffers.baggagePolicy` (object)
    Baggage policy for this traveler.

  - `airPnr.legs.fareOffers.baggagePolicy.checkedIn` (array, required)
    Policies for checked-in baggage

  - `airPnr.legs.fareOffers.baggagePolicy.checkedIn.description` (string)
    Baggage policy text
    Example: 1 checked bag, 33 lbs

  - `airPnr.legs.fareOffers.baggagePolicy.checkedIn.count` (integer)
    Count of bags
    Example: 3

  - `airPnr.legs.fareOffers.baggagePolicy.checkedIn.sizeLimitInfo` (array)
    Size of bag in cm

  - `airPnr.legs.fareOffers.baggagePolicy.checkedIn.sizeLimitInfo.length` (number)
    The weight limit of a baggage option.
    Example: 32

  - `airPnr.legs.fareOffers.baggagePolicy.checkedIn.sizeLimitInfo.unit` (string)
    The unit of measurement for the bag size.
    Enum: "CENTIMETER", "METER"

  - `airPnr.legs.fareOffers.baggagePolicy.checkedIn.weightLimitInfo` (array)
    Array of bag weight limits

  - `airPnr.legs.fareOffers.baggagePolicy.checkedIn.weightLimitInfo.weightLimit` (array)
    Weight limit in different units

  - `airPnr.legs.fareOffers.baggagePolicy.checkedIn.weightLimitInfo.applicability` (string)
    This represents that the info is applicable for per bag/combined bags
    Enum: "EACH", "TOTAL"

  - `airPnr.legs.fareOffers.baggagePolicy.checkedIn.fee` (array)
    Array of bag weight fees

  - `airPnr.legs.fareOffers.baggagePolicy.checkedIn.sizeLimitDescription` (string)
    The baggage size limit in string format.
    Example: 55 x 35 x 25 cm

  - `airPnr.legs.fareOffers.baggagePolicy.carryOn` (array, required)
    Policies for carry-on baggage

  - `airPnr.legs.fareOffers.cancellationPolicy` (object)
    Information about the cancellation policy.

  - `airPnr.legs.fareOffers.cancellationPolicy.description` (string)
    Text describing the cancellation policy.
    Example: Non-refundable

  - `airPnr.legs.fareOffers.cancellationPolicy.assessmentType` (string)
    Enum: "NEUTRAL", "BENEFIT", "RESTRICTION", "FEE"

  - `airPnr.legs.fareOffers.cancellationPolicy.isCat16` (boolean)
    Is source cat16
    Example: true

  - `airPnr.legs.fareOffers.cancellationPolicy.isConditional` (boolean)
    Is conditional
    Example: true

  - `airPnr.legs.fareOffers.exchangePolicy` (object)
    Information about the exchange policy.

  - `airPnr.legs.fareOffers.exchangePolicy.description` (string)
    Text describing the exchange policy.
    Example: Change allowed for free

  - `airPnr.legs.fareOffers.exchangePolicy.isCat16` (boolean)
    Is source cat16
    Example: true

  - `airPnr.legs.fareOffers.exchangePolicy.isConditional` (boolean)
    Is conditional
    Example: true

  - `airPnr.legs.legId` (string)
    Identifier for leg
    Example: 1

  - `airPnr.legs.rateType` (string)
    Type of booked fare
    Enum: "RATE_TYPE_UNKNOWN", "PUBLISHED", "TMC_NEGOTIATED", "COMPANY_NEGOTIATED"

  - `airPnr.legs.legUpdates` (object)
    Alerts like connection risk for a leg

  - `airPnr.legs.legUpdates.connectionAlerts` (array)

  - `airPnr.legs.legUpdates.connectionAlerts.departingFlightIndex` (integer)
    Index of departing flight for this connection

  - `airPnr.legs.preferredTypes` (array)
    Preference types for a leg, like org preferred, spotters choice, etc.

  - `airPnr.legs.preferences` (array)
    Preference info for a leg, like org preferred, spotters choice, etc.

  - `airPnr.legs.preferences.blockedReason` (string)
    Reason for blocking the leg, hotel or car.

  - `airPnr.legs.preferences.label` (string)
    The label assigned to a specific tier of preference.

  - `airPnr.legs.scheduleChangeInfo` (object)
    Schedule change information for the leg.

  - `airPnr.legs.scheduleChangeInfo.flightIndices` (array)
    List of flight indices in this leg which has schedule changes.

  - `airPnr.legs.scheduleChangeInfo.disruptedFlightIndices` (array)
    List of flight indices in the disrupted flights list in the air pnr which has schedule changes.

  - `airPnr.legs.scheduleChangeInfo.possibleActions` (array)
    Actions allowed for the user on the schedule change for this leg

  - `airPnr.legs.legIndex` (integer)
    Index of leg in the booking
    Example: 0

  - `airPnr.airPnrRemarks` (array)
    Remarks added for the pnr.

  - `airPnr.airPnrRemarks.remarkString` (string, required)
    Remark String
    Example: COMPLEATREMARK

  - `airPnr.travelerInfos` (array, required)
    Information about traveler bookings

  - `airPnr.travelerInfos.airVendorCancellationInfo` (object)
    Airline-side cancellation records for a traveler's air transactions.

  - `airPnr.travelerInfos.airVendorCancellationInfo.airVendorCancellationObjects` (array)
    Vendor Cancellation

  - `airPnr.travelerInfos.airVendorCancellationInfo.airVendorCancellationObjects.vendorCancellationId` (string)
    Identifier returned by the vendor for a cancellation transaction
    Example: 1A2B3C

  - `airPnr.travelerInfos.airVendorCancellationInfo.airVendorCancellationObjects.flightAndLegIndices` (array)
    Vendor Cancellation

  - `airPnr.travelerInfos.airVendorCancellationInfo.airVendorCancellationObjects.flightAndLegIndices.flightIndex` (integer)
    Flight index within a leg, starts from 0.
    Example: 0

  - `airPnr.travelerInfos.airVendorCancellationInfo.airVendorCancellationObjects.flightAndLegIndices.legIndex` (integer)
    Leg index within a pnr, starts from 0.
    Example: 1

  - `airPnr.travelerInfos.createdMcos` (array)
    Created Mcos

  - `airPnr.travelerInfos.createdMcos.airline` (string)
    Code of the airline for which mco is created.

  - `airPnr.travelerInfos.createdMcos.mcoNumber` (string)
    Number of the mco created.

  - `airPnr.travelerInfos.createdMcos.isMcoVoided` (boolean)
    Whether the MCO was voided or not
    Example: false

  - `airPnr.travelerInfos.travelerIdx` (integer, required)
    Index of traveler in travelers list to which this info belongs
    Example: 0

  - `airPnr.travelerInfos.paxType` (string)
    Type of passenger
    Enum: "UNKNOWN_PASSENGER_TYPE", "ADULT", "CHILD", "INFANT", "INFANT_ON_LAP", "YOUTH", "SENIOR", "TEEN"

  - `airPnr.travelerInfos.paxCurrentAge` (object)
    Age of the traveler

  - `airPnr.travelerInfos.paxCurrentAge.numYears` (integer, required)
    Age of the passenger
    Example: 22

  - `airPnr.travelerInfos.tickets` (array)
    Tickets belonging to this traveler

  - `airPnr.travelerInfos.tickets.ticketNumber` (string, required)
    Ticket number
    Example: 0017574214321

  - `airPnr.travelerInfos.tickets.ticketType` (string)
    Ticket type
    Enum: "UNKNOWN_TICKET_TYPE", "FLIGHT", "ANCILLARY", "MIXED"

  - `airPnr.travelerInfos.tickets.status` (string)
    Ticket status
    Enum: "UNKNOWN", "ISSUED", "VOIDED", "REFUNDED", "EXCHANGED"

  - `airPnr.travelerInfos.tickets.additionalFareAmounts` (array)
    Additional charges on the ticket like change penalty, flight pass additional charge etc.

  - `airPnr.travelerInfos.tickets.additionalFareAmounts.type` (string, required)
    Type of additional fare amount
    Enum: "TYPE_UNKNOWN", "FLIGHT_PASS_AMOUNT", "CHANGE_FEE", "CANCELLATION_FEE", "PENALTY", "AIRLINE_FEE", "SEAT", "BAGGAGE"

  - `airPnr.travelerInfos.tickets.additionalFareAmounts.isIncludedInFareAmount` (boolean)
    Whether this additional fare amount is included in the ticket fare or not
    Example: false

  - `airPnr.travelerInfos.tickets.flightCoupons` (array)
    List of flight coupons in this ticket

  - `airPnr.travelerInfos.tickets.flightCoupons.legIdx` (integer)
    Index of leg to which this coupon belongs
    Example: 0

  - `airPnr.travelerInfos.tickets.flightCoupons.flightIdx` (integer)
    Index of flight in it's leg to which this coupon belongs
    Example: 0

  - `airPnr.travelerInfos.tickets.flightCoupons.status` (string)
    Flight status
    Enum: "UNKNOWN", "AIRPORT_CONTROL", "LIFTED", "CHECKED_IN", "EXCHANGED", "FLOWN", "NOT_FLOWN", "REFUNDED", "VOIDED", "PRINTED", "IRREGULAR_OPERATIONS", "PRINT_EXCHANGE", "PAPER_TICKET", "SUSPENDED"

  - `airPnr.travelerInfos.tickets.flightCoupons.sourceStatus` (string)
    Source status code from the supplier
    Example: Not flown

  - `airPnr.travelerInfos.tickets.ancillaries` (array)
    List of ancillaries in this ticket

  - `airPnr.travelerInfos.tickets.ancillaries.ancillaryType` (string, required)
    Type of ancillary
    Enum: "UNKNOWN", "SEAT", "LUGGAGE", "EARLY_BIRD", "WIFI", "CARBON_OFFSET", "CHANGE_FEE", "RESIDUAL_EMD", "MEAL", "CABIN_UPGRADE", "SEAT_UPGRADE", "FARE_FAMILY_UPGRADE", "PRIORITY", "INFANT", "UPGRADE", "OTHER", "MILES_PURCHASE", "FEE", "PET"

  - `airPnr.travelerInfos.tickets.ancillaries.legIndex` (integer, required)
    Index of leg to which this ancillary belongs. If an ancillary belongs to all legs, this index should be set to -1
    Example: 0

  - `airPnr.travelerInfos.tickets.ancillaries.flightIndex` (integer, required)
    Index of flight in it's leg to which this ancillary belongs. If an ancillary belongs to all flights, this index should be set to -1
    Example: 0

  - `airPnr.travelerInfos.tickets.validatingAirlineCode` (string)
    2 letter IATA airline code for the validating/ticketing airline
    Example: AA

  - `airPnr.travelerInfos.tickets.exchangePolicy` (object)
    Ticket exchange policy
> **Note:** If the value of `pnrs.data.sourceInfo.bookingSource` is `TRAVEL_FUSION` then the `exchangePolicy` field will be empty.

  - `airPnr.travelerInfos.tickets.exchangePolicy.isExchangeable` (boolean)
    Is ticket exchangeable or not
    Example: true

  - `airPnr.travelerInfos.tickets.exchangePolicy.isCat16` (boolean)
    Is source cat16
    Example: true

  - `airPnr.travelerInfos.tickets.exchangePolicy.isConditional` (boolean)
    Is conditional
    Example: true

  - `airPnr.travelerInfos.tickets.exchangeInfo` (object)
    Ticket exchange info

  - `airPnr.travelerInfos.tickets.exchangeInfo.originalTicketNumber` (string, required)
    If the ticket was created as part of an exchange, the original ticket that was exchanged to create this ticket.
    Example: 0017574214321

  - `airPnr.travelerInfos.tickets.exchangeInfo.originalTicketDetails` (object)
    Original ticket details in case of an exchange ticket.

  - `airPnr.travelerInfos.tickets.exchangeInfo.originalTicketDetails.ticketNumber` (string, required)
    Ticket number of the original ticket.
    Example: 1234567890

  - `airPnr.travelerInfos.tickets.exchangeInfo.originalTicketDetails.taxBreakdown` (object)
    Tax breakdown information for this ticket

  - `airPnr.travelerInfos.tickets.exchangeInfo.originalTicketDetails.taxBreakdown.tax` (array, required)
    List of taxes for this ticket

  - `airPnr.travelerInfos.tickets.exchangeInfo.originalTicketDetails.taxBreakdown.tax.taxCode` (string, required)
    Tax code

  - `airPnr.travelerInfos.tickets.exchangeInfo.originalTicketDetails.conjunctionTicketSuffix` (string)
    Conjunction ticket suffix.
    Example: A

  - `airPnr.travelerInfos.tickets.exchangeInfo.residueType` (string)
    Type of residue for cases where the ticket is exchanged to a lower amount
    Enum: "NO_RESIDUE", "MCO", "FORFEITED", "REFUNDED"

  - `airPnr.travelerInfos.tickets.refundPolicy` (object)
    Ticket refund policy
> **Note:** If the value of `pnrs.data.sourceInfo.bookingSource` is `TRAVEL_FUSION` then the `refundPolicy` field will be empty.

  - `airPnr.travelerInfos.tickets.refundPolicy.isRefundable` (boolean)
    Is ticket refundable or not
    Example: true

  - `airPnr.travelerInfos.tickets.refundPolicy.isRefundableByObt` (boolean)
    Is ticket refundable or not in OBT
    Example: true

  - `airPnr.travelerInfos.tickets.refundPolicy.isCat16` (boolean)
    Is source cat16
    Example: true

  - `airPnr.travelerInfos.tickets.refundPolicy.isConditional` (boolean)
    Is conditional
    Example: true

  - `airPnr.travelerInfos.tickets.refundInfo` (object)
    Ticket refund info

  - `airPnr.travelerInfos.tickets.llfInfo` (object)
    Information about lowest logical fare for this ticket

  - `airPnr.travelerInfos.tickets.llfInfo.reason` (string)
    Free form text if selected reason code is OTHER
    Example: Want a stop in London

  - `airPnr.travelerInfos.tickets.commission` (object)
    Ticket commission info

  - `airPnr.travelerInfos.tickets.commission.percent` (number)
    The percentage of the base amount that we are getting as commission
    Example: 10

  - `airPnr.travelerInfos.tickets.iataNumber` (string)
    Iata number

  - `airPnr.travelerInfos.tickets.fareCalculation` (string)
    Fare calculation line

  - `airPnr.travelerInfos.tickets.paymentDetails` (array)
    List of payment details for this ticket

  - `airPnr.travelerInfos.tickets.paymentDetails.isRefunded` (boolean)
    Whether the above amount is issued or refunded to the customer.
    Example: false

  - `airPnr.travelerInfos.tickets.ticketSettlement` (string)
    Ticket settlement
    Enum: "UNKNOWN_TICKET_SETTLEMENT", "ARC_TICKET", "BSP_TICKET", "NON_ARC_BSP_TICKET"

  - `airPnr.travelerInfos.tickets.ticketCtc` (object)
    The cost to customer for this ticket

  - `airPnr.travelerInfos.tickets.ticketCtc.cost` (array, required)

  - `airPnr.travelerInfos.tickets.ticketCtc.cost.paymentId` (string, required)
    The payment id for this transaction as present in PNR CTC

  - `airPnr.travelerInfos.tickets.ticketCtc.cost.isRefunded` (boolean)
    Indicates whether this amount was charged or refunded to the customer

  - `airPnr.travelerInfos.tickets.airlineFeeDetails` (object)
    Details of the airline fee charged by the airline. It contains breakdown of the fee into base and tax amounts and ob fee percentage

  - `airPnr.travelerInfos.tickets.airlineFeeDetails.percent` (number)
    OB Percent, there is no connection with this percentage and amount
    Example: 2.25

  - `airPnr.travelerInfos.tickets.vendorCancellationId` (string)
    Cancellation id sent by the supplier.
    Example: 2108528068

  - `airPnr.travelerInfos.tickets.conjunctionTicketSuffix` (array)
    List of ticket suffix in case of multiple coupons in a single ticket from GDS

  - `airPnr.travelerInfos.tickets.createdUnusedCredit` (object)
    Information regarding an unused credit.

  - `airPnr.travelerInfos.tickets.createdUnusedCredit.sourcePnr` (string)
    PNR number corresponding to third party through which booking was made.
    Example: MC5ONS

  - `airPnr.travelerInfos.tickets.createdUnusedCredit.spotnanaPnr` (string)
    Spotnana pnr ID.
    Example: 2345678

  - `airPnr.travelerInfos.tickets.createdUnusedCredit.ticketNumber` (string)
    Ticket number for the ticket that was converted into an unused credit.
    Example: 5267779139217

  - `airPnr.travelerInfos.tickets.createdUnusedCredit.airlineCode` (string)
    2 letter airline code of the airline associated with this unused credit.
    Example: AA

  - `airPnr.travelerInfos.tickets.createdUnusedCredit.segmentsAvailable` (string)
    Whether all segments are unused or some have already been used.
    Enum: "UNKNOWN", "ALL_OPEN", "PARTIAL", "OTHER"

  - `airPnr.travelerInfos.tickets.createdUnusedCredit.departureCountry` (string)
    3 letter country code of the departure country associated with the original ticket.
    Example: USA

  - `airPnr.travelerInfos.tickets.createdUnusedCredit.arrivalCountry` (string)
    3 letter country code of the arrival country associated with the original ticket.
    Example: USA

  - `airPnr.travelerInfos.tickets.createdUnusedCredit.ticketType` (string)
    Type of credit.
    Enum: "TICKET_TYPE_UNKNOWN", "ETICKET", "MCO", "NON_GDS"

  - `airPnr.travelerInfos.tickets.createdUnusedCredit.pcc` (string)
    PCC the credit was issued on.

  - `airPnr.travelerInfos.tickets.createdUnusedCredit.status` (string)
    Status of the credit.
    Enum: "STATUS_UNKNOWN", "OPEN", "USED", "RESERVED"

  - `airPnr.travelerInfos.tickets.createdUnusedCredit.tripId` (string)
    Trip ID that contains the unused credit
    Example: 1234567

  - `airPnr.travelerInfos.tickets.createdUnusedCredit.redeemVia` (string)
    Credit redemption method.
If the value contains `CONTACT_AGENT`, then the agent must book the ticket and redeem the credits on behalf of the traveler.
    Enum: "REDEEM_VIA_OBT", "CONTACT_AGENT"

  - `airPnr.travelerInfos.tickets.createdUnusedCredit.sourceOfTruth` (string)
    The system that owns the credit.
    Enum: "SPOTNANA", "MANUAL_FORM", "MAGNATECH", "BCD", "OBT", "CWT"

  - `airPnr.travelerInfos.tickets.createdUnusedCredit.owningPcc` (string)
    PCC the PNR was created on.

  - `airPnr.travelerInfos.tickets.createdUnusedCredit.paymentSourceId` (string)
    Payment source ID associated with the credit.
    Example: edd5b835-8001-430c-98f8-fedeccebe4cf

  - `airPnr.travelerInfos.tickets.createdUnusedCredit.creditUsageType` (string)
    Usage type of the credit.
    Enum: "CREDIT_USAGE_TYPE_UNKNOWN", "COMPANY", "PERSONAL"

  - `airPnr.travelerInfos.tickets.createdUnusedCredit.email` (string)
    Email of the passenger owning the unused credit.

  - `airPnr.travelerInfos.tickets.createdUnusedCredit.fopInfo` (object)
    Form of payment information associated with an unused credit.

  - `airPnr.travelerInfos.tickets.createdUnusedCredit.fopLabel` (string)
    The label associated with the FOP. This value can be empty if that particular FOP does not have any label.

  - `airPnr.travelerInfos.tickets.createdUnusedCredit.exchangeInfo` (object)
    Exchange information for unused credits.

  - `airPnr.travelerInfos.tickets.createdUnusedCredit.exchangeInfo.previousTicket` (string)
    Previous ticket number in case of exchanges.

  - `airPnr.travelerInfos.tickets.createdUnusedCredit.fopCardAccessType` (string)
    The card access type of the FOP associated with the unused credit.
    Enum: "CARD_ACCESS_CENTRAL", "CARD_ACCESS_PERSONAL", "CARD_ACCESS_CORPORATE"

  - `airPnr.travelerInfos.tickets.createdUnusedCredit.legalEntityName` (string)
    The name of the legal entity associated with this unused credit.

  - `airPnr.travelerInfos.tickets.createdUnusedCredit.countryCode` (string)
    Country code of the credit's Point-of-Sale market, derived from the credit's PCC.
    Example: US

  - `airPnr.travelerInfos.tickets.ticketScheduleChangeInformation` (object)
    Schedule change information for this ticket

  - `airPnr.travelerInfos.tickets.ticketScheduleChangeInformation.possibleActions` (array)

  - `airPnr.travelerInfos.tickets.ticketScheduleChangeInformation.refundInfo` (object)
    Refund information if applicable for this ticket

  - `airPnr.travelerInfos.tickets.ticketScheduleChangeInformation.refundInfo.isRefundAllowed` (boolean)
    Whether refund is allowed if user denies schedule change/cancels the flight

  - `airPnr.travelerInfos.tickets.ticketScheduleChangeInformation.refundInfo.refundWaiverCode` (string)
    Waiver code for refund if applicable

  - `airPnr.travelerInfos.tickets.ticketScheduleChangeInformation.refundInfo.exchangeWaiverCode` (string)
    Waiver code for exchange if available

  - `airPnr.travelerInfos.tickets.pcc` (string)
    The ticketing PCC for this ticket.
    Example: ABCD

  - `airPnr.travelerInfos.tickets.savingsFare` (object)
    Total savings present.

  - `airPnr.travelerInfos.tickets.savingsFare.isTaxIncluded` (boolean)

  - `airPnr.travelerInfos.tickets.preBookAnswers` (object)

  - `airPnr.travelerInfos.tickets.preBookAnswers.answers` (array)

  - `airPnr.travelerInfos.tickets.preBookAnswers.answers.entityId` (string)
    The unique ID for the question.

  - `airPnr.travelerInfos.tickets.preBookAnswers.answers.userInput` (string)
    The text input given by user (if any).

  - `airPnr.travelerInfos.tickets.preBookAnswers.answers.itemIds` (array)
    The id/enum value corresponding to the option chosen by the user as
answer.

  - `airPnr.travelerInfos.tickets.preBookAnswers.answers.answers` (array)

  - `airPnr.travelerInfos.tickets.preBookAnswers.answers.answers.item` (string)
    The option selected from the list of available choices.

  - `airPnr.travelerInfos.tickets.preBookAnswers.answers.answers.value` (string)
    The additional input provided (by the user) while selecting one of the options.

  - `airPnr.travelerInfos.tickets.preBookAnswers.answers.answers.description` (string)
    Description of the selected option.

  - `airPnr.travelerInfos.tickets.preBookAnswers.answers.customFieldType` (string)
    The type of custom field.
    Enum: "QUESTION", "MEETING", "BUDGET", "BREX_TOKEN"

  - `airPnr.travelerInfos.tickets.preBookAnswers.answers.questionDisplayText` (string)
    The question text to be displayed to the user.

  - `airPnr.travelerInfos.tickets.preBookAnswers.answers.question` (object)
    The message defines the format of a question which can be asked to a user in any kind of workflows.

  - `airPnr.travelerInfos.tickets.preBookAnswers.answers.question.id` (string, required)

  - `airPnr.travelerInfos.tickets.preBookAnswers.answers.question.name` (string, required)
    Question display name that the user will see. For eg, 'Choose the purpose of your trip'.

  - `airPnr.travelerInfos.tickets.preBookAnswers.answers.question.questionFormat` (string)
    Question types. INPUT_BOX will make user enter a free flowing text.
RADIO_BUTTON will have multiple options, user can select only one.
CHECKBOX questions contain the possible set of options, from which the user can choose multiple options.
CHECKBOX_WITH_PERCENTAGE is similar to checkbox, with the difference being that each option having an additional input field whose values must add up to 100.
    Enum: "INPUT_BOX", "RADIO_BUTTON", "CHECKBOX", "CHECKBOX_WITH_PERCENTAGE"

  - `airPnr.travelerInfos.tickets.preBookAnswers.answers.question.optionInfo` (object)
    Options related information for the question.

  - `airPnr.travelerInfos.tickets.preBookAnswers.answers.question.optionInfo.source` (string, required)
    Option source
    Enum: "MANUAL", "COMPANY_CONFIG"

  - `airPnr.travelerInfos.tickets.preBookAnswers.answers.question.optionInfo.sourceMetadata` (object)
    Metadata information for the option source.

  - `airPnr.travelerInfos.tickets.preBookAnswers.answers.question.optionInfo.totalNumOptions` (integer)
    Total number of options

  - `airPnr.travelerInfos.tickets.preBookAnswers.answers.question.optionInfo.options` (array)
    Available options for the question. This will contain only max 10 options if only 
summary is requested.

  - `airPnr.travelerInfos.tickets.preBookAnswers.answers.question.isRequired` (boolean, required)
    Whether its compulsory to answer the question or not.
    Example: true

  - `airPnr.travelerInfos.tickets.preBookAnswers.answers.question.isDisabled` (boolean, required)
    Whether the question is disabled or not. If true, this should not be asked.
    Example: true

  - `airPnr.travelerInfos.tickets.preBookAnswers.answers.question.includeInItinerary` (boolean)
    Whether to include this question in the itinerary related emails.
    Example: true

  - `airPnr.travelerInfos.tickets.preBookAnswers.answers.question.customFieldLocations` (array)

  - `airPnr.travelerInfos.tickets.preBookAnswers.answers.question.matchConditions` (object)
    Conditions to select the custom field for given context.

  - `airPnr.travelerInfos.tickets.preBookAnswers.answers.question.matchConditions.travelerConditions` (object)
    Matching conditions for traveler.

  - `airPnr.travelerInfos.tickets.preBookAnswers.answers.question.matchConditions.travelTypes` (array)
    Travel types to match.

  - `airPnr.travelerInfos.tickets.preBookAnswers.answers.question.matchConditions.travelRegionTypes` (array)
    Travel region types to match.

  - `airPnr.travelerInfos.tickets.preBookAnswers.answers.question.matchConditions.tripUsageTypes` (array)
    Trip usage types to match. If empty, all trip usage types will be matched.

  - `airPnr.travelerInfos.tickets.preBookAnswers.answers.question.questionType` (object)
    Question type.

  - `airPnr.travelerInfos.tickets.preBookAnswers.answers.question.questionType.preSearchQuestionType` (string)
    Types of pre-search questions.
PURPOSE_OF_TRIP required to ask purpose of the trip user is going to. For example: meeting, training, interview.
    Enum: "UNKNOWN_SEARCH_QUESTION_TYPE", "PURPOSE_OF_TRIP"

  - `airPnr.travelerInfos.tickets.preBookAnswers.answers.question.questionType.preCheckoutQuestionType` (string)
    Types of pre-checkout questions.
USER_DEFINED_QUESTION the default question type for all pre checkout questions which have been created from UI.
OOP_REASON_CODE is kept separate so that existing OOP flow doesn't break.
    Enum: "UNKNOWN_CHECKOUT_QUESTION_TYPE", "USER_DEFINED_QUESTION", "OOP_REASON_CODE"

  - `airPnr.travelerInfos.tickets.preBookAnswers.preBookQuestionResponseId` (string)
    The unique id sent back in the pre book questions API response

  - `airPnr.travelerInfos.tickets.ticketIncompleteReasons` (array)
    List of reasons for ticket being incomplete

  - `airPnr.travelerInfos.tickets.associatedTicketNumber` (string)
    The associated ticket number for this ticket
    Example: 1251913362894

  - `airPnr.travelerInfos.tickets.rficCode` (string)
    Reason for issuance code
    Example: D

  - `airPnr.travelerInfos.tickets.journeyCode` (string)
    Journey code
    Example: 1

  - `airPnr.travelerInfos.tickets.hemisphereCode` (string)
    Hemisphere code
    Example: 9

  - `airPnr.travelerInfos.tickets.markup` (object)
    Markup applied on this ticket by the TMC

  - `airPnr.travelerInfos.tickets.mcoIssuanceEligibility` (string)
    Type of residue for cases where the ticket is exchanged to a lower amount
    Enum: "ELIGIBLE", "NOT_ELIGIBLE", "MAYBE_ELIGIBLE"

  - `airPnr.travelerInfos.tickets.emdInfo` (object)
    EMD Information of this ticket if applicable

  - `airPnr.travelerInfos.tickets.emdInfo.emdType` (string)
    Type of EMD
    Example: ASSOCIATED

  - `airPnr.travelerInfos.tickets.emdInfo.rficCode` (string)
    Reason for issuance code
    Example: D

  - `airPnr.travelerInfos.tickets.emdInfo.rfiscCode` (string)
    Reason for issuance sub-code
    Example: 992

  - `airPnr.travelerInfos.tickets.emdInfo.associatedEticketCouponIndices` (array)
    List of associated eTicket coupon indices

  - `airPnr.travelerInfos.tickets.emdInfo.productName` (string)
    Product name
    Example: TICKET AMENDMENT FEE

  - `airPnr.travelerInfos.tickets.taxInfo` (object)
    Tax meta data associated with this ticket if applicable

  - `airPnr.travelerInfos.tickets.taxInfo.gstCode` (string)
    GST Code
    Example: D

  - `airPnr.travelerInfos.tickets.taxInfo.qstCode` (string)
    QST Code
    Example: C

  - `airPnr.travelerInfos.tickets.flightCreditInfo` (object)
    Flight credit information if this ticket was converted to flight credit

  - `airPnr.travelerInfos.tickets.flightCreditInfo.isConvertedToFlightCredit` (boolean)
    Is converted to Flight Credit
    Example: true

  - `airPnr.travelerInfos.tickets.ticketPolicyInfo` (object)
    Travel-policy information recorded against an air ticket.

  - `airPnr.travelerInfos.tickets.ticketPolicyInfo.isPersonalUpgrade` (boolean)
    Indicates that this booking exceeded the allowed policy budget with the extra amount being charged on the traveler.
    Example: false

  - `airPnr.travelerInfos.boardingPass` (array)
    Boarding pass details.

  - `airPnr.travelerInfos.boardingPass.legIndex` (integer)
    Index of leg to which this boarding pass belongs.
    Example: 0

  - `airPnr.travelerInfos.boardingPass.flightIndex` (integer)
    Index of flight in it's leg to which this boarding pass belongs.
    Example: 0

  - `airPnr.travelerInfos.boardingPass.boardingPriority` (string)
    Boarding Priority for airlines like Southwest which have open seating.
    Example: A

  - `airPnr.travelerInfos.boardingPass.boardingZone` (string)
    Boarding zone for airlines like Southwest which have open seating.
    Example: 16

  - `airPnr.travelerInfos.booking` (object, required)
    Info about all booked items

  - `airPnr.travelerInfos.booking.seats` (array)
    Seat booking info

  - `airPnr.travelerInfos.booking.seats.legIdx` (integer)
    Index of leg to which this seat belongs
    Example: 0

  - `airPnr.travelerInfos.booking.seats.flightIdx` (integer)
    Index of flight in it's leg to which this seat belongs
    Example: 0

  - `airPnr.travelerInfos.booking.seats.number` (string)
    Assigned seat number
    Example: 32A

  - `airPnr.travelerInfos.booking.seats.status` (string)
    Status of assigned seat.
    Enum: "CONFIRMED", "PENDING", "UNKNOWN", "CANCELLED"

  - `airPnr.travelerInfos.booking.seats.sourceStatus` (string)
    Raw status code of the seat. E.g. HK, KK.
    Example: HK

  - `airPnr.travelerInfos.booking.seats.assignmentType` (string)
    The type of seat assignment
    Enum: "AUTO_ASSIGNED"

  - `airPnr.travelerInfos.booking.luggageDetails` (array)
    Additional luggage info

  - `airPnr.travelerInfos.booking.luggageDetails.legIdx` (integer)
    Index of leg to which this luggage belongs. If -1, belongs to all legs
    Example: 0

  - `airPnr.travelerInfos.booking.luggageDetails.weightKg` (integer, required)
    Total weight in Kgs
    Example: 40

  - `airPnr.travelerInfos.booking.luggageDetails.numBags` (integer)
    Number of bags.
    Example: 2

  - `airPnr.travelerInfos.booking.luggageDetails.status` (string)
    Status of baggage
    Enum: "UNKNOWN", "CONFIRMED", "PENDING", "CANCELLED"

  - `airPnr.travelerInfos.booking.otherAncillaries` (array)
    Ancillaries other than seat and luggage

  - `airPnr.travelerInfos.booking.otherAncillaries.type` (string, required)
    Type of ancillary
    Enum: "EARLY_BIRD", "WIFI", "CARBON_OFFSET"

  - `airPnr.travelerInfos.booking.otherAncillaries.legIndex` (integer)
    Index of leg to which this ancillary belongs. If an ancillary belongs to all legs,
this index should be set to -1
    Example: 0

  - `airPnr.travelerInfos.booking.otherAncillaries.flightIndex` (integer)
    Index of flight in it's leg to which this ancillary belongs. If an ancillary 
belongs to all flights, this index should be set to -1
    Example: 0

  - `airPnr.travelerInfos.booking.otherAncillaries.status` (string, required)
    Status of this ancillary
    Enum: "ANCILLARY_STATUS_UNKNOWN", "CONFIRMED", "PENDING", "CANCELLED", "ELIGIBLE", "NOT_APPLICABLE"

  - `airPnr.travelerInfos.booking.otherAncillaries.flightIds` (array, required)

  - `airPnr.travelerInfos.booking.itinerary` (object)
    Info about booked itinerary

  - `airPnr.travelerInfos.booking.itinerary.flightFareBreakup` (array)
    Ticket level flight fare breakup

  - `airPnr.travelerInfos.booking.itinerary.flightFareBreakup.legIndices` (array)
    List of legs for this fare info

  - `airPnr.travelerInfos.booking.itinerary.fareComponents` (array)
    List of fare component details for this itinerary

  - `airPnr.travelerInfos.booking.itinerary.fareComponents.fareBasisCode` (string, required)
    Fare basis code for the booking
    Example: QUAJZNB3

  - `airPnr.travelerInfos.booking.itinerary.fareComponents.tourCode` (string)
    Tour code applied on this fare component
    Example: ABC12

  - `airPnr.travelerInfos.booking.itinerary.fareComponents.ticketDesignator` (string)
    Ticket designator applied on this fare component
    Example: ABC

  - `airPnr.travelerInfos.booking.itinerary.fareComponents.flightIds` (array, required)

  - `airPnr.travelerInfos.booking.itinerary.fareComponents.flightIds.legIdx` (integer, required)
    Index of leg to which this flight belongs
    Example: 0

  - `airPnr.travelerInfos.booking.itinerary.fareComponents.flightIds.flightIdx` (integer, required)
    Index of flight in it's leg
    Example: 0

  - `airPnr.travelerInfos.booking.itinerary.fareComponents.corpAccountCode` (string)
    The account code which is used to get corporate negotiated price
    Example: WAT01

  - `airPnr.travelerInfos.booking.itinerary.otherAncillaryFares` (array)
    Fare breakup for ancillaries other than seat and luggage

  - `airPnr.travelerInfos.booking.otherCharges` (array)
    Extra charges over flight fare, seat and luggage.

  - `airPnr.travelerInfos.booking.otherCharges.type` (string, required)
    Name of extra item
    Example: Meal

  - `airPnr.travelerInfos.appliedCredits` (array)
    Information about credit redeemed in booking.

  - `airPnr.travelerInfos.appliedCredits.creditId` (string, required)
    Unique ID of credit applied. For example, numeric ID of unused ticket.
    Example: 0017574214321

  - `airPnr.travelerInfos.appliedCredits.ticketType` (string)
    Type of credit.
    Enum: "ETICKET", "MCO"

  - `airPnr.travelerInfos.specialServiceRequestInfos` (array)
    List of all the Special Service Requests associated with the traveler.

  - `airPnr.travelerInfos.specialServiceRequestInfos.code` (string)
    4 letter Special Service Request code.

  - `airPnr.travelerInfos.specialServiceRequestInfos.customText` (string)
    Free text string for special request.

  - `airPnr.travelerInfos.specialServiceRequestInfos.flightIndex` (integer)
    Index of flight mapping with the special service request, starts with 0.

  - `airPnr.travelerInfos.specialServiceRequestInfos.legIndex` (integer)
    Index of leg mapping with the special service request, starts with 0.

  - `airPnr.travelerInfos.specialServiceRequestInfos.status` (string)
    Status of the Special Service Request.
    Enum: "SPECIAL_SERVICE_REQUEST_STATUS_UNKNOWN", "CONFIRMED", "REQUESTED", "UNABLE_TO_CONFIRM", "DENIED"

  - `airPnr.travelerInfos.lastConfirmedTickets` (array)
    List of tickets from last confirmed version. These will only be set for cancelled PNRs.

  - `airPnr.travelerInfos.nameNumber` (string)
    Name number associated to the traveler like 1.1, 2.1 from Sabre
    Example: 1.1

  - `airPnr.automatedCancellationInfo` (object)
    Info related to possible automated cancellations

  - `airPnr.automatedCancellationInfo.supportedCancellations` (array)
    Supported automated cancellations. If this list is empty, automated cancellation is not 
supported for this booking

  - `airPnr.automatedCancellationInfo.supportedCancellations.cancelType` (string, required)
    Type of cancellation
    Enum: "VOID", "REFUND"

  - `airPnr.automatedExchangeInfo` (object)
    Info related to possible automated exchange

  - `airPnr.automatedExchangeInfo.supportedExchanges` (array)
    Supported automated exchanges. If this list is empty, automated exchange is not 
supported for this booking.

  - `airPnr.automatedExchangeInfo.supportedExchanges.legInfos` (array)
    List of legs supported for this exchange

  - `airPnr.automatedExchangeInfo.supportedExchanges.legInfos.legIdx` (integer, required)
    Example: 1

  - `airPnr.bookingMetadata` (object)
    Metadata like fare statistics for this booking

  - `airPnr.bookingMetadata.fareStatistics` (object)

  - `airPnr.bookingMetadata.fareStatistics.statisticsItems` (array, required)

  - `airPnr.bookingMetadata.fareStatistics.statisticsItems.statisticType` (string, required)
    Enum: "MINIMUM", "MEDIAN", "MAXIMUM"

  - `airPnr.bookingMetadata.fareStatistics.cheapestFares` (array)

  - `airPnr.bookingMetadata.fareStatistics.cheapestFares.fareType` (string)
    Type of fare
    Enum: "PUBLISHED", "CORPORATE", "PRIVATE_MARKETED_PUBLIC", "PRIVATE"

  - `airPnr.otherServiceInfos` (array)
    List of all the Other Service Information associated with the PNR.

  - `airPnr.otherServiceInfos.customText` (string)
    The special instruction is given in the form of text.
    Example: Wheelchair access

  - `airPnr.otherServiceInfos.flightIndexes` (array)
    Index of flight mapping with the OSI, starts with 0. One OSI belong to one airline, so all the segments of an airline will have the same OSI.

  - `airPnr.holdDeadline` (object)
    Hold Information about the booking.

  - `airPnr.airPriceOptimizationMetadata` (object)
    Information related to air price optimization if PNR has been rebooked.

  - `airPnr.airPriceOptimizationMetadata.oldTickets` (array)
    List of old tickets present in PNR before rebook.
For non-ticketed PNRs, tickets will not be present.

  - `airPnr.airPriceOptimizationMetadata.newTickets` (array)
    List of new tickets in PNR after rebook.
For non-ticketed PNRs, tickets will not be present.

  - `airPnr.airPriceOptimizationMetadata.oldPnrId` (string, required)
    Old Spotnana PnrId of the PNR before rebook.
    Example: 6789533589

  - `airPnr.airPriceOptimizationMetadata.newPnrId` (string, required)
    New Spotnana PnrId of the PNR after rebook.
If the same PNR has been modified during rebook, oldPnrId and newPnrId will be same.
If a new PNR has been booked during rebook, oldPnrId and newPnrId will be different.
    Example: 6789533589

  - `airPnr.disruptedFlightDetails` (array)
    List of all the last confirmed flights that have changed via disruption by the airline.

  - `airPnr.disruptedFlightDetails.originAirportCode` (string, required)
    3 letter IATA airport code for origin
    Example: SFO

  - `airPnr.disruptedFlightDetails.destinationAirportCode` (string, required)
    3 letter IATA airport code for destination
    Example: LHR

  - `airPnr.voidPolicy` (object)
    Void policy information for the PNR

  - `airPnr.voidPolicy.isVoidable` (boolean)
    Set to true if either PNR is not ticketed or the PNR can be voided based on all the pre validation checks
    Example: true

  - `airPnr.voidPolicy.isInfoAvailable` (boolean)
    If false, void policy is not available for the PNR
    Example: true

  - `airPnr.utas` (array)
    Universal Travel Attributes for amenities and policies

  - `airPnr.utas.postDepartureExchangePolicy` (object)
    Air UTA data

  - `airPnr.utas.postDepartureExchangePolicy.summary` (object)

  - `airPnr.utas.postDepartureExchangePolicy.summary.headline` (string)
    Summary headline

  - `airPnr.utas.postDepartureExchangePolicy.summary.summaryDescription` (string)
    Summary description

  - `airPnr.utas.postDepartureExchangePolicy.value` (object)
    Policy value which can be used by clients to decide how this policy is displayed.

  - `airPnr.utas.postDepartureExchangePolicy.value.seat` (string)
    Enum: "UNKNOWN", "STANDARD", "RECLINER", "ANGLE_FLAT", "FLAT", "SUITE"

  - `airPnr.utas.baggage` (object)

  - `airPnr.utas.baggage.checkedBags` (array)

  - `airPnr.utas.baggage.carryOns` (array)

  - `airPnr.utas.baggage.personalItems` (array)

  - `airPnr.showRawFareRules` (boolean)
    For FE to show raw fare rules
    Example: false

  - `hotelPnr` (object)
    Hotel PNR information

  - `hotelPnr.hotelInfo` (object, required)
    Hotel info

  - `hotelPnr.hotelInfo.chainCode` (string)
    Chain code of the hotel.
    Example: RF

  - `hotelPnr.hotelInfo.chainName` (string)
    Chain name of the hotel.
    Example: Red Roof Inns

  - `hotelPnr.hotelInfo.email` (string)
    Email address of the hotel.
    Example: user@business.com

  - `hotelPnr.hotelInfo.hotelId` (string)
    Hotel id.
    Example: 100094780

  - `hotelPnr.hotelInfo.name` (string, required)
    Name of the hotel.
    Example: San Francisco Airport Red Roof

  - `hotelPnr.hotelInfo.starRating` (number)
    Star rating of the hotel.
    Example: 3.5

  - `hotelPnr.hotelInfo.fax` (array)

  - `hotelPnr.hotelInfo.masterChainCode` (string)
    Master chain code of the hotel.
    Example: EM

  - `hotelPnr.hotelInfo.brandName` (string)
    Brand name of the hotel.
    Example: Marriott Hotel Brands

  - `hotelPnr.hotelInfo.amenities` (array)

  - `hotelPnr.hotelInfo.amenities.type` (string)
    Type of hotel amenity.
    Enum: "TWENTY_FOUR_HOUR_FRONT_DESK", "TWENTY_FOUR_HOUR_ROOM_SERVICE", "TWENTY_FOUR_HOUR_SECURITY", "ADJOINING_ROOMS", "AIR_CONDITIONING", "AIRLINE_DESK", "ATM_CASH_MACHINE", "BABY_SITTING", "BBQ_PICNIC_AREA", "BILINGUAL_STAFF", "BOOKSTORE", "BOUTIQUES_STORES", "BRAILED_ELEVATORS", "BUSINESS_LIBRARY", "CAR_RENTAL_DESK", "CASINO", "CHECK_CASHING_POLICY", "CHECK_IN_KIOSK", "COCKTAIL_LOUNGE", "COFFEE_SHOP", "COIN_OPERATED_LAUNDRY", "CONCIERGE_DESK", "CONCIERGE_FLOOR", "CONFERENCE_FACILITIES", "COURTYARD", "CURRENCY_EXCHANGE", "DESK_WITH_ELECTRICAL_OUTLET", "DOCTOR_ON_CALL", "DOOR_MAN", "DRIVING_RANGE", "DRUGSTORE_PHARMACY", "DUTY_FREE_SHOP", "ELEVATORS", "EXECUTIVE_FLOOR", "EXERCISE_GYM", "EXPRESS_CHECK_IN", "EXPRESS_CHECK_OUT", "FAMILY_PLAN", "FLORIST", "FOLIOS", "FREE_AIRPORT_SHUTTLE", "FREE_PARKING", "FREE_TRANSPORTATION", "GAME_ROOM", "GIFT_NEWS_STAND", "HAIRDRESSER_BARBER", "ACCESSIBLE_FACILITIES", "HEALTH_CLUB", "HEATED_POOL", "HOUSEKEEPING_DAILY", "HOUSEKEEPING_WEEKLY", "ICE_MACHINE", "INDOOR_PARKING", "INDOOR_POOL", "JACUZZI", "JOGGING_TRACK", "KENNELS", "LAUNDRY_VALET_SERVICE", "LIQUOR_STORE", "LIVE_ENTERTAINMENT", "MASSAGE_SERVICES", "NIGHTCLUB", "OFF_SITE_PARKING", "ON_SITE_PARKING", "OUTDOOR_PARKING", "OUTDOOR_POOL", "PACKAGE_PARCEL_SERVICES", "PARKING", "PHOTOCOPY_CENTER", "PLAYGROUND", "POOL", "POOLSIDE_SNACK_BAR", "PUBLIC_ADDRESS_SYSTEM", "RAMP_ACCESS", "RECREATIONAL_VEHICLE_PARKING", "RESTAURANT", "ROOM_SERVICE", "SAFE_DEPOSIT_BOX", "SAUNA", "SECURITY", "SHOE_SHINE_STAND", "SHOPPING_MALL", "SOLARIUM", "SPA", "SPORTS_BAR", "STEAM_BATH", "STORAGE_SPACE", "SUNDRY_CONVENIENCE_STORE", "TECHNICAL_CONCIERGE", "THEATRE_DESK", "TOUR_SIGHTSEEING_DESK", "TRANSLATION_SERVICES", "TRAVEL_AGENCY", "TRUCK_PARKING", "VALET_CLEANING", "DRY_CLEANING", "VALET_PARKING", "VENDING_MACHINES", "VIDEO_TAPES", "WAKEUP_SERVICE", "WHEELCHAIR_ACCESS", "WHIRLPOOL", "MULTILINGUAL_STAFF", "WEDDING_SERVICES", "BANQUET_FACILITIES", "BELL_STAFF_PORTER", "BEAUTY_SHOP_SALON", "COMPLIMENTARY_SELF_SERVICE_LAUNDRY", "DIRECT_DIAL_TELEPHONE", "FEMALE_TRAVELER_ROOM_FLOOR", "PHARMACY", "STABLES", "ONE_TWENTY_AC", "ONE_TWENTY_DC", "TWO_TWENTY_AC", "ACCESSIBLE_PARKING", "TWO_TWENTY_DC", "BARBEQUE_GRILLS", "WOMENS_CLOTHING", "MENS_CLOTHING", "CHILDRENS_CLOTHING", "SHOPS_AND_COMMERCIAL_SERVICES", "VIDEO_GAMES", "SPORTS_BAR_OPEN_FOR_LUNCH", "SPORTS_BAR_OPEN_FOR_DINNER", "ROOM_SERVICE_FULL_MENU", "ROOM_SERVICE_LIMITED_MENU", "ROOM_SERVICE_LIMITED_HOURS", "VALET_SAME_DAY_DRY_CLEANING", "BODY_SCRUB", "BODY_WRAP", "PUBLIC_AREA_AIR_CONDITIONED", "EFOLIO_AVAILABLE_TO_COMPANY", "INDIVIDUAL_EFOLIO_AVAILABLE", "VIDEO_REVIEW_BILLING", "BUTLER_SERVICE", "COMPLIMENTARY_IN_ROOM_COFFEE_OR_TEA", "COMPLIMENTARY_BUFFET_BREAKFAST", "COMPLIMENTARY_COCKTAILS", "COMPLIMENTARY_COFFEE_IN_LOBBY", "COMPLIMENTARY_CONTINENTAL_BREAKFAST", "COMPLIMENTARY_FULL_AMERICAN_BREAKFAST", "DINNER_DELIVERY_SERVICE_FROM_LOCAL_RESTAURANT", "COMPLIMENTARY_NEWSPAPER_DELIVERED_TO_ROOM", "COMPLIMENTARY_NEWSPAPER_IN_LOBBY", "COMPLIMENTARY_SHOESHINE", "EVENING_RECEPTION", "FRONT_DESK", "GROCERY_SHOPPING_SERVICE_AVAILABLE", "HALAL_FOOD_AVAILABLE", "KOSHER_FOOD_AVAILABLE", "LIMOUSINE_SERVICE", "MANAGERS_RECEPTION", "MEDICAL_FACILITIES_SERVICE", "TELEPHONE_JACK_ADAPTOR_AVAILABLE", "ALL_INCLUSIVE_MEAL_PLAN", "BUFFET_BREAKFAST", "COMMUNAL_BAR_AREA", "CONTINENTAL_BREAKFAST", "FULL_MEAL_PLAN", "FULL_AMERICAN_BREAKFAST", "MEAL_PLAN_AVAILABLE", "MODIFIED_AMERICAN_MEAL_PLAN", "FOOD_AND_BEVERAGE_OUTLETS", "LOUNGES_BARS", "BARBER_SHOP", "VIDEO_CHECKOUT", "ONSITE_LAUNDRY", "TWENTY_FOUR_HOUR_FOOD_AND_BEVERAGE_KIOSK", "CONCIERGE_LOUNGE", "PARKING_FEE_MANAGED_BY_HOTEL", "TRANSPORTATION", "BREAKFAST_SERVED_IN_RESTAURANT", "LUNCH_SERVED_IN_RESTAURANT", "DINNER_SERVED_IN_RESTAURANT", "FULL_SERVICE_HOUSEKEEPING", "LIMITED_SERVICE_HOUSEKEEPING", "HIGH_SPEED_INTERNET_ACCESS_FOR_LAPTOP_IN_PUBLIC_AREAS", "WIRELESS_INTERNET_CONNECTION_IN_PUBLIC_AREAS", "ADDITIONAL_SERVICES_AMENITIES_FACILITIES_ON_PROPERTY", "TRANSPORTATION_SERVICES_LOCAL_AREA", "TRANSPORTATION_SERVICES_LOCAL_OFFICE", "DVD_VIDEO_RENTAL", "PARKING_LOT", "PARKING_DECK", "STREET_SIDE_PARKING", "COCKTAIL_LOUNGE_WITH_ENTERTAINMENT", "COCKTAIL_LOUNGE_WITH_LIGHT_FARE", "MOTORCYCLE_PARKING", "PHONE_SERVICES", "BALLROOM", "BUS_PARKING", "CHILDRENS_PLAY_AREA", "CHILDRENS_NURSERY", "DISCO", "EARLY_CHECK_IN", "LOCKER_ROOM", "NON_SMOKING_ROOMS_GENERIC", "TRAIN_ACCESS", "AEROBICS_INSTRUCTION", "BAGGAGE_HOLD", "BICYCLE_RENTALS", "DIETICIAN", "LATE_CHECK_OUT_AVAILABLE", "PET_SITTING_SERVICES", "PRAYER_MATS", "SPORTS_TRAINER", "TURNDOWN_SERVICE", "DVDS_VIDEOS_CHILDREN", "BANK", "LOBBY_COFFEE_SERVICE", "BANKING_SERVICES", "STAIRWELLS", "PET_AMENITIES_AVAILABLE", "EXHIBITION_CONVENTION_FLOOR", "LONG_TERM_PARKING", "CHILDREN_NOT_ALLOWED", "CHILDREN_WELCOME", "COURTESY_CAR", "HOTEL_DOES_NOT_PROVIDE_PORNOGRAPHIC_FILMS_TV", "HOTSPOTS", "FREE_HIGH_SPEED_INTERNET_CONNECTION", "INTERNET_SERVICES", "PETS_ALLOWED", "GOURMET_HIGHLIGHTS", "CATERING_SERVICES", "COMPLIMENTARY_BREAKFAST", "BUSINESS_CENTER", "BUSINESS_SERVICES", "SECURED_PARKING", "RACQUETBALL", "SNOW_SPORTS", "TENNIS_COURT", "WATER_SPORTS", "CHILD_PROGRAMS", "GOLF", "HORSEBACK_RIDING", "OCEANFRONT", "BEACHFRONT", "HAIR_DRYER", "IRONING_BOARD", "HEATED_GUEST_ROOMS", "TOILET", "PARLOR", "VIDEO_GAME_PLAYER", "THALASSOTHERAPY", "PRIVATE_DINING_FOR_GROUPS", "HEARING_IMPAIRED_SERVICES", "CARRYOUT_BREAKFAST", "DELUXE_CONTINENTAL_BREAKFAST", "HOT_CONTINENTAL_BREAKFAST", "HOT_BREAKFAST", "PRIVATE_POOL", "CONNECTING_ROOMS", "DATA_PORT", "EXTERIOR_CORRIDORS", "GULF_VIEW", "ACCESSIBLE_ROOMS", "HIGH_SPEED_INTERNET_ACCESS", "INTERIOR_CORRIDORS", "HIGH_SPEED_WIRELESS", "KITCHENETTE", "PRIVATE_BATH_OR_SHOWER", "FIRE_SAFETY_COMPLIANT", "WELCOME_DRINK", "BOARDING_PASS_PRINT_OUT_AVAILABLE", "PRINTING_SERVICES_AVAILABLE", "ALL_PUBLIC_AREAS_NON_SMOKING", "MEETING_ROOMS", "MOVIES_IN_ROOM", "SECRETARIAL_SERVICE", "SNOW_SKIING", "WATER_SKIING", "FAX_SERVICE", "GREAT_ROOM", "LOBBY", "MULTIPLE_PHONE_LINES_BILLED_SEPARATELY", "UMBRELLAS", "GAS_STATION", "GROCERY_STORE", "TWENTY_FOUR_HOUR_COFFEE_SHOP", "AIRPORT_SHUTTLE_SERVICE", "LUGGAGE_SERVICE", "PIANO_BAR", "VIP_SECURITY", "COMPLIMENTARY_WIRELESS_INTERNET", "CONCIERGE_BREAKFAST", "SAME_GENDER_FLOOR", "CHILDREN_PROGRAMS", "BUILDING_MEETS_LOCAL_STATE_AND_COUNTRY_BUILDING_CODES", "INTERNET_BROWSER_ON_TV", "NEWSPAPER", "PARKING_CONTROLLED_ACCESS_GATES_TO_ENTER_PARKING_AREA", "HOTEL_SAFE_DEPOSIT_BOX_NOT_ROOM_SAFE_BOX", "STORAGE_SPACE_AVAILABLE_FEE", "TYPE_OF_ENTRANCES_TO_GUEST_ROOMS", "BEVERAGE_COCKTAIL", "CELL_PHONE_RENTAL", "COFFEE_TEA", "EARLY_CHECK_IN_GUARANTEE", "FOOD_AND_BEVERAGE_DISCOUNT", "LATE_CHECK_OUT_GUARANTEE", "ROOM_UPGRADE_CONFIRMED", "ROOM_UPGRADE_ON_AVAILABILITY", "SHUTTLE_TO_LOCAL_BUSINESSES", "SHUTTLE_TO_LOCAL_ATTRACTIONS", "SOCIAL_HOUR", "VIDEO_BILLING", "WELCOME_GIFT", "HYPOALLERGENIC_ROOMS", "ROOM_AIR_FILTRATION", "SMOKE_FREE_PROPERTY", "WATER_PURIFICATION_SYSTEM_IN_USE", "POOLSIDE_SERVICE", "CLOTHING_STORE", "ELECTRIC_CAR_CHARGING_STATIONS", "OFFICE_RENTAL", "PIANO", "INCOMING_FAX", "OUTGOING_FAX", "SEMI_PRIVATE_SPACE", "LOADING_DOCK", "BABY_KIT", "CHILDRENS_BREAKFAST", "CLOAKROOM_SERVICE", "COFFEE_LOUNGE", "EVENTS_TICKET_SERVICE", "LATE_CHECK_IN", "LIMITED_PARKING", "OUTDOOR_SUMMER_BAR_CAFE", "NO_PARKING_AVAILABLE", "BEER_GARDEN", "GARDEN_LOUNGE_BAR", "SUMMER_TERRACE", "WINTER_TERRACE", "ROOF_TERRACE", "BEACH_BAR", "HELICOPTER_SERVICE", "FERRY", "TAPAS_BAR", "CAFE_BAR", "SNACK_BAR", "GUESTROOM_WIRED_INTERNET", "GUESTROOM_WIRELESS_INTERNET", "FITNESS_CENTER", "ALCOHOLIC_BEVERAGES", "NON_ALCOHOLIC_BEVERAGES", "HEALTH_AND_BEAUTY_SERVICES", "LOCAL_CALLS", "MINIBAR", "REFRIGERATOR", "IN_ROOM_SAFE", "SMOKING_ROOMS_AVAILBLE", "MOUNTAIN_VIEW", "POOL_VIEW", "BEACH_VIEW", "OCEAN_VIEW", "ROOMS_WITH_BALCONY", "FAMILY_ROOM", "CRIB_CHARGE", "ROLLAWAY_ADULT", "FREE_WIFI_IN_MEETING_ROOMS", "ECO_FRIENDLY", "EXTRA_PERSON", "STAY_SAFE", "ENHANCED_HYGIENE_CLEANLINESS_PROTOCOLS"

  - `hotelPnr.hotelInfo.amenities.additionalInfo` (string)
    Amenity description
    Example: Complimentary in-room coffee or tea

  - `hotelPnr.hotelInfo.amenities.complimentary` (boolean)
    Is Amenity complimentary
    Example: true

  - `hotelPnr.hotelInfo.additionalAmenities` (array)
    List of amenities provided by the supplier.
    Example: ["Room service","Wifi"]

  - `hotelPnr.hotelInfo.imageSets` (array)

  - `hotelPnr.hotelInfo.imageSets.category` (string, required)
    Category of image such as exterior, spa, etc.
    Enum: "UNKNOWN_CATEGORY", "EXTERIOR_VIEW", "LOBBY_VIEW", "POOL_VIEW", "RESTAURANT", "HEALTH_CLUB", "GUEST_ROOM", "SUITE", "MEETING_ROOM", "BALLROOM", "GOLF_COURSE", "BEACH", "SPA", "BAR_OR_LOUNGE", "RECREATIONAL_FACILITY", "LOGO", "BASICS", "MAP", "PROMOTIONAL", "HOT_NEWS", "MISCELLANEOUS", "GUEST_ROOM_AMENITY", "PROPERTY_AMENITY", "BUSINESS_CENTER"

  - `hotelPnr.hotelInfo.descriptions` (array)

  - `hotelPnr.hotelInfo.descriptions.type` (string)
    Hotel description type
    Enum: "GENERAL", "ALERTS", "DINING", "FACILITIES", "RECREATION", "SERVICES", "ATTRACTIONS", "CANCELLATION_POLICY", "DEPOSIT_POLICY", "DIRECTIONS", "POLICIES", "SAFETY", "TRANSPORTATION"

  - `hotelPnr.hotelInfo.descriptions.value` (string)
    Hotel description value

  - `hotelPnr.hotelInfo.thirdPartyHotelCodes` (array)

  - `hotelPnr.hotelInfo.thirdPartyHotelCodes.hotelCode` (string, required)
    Third party hotel code.

  - `hotelPnr.hotelInfo.thirdPartyHotelCodes.hotelCodeType` (string, required)
    Type of the third party.
    Enum: "SABRE_CSL", "SABRE_TN", "EXPEDIA_RAPID", "MARRIOTT", "GIATA", "BCD", "AMADEUS_GDS", "BOOKING_COM", "PREMIER_INN", "HOTEL_HUB", "TRAVELODGE"

  - `hotelPnr.numberOfRooms` (integer, required)
    Number of rooms booked.
    Example: 1

  - `hotelPnr.payment` (object, required)
    Payment method.

  - `hotelPnr.payment.paymentType` (string, required)
    Payment type.
    Enum: "UNKNOWN", "PAY_AT_HOTEL", "PREPAID", "OTHER"

  - `hotelPnr.payment.description` (string)
    Payment method, if payment type is OTHER.

  - `hotelPnr.room` (object, required)
    Room info

  - `hotelPnr.room.bedCount` (integer, required)
    Number of rooms.
    Example: 1

  - `hotelPnr.room.bedType` (string, required)
    Bed types.
    Enum: "UNKNOWN_BED_TYPE", "DOUBLE", "FUTON", "KING", "MURPHY", "QUEEN", "SOFA", "TATAMI_MATS", "TWIN", "SINGLE", "FULL", "RUN_OF_THE_HOUSE", "DORM", "WATER", "PULL_OUT", "TWIN_XL"

  - `hotelPnr.room.cancellationPolicy` (object, required)
    Cancellation policy info.

  - `hotelPnr.room.cancellationPolicy.policy` (string, required)
    Indicates whether the booking is refundable or not.
    Enum: "UNKNOWN", "NON_REFUNDABLE", "FREE_CANCELLATION_UNTIL", "PARTIALLY_REFUNDABLE"

  - `hotelPnr.room.cancellationPolicy.currentlyRefundable` (string)
    Refundable status that is currently applicable in the hotel timezone.
FALSE even if it is partially refundable.
    Enum: "TRUE", "FALSE"

  - `hotelPnr.room.cancellationPolicy.cancellableStatus` (string)
    Whether the booking can be cancelled.
UNSPECIFIED and CANCELLABLE are treated as cancellable.
Some suppliers (e.g. Premier Inn) block cancellation on non-refundable rates.
    Enum: "CANCELLABLE_STATUS_UNSPECIFIED", "CANCELLABLE", "NOT_CANCELLABLE"

  - `hotelPnr.room.rateInfo` (object, required)
    Rate info for the booking

  - `hotelPnr.room.rateInfo.totalRate` (object, required)
    Rate info for non-air pnr.

  - `hotelPnr.room.rateInfo.totalRate.extras` (array)
    List of extras.

  - `hotelPnr.room.rateInfo.totalRate.extras.type` (string, required)
    Charge type.
    Example: SERVICE_CHARGE

  - `hotelPnr.room.rateInfo.totalRate.commission` (object)
    Commission

  - `hotelPnr.room.rateInfo.totalRate.commission.percent` (number)
    The percentage of the base amount that we are getting as commission
    Example: 10

  - `hotelPnr.room.rateInfo.totalRate.includesCommission` (boolean)
    Whether the rate includes commission
    Example: false

  - `hotelPnr.room.rateInfo.totalRate.taxBreakdown` (object)
    Tax breakdown

  - `hotelPnr.room.rateInfo.totalRate.taxBreakdown.tax` (array)
    List of taxes for this ticket

  - `hotelPnr.room.rateInfo.totalRate.taxBreakdown.tax.taxCode` (string)
    Tax code

  - `hotelPnr.room.rateInfo.totalRate.refundInfo` (object)
    Refund info

  - `hotelPnr.room.rateInfo.totalRate.refundInfo.refundVoucher` (object)
    Voucher details

  - `hotelPnr.room.rateInfo.totalRate.refundInfo.refundVoucher.amount` (object, required)
    Money object containing just amount and currency code.

  - `hotelPnr.room.rateInfo.totalRate.refundInfo.refundVoucher.amount.amount` (number, required)
    Amount
    Example: 510

  - `hotelPnr.room.rateInfo.totalRate.refundInfo.refundVoucher.amount.currencyCode` (string, required)
    The 3-letter currency code defined in ISO 4217.
    Example: GBP

  - `hotelPnr.room.rateInfo.rateCode` (string)
    Rate Code used for the booking
    Example: SIG

  - `hotelPnr.room.rateInfo.isModifiable` (boolean)
    Flag to indicate if the rate is modifiable
    Example: false

  - `hotelPnr.room.rateInfo.isFopModifiable` (boolean)
    Flag to indicate if the form of payment is modifiable
    Example: true

  - `hotelPnr.room.rateInfo.nightlyRates` (array)
    Nightly rates for the booking.

  - `hotelPnr.room.rateInfo.ratePlanName` (string)
    Name of the rate plan used for the booking, e.g. a negotiated corporate rate name.
    Example: Local Negotiated Rate

  - `hotelPnr.room.roomName` (string)
    Name of the room.
    Example: Standard Twin Room (City View)

  - `hotelPnr.room.imageSets` (array)

  - `hotelPnr.room.meals` (object)
    Meal details for the room.

  - `hotelPnr.room.meals.mealsIncluded` (array)

  - `hotelPnr.room.meals.mealPlan` (string, required)
    Type of meal plan
    Enum: "UNKNOWN", "ALL_INCLUSIVE", "AMERICAN", "BED_AND_BREAKFAST", "BUFFET_BREAKFAST", "CARIBBEAN_BREAKFAST", "CONTINENTAL_BREAKFAST", "ENGLISH_BREAKFAST", "EUROPEAN_PLAN", "FAMILY_PLAN", "FULL_BOARD", "FULL_BREAKFAST", "HALF_BOARD_MODIFIED_AMERICAN_PLAN", "AS_BROCHURED", "ROOM_ONLY", "SELF_CATERING", "BERMUDA", "DINNER_BED_AND_BREAKFAST_PLAN", "FAMILY_AMERICAN", "BREAKFAST_MEAL_PLAN", "MODIFIED", "LUNCH_MEAL_PLAN", "DINNER_MEAL_PLAN", "BREAKFAST_AND_LUNCH"

  - `hotelPnr.room.roomAmenities` (array)

  - `hotelPnr.room.roomAmenities.additionalInfo` (string)
    Extra information about the room amenity

  - `hotelPnr.room.roomAmenities.isComplimentary` (boolean)
    Is amenity complimentary
    Example: true

  - `hotelPnr.room.roomAmenities.roomAmenityType` (string, required)
    Room amenity type
    Enum: "UNKNOWN", "ADJOINING_ROOMS", "AIR_CONDITIONING", "ALARM_CLOCK", "ALL_NEWS_CHANNEL", "AM_FM_RADIO", "BABY_LISTENING_DEVICE", "BALCONY_LANAI_TERRACE", "BARBEQUE_GRILLS", "BATH_TUB_WITH_SPRAY_JETS", "BATHROBE", "BATHROOM_AMENITIES", "BATHROOM_TELEPHONE", "BATHTUB", "BATHTUB_ONLY", "BATHTUB_SHOWER_COMBINATION", "BIDET", "BOTTLED_WATER", "CABLE_TELEVISION", "COFFEE_TEA_MAKER", "COLOR_TELEVISION", "COMPUTER", "CONNECTING_ROOMS", "CONVERTERS_VOLTAGE_ADAPTORS", "COPIER", "CORDLESS_PHONE", "CRIBS", "DATA_PORT", "DESK", "DESK_WITH_LAMP", "DINING_GUIDE", "DIRECT_DIAL_PHONE_NUMBER", "DISHWASHER", "DOUBLE_BEDS", "DUAL_VOLTAGE_OUTLET", "ELECTRICAL_CURRENT_VOLTAGE", "ERGONOMIC_CHAIR", "EXTENDED_PHONE_CORD", "FAX_MACHINE", "FIRE_ALARM", "FIRE_ALARM_WITH_LIGHT", "FIREPLACE", "FREE_TOLL_FREE_CALLS", "FREE_CALLS", "FREE_CREDIT_CARD_ACCESS_CALLS", "FREE_LOCAL_CALLS", "FREE_MOVIES_VIDEO", "FULL_KITCHEN", "GRAB_BARS_IN_BATHROOM", "GRECIAN_TUB", "HAIRDRYER", "HIGH_SPEED_INTERNET_CONNECTION", "INTERACTIVE_WEB_TV", "INTERNATIONAL_DIRECT_DIALING", "INTERNET_ACCESS", "IRON", "IRONING_BOARD", "WHIRPOOL", "KING_BED", "KITCHEN", "KITCHEN_SUPPLIES", "KITCHENETTE", "KNOCK_LIGHT", "LAPTOP", "LARGE_DESK", "LARGE_WORK_AREA", "LAUNDRY_BASKET_CLOTHES_HAMPER", "LOFT", "MICROWAVE", "MINIBAR", "MODEM", "MODEM_JACK", "MULTILINE_PHONE", "NEWSPAPER", "NONSMOKING", "NOTEPADS", "OFFICE_SUPPLIES", "OVEN", "PAY_PER_VIEW_MOVIES_ON_TV", "PENS", "PHONE_IN_BATHROOM", "PLATES_AND_BOWLS", "POTS_AND_PANS", "PRAYER_MATS", "PRINTER", "PRIVATE_BATHROOM", "QUEEN_BED", "RECLINER", "REFRIGERATOR", "REFRIGERATOR_WITH_ICE_MAKER", "REMOTE_CONTROL_TELEVISION", "ROLLAWAY_BED", "SAFE", "SCANNER", "SEPARATE_CLOSET", "SEPARATE_MODEM_LINE_AVAILABLE", "SHOE_POLISHER", "SHOWER_ONLY", "SILVERWARE_UTENSILS", "SITTING_AREA", "SMOKE_DETECTORS", "SMOKING", "SOFA_BED", "SPEAKER_PHONE", "STEREO", "STOVE", "TAPE_RECORDER", "TELEPHONE", "TELEPHONE_FOR_HEARING_IMPAIRED", "TELEPHONES_WITH_MESSAGE_LIGHT", "TOASTER_OVEN", "TROUSER_PANT_PRESS", "TURN_DOWN_SERVICE", "TWIN_BED", "VAULTED_CEILINGS", "VCR_MOVIES", "VCR_PLAYER", "VIDEO_GAMES_AMENITY", "VOICE_MAIL", "WAKEUP_CALLS", "WATER_CLOSET", "WATER_PURIFICATION_SYSTEM", "WET_BAR", "WIRELESS_INTERNET_CONNECTION", "WIRELESS_KEYBOARD", "ADAPTOR_AVAILABLE_FOR_TELEPHONE_PC_USE", "AIR_CONDITIONING_INDIVIDUALLY_CONTROLLED_IN_ROOM", "BATHTUB_ANDWHIRLPOOL_SEPARATE", "TELEPHONE_WITH_DATA_PORTS", "CD_PLAYER", "COMPLIMENTARY_LOCAL_CALLS_TIME_LIMIT", "EXTRA_PERSON_CHARGE_FOR_ROLLAWAY_USE", "DOWN_FEATHER_PILLOWS", "DESK_WITH_ELECTRICAL_OUTLET", "ESPN_AVAILABLE", "FOAM_PILLOWS", "HBO_AVAILABLE", "HIGH_CEILINGS", "MARBLE_BATHROOM", "LIST_OF_MOVIE_CHANNELS_AVAILABLE", "PETS_ALLOWED", "OVERSIZED_BATHTUB", "SHOWER", "SINK_INROOM", "SOUNDPROOFED_ROOM", "STORAGE_SPACE", "TABLES_AND_CHAIRS", "TWOLINE_PHONE", "WALKIN_CLOSET", "WASHER_DRYER", "WEIGHT_SCALE", "WELCOME_GIFT", "SPARE_ELECTRICAL_OUTLET_AVAILABLE_AT_DESK", "NONREFUNDABLE_CHARGE_FOR_PETS", "REFUNDABLE_DEPOSIT_FOR_PETS", "SEPARATE_TUB_AND_SHOWER", "ENTRANCE_TYPE_TO_GUEST_ROOM", "CEILING_FAN", "CNN_AVAILABLE", "ELECTRICAL_ADAPTORS_AVAILABLE", "BUFFET_BREAKFAST", "ACCESSIBLE_ROOM", "CLOSETS_IN_ROOM", "DVD_PLAYER", "MINIREFRIGERATOR", "SEPARATE_LINE_BILLING_FOR_MULTILINE_PHONE", "SELFCONTROLLED_HEATING_COOLING_SYSTEM", "TOASTER", "ANALOG_DATA_PORT", "COLLECT_CALLS", "INTERNATIONAL_CALLS", "CARRIER_ACCESS", "INTERSTATE_CALLS", "INTRASTATE_CALLS", "LOCAL_CALLS", "LONG_DISTANCE_CALLS", "OPERATORASSISTED_CALLS", "CREDIT_CARD_ACCESS_CALLS", "CALLING_CARD_CALLS", "TOLL_FREE_CALLS", "UNIVERSAL_AC_DC_ADAPTORS", "BATHTUB_SEAT", "CANOPY_POSTER_BED", "CUPS_GLASSWARE", "ENTERTAINMENT_CENTER", "FAMILY_OVERSIZED_ROOM", "HYPOALLERGENIC_BED", "HYPOALLERGENIC_PILLOWS", "LAMP", "MEAL_INCLUDED_BREAKFAST", "MEAL_INCLUDED_CONTINENTAL_BREAKFAST", "MEAL_INCLUDED_DINNER", "MEAL_INCLUDED_LUNCH", "SHARED_BATHROOM", "TELEPHONE_TDD_TEXTPHONE", "WATER_BED", "EXTRA_ADULT_CHARGE", "EXTRA_CHILD_CHARGE", "EXTRA_CHILD_CHARGE_FOR_ROLLAWAY_USE", "MEAL_INCLUDED_FULL_AMERICAN_BREAKFAST", "FUTON", "MURPHY_BED", "TATAMI_MATS", "SINGLE_BED", "ANNEX_ROOM", "FREE_NEWSPAPER", "HONEYMOON_SUITES", "COMPLIMENTARY_HIGH_SPEED_INTERNET_IN_ROOM", "MAID_SERVICE", "PC_HOOKUP_IN_ROOM", "SATELLITE_TELEVISION", "VIP_ROOMS", "CELL_PHONE_RECHARGER", "DVR_PLAYER", "IPOD_DOCKING_STATION", "MEDIA_CENTER", "PLUG_AND_PLAY_PANEL", "SATELLITE_RADIO", "VIDEO_ON_DEMAND", "EXTERIOR_CORRIDORS", "GULF_VIEW", "ACCESSIBLE_ROOM_AMENITY", "INTERIOR_CORRIDORS", "MOUNTAIN_VIEW", "OCEAN_VIEW", "HIGH_SPEED_INTERNET_ACCESS_FEE", "HIGH_SPEED_WIRELESS", "PREMIUM_MOVIE_CHANNELS", "SLIPPERS", "FIRST_NIGHTERS_KIT", "CHAIR_PROVIDED_WITH_DESK", "PILLOW_TOP_MATTRESS", "FEATHER_BED", "DUVET", "LUXURY_LINEN_TYPE", "INTERNATIONAL_CHANNELS", "PANTRY", "DISHCLEANING_SUPPLIES", "DOUBLE_VANITY", "LIGHTED_MAKEUP_MIRROR", "UPGRADED_BATHROOM_AMENITIES", "VCR_PLAYER_AVAILABLE_AT_FRONT_DESK", "INSTANT_HOT_WATER", "OUTDOOR_SPACE", "HINOKI_TUB", "PRIVATE_POOL", "HIGH_DEFINITION_HD_FLAT_PANEL_TELEVISION_32_INCHES_OR_GREATER", "ROOM_WINDOWS_OPEN", "BEDDING_TYPE_UNKNOWN_OR_UNSPECIFIED", "FULL_BED", "ROUND_BED", "TV", "CHILD_ROLLAWAY", "DVD_PLAYER_AVAILABLE_AT_FRONT_DESK", "VIDEO_GAME_PLAYER", "VIDEO_GAME_PLAYER_AVAILABLE_AT_FRONT_DESK", "DINING_ROOM_SEATS", "FULL_SIZE_MIRROR", "MOBILE_CELLULAR_PHONES", "MOVIES", "MULTIPLE_CLOSETS", "PLATES_GLASSWARE", "SAFE_LARGE_ENOUGH_TO_ACCOMMODATE_A_LAPTOP", "BED_LINEN_THREAD_COUNT", "BLACKOUT_CURTAIN", "BLURAY_PLAYER", "DEVICE_WITH_MP3", "NO_ADULT_CHANNELS_OR_ADULT_CHANNEL_LOCK", "NONALLERGENIC_ROOM", "PILLOW_TYPE", "SEATING_AREA_WITH_SOFA_CHAIR", "SEPARATE_TOILET_AREA", "WEB_ENABLED", "WIDESCREEN_TV", "OTHER_DATA_CONNECTION", "PHONELINE_BILLED_SEPARATELY", "SEPARATE_TUB_OR_SHOWER", "VIDEO_GAMES", "ROOF_VENTILATOR", "CHILDRENS_PLAYPEN", "PLUNGE_POOL", "DVD_MOVIES", "AIR_FILTRATION", "BRAILLE_SIGNAGE", "WHEELCHAIR_ACCESSIBLE_VANITY", "LOWERED_ELECTRICAL_OUTLETS", "LOWERED_PEEPHOLE", "LOWERED_LOCKS", "LOWERED_COUNTERS", "LOWERED_DESK", "LOWERED_BED", "LEVER_DOOR_HANDLES", "ACCESSIBLE_COUNTER_HEIGHT", "ACCESSIBLE_DOORWAY_WIDTH", "ACCESSIBLE_VANITY_HEIGHT", "ACCESSIBLE_BED_HEIGHT", "ACCESSIBLE_DESK_HEIGHT", "ACCESSIBLE_SHOWER_WIDTH"

  - `hotelPnr.room.amenities` (array)

  - `hotelPnr.room.amenities.additionalInfo` (string)
    Extra information about the room amenity

  - `hotelPnr.room.amenities.complimentary` (boolean)
    Is amenity complimentary
    Example: true

  - `hotelPnr.room.amenities.type` (string)
    Room amenity type
    Enum: "UNKNOWN", "ADJOINING_ROOMS", "AIR_CONDITIONING", "ALARM_CLOCK", "ALL_NEWS_CHANNEL", "AM_FM_RADIO", "BABY_LISTENING_DEVICE", "BALCONY_LANAI_TERRACE", "BARBEQUE_GRILLS", "BATH_TUB_WITH_SPRAY_JETS", "BATHROBE", "BATHROOM_AMENITIES", "BATHROOM_TELEPHONE", "BATHTUB", "BATHTUB_ONLY", "BATHTUB_SHOWER_COMBINATION", "BIDET", "BOTTLED_WATER", "CABLE_TELEVISION", "COFFEE_TEA_MAKER", "COLOR_TELEVISION", "COMPUTER", "CONNECTING_ROOMS", "CONVERTERS_VOLTAGE_ADAPTORS", "COPIER", "CORDLESS_PHONE", "CRIBS", "DATA_PORT", "DESK", "DESK_WITH_LAMP", "DINING_GUIDE", "DIRECT_DIAL_PHONE_NUMBER", "DISHWASHER", "DOUBLE_BEDS", "DUAL_VOLTAGE_OUTLET", "ELECTRICAL_CURRENT_VOLTAGE", "ERGONOMIC_CHAIR", "EXTENDED_PHONE_CORD", "FAX_MACHINE", "FIRE_ALARM", "FIRE_ALARM_WITH_LIGHT", "FIREPLACE", "FREE_TOLL_FREE_CALLS", "FREE_CALLS", "FREE_CREDIT_CARD_ACCESS_CALLS", "FREE_LOCAL_CALLS", "FREE_MOVIES_VIDEO", "FULL_KITCHEN", "GRAB_BARS_IN_BATHROOM", "GRECIAN_TUB", "HAIRDRYER", "HIGH_SPEED_INTERNET_CONNECTION", "INTERACTIVE_WEB_TV", "INTERNATIONAL_DIRECT_DIALING", "INTERNET_ACCESS", "IRON", "IRONING_BOARD", "WHIRPOOL", "KING_BED", "KITCHEN", "KITCHEN_SUPPLIES", "KITCHENETTE", "KNOCK_LIGHT", "LAPTOP", "LARGE_DESK", "LARGE_WORK_AREA", "LAUNDRY_BASKET_CLOTHES_HAMPER", "LOFT", "MICROWAVE", "MINIBAR", "MODEM", "MODEM_JACK", "MULTILINE_PHONE", "NEWSPAPER", "NONSMOKING", "NOTEPADS", "OFFICE_SUPPLIES", "OVEN", "PAY_PER_VIEW_MOVIES_ON_TV", "PENS", "PHONE_IN_BATHROOM", "PLATES_AND_BOWLS", "POTS_AND_PANS", "PRAYER_MATS", "PRINTER", "PRIVATE_BATHROOM", "QUEEN_BED", "RECLINER", "REFRIGERATOR", "REFRIGERATOR_WITH_ICE_MAKER", "REMOTE_CONTROL_TELEVISION", "ROLLAWAY_BED", "SAFE", "SCANNER", "SEPARATE_CLOSET", "SEPARATE_MODEM_LINE_AVAILABLE", "SHOE_POLISHER", "SHOWER_ONLY", "SILVERWARE_UTENSILS", "SITTING_AREA", "SMOKE_DETECTORS", "SMOKING", "SOFA_BED", "SPEAKER_PHONE", "STEREO", "STOVE", "TAPE_RECORDER", "TELEPHONE", "TELEPHONE_FOR_HEARING_IMPAIRED", "TELEPHONES_WITH_MESSAGE_LIGHT", "TOASTER_OVEN", "TROUSER_PANT_PRESS", "TURN_DOWN_SERVICE", "TWIN_BED", "VAULTED_CEILINGS", "VCR_MOVIES", "VCR_PLAYER", "VIDEO_GAMES_AMENITY", "VOICE_MAIL", "WAKEUP_CALLS", "WATER_CLOSET", "WATER_PURIFICATION_SYSTEM", "WET_BAR", "WIRELESS_INTERNET_CONNECTION", "WIRELESS_KEYBOARD", "ADAPTOR_AVAILABLE_FOR_TELEPHONE_PC_USE", "AIR_CONDITIONING_INDIVIDUALLY_CONTROLLED_IN_ROOM", "BATHTUB_ANDWHIRLPOOL_SEPARATE", "TELEPHONE_WITH_DATA_PORTS", "CD_PLAYER", "COMPLIMENTARY_LOCAL_CALLS_TIME_LIMIT", "EXTRA_PERSON_CHARGE_FOR_ROLLAWAY_USE", "DOWN_FEATHER_PILLOWS", "DESK_WITH_ELECTRICAL_OUTLET", "ESPN_AVAILABLE", "FOAM_PILLOWS", "HBO_AVAILABLE", "HIGH_CEILINGS", "MARBLE_BATHROOM", "LIST_OF_MOVIE_CHANNELS_AVAILABLE", "PETS_ALLOWED", "OVERSIZED_BATHTUB", "SHOWER", "SINK_INROOM", "SOUNDPROOFED_ROOM", "STORAGE_SPACE", "TABLES_AND_CHAIRS", "TWOLINE_PHONE", "WALKIN_CLOSET", "WASHER_DRYER", "WEIGHT_SCALE", "WELCOME_GIFT", "SPARE_ELECTRICAL_OUTLET_AVAILABLE_AT_DESK", "NONREFUNDABLE_CHARGE_FOR_PETS", "REFUNDABLE_DEPOSIT_FOR_PETS", "SEPARATE_TUB_AND_SHOWER", "ENTRANCE_TYPE_TO_GUEST_ROOM", "CEILING_FAN", "CNN_AVAILABLE", "ELECTRICAL_ADAPTORS_AVAILABLE", "BUFFET_BREAKFAST", "ACCESSIBLE_ROOM", "CLOSETS_IN_ROOM", "DVD_PLAYER", "MINIREFRIGERATOR", "SEPARATE_LINE_BILLING_FOR_MULTILINE_PHONE", "SELFCONTROLLED_HEATING_COOLING_SYSTEM", "TOASTER", "ANALOG_DATA_PORT", "COLLECT_CALLS", "INTERNATIONAL_CALLS", "CARRIER_ACCESS", "INTERSTATE_CALLS", "INTRASTATE_CALLS", "LOCAL_CALLS", "LONG_DISTANCE_CALLS", "OPERATORASSISTED_CALLS", "CREDIT_CARD_ACCESS_CALLS", "CALLING_CARD_CALLS", "TOLL_FREE_CALLS", "UNIVERSAL_AC_DC_ADAPTORS", "BATHTUB_SEAT", "CANOPY_POSTER_BED", "CUPS_GLASSWARE", "ENTERTAINMENT_CENTER", "FAMILY_OVERSIZED_ROOM", "HYPOALLERGENIC_BED", "HYPOALLERGENIC_PILLOWS", "LAMP", "MEAL_INCLUDED_BREAKFAST", "MEAL_INCLUDED_CONTINENTAL_BREAKFAST", "MEAL_INCLUDED_DINNER", "MEAL_INCLUDED_LUNCH", "SHARED_BATHROOM", "TELEPHONE_TDD_TEXTPHONE", "WATER_BED", "EXTRA_ADULT_CHARGE", "EXTRA_CHILD_CHARGE", "EXTRA_CHILD_CHARGE_FOR_ROLLAWAY_USE", "MEAL_INCLUDED_FULL_AMERICAN_BREAKFAST", "FUTON", "MURPHY_BED", "TATAMI_MATS", "SINGLE_BED", "ANNEX_ROOM", "FREE_NEWSPAPER", "HONEYMOON_SUITES", "COMPLIMENTARY_HIGH_SPEED_INTERNET_IN_ROOM", "MAID_SERVICE", "PC_HOOKUP_IN_ROOM", "SATELLITE_TELEVISION", "VIP_ROOMS", "CELL_PHONE_RECHARGER", "DVR_PLAYER", "IPOD_DOCKING_STATION", "MEDIA_CENTER", "PLUG_AND_PLAY_PANEL", "SATELLITE_RADIO", "VIDEO_ON_DEMAND", "EXTERIOR_CORRIDORS", "GULF_VIEW", "ACCESSIBLE_ROOM_AMENITY", "INTERIOR_CORRIDORS", "MOUNTAIN_VIEW", "OCEAN_VIEW", "HIGH_SPEED_INTERNET_ACCESS_FEE", "HIGH_SPEED_WIRELESS", "PREMIUM_MOVIE_CHANNELS", "SLIPPERS", "FIRST_NIGHTERS_KIT", "CHAIR_PROVIDED_WITH_DESK", "PILLOW_TOP_MATTRESS", "FEATHER_BED", "DUVET", "LUXURY_LINEN_TYPE", "INTERNATIONAL_CHANNELS", "PANTRY", "DISHCLEANING_SUPPLIES", "DOUBLE_VANITY", "LIGHTED_MAKEUP_MIRROR", "UPGRADED_BATHROOM_AMENITIES", "VCR_PLAYER_AVAILABLE_AT_FRONT_DESK", "INSTANT_HOT_WATER", "OUTDOOR_SPACE", "HINOKI_TUB", "PRIVATE_POOL", "HIGH_DEFINITION_HD_FLAT_PANEL_TELEVISION_32_INCHES_OR_GREATER", "ROOM_WINDOWS_OPEN", "BEDDING_TYPE_UNKNOWN_OR_UNSPECIFIED", "FULL_BED", "ROUND_BED", "TV", "CHILD_ROLLAWAY", "DVD_PLAYER_AVAILABLE_AT_FRONT_DESK", "VIDEO_GAME_PLAYER", "VIDEO_GAME_PLAYER_AVAILABLE_AT_FRONT_DESK", "DINING_ROOM_SEATS", "FULL_SIZE_MIRROR", "MOBILE_CELLULAR_PHONES", "MOVIES", "MULTIPLE_CLOSETS", "PLATES_GLASSWARE", "SAFE_LARGE_ENOUGH_TO_ACCOMMODATE_A_LAPTOP", "BED_LINEN_THREAD_COUNT", "BLACKOUT_CURTAIN", "BLURAY_PLAYER", "DEVICE_WITH_MP3", "NO_ADULT_CHANNELS_OR_ADULT_CHANNEL_LOCK", "NONALLERGENIC_ROOM", "PILLOW_TYPE", "SEATING_AREA_WITH_SOFA_CHAIR", "SEPARATE_TOILET_AREA", "WEB_ENABLED", "WIDESCREEN_TV", "OTHER_DATA_CONNECTION", "PHONELINE_BILLED_SEPARATELY", "SEPARATE_TUB_OR_SHOWER", "VIDEO_GAMES", "ROOF_VENTILATOR", "CHILDRENS_PLAYPEN", "PLUNGE_POOL", "DVD_MOVIES", "AIR_FILTRATION"

  - `hotelPnr.room.additionalAmenities` (array)

  - `hotelPnr.room.guaranteeType` (string)
    Guarantee type for the booking.
    Enum: "GUARANTEE", "DEPOSIT"

  - `hotelPnr.room.additionalDetails` (array)

  - `hotelPnr.room.additionalDetails.additionalDetailType` (string)
    Enum: "ADDITIONAL_DETAIL_TYPE_UNKNOWN", "RATE_DESCRIPTION", "PROPERTY_DESCRIPTION", "PROPERTY_LOCATION", "ROOM_INFORMATION", "GUARANTEE_INFORMATION", "DEPOSIT_INFORMATION", "CANCELLATION_INFORMATION", "CHECK_IN_CHECK_OUT_INFORMATION", "EXTRA_CHARGE_INFORMATION", "TAX_INFORMATION", "SERVICE_CHARGE_INFORMATION", "PACKAGE_INFORMATION", "COMMISSION_INFORMATION", "MISCELLANEOUS_INFORMATION", "PROMOTIONAL_INFORMATION", "INCLUSION_INFORMATION", "AMENITY_INFORMATION", "LATE_ARRIVAL_INFORMATION", "LATE_DEPARTURE_INFORMATION", "ADVANCED_BOOKING_INFORMATION", "EXTRA_PERSON_INFORMATION", "AREAS_SERVED", "ONSITE_FACILITIES_INFORMATION", "OFFSITE_FACILITIES_INFORMATION", "ONSITE_SERVICES_INFORMATION", "OFFSITE_SERVICES_INFORMATION", "EXTENDED_STAY_INFORMATION", "CORPORATE_BOOKING_INFORMATION", "BOOKING_GUIDELINES", "GOVERNMENT_BOOKING_POLICY", "GROUP_BOOKING_INFORMATION", "RATE_DISCLAIMER_INFORMATION", "VISA_TRAVEL_REQUIREMENT_INFORMATION", "SECURITY_INFORMATION", "ONSITE_RECREATIONAL_ACTIVITIES_INFORMATION", "OFFSITE_RECREATIONAL_ACTIVITIES_INFORMATION", "GENERAL_MEETING_PLANNING_INFORMATION", "GROUP_MEETING_PLANNING_INFORMATION", "CONTRACT_NEGOTIATED_BOOKING_INFORMATION", "TRAVEL_INDUSTRY_BOOKING_INFORMATION", "MEETING_ROOM_DESCRIPTION", "PET_POLICY_DESCRIPTION", "MEAL_PLAN_DESCRIPTION", "FAMILY_PLAN_DESCRIPTION", "CHILDREN_INFORMATION", "EARLY_CHECKOUT_DESCRIPTION", "SPECIAL_OFFERS_DESCRIPTION", "CATERING_DESCRIPTION", "ROOM_DECOR_DESCRIPTION", "OVERSOLD_POLICY_DESCRIPTION", "LAST_ROOM_AVAILABILITY_DESCRIPTION", "ROOM_TYPE_UPGRADE_DESCRIPTION", "DRIVING_DIRECTIONS", "DRIVING_DIRECTIONS_FROM_THE_NORTH", "DRIVING_DIRECTIONS_FROM_THE_SOUTH", "DRIVING_DIRECTIONS_FROM_THE_EAST", "DRIVING_DIRECTIONS_FROM_THE_WEST", "SURCHARGE_INFORMATION", "MINIMUM_STAY_INFORMATION", "MAXIMUM_STAY_INFORMATION", "CHECK_IN_POLICY", "CHECK_OUT_POLICY", "EXPRESS_CHECK_IN_POLICY", "EXPRESS_CHECK_OUT_POLICY", "FACILITY_RESTRICTIONS", "CUSTOMS_INFORMATION_FOR_MATERIAL", "SEASONS", "FOOD_AND_BEVERAGE_MINIMUMS_FOR_GROUPS", "DEPOSIT_POLICY_FOR_MASTER_ACCOUNT", "DEPOSIT_POLICY_FOR_RESERVATIONS", "RESTAURANT_SERVICES", "SPECIAL_EVENTS", "CUISINE_DESCRIPTION", "KEY_COLLECTION_INFO", "IMPORTANT_INFO"

  - `hotelPnr.room.additionalDetails.text` (string)

  - `hotelPnr.room.roomInfo` (object)

  - `hotelPnr.room.roomInfo.roomType` (string)
    Room Type
    Enum: "ROOM", "SUITE", "VILLA", "APARTMENT", "COTTAGE", "STUDIO", "UNKNOWN_ROOM"

  - `hotelPnr.room.roomInfo.typeClassDescription` (string)

  - `hotelPnr.room.roomInfo.roomView` (object)

  - `hotelPnr.room.roomInfo.roomView.type` (string)
    Enum: "UNKNOWN", "AIRPORT", "BAY", "CITY", "COURTYARD", "GOLF", "HARBOR", "INTERCOASTAL", "LAKE", "MARINA", "MOUNTAIN", "OCEAN", "POOL", "RIVER", "WATER", "BEACH", "GARDEN", "PARK", "FOREST", "RAIN_FOREST", "VARIOUS", "LIMITED", "SLOPE", "STRIP", "COUNTRYSIDE", "SEA", "GULF", "VALLEY"

  - `hotelPnr.room.roomInfo.roomView.roomClass` (array)

  - `hotelPnr.room.roomInfo.roomTypeCode` (string)
    Room type code.
    Example: 1QN

  - `hotelPnr.room.co2EmissionDetail` (object)
    The co2 emission detail for the hotel.

  - `hotelPnr.room.co2EmissionDetail.co2EmissionValue` (number, required)
    CO2 emission value in kg per room for the entire stay.
    Example: 10.5

  - `hotelPnr.room.rateMetadata` (object)
    Price Summary

  - `hotelPnr.room.rateMetadata.negotiatedRateType` (string)
    Enum: "NONE", "CORPORATE_RATE", "AGENCY_RATE"

  - `hotelPnr.vendorConfirmationNumber` (string, required)
    Hotel confirmation number
    Example: 2108528068

  - `hotelPnr.travelerInfos` (array)
    Information about travelers.

  - `hotelPnr.travelerInfos.travelerIdx` (integer, required)
    Index of traveler in travelers list to which this info belongs
    Example: 0

  - `hotelPnr.travelerInfos.loyaltyInfos` (array)

  - `hotelPnr.sortingPriority` (integer)
    Sorting priority amongst other pnrs
    Example: 0

  - `hotelPnr.vendorReferenceId` (string)
    Reference provided by vendors
    Example: AWKHGS

  - `hotelPnr.vendorCancellationId` (string)
    Cancellation reference provided by vendors
    Example: AWKHGS

  - `hotelPnr.preferredType` (array)
    Hotel preference

  - `hotelPnr.preferences` (array)
    Hotel preference

  - `hotelPnr.occupancy` (array)
    Occupancy information

  - `hotelPnr.occupancy.numAdults` (integer)
    Number of adults in the hotel pnr
    Example: 1

  - `hotelPnr.occupancy.numChildren` (integer)
    Number of children in the hotel pnr
    Example: 1

  - `hotelPnr.occupancy.childAges` (array)

  - `hotelPnr.occupancy.numInfants` (integer)
    Number of infants in the hotel pnr
    Example: 1

  - `hotelPnr.sourceStatus` (string)
    Source status code of the pnr

  - `hotelPnr.rebookReference` (object)
    Rate Assurance Rebooking information along with pnr references and savings

  - `hotelPnr.rebookReference.cancelledPnrIds` (array)
    Backward reference to the cancelled PNRs (if any) after rebooking.

  - `hotelPnr.rebookReference.rebookedPnrId` (string)
    Forward reference to the rebooked PNR (if any) after cancellation.
    Example: 1234567890

  - `hotelPnr.rebookReference.hotelRateAssuranceMetadata` (object)
    Savings information from the rate assurance rebooking

  - `hotelPnr.rebookReference.rebookType` (string)
    Indicates the reason for rebooking.
    Enum: "RATE_ASSURANCE", "MODIFY"

  - `hotelPnr.hotelSpecialRequests` (object)
    Hotel special requests

  - `hotelPnr.hotelSpecialRequests.roomLocations` (array)
    Room Location special request

  - `hotelPnr.hotelSpecialRequests.roomFeatures` (array)
    Room Features List

  - `hotelPnr.hotelSpecialRequests.checkIn` (string)
    Early or Late Check-in
    Enum: "EARLY_CHECK_IN", "LATE_CHECK_IN"

  - `hotelPnr.hotelSpecialRequests.checkInTime` (object)
    ISO8601 Local Time

  - `hotelPnr.hotelSpecialRequests.checkInTime.iso8601` (string, required)
    Example: 17:32

  - `hotelPnr.hotelSpecialRequests.flightNumber` (string)
    Attach flight number
    Example: AC1234

  - `hotelPnr.hotelSpecialRequests.additionalNote` (string)
    Free form text to describe special request
    Example: Extra pillows and blankets for added comfort during the stay.

  - `hotelPnr.hotelSpecialRequests.accessibleFeatures` (array)
    Accessible Features List

  - `hotelPnr.ancillaries` (array)
    User selected ancillaries for the hotel booking.

  - `hotelPnr.ancillaries.ancillaryKey` (string, required)
    Unique identifier for the ancillary service.

  - `hotelPnr.ancillaries.category` (string, required)
    Type of ancillary.
    Enum: "ANCILLARY_UNKNOWN", "EARLY_CHECKIN", "LATE_CHECKOUT", "WIFI", "BREAKFAST", "PARKING", "PETS", "MEAL_PLAN", "OTHER"

  - `hotelPnr.ancillaries.displayName` (string, required)
    Display name of ancillary.

  - `hotelPnr.ancillaries.description` (string)
    Detailed description of ancillary.

  - `hotelPnr.ancillaries.refundability` (string, required)
    Refundability information about the ancillary.
    Enum: "REFUNDABILITY_UNKNOWN", "FULLY_REFUNDABLE", "PARTIALLY_REFUNDABLE", "NON_REFUNDABLE"

  - `hotelPnr.ancillaries.purchaseStatus` (string, required)
    Purchase status of the ancillary.
    Enum: "PURCHASE_STATUS_UNKNOWN", "AVAILABLE", "ALREADY_PURCHASED", "INCLUDED_IN_RATE"

  - `hotelPnr.ancillaries.paymentType` (string, required)
    Payment type for the ancillary.
    Enum: "PAYMENT_TYPE_UNKNOWN", "PREPAID", "POSTPAID"

  - `hotelPnr.ancillaries.totalRate` (object)
    Rate details for hotel room

  - `hotelPnr.ancillaries.totalRate.roomFees` (array)

  - `hotelPnr.ancillaries.totalRate.roomFees.feeInclusions` (array)
    Amenities included as part of the fee

  - `hotelPnr.ancillaries.totalRate.roomFees.displayFee` (boolean)
    Flag to determine whether to explicitly show this fee type on UI

  - `hotelPnr.ancillaries.totalRate.roomFees.feeType` (string)
    Fees Type
    Enum: "UNKNOWN", "BED_TAX", "CITY_HOTEL_FEE", "CITY_TAX", "COUNTRY_TAX", "ENERGY_TAX", "FEDERAL_TAX", "FOOD_AND_BEVERAGE_TAX", "LODGING_TAX", "MAINTENANCE_FEE", "OCCUPANCY_TAX", "PACKAGE_FEE", "RESORT_FEE", "SALES_TAX", "SERVICE_CHARGE", "STATE_TAX", "SURCHARGE", "TOTAL_TAX", "TOURISM_TAX", "VAT_GST_TAX", "SURPLUS_LINES_TAX", "INSURANCE_PREMIUM_TAX", "APPLICATON_FEE", "EXPRESS_HANDLING_FEE", "EXEMPT", "STANDARD", "ZERO_RATED", "MISCELLANEOUS", "ROOM_TAX", "EARLY_CHECKOUT_FEE", "COUNTRY_TAXES", "EXTRA_PERSON_CHARGE", "BANQUET_SERVICE_FEE", "ROOM_SERVICE_FEE", "LOCAL_FEE", "GOODS_AND_SERVICES_TAX", "VALUE_ADDED_TAX", "CRIB_FEE", "ROLLAWAY_FEE", "ASSESSMENT_LICENSE_TAX", "PET_SANITATION_FEE", "NOT_KNOWN", "CHILD_ROLLAWAY_CHARGE", "CONVENTION_TAX", "EXTRA_CHILD_CHARGE", "STANDARD_FOOD_AND_BEVERAGE_GRATUITY", "NATIONAL_GOVERNMENT_TAX", "ADULT_ROLLAWAY_FEE", "BEVERAGE_WITH_ALCOHOL", "BEVERAGE_WITHOUT_ALCOHOL", "TOBACCO", "FOOD", "TOTAL_SURCHARGES", "STATE_COST_RECOVERY_FEE", "MISCELLANEOUS_FEE", "DESTINATION_AMENITY_FEE", "REFUNDABLE_PET_FEE", "CHARITY_SUPPORT_FEE", "LOCAL_AMENITY_USAGE_MAINTENANCE_FEE", "CONVENTION_TOURISM_FEE", "DESTINATION_MARKETING_FEE", "HOTEL_DEVELOPMENT_FEE", "EVENT_FEE", "SUSTAINABILITY_FEE", "TRANSPORTATION_TRANSFER_FEE", "INSURANCE_FEE", "LOCAL_GOVERNMENT_FEE", "LOCAL_ORDINANCE_SURCHARGE", "GUARANTEED_EARLY_CHECK_IN_FEE", "GUARANTEED_LATE_CHECK_OUT_FEE", "MODIFICATION_FEE", "HOTEL_ANCILLARY_EARLY_CHECK_IN_FEE", "HOTEL_ANCILLARY_LATE_CHECK_OUT_FEE", "HOTEL_ANCILLARY_PET_FEE", "HOTEL_ANCILLARY_WIFI_FEE", "HOTEL_ANCILLARY_BREAKFAST_FEE", "HOTEL_ANCILLARY_PARKING_FEE", "HOTEL_ANCILLARY_MEAL_PLAN_FEE", "ACCESSIBILITY_EQUIPMENT_FEE", "TOURISM_MARKETING_FEE"

  - `hotelPnr.ancillaries.totalRate.commission` (object)
    Commision on rate

  - `hotelPnr.ancillaries.totalRate.commission.commissionPercent` (number)
    Commission percentage
    Example: 7.5

  - `hotelPnr.ancillaries.totalRate.includesCommission` (boolean)
    Whether the rate includes commission
    Example: false

  - `hotelPnr.ancillaries.status` (string)
    Status of the ancillary service.
    Enum: "ANCILLARY_STATUS_UNKNOWN", "ACTIVE", "CANCELLED", "MODIFIED"

  - `hotelPnr.bookingMetadata` (object)
    Metadata like rate statistics for this booking

  - `hotelPnr.bookingMetadata.rateStatistics` (object)
    Contains statistical information about hotel search results.

  - `hotelPnr.bookingMetadata.rateStatistics.median` (object, required)
    Details median rate information for a hotel.

  - `hotelPnr.bookingMetadata.rateStatistics.sampleSize` (integer, required)
    Size of the sample set used to calculate the statistics.
    Example: 100

  - `hotelPnr.bookingMetadata.rateStatistics.policyType` (string, required)
    Enumeration of policy types for rate statistics.
    Enum: "DEFAULT", "SET_BY_ADMIN"

  - `hotelPnr.bookingMetadata.rateStatistics.statisticalMethod` (string)
    Statistical method used for the recommended hotel rate.
    Enum: "MEDIAN", "MEAN"

  - `hotelPnr.bookingMetadata.rateStatistics.preferredHotelsOnly` (boolean)
    Whether mean and median were calculated using only preferred hotels.
    Example: true

  - `carPnr` (object)
    Car PNR information

  - `carPnr.carInfo` (object, required)
    Car info

  - `carPnr.carInfo.vendor` (object, required)
    Car vendor.

  - `carPnr.carInfo.vendor.code` (string, required)
    Vendor code.
    Example: ZE

  - `carPnr.carInfo.vendor.name` (string, required)
    Vendor name.
    Example: HERTZ

  - `carPnr.carInfo.vendor.email` (string)
    Vendor email.
    Example: abc@xyz.com

  - `carPnr.carInfo.carTypeCode` (string)
    Car type code
    Example: EBMR

  - `carPnr.carInfo.preferredType` (array)
    Car preference

  - `carPnr.carInfo.preferences` (array)
    Car preferences

  - `carPnr.carInfo.co2EmissionDetail` (object)
    The CO2 emission detail for car.

  - `carPnr.carInfo.co2EmissionDetail.co2EmissionValue` (number, required)
    The CO2 emission value in kgs for car.
    Example: 0.01

  - `carPnr.carInfo.voucherInfo` (object)
    Car Voucher information

  - `carPnr.carInfo.voucherInfo.voucherId` (string, required)
    Voucher Id
    Example: @38807091

  - `carPnr.carInfo.voucherInfo.remarks` (string)
    Remarks associated with the voucher
    Example: VI--A123456

  - `carPnr.carInfo.voucherInfo.voucherType` (string)
    Type of voucher
    Enum: "FC", "GDA", "FIXED_VALUE"

  - `carPnr.carInfo.voucherInfo.voucherBillingNumber` (string)
    Voucher Billing Number
    Example: A123456

  - `carPnr.carInfo.voucherInfo.voucherFormat` (string)
    Format of the voucher
    Example: E

  - `carPnr.carInfo.dcStatus` (string)
    Whether a car is offered for delivery & collection.
Present only on cars that came back from a delivery & collection
search; absent means the car is an ordinary counter rental. A merged
result set carries both, so filter on DC_AVAILABLE rather than on the
field being set: ON_REQUEST and NOT_AVAILABLE are diagnostic values
and neither is sellable.
    Enum: "DC_STATUS_UNKNOWN", "DC_AVAILABLE", "DC_ON_REQUEST", "DC_NOT_AVAILABLE"

  - `carPnr.carInfo.dcInfo` (object)
    Where the car is delivered to and collected from.
Both legs travel together. A car delivered but never collected is not a
sellable arrangement, and at least one supplier rejects a half-filled
block outright, so omitting collection means "same as delivery" rather
than "no collection". With neither leg there is nothing to deliver, so
`delivery` is required whenever the block is sent at all.

  - `carPnr.carInfo.dcInfo.delivery` (object, required)
    One leg of a delivery & collection arrangement.

  - `carPnr.carInfo.dcInfo.delivery.instructions` (string)
    Free-text note for the driver, entered at checkout. Sent per leg, so
identical delivery and collection notes still travel twice.
Suppliers truncate beyond their own limits.
    Example: Deliver to reception desk

  - `carPnr.carInfo.dcDetails` (object)
    What the supplier actually confirmed for a booking's delivery &
collection, as opposed to CarDeliveryCollectionInfo (what the
traveller asked for). Present on a create/modify booking response
only when that booking carried dc_info.

  - `carPnr.carInfo.dcDetails.servingBranch` (string)
    The branch the supplier will actually deliver from and collect to,
which the pickup/dropOff location on this same PNR already shows --
this is the same value, offered separately for a caller that wants
just the branch code without parsing a full location.
    Example: ABZT50

  - `carPnr.carInfo.dcDetails.chargesMayApply` (boolean)
    The supplier warned that delivery/collection may carry an extra fee
it does not quote up front. Not a price -- suppliers who do quote a
fee include it in the rate instead, so this is only ever a warning.

  - `carPnr.paymentType` (string)
    Payment type.
    Enum: "UNKNOWN_PAYMENT_TYPE", "PAY_AT_VENDOR", "PREPAID", "NO_PREPAYMENT"

  - `carPnr.vendorConfirmationNumber` (string, required)
    Car confirmation number.
    Example: 2108528068

  - `carPnr.sortingPriority` (integer)
    Sort order on the trips page
    Example: 0

  - `carPnr.corporateId` (string)
    Corporate id applied while booking
    Example: 8371

  - `carPnr.rateType` (string)
    Rate type of the car booked
    Enum: "PUBLISHED", "CORPORATE", "SPOTNANA"

  - `carPnr.sourceStatus` (string)
    Source status code of the pnr

  - `carPnr.vendorCancellationId` (string)
    Cancellation id sent by the supplier.
    Example: 2108528068

  - `carPnr.originalCarSearchInfo` (object)
    Car search information

  - `carPnr.originalCarSearchInfo.pickup` (object, required)
    Search Parameter including location and datetime for a given search.

  - `carPnr.originalCarSearchInfo.pickup.location` (object, required)
    Car Search location parameters.

  - `carPnr.originalCarSearchInfo.pickup.location.airportCode` (string)
    IATA code for AIRPORT
    Example: SFO

  - `carPnr.originalCarSearchInfo.pickup.location.cityCode` (string)
    City Code.
    Example: JFK

  - `carPnr.originalCarSearchInfo.pickup.searchQuery` (string)
    Search query provided for the search.
    Example: London

  - `carPnr.originalCarSearchInfo.renterAge` (integer)
    Age of the renter
    Example: 30

  - `carPnr.originalCarSearchInfo.citizenCountryCode` (string)
    Citizen code of the renter
    Example: US

  - `carPnr.originalCarSearchInfo.pickupCountryCode` (string)
    Country code of the pick up location
    Example: US

  - `carPnr.originalCarSearchInfo.loyaltyCode` (array)
    Loyalty codes to be applied

  - `carPnr.originalCarSearchInfo.loyaltyCode.vendor` (string, required)
    Vendor code
    Example: ZI

  - `carPnr.originalCarSearchInfo.loyaltyCode.code` (string, required)
    Loyalty code
    Example: 1924047077

  - `carPnr.originalCarSearchInfo.loyaltyCode.type` (string, required)
    Loyalty type
    Enum: "PROMOTIONAL_COUPON"

  - `carPnr.rebookReference` (object)
    Contains reference to cancelled and rebooked PNR's.

  - `carPnr.rebookReference.cancelledPnrIds` (array)
    Reference to Spotnana Pnr Ids that were cancelled in favor of this booking.

  - `carPnr.rebookReference.rebookedPnrId` (string)
    Reference to Spotnana Pnr Id that was booked in favor of this cancellation, Populated for cancelled PNR's if they were cancelled for a rebooking.
    Example: 1234567890

  - `carPnr.dailyRates` (array)
    Contains daily rates for each day of the rental duration.

  - `carPnr.promotionalOffers` (object)
    Promotional offer info for car rental.

  - `carPnr.promotionalOffers.type` (string)
    Type of promotional offer.
    Enum: "PERCENTAGE_DISCOUNT", "FREE_ADDITIONAL_DRIVER", "MONETARY_DISCOUNT", "FREE_GPS", "FREE_FUEL", "FREE_DAYS", "FREE_WINTER_CARKIT", "FREE_CONGESTION_CHARGE", "FREE_CHILD_SEAT", "FREE_PERSONAL_INSURANCE", "EURO_DISNEY_PASS", "FREE_SKI_PASS", "FREE_UPGRADE", "PERCENTAGE_DISCOUNT_GPS", "FREE_WIFI", "GUARANTEED_MAM", "GENERIC_OFFER"

  - `carPnr.promotionalOffers.subType` (string)
    Sub-type of promotional offer.

  - `carPnr.promotionalOffers.description` (string)
    Descriptive text for the promotional offer.
    Example: This special price is inclusive of a 4.09% discount. Discount is based on standard rate from the car hire agent.

  - `carPnr.promotionalOffers.value` (string)
    Value associated with the promotional offer (e.g., percentage value).
    Example: 4

  - `carPnr.arrivalFlightInfo` (object)
    Contains arrival flight information for this car reservation.

  - `carPnr.arrivalFlightInfo.airlineCode` (string)
    Arrival flight airline code.
    Example: AA

  - `carPnr.arrivalFlightInfo.airlineNumber` (string)
    Arrival flight number.
    Example: 100

  - `carPnr.specialEquipmentTypes` (array)
    Special equipment types for the car booking if any. For example, child seat, bike rack etc.

  - `railPnr` (object)
    Rail PNR information

  - `railPnr.inwardJourney` (object)
    Journey info

  - `railPnr.inwardJourney.legs` (array, required)
    List of indexes of legs covered in the journey.

  - `railPnr.inwardJourney.co2EmissionDetails` (object)
    CO2 emission info for rail

  - `railPnr.inwardJourney.co2EmissionDetails.co2EmissionKilograms` (number, required)
    CO2 emission for the outward/inward leg in kilograms for a single passenger.
    Example: 10

  - `railPnr.inwardJourney.co2EmissionDetails.isApproximate` (boolean)
    Indicates whether the emissions value is approximate or not.
    Example: true

  - `railPnr.inwardJourney.sortingPriority` (integer)
    Sort order of the rail journey on the trips page
    Example: 0

  - `railPnr.inwardJourney.fareComposition` (string)
    Rail Fare Composition
    Enum: "THROUGH", "DIRECT_SPLIT", "INTERCHANGE_SPLIT"

  - `railPnr.legInfos` (array, required)
    List of legs covered in the booking.

  - `railPnr.legInfos.allocatedSpaces` (array)
    Space allocated for each passenger.

  - `railPnr.legInfos.allocatedSpaces.coachNumber` (string, required)
    Coach Number.
    Example: B

  - `railPnr.legInfos.allocatedSpaces.travelerIdx` (integer, required)
    Traveler for which the seat belongs.
    Example: 0

  - `railPnr.legInfos.allocatedSpaces.seatNumber` (string, required)
    Seat Number.
    Example: 32

  - `railPnr.legInfos.allocatedSpaces.additionalProperties` (array)
    Additional Properties of allocated seat.

  - `railPnr.legInfos.travelerRailInfo` (array)

  - `railPnr.legInfos.travelerRailInfo.travelerIndex` (integer)

  - `railPnr.legInfos.travelerRailInfo.loyaltyDetails` (object)
    Details about the traveler loyalty program and number.

  - `railPnr.legInfos.travelerRailInfo.loyaltyDetails.loyaltyProgram` (string)

  - `railPnr.legInfos.travelerRailInfo.loyaltyDetails.loyaltyNumber` (string)

  - `railPnr.legInfos.amenities` (array)
    List of amenities available for the leg.

  - `railPnr.legInfos.amenities.description` (string)
    Amenity description
    Example: Seat Reservation

  - `railPnr.legInfos.amenities.name` (string, required)
    Amenity name
    Example: Seat Reservation

  - `railPnr.legInfos.amenities.quantity` (integer)
    Available/Selected quantity
    Example: 1

  - `railPnr.legInfos.amenities.type` (string)
    Rail amenity type
    Enum: "WIFI", "LUGGAGE_INCLUDED", "ELECTRICAL_SOCKET", "CAFE", "SEAT_DISPLAY", "NEWSPAPER", "MEAL", "QUIET_CAR", "SEAT_SELECTION", "LOCAL_TRANSPORT", "LOUNGE", "LEATHER_SEATS", "BICYCLE", "PET", "FIRST_CLASS_COMFORT", "BUSINESS_PREMIER", "PERSONALIZED_SERVICE", "BOARDING", "WHEELCHAIR_ACCESS", "NURSERY_SPACE", "TABLE_SEAT", "LARGE_SEAT", "EXTRA_LEGROOM", "AIR_CONDITIONING", "READING_LIGHT"

  - `railPnr.legInfos.destination` (string, required)
    Destination station name of the leg.
    Example: Liverpool Lime Street

  - `railPnr.legInfos.fareType` (string, required)
    Details of fare for this leg.
    Example: Anytime Return

  - `railPnr.legInfos.origin` (string, required)
    Originating station name of the leg.
    Example: London Euston

  - `railPnr.legInfos.vehicle` (object, required)
    Information regarding the vehicle and operator.

  - `railPnr.legInfos.vehicle.carrierName` (string, required)
    Name of the carrier.
    Example: Deutsche Bahn

  - `railPnr.legInfos.vehicle.route` (string)
    Route taken by the vehicle.
    Example: L17

  - `railPnr.legInfos.vehicle.timetableId` (string, required)
    Timetable ID
    Example: ICE 373

  - `railPnr.legInfos.vehicle.transportName` (string)
    Name of the transport.
    Example: TGV

  - `railPnr.legInfos.vehicle.type` (string, required)
    Type of vehicle.
    Enum: "TRAIN", "BUS", "FERRY", "WALK", "TAXI", "TRAM", "METRO", "TUBE"

  - `railPnr.legInfos.ticketNumber` (string)
    ticket number
    Example: 345675333

  - `railPnr.legInfos.carrierConfirmationNumber` (string)
    carrier confirmation number for a segment
    Example: QP123AF

  - `railPnr.legInfos.seatPreferenceSelection` (object)
    Selected Seat Preferences for the itinerary.

  - `railPnr.legInfos.seatPreferenceSelection.carriageType` (string)
    Seat Carriage Type
    Example: Quiet

  - `railPnr.legInfos.seatPreferenceSelection.deckType` (string)
    Seat Carriage Type
    Example: Upstairs

  - `railPnr.legInfos.seatPreferenceSelection.direction` (string)
    Seat Direction.
    Example: Backward facing

  - `railPnr.legInfos.seatPreferenceSelection.facilities` (array)
    Seat Facilities.

  - `railPnr.legInfos.seatPreferenceSelection.positionType` (string)
    Seat Position Type.
    Example: Window

  - `railPnr.legInfos.seatPreferenceSelection.seatLocationType` (string)
    Seat Location Type.
    Example: Sit close to

  - `railPnr.legInfos.seatPreferenceSelection.seatType` (string)
    Seat Type.
    Example: Family

  - `railPnr.legInfos.legId` (string)
    Leg Id.
    Example: 9a766905-b5e9-43f7-b985-0738ff692324

  - `railPnr.legInfos.vendorName` (string)
    Name of the vendor for which current leg is reserved
    Example: ATOC

  - `railPnr.legInfos.co2EmissionGramsPerPassenger` (integer)
    CO2 emission for the current leg in gram for a single passenger.
    Example: 10903

  - `railPnr.passengerInfos` (array)
    List of passenger information.

  - `railPnr.passengerInfos.passengerType` (string)
    Passenger type
    Enum: "ADULT", "CHILD", "INFANT", "YOUTH", "SENIOR"

  - `railPnr.paymentMode` (string)
    The payment mode used to pay for the rail booking.
    Enum: "PRE_PAID", "PAID_AT_STATION"

  - `railPnr.sections` (array)
    List of sections covered in the booking.

  - `railPnr.sections.fares` (array, required)
    List of all fares in this section.

  - `railPnr.sections.fares.appliedPromotions` (array)
    List of applied promotions for this fare.

  - `railPnr.sections.fares.appliedPromotions.type` (string)
    Type of the promotion
    Enum: "GROUP_SAVE"

  - `railPnr.sections.fares.appliedPromotions.name` (string, required)
    Name of the promotion
    Example: GroupSave

  - `railPnr.sections.fares.appliedPromotions.description` (string)
    Description of the promotion
    Example: GroupSave discount allows any group of 3 - 9 passengers

  - `railPnr.sections.fares.appliedPromotions.conditions` (array)
    Conditions of the promotion

  - `railPnr.sections.fares.fareLegs` (array, required)

  - `railPnr.sections.fares.fareLegs.legIndex` (integer, required)
    Index of leg in journey.
    Example: 1

  - `railPnr.sections.fares.passengerRefs` (array)
    List of passenger indexes for this fare.

  - `railPnr.sections.fares.routeRestriction` (string)
    Route restrictions for the fare.
    Example: Travel is allowed via any permitted route.

  - `railPnr.sections.fares.rateType` (string)
    Rate type classification for the fare.
    Enum: "UNKNOWN", "PUBLISHED", "COMPANY_NEGOTIATED", "TMC_NEGOTIATED", "RAIL_CARD"

  - `railPnr.sections.fares.corporateRates` (array)
    Corporate rate details when rateType is company or TMC negotiated.

  - `railPnr.sections.fares.corporateRates.vendor` (string)
    Vendor name.
    Example: Eurostar

  - `railPnr.sections.fares.corporateRates.code` (string)
    Negotiated corporate rate code.
    Example: C007NT4

  - `railPnr.sections.sectionStatus` (string)
    Status of the section.
    Enum: "INITIATED", "CONFIRMED", "CANCELLED", "REQUESTED"

  - `railPnr.sections.vendorConfirmations` (array)
    List of vendor confirmation numbers for this section.

  - `railPnr.sections.vendorConfirmations.passengerRefs` (array)
    List of passenger indexes.

  - `railPnr.sections.vendorConfirmations.vendorConfirmationId` (string, required)
    Vendor confirmation id.
    Example: XY179358

  - `railPnr.sections.vendorName` (string)
    Name of the vendor for this section.
    Example: ATOC

  - `railPnr.tickets` (array)
    List of rail tickets.

  - `railPnr.tickets.ticketNumber` (string, required)
    Ticket number.
    Example: 0840010000072

  - `railPnr.tickets.legs` (array, required)
    List of legs covered by this ticket.

  - `railPnr.tickets.passengerRefs` (array, required)
    List of passenger indexes for this ticket.

  - `railPnr.ticketDetails` (array, required)

  - `railPnr.ticketDetails.deliveryOption` (string, required)
    Delivery options available.
    Enum: "ELECTRONIC_TICKET", "KIOSK"

  - `railPnr.ticketDetails.eticketMetadata` (object)
    For ELECTRONIC_TICKET, it contains e-ticket file info.

  - `railPnr.ticketDetails.eticketMetadata.description` (string)
    E-ticket file name.
    Example: Rail e-ticket

  - `railPnr.ticketDetails.eticketMetadata.eticketData` (string, required)
    E-ticket data as bytes.

  - `railPnr.ticketDetails.eticketMetadata.type` (string, required)
    Ticket asset type.
    Enum: "PDF", "PNG", "APPLE_PK_PASS", "HTML", "COLLECTION_NUMBER"

  - `railPnr.ticketDetails.reference` (string)
    For KIOSK, it contains the reference number of the ticket.
For ELECTRONIC_TICKET, it contains the path where the actual content of the ticket is.

  - `railPnr.ticketDetails.deliveryStatus` (string)
    Enum representing the status of the ticket delivery.
    Enum: "FULFILLING", "FULFILLED"

  - `railPnr.ticketDetails.legs` (array)
    List of legs covered by this ticket asset.

  - `railPnr.ticketDetails.passengerRefs` (array)
    List of passenger indexes for this ticket asset.

  - `railPnr.type` (string, required)
    Enum representing what kind of journey it is.
    Enum: "ONE_WAY", "RETURN", "OPEN_RETURN"

  - `railPnr.vendorConfirmationNumber` (string, required)
    Rail confirmation number
    Example: ABQTEJ

  - `railPnr.itineraryId` (string)
    Itinerary ID
    Example: abcde

  - `railPnr.ancillaries` (array)
    Details of the selected ancillaries for the booking.

  - `railPnr.termsAndConditions` (object)
    Terms and conditions.

  - `railPnr.termsAndConditions.conditions` (array)
    List of conditions

  - `railPnr.termsAndConditions.conditions.url` (string, required)
    Url for terms and conditions.
    Example: https://www.amtrak.com/terms-and-conditions.html

  - `railPnr.termsAndConditions.conditions.text` (string, required)
    Display text for the url.
    Example: Amtrak

  - `railPnr.exchangeInfo` (object)
    Exchange information for rail PNR.

  - `railPnr.exchangeInfo.exchangeType` (string, required)
    Exchange type
    Enum: "AMEND_RESERVATION", "PAY_THE_DIFFERENCE", "REBOOK_AND_REFUND"

  - `railPnr.exchangeInfo.relatedSectionInfo` (object)
    Related section information for the exchanged itinerary.

  - `railPnr.exchangeInfo.relatedSectionInfo.newSectionIndexes` (array)
    Section indexes of the exchanged itinerary.

  - `railPnr.exchangeInfo.relatedSectionInfo.oldSectionIndexes` (array)
    Section indexes of the previous itinerary.

  - `railPnr.previousItinerary` (object)
    Previous itinerary information for rail PNR.

  - `railPnr.previousItinerary.legInfos` (array, required)
    List of legs covered in the booking.

  - `railPnr.previousItinerary.sections` (array, required)
    List of sections covered in the itinerary.

  - `railPnr.previousItinerary.sourceReference` (string, required)
    Source reference of the itinerary.

  - `railPnr.relatedRateInfos` (array)
    List of rate information for the related orders.

  - `railPnr.relatedRateInfos.rateInfo` (object)
    Order rate details including base fare, fees, and total.

  - `railPnr.relatedRateInfos.sourceReference` (string)
    Source reference for the related order.
    Example: TL-ORDER-123456

  - `railPnr.relatedRateInfos.orderStatus` (string)
    Order status for related orders
    Enum: "CREATED", "COMPLETE"

  - `railPnr.relatedRateInfos.relatedRefunds` (array)
    List of related refund indexes associated with this order.

  - `railPnr.relatedRefundRateInfos` (array)
    List of refund rate information for the related refunds.

  - `railPnr.relatedRefundRateInfos.refundId` (string)
    Refund id from the supplier.
    Example: REFUND-123456

  - `railPnr.relatedRefundRateInfos.legs` (array)
    List of leg indexes for the related refund.

  - `railPnr.relatedRefundRateInfos.passengerRefs` (array)
    List of passenger indexes for the related refund.

  - `railPnr.relatedRefundRateInfos.refundRateInfo` (object)
    Refund rate details including fare refund, admin fee, and total refund.

  - `limoPnr` (object)
    Limo info

  - `limoPnr.driver` (object)
    Driver details of the limo.

  - `limoPnr.driver.name` (string, required)
    Driver name.
    Example: John Doe

  - `limoPnr.driver.driverInstructions` (string)
    Notes to inform driver about any special instructions.

  - `limoPnr.legs` (array, required)
    List of legs covered in the booking.

  - `limoPnr.legs.dropOffNotes` (string)
    Drop off notes for the driver.

  - `limoPnr.legs.pickupNotes` (string)
    Pick up notes for the driver.

  - `limoPnr.legs.sortingPriority` (integer)
    Sorting priority of this leg

  - `limoPnr.legs.flightNumbers` (array)
    Flight information associated with this leg.

  - `limoPnr.limoDetails` (object, required)
    Limo details.

  - `limoPnr.limoDetails.carType` (string, required)
    Limo type.
    Enum: "UNKNOWN_CAR_TYPE", "STANDARD_CAR", "EXECUTIVE_CAR", "BUSINESS_VAN", "FIRST_CLASS", "SUV", "SEDAN", "EXECUTIVE_SEDAN", "LUXURY_SEDAN", "EXECUTIVE_VAN", "BUSINESS_SEDAN"

  - `limoPnr.limoDetails.electricVehicle` (string, required)
    Whether the vehicle is electric.
    Enum: "UNKNOWN_EV", "YES", "NO"

  - `limoPnr.limoDetails.vendorName` (string)
    Vendor name of the limo.
    Example: NATIONAL

  - `limoPnr.limoDetails.limoVendorInfo` (object)
    Information about limo vendor.

  - `limoPnr.limoDetails.limoVendorInfo.code` (string)
    Vendor code
    Example: ZE

  - `limoPnr.limoDetails.limoVendorInfo.name` (string, required)
    Vendor name
    Example: HERTZ

  - `limoPnr.limoDetails.limoVendorInfo.email` (string)
    Vendor Email
    Example: mail@mail.com

  - `limoPnr.limoDetails.amenities` (object)
    Limo car amenities.

  - `limoPnr.limoDetails.amenities.numPassengers` (integer)
    Number of passengers allowed.

  - `limoPnr.limoDetails.amenities.numSmallBags` (integer)
    Number of small bags allowed.

  - `limoPnr.limoDetails.amenities.numLargeBags` (integer)
    Number of large bags allowed.

  - `limoPnr.bookingNotes` (string)
    Contains information about rate, cancellation policies and terms and conditions.

  - `limoPnr.notesToVendor` (string)
    Notes added by the booker for the vendor at the checkout.

  - `limoPnr.paymentType` (string)
    Payment type.
    Enum: "UNKNOWN_PAYMENT_TYPE", "PAY_AT_VENDOR", "PREPAID"

  - `limoPnr.vendorConfirmationNumber` (string, required)
    Limo confirmation number.
    Example: 2108528068

  - `limoPnr.sourceStatus` (string)
    Source status code of the pnr

  - `miscPnr` (object)
    Misc info

  - `miscPnr.description` (string, required)
    Description of the miscellaneous segment.
    Example: Any text info

  - `miscPnr.vendorConfirmationNumber` (string, required)
    Miscellaneous segment confirmation number.
    Example: 2108528068

  - `miscPnr.sortingPriority` (integer)
    Sorting priority of this pnr
    Example: 10

  - `miscPnr.sourceStatus` (string)
    Source status code of the pnr

  - `additionalMetadata` (object)
    Any addtional metadata associated with the booking

  - `additionalMetadata.airportInfo` (array)

  - `additionalMetadata.airportInfo.airportCode` (string)
    3-letter code of the airport.
    Example: WRA

  - `additionalMetadata.airportInfo.airportName` (string)
    Full name of the airport.
    Example: Warder Airport

  - `additionalMetadata.airportInfo.cityName` (string)
    Name of the city in which the airport is located (or is nearest to).
    Example: Werder

  - `additionalMetadata.airportInfo.countryName` (string)
    Name of the country in which the airport is located.
    Example: Ethiopia

  - `additionalMetadata.airportInfo.countryCode` (string)
    2-letter IATA country code associated with the airport.
    Example: ET

  - `additionalMetadata.airportInfo.zoneName` (string)
    Name of the time zone associated with the airport.
    Example: Africa/Addis_Ababa

  - `additionalMetadata.airportInfo.stateCode` (string)
    2-letter IATA code for the state in which the airport is located.
    Example: CA

  - `additionalMetadata.airlineInfo` (array)
    Information on each airline referenced by this booking.

  - `additionalMetadata.bta` (string)
    BTA (Business Travel Account) indicator for this PNR. This provides additional information and is only populated when the PNR is delay invoiced.
    Example: YMT

  - `customFields` (array)
    List of all the Custom Fields associated with this Pnr

  - `customFields.id` (string, required)
    Meeting id or budget id based on custom field type.

  - `customFields.description` (string, required)
    Description of the custom Field
    Example: GLOBAL OFFSITE 2022

  - `customFieldsV3Responses` (array)
    List of all the Custom Fields responses associated with this Pnr.

  - `customFieldsV3Responses.entity` (object, required)
    The entity.

  - `customFieldsV3Responses.entity.type` (string, required)
    The type at which the field will be stored.
    Enum: "PNR", "TICKET"

  - `customFieldsV3Responses.entity.id` (string, required)
    Identifier of the entity

  - `customFieldsV3Responses.selectedResponses` (array, required)
    The list of responses that are selected by user or auto populated.

  - `customFieldsV3Responses.selectedResponses.fieldId` (string, required)
    Custom field id

  - `customFieldsV3Responses.selectedResponses.fieldName` (string)
    Name of the custom field

  - `customFieldsV3Responses.selectedResponses.armId` (string, required)
    Arm id which is applicable

  - `customFieldsV3Responses.selectedResponses.includeLocations` (array)

  - `customFieldsV3Responses.selectedResponses.selectedOptions` (array, required)
    The list of options that are selected by user or auto populated.

  - `customFieldsV3Responses.selectedResponses.selectedOptions.name` (string, required)
    Value of the selection

  - `customFieldsV3Responses.selectedResponses.selectedOptions.translatedName` (string)
    Translated value of the selection

  - `customFieldsV3Responses.selectedResponses.selectedOptions.description` (string)
    Description of the selection

  - `customFieldsV3Responses.selectedResponses.selectedOptions.translatedDescription` (string)
    Translated description of the selection

  - `customFieldsV3Responses.selectedResponses.selectedOptions.additionalUserInput` (string)
    Additional user input

  - `customFieldsV3Responses.selectedResponses.selectedOptions.additionalInfos` (array)
    Actual values of the additional infos

  - `customFieldsV3Responses.selectedResponses.selectedOptions.additionalInfoConfigs` (array)
    Additional info configs for the selected option

  - `customFieldsV3Responses.selectedResponses.selectedOptions.additionalInfoConfigs.type` (string, required)
    Enum: "VARIABLE", "EXPRESSION"

  - `customFieldsV3Responses.selectedResponses.selectedOptions.additionalInfoConfigs.name` (string, required)
    Name of the variable.
    Enum: "PUBLISHED_FARE", "LLF", "ADD_COLLECT_AMOUNT", "SELECTED_FARE", "SPLIT_PAYMENT_FARE"

  - `customFieldsV3Responses.selectedResponses.selectedOptions.additionalInfoConfigs.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.
    Example: Result:  ${math.mul(LLF,5)}  ${ADD_COLLECT_AMOUNT}

  - `customFieldsV3Responses.selectedResponses.selectedOptions.additionalInfoConfigs.variables` (array)
    Reference names of the variables present in the expression.

  - `customFieldsV3Responses.selectedResponses.selectedOptions.optionId` (string)
    Id of the selected option; sent by clients, never returned

  - `bookingHistory` (array)
    Change Log associated with a PNR/Booking

  - `bookingHistory.bookerInfo` (object)
    Booker Details

  - `bookingHistory.bookerInfo.name` (string)
    Name of the Booker
    Example: Harry Potter

  - `bookingHistory.bookerInfo.email` (string)
    Email of the Booker
    Example: harry@spotnana.com

  - `bookingHistory.bookerInfo.role` (string)
    User facing role of the Booker
    Enum: "UNKNOWN_ROLE", "AGENT", "TRAVEL_MANAGER", "TRAVELER", "REGISTRAR", "ADMIN"

  - `bookingHistory.bookerInfo.tmcName` (string)
    Name of the Tmc booker belongs to
    Example: Spotnana Technology

  - `bookingHistory.bookingInfo` (object)
    Booking Details

  - `bookingHistory.bookingInfo.status` (string)
    User facing status of the booking in history
    Enum: "UNKNOWN_STATUS", "BOOKED", "EXCHANGED", "UPDATED", "CANCELLED", "FINALIZED", "UNFINALIZED", "AIR_SCHEDULE_CHANGE_ACCEPTED", "TICKETED", "EXCHANGE_TICKETED", "CONFIRMED", "EXCHANGE_CONFIRMED"

  - `bookingHistory.bookingInfo.bookingSourceClient` (string)
    Client on which this booking was created/updated
    Enum: "ANDROID_APP", "ANDROID_WEB", "ANDROID_EMBED", "IOS_APP", "IOS_WEB", "IOS_EMBED", "WEB"

  - `bookingHistory.bookingInfo.inlineQCInfo` (array)
    A list of failed inline QC rules

  - `bookingHistory.bookingInfoMetadata` (object)
    Links, tickets and transaction mode of a booking history entry. Only set values are sent.

  - `bookingHistory.bookingInfoMetadata.actionId` (string)
    Unique identifier of this booking history entry
    Example: 7d3f91b4-6c2a-4e0b-9f1d-2a8c5e7b3d10

  - `bookingHistory.bookingInfoMetadata.causedByActionId` (string)
    actionId of the entry that caused this one, for example the BOOKED entry behind a TICKETED entry. Not set on EXTERNAL entries.
    Example: 1b6e0c2a-8d4f-4a7e-b3c9-5f2e1d0a9c84

  - `bookingHistory.bookingInfoMetadata.ticketNumbers` (array)
    Ticket numbers issued in this entry. Air only.
    Example: ["0017412345678"]

  - `bookingHistory.bookingInfoMetadata.ticketType` (string)
    Type of the tickets in ticketNumbers
    Enum: "FLIGHT", "ANCILLARY", "MIXED"

  - `bookingHistory.bookingInfoMetadata.transactionMode` (string)
    How the transaction was issued. Set only on result entries: TICKETED, EXCHANGE_TICKETED, CONFIRMED and EXCHANGE_CONFIRMED.
    Enum: "SELF_SERVE", "AGENT_ASSIST", "EXTERNAL"

  - `serviceFees` (array)
    The service fees associated with this pnr.

  - `serviceFees.taxes` (array)
    List of applicable taxes

  - `serviceFees.taxes.taxCode` (string, required)
    Tax code
    Example: VAT

  - `serviceFees.taxes.description` (string, required)
    Tax code

  - `serviceFees.taxes.percentage` (number)
    Amount
    Example: 10

  - `serviceFees.ticketNumber` (string, required)
    Ticket Number

  - `serviceFees.status` (string, required)
    Status for the associated ticket
    Enum: "ISSUED", "VOIDED", "PENDING", "DELAYED_INVOICE", "FAILED", "NO_CHARGE", "UNKNOWN", "WAIVED_OFF"

  - `serviceFees.visibleToTraveler` (boolean)
    Show/hide service fee to traveler
    Example: true

  - `serviceFees.paymentTransactionInfo` (object)
    Payment transaction information

  - `serviceFees.paymentTransactionInfo.paymentReference` (string)
    Payment transaction reference
    Example: pi_2PAlaAIE$aaaaAaA0bLqk9AI

  - `serviceFees.paymentTransactionInfo.networkTransactionId` (string)
    Network transaction id provided by the card network. Applicable only for cards.
    Example: 721107212171711

  - `serviceFees.paymentTransactionInfo.gatewayInfo` (object)
    Payment gateway information

  - `serviceFees.paymentTransactionInfo.gatewayInfo.stripeInfo` (object, required)
    Stripe payment gateway information

  - `serviceFees.paymentTransactionInfo.gatewayInfo.stripeInfo.accountId` (string)
    Stripe account id
    Example: acct_1OAbc3AB5abcdDdA

  - `serviceFees.paymentTransactionInfo.gatewayInfo.stripeInfo.accountDisplayName` (string)
    Stripe account display name as seen on the stripe dashboard
    Example: Abc Travel

  - `serviceFees.paymentTransactionInfo.gatewayInfo.stripeInfo.platformAccountGatewayId` (string)
    Gateway-id of platform account when this gateway is a connected account
    Example: connect-platform:#

  - `serviceFees.paymentTransactionInfo.gatewayInfo.stripeInfo.taxId` (string)
    Tax id for account
    Example: 89-189390

  - `serviceFees.paymentTransactionInfo.failureReason` (object)
    Contains the failure reason in case of any Failed Transaction

  - `serviceFees.paymentTransactionInfo.failureReason.reasonCode` (string)
    Reason Code associated with the Failure
    Enum: "PAYMENT_METHOD_MISSING", "PAYMENT_GATEWAY_FAILURE"

  - `serviceFees.paymentTransactionInfo.gatewayId` (string)
    GatewayId for related gatewayInfo.
    Example: demo-us:1

  - `serviceFees.tags` (array)
    List of key-value pairs for storing some tags related to service-fee.

  - `serviceFees.tags.key` (string)
    Header key.

  - `serviceFees.tags.value` (string)
    Header value.

  - `serviceFees.waiveOffInfo` (object)
    Information about TMC fee waivers applied by an agent during checkout.

  - `serviceFees.waiveOffInfo.waiveOffReason` (object)
    Fee waive off reason info.

  - `serviceFees.waiveOffInfo.waiveOffReason.reasonCode` (string)
    Fee waive off reason code.
    Example: WA05

  - `serviceFees.waiveOffInfo.waiveOffReason.reason` (string)
    Fee waive off reason description.
    Example: Customer goodwill

  - `serviceFees.chargeId` (string)
    Unique identifier for the charge associated with this service fee.

  - `paymentInfo` (array)
    FOP fare breakup for all payments

  - `contactSupport` (boolean)
    Set to true if there might be an issue in the PNR for which the user should be warned to
contact TMC support.
    Example: false

  - `travelerPnrVisibilityStatus` (string)
    Represents the PNR visibility status, if marked as HIDDEN should not be displayed to the traveler
    Enum: "VISIBLE", "HIDDEN"

  - `shellPnrInfo` (object)
    Information about shell pnr

  - `shellPnrInfo.shellPnrCreateReasonType` (string)
    Reason for creating the shell pnr
    Example: CONTENT_NOT_AVAILABLE

  - `shellPnrInfo.createShellPnrReason` (string)
    If the reason for creating the shell pnr is chosen as OTHER or CONTENT_NOT_AVAILABLE,
we expect the agent to explain the reason using this free text
    Example: Flight Missing

  - `shellPnrInfo.pnrType` (string)
    It will contain the PNR type for different shell PNRs
    Example: AIR

  - `pnrCreationDetails` (object)
    Information about pnr creation

  - `pnrCreationDetails.requestedByDetails` (object)
    Information about the requester of the trip.

  - `pnrCreationDetails.requestedByDetails.pnrRequestedBy` (string, required)
    Name of the requester
    Example: Peter

  - `approvalInfo` (array)
    Approval related information for the PNR

  - `approvalInfo.approvalStatus` (string, required)
    The approval status for the PNR
    Enum: "APPROVAL_PENDING", "APPROVED", "DENIED", "TIMED_OUT", "TIMED_OUT_REMINDER", "APPROVAL_NOT_REQUIRED", "SOFT_APPROVAL_TIMEOUT"

  - `approvalInfo.approvalType` (string)
    Type of APPROVAL
    Enum: "APPROVAL_TYPE_UNKNOWN", "HARD_APPROVAL", "SOFT_APPROVAL", "PASSIVE_APPROVAL", "PRE_APPROVAL"

  - `approvalInfo.autoBookStatus` (string)
    Auto book status of the PNR.
    Enum: "AUTO_BOOK_STATUS_UNKNOWN", "AUTO_BOOK_STATUS_NOT_REQUIRED", "AUTO_BOOK_STATUS_REQUESTED", "AUTO_BOOK_STATUS_IN_PROGRESS", "AUTO_BOOK_STATUS_SUCCESS", "AUTO_BOOK_STATUS_FAILED"

  - `cancellationRequestStatus` (string)
    Status of in progress cancellation request
CANCELLATION_IN_PROGRESS - Cancellation request is in progress via OBT
CANCELLATION_BY_AGENT_REQUESTED - Cancellation request is in progress via agent
    Enum: "CANCELLATION_IN_PROGRESS", "CANCELLATION_BY_AGENT_REQUESTED"

  - `externalInfo` (object)
    PNR related external information

  - `externalInfo.externalPnrId` (string)
    External Pnr ID
    Example: A2345

  - `externalInfo.externalPnrVersion` (integer)
    External Pnr Version
    Example: 1

  - `externalInfo.externalUrlMetadata` (string)
    External url information to be attached for pnr
    Example: exchange=a,cancel=b

  - `tripId` (string)
    Spotnana trip ID to which the PNR belongs to
    Example: 123456789

  - `documents` (array)

  - `documents.url` (string, required)
    S3 location of the document.
    Example: https://s3.amazonaws.com/bucket-name/folder-name/file-name

  - `documents.documentId` (string, required)
    Unique identifier of the document.
    Example: f49d00fe-1eda-4304-ba79-a980f565281d

  - `documents.documentMetadata` (object, required)
    Metadata related to document.

  - `documents.documentMetadata.documentType` (string, required)
    Document type.
    Enum: "BOARDING_PASS", "CONFIRMATION", "INVOICE", "VISA", "MISCELLANEOUS", "OTHERS", "TASK_PROCESSOR", "EVENT_COVER_IMAGE", "LOGO_IMAGE", "KNOWLEDGE_BASE", "AI_PLATFORM_ATTACHMENTS", "AI_SKILL_FILE"

  - `documents.documentMetadata.entityType` (string, required)
    Entity type against which the document is to uploaded.
    Enum: "PNR", "COMPANY", "AIR_ITINERARY", "EVENT", "LOCATION_IMAGE", "AIR_COMMISSION_CONTRACT"

  - `documents.documentMetadata.entityId` (string, required)
    Entity Id for the given entity type.
    Example: 123124

  - `documents.documentMetadata.entityMetadata` (object, required)
    Metadata for associated entity of document.

  - `documents.documentMetadata.entityMetadata.pnrMetadata` (object)
    Metadata when document is associated to pnr entity.

  - `documents.documentMetadata.entityMetadata.pnrMetadata.flightMetadata` (object)
    Flight metadata against which document is associated.

  - `documents.documentMetadata.entityMetadata.pnrMetadata.flightMetadata.flightId` (string)
    Unique identifier of the flight.
    Example: CgNERU4SA1NGTxoKNTQ1NzI5ODcxMQ

  - `documents.documentMetadata.entityMetadata.pnrMetadata.legMetadata` (object)
    Leg metadata against which document is associated.

  - `documents.documentMetadata.entityMetadata.pnrMetadata.legMetadata.legId` (string)
    Unique identifier of the leg.
    Example: CgNTRk8SA0RFThoKNTQ1NzI5ODcxMQ==

  - `documents.documentMetadata.entityMetadata.invoiceMetadata` (object)
    Metadata associated with an invoice document.

  - `documents.documentMetadata.entityMetadata.invoiceMetadata.invoiceNumber` (string, required)
    Example: SPOT-0001

  - `documents.documentMetadata.entityMetadata.invoiceMetadata.invoiceType` (string)
    Enum: "SERVICE_FEE_INVOICE", "FARE_INVOICE", "GENERIC_INVOICE"

  - `documents.documentMetadata.entityMetadata.eventMetadata` (object)
    Metadata when document is associated to an event.

  - `documents.documentMetadata.name` (string, required)
    Document name.
    Example: BoardingPass.pdf

  - `freshnessInfo` (object)
    Information about the freshness of the data set in this PNR object. This field is only set
when the PNR returned is not the latest PNR available.

  - `bookingEmailInfo` (object)
    Information passed to the Spotnana email system that processes booking updates.

  - `bookingEmailInfo.disableEmail` (boolean)
    Whether an email should be sent to travelers.
    Example: true

  - `llfPnrInfo` (object)
    Lowest logical fare info at pnr level

  - `pnrId` (string)
    Spotnana PNR ID
    Example: 123456789

  - `invoiceInfos` (array)
    Invoice related information for the PNR

  - `invoiceInfos.invoiceNumber` (string, required)
    The invoice number for an invoice
    Example: SPOT-0001

  - `invoiceInfos.productType` (string, required)
    Type of product being invoiced
    Enum: "PNR", "SERVICE_FEE"

  - `invoiceInfos.invoiceId` (string, required)
    Unique ID of the invoice.
    Example: 2a5c0a73-1306-47f2-8210-7dfc812f4d0e

  - `invoiceData` (array)
    Buyer and seller invoice information for this PNR

  - `invoiceData.type` (string)
    The type of entity this buyer/seller info is associated with
    Enum: "PNR"

  - `additionalFareAmounts` (array)
    Additional fare amounts of the PNR defining components like flight pass additional amount, change fee etc.

  - `dkNumber` (string)
    DK number attached to the PNR.
    Example: 123456789

  - `tripUsageMetadata` (object)
    Usage metadata associated with the trip entity.

  - `tripUsageMetadata.tripUsageType` (string, required)
    Trip usage type.
    Enum: "STANDARD", "EVENT"

  - `tripUsageMetadata.eventMetadata` (object)
    Metadata associated with an event trip.

  - `tripUsageMetadata.eventMetadata.eventId` (string, required)
    The event id.
    Example: 123456789

  - `tripUsageMetadata.eventMetadata.rootEventId` (string)
    The root event id.
    Example: 123456789

  - `tripUsageMetadata.eventMetadata.eventType` (string)
    Type of an event
    Enum: "GENERIC", "PROGRAM", "PROGRAM_SESSION", "PROGRAM_TRIP"

  - `tripUsageMetadata.eventMetadata.associatedEventIds` (array)
    The associated event ids.

  - `owningPccInfo` (object)
    Details of the agency PCC (pseudo city code) office that owns the booking.

  - `owningPccInfo.zoneId` (string)
    Zone id of the PCC
    Example: America/Chicago

  - `suspendReason` (string)
    Reason for suspending the PNR. Determines which finalizeIntent variant is required when finalizing.
- PRICE_OPTIMIZATION: Unified price optimization reshop (air or hotel). Finalize with priceOptimization (PriceOptimizationMetadata).
- EXCHANGE: Ticket exchange initiated by agent. Finalize with manualVerificationIntent.
- GDS_EXCHANGE: GDS-driven ticket exchange. Finalize with manualVerificationIntent.
- AIR_PRICE_OPTIMIZATION: Deprecated. Legacy air-only reshop. Use PRICE_OPTIMIZATION instead. Finalize with airPriceOptimizationMetadata.
    Enum: "AIR_PRICE_OPTIMIZATION", "EXCHANGE", "GDS_EXCHANGE", "PRICE_OPTIMIZATION"

  - `priceOptimizationMetadata` (object)
    Unified price optimization metadata for all travel types.
Carried on FinalizeIntent and stored on PnrMetadata after finalize.

  - `priceOptimizationMetadata.oldPnrId` (string, required)
    Spotnana PNR ID before reshop.
    Example: 8196487818

  - `priceOptimizationMetadata.newPnrId` (string)
    Spotnana PNR ID after reshop. Same as oldPnrId for in-place modify;
different for cross-PNR rebook. May not exist on failure.
    Example: 8196487818

  - `priceOptimizationMetadata.result` (object, required)
    Result of a price optimization reshop attempt.

  - `priceOptimizationMetadata.result.status` (string, required)
    Outcome status of a price optimization reshop attempt.
    Enum: "SUCCESS", "FAILURE", "NO_CHANGE"

  - `priceOptimizationMetadata.result.failureMetadata` (object)
    Details about a failed price optimization attempt.

  - `priceOptimizationMetadata.result.failureMetadata.reason` (string, required)
    Failure reason for a price optimization reshop attempt.
    Enum: "OLD_FARE_CANCEL_FAILED", "NEW_FARE_BOOK_FAILED", "OLD_PNR_CANCEL_FAILED", "NEW_PNR_BOOKING_FAILED", "NEW_TICKET_ISSUE_FAILED", "OLD_TICKET_VOID_FAILED", "SUPPLIER_ERROR"

  - `priceOptimizationMetadata.result.failureMetadata.message` (string)
    Human-readable detail about the failure.
    Example: New PNR booked but old PNR cancel failed

  - `priceOptimizationMetadata.travelType` (object)
    Travel-type-specific price optimization metadata.

  - `priceOptimizationMetadata.travelType.air` (object)
    Air-specific price optimization metadata.

  - `priceOptimizationMetadata.travelType.air.oldTickets` (array)
    Ticket numbers of reshopped tickets.

  - `priceOptimizationMetadata.travelType.air.newTickets` (array)
    New ticket numbers issued after reshop. May not exist on failure.

  - `priceOptimizationMetadata.travelType.hotel` (object)
    Hotel-specific price optimization metadata.

  - `priceOptimizationMetadata.travelType.hotel.oldConfirmationNumber` (string)
    Hotel supplier confirmation number before reshop.
    Example: HK-98765

  - `priceOptimizationMetadata.travelType.hotel.newConfirmationNumber` (string)
    Hotel supplier confirmation number after reshop. May not exist on failure.
    Example: HK-11223

  - `state` (string)
    State of the PNR
    Enum: "ITINERARY", "PNR"

  - `basicTripInfo` (object)
    Basic trip info

  - `basicTripInfo.tripId` (string, required)
    Spotnana trip Id
    Example: 6926658168

  - `basicTripInfo.tripName` (string, required)
    Name of the trip
    Example: JFK SFO Trip

  - `basicTripInfo.tripDescription` (string)
    Trip description
    Example: JFK SFO Business Trip

  - `basicTripInfo.applicationId` (string)
    Application id used for the trip.

  - `basicTripInfo.tripMetadata` (object)
    Metadata for the trip

  - `basicTripInfo.tripMetadata.hasTripOverride` (boolean)
    Indicates if the trip has any profile overrides.
    Example: true

  - `basicTripInfo.tripMetadata.preferredCurrency` (string)
    The currency to be used for the trip.
    Example: USD

  - `basicTripInfo.tripMetadata.tripContacts` (array)

  - `basicTripInfo.tripMetadata.tripContacts.label` (string, required)
    Label for the contact
    Example: Coordinator

  - `basicTripInfo.tripMetadata.tripContacts.name` (string, required)
    Name of the contact
    Example: Himani Jain

  - `basicTripInfo.tripMetadata.tripContacts.email` (string)
    Email of the contact
    Example: himani@spotnana.com

  - `basicTripInfo.tripMetadata.tripContacts.isPrimary` (boolean)
    Whether the contact is primary or not
    Example: true

  - `basicTripInfo.tripMetadata.tripContacts.restrictVisibility` (boolean)
    Whether to restrict visibility of the contact to only agents and admins
    Example: true

  - `basicTripInfo.tripMetadata.tripCommunicationPreferences` (object)
    Communication preferences for the trip

  - `basicTripInfo.tripMetadata.tripCommunicationPreferences.tripEmailPreferences` (object)
    Email preferences for the trip

  - `basicTripInfo.tripMetadata.tripCommunicationPreferences.tripEmailPreferences.bucketEmailPreferences` (object)
    Email communication preferences based on bucket types.

  - `basicTripInfo.tripMetadata.tripCommunicationPreferences.tripEmailPreferences.bucketEmailPreferences.bucketTypes` (array, required)
    List of email bucket types.

  - `basicTripInfo.tripMetadata.tripCommunicationPreferences.tripEmailPreferences.bucketEmailPreferences.isEnabled` (boolean)
    Indicates whether emails are disabled.

  - `basicTripInfo.tripMetadata.tripCommunicationPreferences.tripEmailPreferences.bucketEmailPreferences.toEmails` (array)
    List of email address to be included in emails.

  - `basicTripInfo.tripMetadata.tripCommunicationPreferences.tripEmailPreferences.bucketEmailPreferences.ccEmails` (array)
    List of email address to be cc-ed in emails.

  - `basicTripInfo.tripMetadata.tripCommunicationPreferences.tripEmailPreferences.bucketEmailPreferences.bccEmails` (array)
    List of email address to be bcc-ed in emails.

  - `basicTripInfo.tripDisabledInfo` (object)
    Information regarding whether the trip is disabled and if so, the reason why.

  - `basicTripInfo.tripDisabledInfo.disabledReason` (string)
    Reason why the trip is disabled if applicable.
    Enum: "MAX_BOOKINGS_EXCEEDED", "TRIP_EXPIRED"

  - `basicTripInfo.tripDisabledInfo.isDisabled` (boolean)
    Indicates whether the trip is disabled or not.
    Example: false

  - `basicTripInfo.stealthType` (string)
    Stealth type.
    Enum: "STEALTH_TYPE_1", "STEALTH_TYPE_2", "STEALTH_TYPE_3"

  - `basicTripInfo.stealthMode` (object)
    Stealth mode configuration with type and label.

  - `basicTripInfo.stealthMode.label` (string, required)
    Customer specific label for the stealth mode.

  - `basicTripInfo.tripLocations` (array)
    Locations associated with the trip.

  - `basicTripInfo.tripLocations.metroAreaName` (string)
    Name of the metropolitan area.
    Example: San Francisco

  - `basicTripInfo.tripHeaderImages` (array)
    Header images for the trip, selected by backend based on trip destinations.

## Response 401:

  - `401` (unknown)
    Unauthorized

## 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:

  - `403` (unknown)
    Forbidden

## 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:

  - `404` (unknown)
    The specified resource was not found.

## 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.

