---
title: "Patch user"
method: PATCH
path: "/v2/users/{userId}"
tags: ["Users"]
---

# Patch user

`PATCH /v2/users/{userId}`

This endpoint partially updates a user by user ID.

## Request body

- PatchUserUpdateRequest — Patch request for updating traveler details. All fields are optional and nullable.
  - `personalInfo` PatchUserPersonalInfo — User details for PATCH requests. All fields are optional and nullable.
    - `addresses` PatchPostalAddress[], nullable
      - `addressLines` string[], nullable — Address lines
      - `administrativeArea` string, nullable — Code of administrative area. For example: DL for Delhi, India.
      - `administrativeAreaName` string, nullable — Name of administrative area.
      - `description` string, nullable — Address description
      - `isDefault` boolean, nullable — Whether this address is default address in case multiple addresses are specified.
      - `languageCode` string, nullable
      - `locality` string, nullable — Generally refers to the city/town portion of the address.
      - `locationCode` string, nullable — IATA 3-letter location code.
      - `organization` string, nullable — The name of the organization at the address.
      - `postalCode` string, nullable — Postal code of the address.
      - `continentCode` string, nullable — 2 letter continent code.
      - `recipients` string[], nullable — The recipient at the address.
      - `regionCode` string, nullable — Region code of the country/region of the address.
      - `regionName` string, nullable — Region name of the country/region of the address.
      - `revision` integer, nullable
      - `sortingCode` string, nullable
      - `sublocality` string, nullable — Sublocality of the address.
      - `timezone` string, nullable — Time zone of the address.
      - `coordinates` PatchLatlng — Latitude and Longitude for a Location for PATCH requests.
        - `latitude` number, double, nullable — Latitude of the Location
        - `longitude` number, double, nullable — Longitude of the Location
    - `dob` object, nullable — Date in ISO 8601 standard for PATCH requests.
      - `iso8601` string, nullable
    - `email` string, email, nullable
    - `gender` 'MALE' | 'FEMALE' | 'UNSPECIFIED' | 'UNDISCLOSED' | 'GENDER_REDACTED', nullable
    - `identityDocs` IdentityDocument[], nullable — List of user identity documents.
      - union — Identity document details. Currently supported documents are passport, immigration document, known traveler number, redress number and national document.
        - object
          - `passport` Passport — Passport details.
            - `docId` string, required
            - `expiryDate` DateModel, required — Date in ISO 8601 standard.
              - …
            - `issueCountry` string, required
            - `issuedDate` DateModel — Date in ISO 8601 standard.
              - …
            - `nationalityCountry` string, required
            - `type` 'UNKNOWN' | 'REGULAR'
        - object
          - `immigrationDoc` ImmigrationDocument — Immigration document details.
            - `authorizedStayDuration` Duration — Represents a duration of time with specific units of time.
              - …
            - `docId` string, required — The ID of the immigration document.
            - `expiryDate` DateModel, required — Date in ISO 8601 standard.
              - …
            - `issueCountry` string, required — The country that issued the immigration document.
            - `issuedDate` DateModel — Date in ISO 8601 standard.
              - …
            - `nationalityCountry` string
            - `reentryRequirementDuration` Duration — Represents a duration of time with specific units of time.
              - …
            - `type` 'UNKNOWN' | 'VISA'
        - object
          - `redress` RedressNumber — Redress details
            - `number` string, required
            - `issueCountry` string, required
        - object
          - `ktn` KnownTravelerNumber — Information about the Known Traveler Number (KTN).
            - `number` string, required
            - `issueCountry` string, required
        - object
          - `nationalDoc` NationalDoc — National Document Id details.
            - `docId` string, required — Unique id identifying the national document.
            - `issueCountry` string, required — IS0 2 letter country code of the country issuing this id.
            - `issuedDate` DateModel — Date in ISO 8601 standard.
              - …
            - `expiryDate` DateModel — Date in ISO 8601 standard.
              - …
            - `type` 'DNI' | 'NIE' | 'CPF' | 'MTP' | 'CIN' | 'NID'
    - `name` PatchName — Full name for PATCH requests. All fields are optional.
      - `family1` string, nullable — Last (family) name.
      - `family2` string, nullable
      - `given` string, nullable — First (given) name.
      - `middle` string, nullable — Middle name.
      - `suffix` 'NAME_SUFFIX_UNKNOWN' | 'SR' | 'JR' | 'MD' | 'PHD' | 'II' | 'III' | 'IV' | 'DO' | 'ATTY' | 'V' | 'VI' | 'ESQ' | 'DC' | 'DDS' | 'VM' | 'JD' | 'SECOND' | 'THIRD' — Suffix for name
      - `preferred` string, nullable — Informal preferred name added by traveler. This is not used on any PNR or tickets
    - `phoneNumbers` PhoneNumber[], nullable
      - `countryCode` integer — two digit country code
      - `countryCodeSource` 'UNSPECIFIED' | 'FROM_NUMBER_WITH_PLUS_SIGN' | 'FROM_NUMBER_WITH_IDD' | 'FROM_NUMBER_WITHOUT_PLUS_SIGN' | 'FROM_DEFAULT_COUNTRY'
      - `extension` string — phone number extension
      - `isoCountryCode` string — ISO alpha-2 code
      - `italianLeadingZero` boolean
      - `nationalNumber` integer
      - `numberOfLeadingZeros` integer
      - `preferredDomesticCarrierCode` string
      - `rawInput` string
      - `type` 'UNKNOWN_TYPE' | 'MOBILE' | 'LANDLINE'
    - `profilePicture` object, nullable — An image with meta data. Either the `data` or `url` property must be supplied to load the image.
      - `data` string, byte
      - `dimensions` Dimensions — Image dimensions ie width and height.
        - `height` integer
        - `width` integer
      - `url` string
    - `nationality` string, nullable — Nationality of user
    - `title` 'TITLE_UNKNOWN' | 'MR' | 'MS' | 'MRS' | 'MX' | 'MASTER' | 'MISS' | 'DR' | 'PROFESSOR' | 'CAPTAIN' | 'REVEREND' | 'HONOURABLE' | 'SIR' | 'LADY' | 'AMBASSADOR' | 'LORD' | 'BRIGADIER' | 'SENATOR' | 'DAME' | 'JUSTICE' | 'UK' | 'TITLE_REDACTED'
    - `preferredLanguage` string, nullable — Language preferred by user.
    - `preferredPronoun` 'SHE_HER_HERS' | 'HE_HIM_HIS' | 'THEY_THEM_THEIRS'
    - `travelerName` PatchName — Full name for PATCH requests. All fields are optional.
      - `family1` string, nullable — Last (family) name.
      - `family2` string, nullable
      - `given` string, nullable — First (given) name.
      - `middle` string, nullable — Middle name.
      - `suffix` 'NAME_SUFFIX_UNKNOWN' | 'SR' | 'JR' | 'MD' | 'PHD' | 'II' | 'III' | 'IV' | 'DO' | 'ATTY' | 'V' | 'VI' | 'ESQ' | 'DC' | 'DDS' | 'VM' | 'JD' | 'SECOND' | 'THIRD' — Suffix for name
      - `preferred` string, nullable — Informal preferred name added by traveler. This is not used on any PNR or tickets
    - `emergencyContact` PatchEmergencyContact — Emergency contact information for PATCH requests.
      - `name` string, nullable — Full name of contact.
      - `email` string, email, nullable — Email address of contact.
      - `relation` 'RELATION_UNKNOWN' | 'SPOUSE' | 'PARENT' | 'SIBLING' | 'CHILD' | 'FRIEND' | 'RELATIVE' | 'COLLEAGUE' | 'OTHER', nullable — Relation of contact to user.
      - `phoneNumbers` PhoneNumber[], nullable — Phone numbers of contact.
        - `countryCode` integer — two digit country code
        - `countryCodeSource` 'UNSPECIFIED' | 'FROM_NUMBER_WITH_PLUS_SIGN' | 'FROM_NUMBER_WITH_IDD' | 'FROM_NUMBER_WITHOUT_PLUS_SIGN' | 'FROM_DEFAULT_COUNTRY'
        - `extension` string — phone number extension
        - `isoCountryCode` string — ISO alpha-2 code
        - `italianLeadingZero` boolean
        - `nationalNumber` integer
        - `numberOfLeadingZeros` integer
        - `preferredDomesticCarrierCode` string
        - `rawInput` string
        - `type` 'UNKNOWN_TYPE' | 'MOBILE' | 'LANDLINE'
      - `preferredLanguage` string, nullable — Language preferred by user.
  - `businessInfo` PatchBusinessInfo — User business information for PATCH requests. All fields are optional and nullable.
    - `departmentRef` PatchReference — Reference of an entity for PATCH requests.
      - `id` string, uuid, nullable
      - `name` string, nullable
    - `designation` string, nullable
    - `email` string, email, nullable
    - `employeeId` string, nullable — Unique employee id. Can use email if a company don't use employee ids.
    - `gradeRef` PatchReference — Reference of an entity for PATCH requests.
      - `id` string, uuid, nullable
      - `name` string, nullable
    - `legalEntityRef` PatchReference — Reference of an entity for PATCH requests.
      - `id` string, uuid, nullable
      - `name` string, nullable
    - `managerRef` PatchReference — Reference of an entity for PATCH requests.
      - `id` string, uuid, nullable
      - `name` string, nullable
    - `officeRef` PatchReference — Reference of an entity for PATCH requests.
      - `id` string, uuid, nullable
      - `name` string, nullable
    - `organizationRef` PatchReference — Reference of an entity for PATCH requests.
      - `id` string, uuid, nullable
      - `name` string, nullable
    - `phoneNumbers` PhoneNumber[], nullable
      - `countryCode` integer — two digit country code
      - `countryCodeSource` 'UNSPECIFIED' | 'FROM_NUMBER_WITH_PLUS_SIGN' | 'FROM_NUMBER_WITH_IDD' | 'FROM_NUMBER_WITHOUT_PLUS_SIGN' | 'FROM_DEFAULT_COUNTRY'
      - `extension` string — phone number extension
      - `isoCountryCode` string — ISO alpha-2 code
      - `italianLeadingZero` boolean
      - `nationalNumber` integer
      - `numberOfLeadingZeros` integer
      - `preferredDomesticCarrierCode` string
      - `rawInput` string
      - `type` 'UNKNOWN_TYPE' | 'MOBILE' | 'LANDLINE'
    - `costCenterRef` PatchReference — Reference of an entity for PATCH requests.
      - `id` string, uuid, nullable
      - `name` string, nullable
    - `countryCode` string, nullable — alpha-2 or alpha-3 ISO country code.
    - `workerType` 'EMPLOYEE' | 'CONTINGENT' | 'SEASONAL' | 'INTERN' | 'GUEST' — The type of worker.
    - `accountingCode` string, nullable — Code used for accounting.
    - `companySpecifiedAttributes` PatchCompanySpecifiedAttribute[], nullable
      - `fixedColumnName` string, nullable
      - `value` string, nullable
    - `designatedApproverRefs` PatchReference[], nullable — A list of references for designated approvers.
      - `id` string, uuid, nullable
      - `name` string, nullable
    - `authorizerEmail` string, nullable — Email address to be used as approval authorizer, when a manager is not present.
  - `persona` 'UNKNOWN_PERSONA' | 'EMPLOYEE' | 'GUEST' | 'PERSONAL' | 'RELATIVE' | 'ADHOC' — Persona of the user
  - `tier` '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' — 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.
  - `stealthType` 'STEALTH_TYPE_1' | 'STEALTH_TYPE_2' | 'STEALTH_TYPE_3' — Stealth type.
  - `travelPreferences` PatchTravelPreferences — User's travel preferences for PATCH requests. All fields are optional and nullable.
    - `preferences` PatchTravelPref — Travel preferences for PATCH requests. All fields are optional and nullable.
      - `airPref` PatchAirPref — Travel preferences related to air travel for PATCH requests. All fields are optional and nullable.
        - `airlinePrefs` AirlinePref[], nullable
          - `airlines` string[]
          - `flightType` 'UNKNOWN_FLIGHT_TYPE' | 'DOMESTIC' | 'INTERNATIONAL' | 'ALL'
        - `alliancePref` AlliancePref — Alliance preferences.
          - `alliances` Alliance[], required
        - `farePref` FarePref — Fare preferences.
          - `fareTypes` string[], required
        - `homeAirport` string, nullable
        - `mealPref` PatchMealPref — Meal preferences for PATCH requests. All fields are optional and nullable.
          - `exclMealPrefs` MealType[], nullable
          - `inclMealPrefs` MealType[], nullable
          - `specialMealDescription` string, nullable
        - `numStopPref` PatchNumStopsPref — Preferred number of stops for PATCH requests. All fields are optional and nullable.
          - `numOfStops` integer, nullable
        - `seatAmenityPref` SeatAmenityPref — Seat amenity preference.
          - `seatAmenityTypes` string[], required
        - `seatLocationPrefs` PatchSeatLocationPref[], nullable
          - `cabins` string[], nullable
          - `isBulkHeadPref` boolean, nullable
          - `maxFlightDurationInHours` integer, nullable
          - `position` 'UNKNOWN_POSITION' | 'AISLE' | 'WINDOW' | 'AISLE_OR_WINDOW', nullable
        - `preferredAirports` PreferredAirport[], nullable — A list of user preferred airports.
          - `airportName` string — Airport name.
          - `airportCode` string, required — IATA airport code.
          - `label` 'HOME' | 'WORK' | 'OTHER', required — The label of preferred airport or rail station.
      - `preferredCurrency` string, nullable
      - `railCards` RailCard[], nullable
        - `cardNumber` string — Number of card
        - `expiryDate` DateModel — Date in ISO 8601 standard.
          - `iso8601` string, required
        - `name` string, required — Name of the Rail Card.
        - `spotnanaCode` string, required — Unique Spotnana code/identifier for Rail Card.
        - `vendor` string, required — Vendor Name.
      - `railPref` PatchRailPref — Travel preferences related to rail for PATCH requests. All fields are optional and nullable.
        - `preferredRailStations` PreferredRailStation[], nullable — A list of user preferred rail stations.
          - `stationName` string — Rail station name.
          - `stationCode` string, required — Rail station code.
          - `cityName` string — Name of city where the rail station is located.
          - `countryCode` string — Alpha-2 country code where the rail station is located.
          - `label` 'HOME' | 'WORK' | 'OTHER', required — The label of preferred airport or rail station.
        - `seatPreference` PatchSeatPref — Preference about seat of rail for PATCH requests. All fields are optional and nullable.
          - `hasAccessibility` boolean, nullable — Whether or not requires assistance for disability.
          - `seatTypes` SeatPrefType[], nullable
          - `seatLocations` SeatPrefLocation[], nullable
          - `deckLevels` DeckLevel[], nullable
          - `seatDirections` SeatPrefDirection[], nullable
        - `travelClasses` RailTravelClass[], nullable — A list of class of service for rail.
        - `coachPreferences` CoachPref[], nullable — A list of coach preference for rail.
        - `conditionalRates` ConditionalRate[], nullable — A list of conditional rates for rail.
      - `carPref` PatchCarPref — Travel preferences related to car for PATCH requests. All fields are optional and nullable.
        - `vendors` CarVendor[], nullable — A list of car vendors.
          - `code` string, required — Vendor code
          - `name` string, required — Vendor name
          - `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.
        - `carTypes` CarType[], nullable — A list of types of car.
        - `engineTypes` EngineType[], nullable — A list of types of engine.
        - `transmissionTypes` TransmissionSearchFilter[], nullable — A list of types of transmission.
        - `conditionalRates` ConditionalRate[], nullable — A list of conditional rates for car.
      - `hotelPref` PatchHotelPref — Travel preferences related to hotel for PATCH requests. All fields are optional and nullable.
        - `hotelParentChains` HotelChain[], nullable — A list of hotel parent chains.
          - `chainCode` string — The code of hotel chain.
          - `chainName` string — The name of hotel chain.
        - `hotelBrands` HotelBrand[], nullable — A list of hotel brands.
          - `brandCode` string — The code of hotel brand.
          - `brandName` string — The name of hotel brand.
        - `hotelAmenityTypes` HotelPrefAmenity[], nullable — A list of HotelAmenities.
        - `roomPreference` PatchRoomPreference — Room options and stay preference for PATCH requests. All fields are optional and nullable.
          - `isMobilityAccessible` boolean, nullable — Whether or not mobility accessible room, tub.
          - `bedCount` 'ONE_BED' | 'TWO_BEDS', nullable — The number of bed in the room.
          - `roomType` 'SMOKING' | 'NON_SMOKING', nullable — Single selection of type of room.
          - `mostImportantFact` 'ROOM_TYPE' | 'BED_COUNT' | 'ROOM_LOCATION', nullable — Single selection of the most import fact.
          - `roomLocation` 'HIGH_FLOOR' | 'LOW_FLOOR' | 'NEAR_ELEVATOR', nullable — Location of the hotel room
          - `pillowType` 'FOAM' | 'EXTRA_FOAM' | 'EXTRA_FEATHER', nullable — The type of pillow in hotel room.
          - `roomAmenityPrefs` string[], nullable
        - `conditionalRates` ConditionalRate[], nullable — A list of conditional rates for hotel.
  - `membershipInfo` PatchMembershipInfo — User's loyalty program membership details for PATCH requests. All fields are optional and nullable.
    - `membershipInfos` PatchLoyaltyInfo[], nullable
      - `appliedTo` string[], nullable
      - `id` string, nullable
      - `issuedBy` string, nullable
      - `type` 'UNKNOWN_TYPE' | 'AIR' | 'HOTEL' | 'CAR' | 'RAIL', nullable
      - `linked` boolean, nullable — Indicates if this loyalty account is linked to the external provider. Only applicable for certain loyalty types.
      - `tier` string — Loyalty membership tier name echoed from the supplier.
    - `isLoyaltyBlocked` boolean, nullable — Whether user is blocked to use loyalty programs. This is a read only field.
  - `notificationPreferences` NotificationPreferences — Notification preferences of a user for different notification types.
    - `preferences` NotificationPreferencePerType[]
      - `notificationType` 'FLIGHT_NOTIFICATION' | 'BOOKING_NOTIFICATION'
      - `emailPreference` NotificationEmailPreference — Email preference for notification type.
        - `enabled` boolean — Whether the email preference is enabled or not.
        - `ccEmails` string[] — List of cc emails for the email preference.
  - `adhocUserInfo` PatchAdhocUserInfo — Ad-hoc traveler profile info for PATCH requests. All fields are optional.
    - `profileOwner` PatchProfileOwner — Profile owner info for PATCH requests. All fields are optional.
      - `userId` PatchUserId — User identifier for PATCH requests. All fields are optional.
        - `id` string, uuid, nullable
    - `isSaved` boolean, nullable — 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.
  - `externalId` string, nullable — The partner-assigned user identifier.

## Response `204`

Updated successfully

## Other responses

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

## Changes

- **2026-09-18** `ca20683f87d5` — 1 info
  - endpoint added

[Change history](https://skmtc.dev/spotnana/apis/user-management-api/changes/v2/users/:userId/patch.md)

---

[API](https://skmtc.dev/spotnana/apis/user-management-api.md) · [All operations](https://skmtc.dev/spotnana/apis/user-management-api/llms.txt) · [OpenAPI document](https://skmtc.dev/spotnana/apis/user-management-api/revisions/ca20683f87d5?raw)
