User Management API (v2)

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

Users

APIs to onboard and manage users.

Operations

Get user

Request

This endpoint gets user details for user ID.

Path
userIdstring(uuid)required

Identifier for user.

Example: 4974a66b-7493-4f41-908c-58ba81093947
Query
includeInactiveboolean

Include inactive users in the response.

Default false
Example: includeInactive=true
curl -i -X GET \
  'https://apis.spotnana.com/v2/users/4974a66b-7493-4f41-908c-58ba81093947?includeInactive=true' \
  -H 'Authorization: Bearer <YOUR_TOKEN_HERE>'

Responses

OK

Bodyapplication/json
idstring(uuid)
personalInfoobject(UserPersonalInfo)

User details.

businessInfoobject(BusinessInfo)

User business information.

personastring(Persona)

Persona of the user

Enum"UNKNOWN_PERSONA""EMPLOYEE""GUEST""PERSONAL""RELATIVE""ADHOC"
isActiveboolean

Indicates if traveler is active.

Example: true
tierstring(Tier)

Tier of User. Note: In default UI, BASIC is displayed as Standard, and SEAT1A is displayed as VIP.

Enum"BASIC""SEAT1A"
travelPreferencesobject(TravelPreferences)

User's travel preferences

membershipInfoobject(MembershipInfo)

User's travel preferences

notificationPreferencesobject(NotificationPreferences)

Notification preferences of a user for different notification types.

travelArrangersobject(UserTravelArrangers)

Travel arrangers for a user.

adhocUserInfoobject(AdhocUserInfo)

Basic information related to ad-hoc traveler profile.

externalIdstring

The partner-assigned user identifier.

relativeOfobject(RelativeOf)Deprecated

Link to primary traveler

Response
application/json
{ "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08", "personalInfo": { "addresses": [], "dob": {}, "email": "example@email.com", "emergencyContactInfo": {}, "gender": "FEMALE", "identityDocs": [], "name": {}, "phoneNumbers": [], "profilePicture": {}, "nationality": "Indian", "title": "MR", "preferredLanguage": "en-US", "preferredPronoun": "SHE_HER_HERS", "travelerName": {}, "emergencyContact": {} }, "businessInfo": { "departmentRef": {}, "designation": "MANAGER", "email": "user@business.com", "employeeId": "101", "gradeRef": {}, "legalEntityRef": {}, "managerRef": {}, "officeRef": {}, "organizationRef": {}, "phoneNumbers": [], "costCenterRef": {}, "countryCode": "USA", "workerType": "EMPLOYEE", "accountingCode": "123", "companySpecifiedAttributes": [], "designatedApproverRefs": [], "authorizerEmail": "example@email.com" }, "persona": "EMPLOYEE", "isActive": true, "tier": "SEAT1A", "relativeOf": { "userRef": {}, "relation": "SPOUSE" }, "travelPreferences": { "preferences": {} }, "membershipInfo": { "membershipInfos": [] }, "notificationPreferences": { "preferences": [] }, "travelArrangers": { "travelArrangers": [] }, "adhocUserInfo": { "profileOwner": {}, "isSaved": false }, "externalId": "string" }

Delete user

Request

This endpoint deletes a user by user ID.

Path
userIdstring(uuid)required

Identifier for user.

Example: 4974a66b-7493-4f41-908c-58ba81093947
curl -i -X DELETE \
  https://apis.spotnana.com/v2/users/4974a66b-7493-4f41-908c-58ba81093947 \
  -H 'Authorization: Bearer <YOUR_TOKEN_HERE>'

Responses

No Content

Response
No content

Update user

Request

Path
userIdstring(uuid)required

Identifier for user.

Example: 4974a66b-7493-4f41-908c-58ba81093947
Bodyapplication/jsonrequired
personalInfoobject(UserPersonalInfo)required

User details.

personalInfo.​addressesArray of objects(PostalAddress)
personalInfo.​dobobject(DateModel)

Date in ISO 8601 standard.

personalInfo.​emailstring(email)
Example: "example@email.com"
personalInfo.​genderstring(Gender)
Enum"MALE""FEMALE""UNSPECIFIED""UNDISCLOSED"
personalInfo.​identityDocsArray of PassportWrapper (object) or ImmigrationDocumentWrapper (object) or RedressNumberWrapper (object) or KnownTravelerNumberWrapper (object) or NationalDocWrapper (object)(IdentityDocument)

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","issueCountry":"US"}}]
personalInfo.​nameobject(Name)

Full name containing first, middle, last (family) names, and suffix.

personalInfo.​phoneNumbersArray of objects(PhoneNumber)
personalInfo.​profilePictureobject(Image)

An image with meta data. Either the data or url property must be supplied to load the image.

personalInfo.​nationalitystring

Nationality of user

Example: "Indian"
personalInfo.​titlestring(UserTitle)
Enum"TITLE_UNKNOWN""MR""MS""MRS""MX""MASTER""MISS""DR""PROFESSOR""CAPTAIN"
personalInfo.​preferredLanguagestring

Language preferred by user.

Example: "en-US"
personalInfo.​preferredPronounstring(PreferredPronoun)

Pronoun preferred by user.

Enum"SHE_HER_HERS""HE_HIM_HIS""THEY_THEM_THEIRS"
personalInfo.​travelerNameobject(Name)

A name of user that does not contain special characters.

personalInfo.​emergencyContactobject(EmergencyContact)

Emergency contact information.

personalInfo.​emergencyContactInfoobject(EmergencyContactInfo)Deprecated

Emergency contact information.

businessInfoobject(BusinessInfo)required

User business information.

businessInfo.​departmentRefobject(Reference)

Reference of an entity

businessInfo.​designationstring
Example: "MANAGER"
businessInfo.​emailstring(email)
Example: "user@business.com"
businessInfo.​employeeIdstring

Unique employee id. Can use email if a company don't use employee ids.

Example: "101"
businessInfo.​gradeRefobject(Reference)

Reference of an entity

businessInfo.​legalEntityRefobject(Reference)required

Reference of an entity

businessInfo.​legalEntityRef.​idstring(uuid)required
businessInfo.​legalEntityRef.​namestring
businessInfo.​managerRefobject(Reference)

Reference of an entity

businessInfo.​officeRefobject(Reference)

Reference of an entity

businessInfo.​organizationRefobject(Reference)required

Reference of an entity

businessInfo.​organizationRef.​idstring(uuid)required
businessInfo.​organizationRef.​namestring
businessInfo.​phoneNumbersArray of objects(PhoneNumber)
businessInfo.​costCenterRefobject(Reference)

Reference of an entity

businessInfo.​countryCodestring

alpha-2 or alpha-3 ISO country code.

Example: "USA"
businessInfo.​workerTypestring(WorkerType)

The type of worker.

Enum"EMPLOYEE""CONTINGENT""SEASONAL""INTERN"
businessInfo.​accountingCodestring

Code used for accounting.

Example: "123"
businessInfo.​companySpecifiedAttributesArray of objects(CompanySpecifiedAttribute)
businessInfo.​designatedApproverRefsArray of objects(Reference object containing uuid and name of the entity.)

A list of references for designated approvers.

businessInfo.​authorizerEmailstringDeprecated

Email address to be used as approval authorizer, when a manager is not present.

Example: "example@email.com"
personastring(Persona)required

Persona of the user

Enum"UNKNOWN_PERSONA""EMPLOYEE""GUEST""PERSONAL""RELATIVE""ADHOC"
tierstring(Tier)

Tier of User. Note: In default UI, BASIC is displayed as Standard, and SEAT1A is displayed as VIP.

Enum"BASIC""SEAT1A"
travelPreferencesobject(TravelPreferences)

User's travel preferences

membershipInfoobject(MembershipInfo)

User's travel preferences

notificationPreferencesobject(NotificationPreferences)

Notification preferences of a user for different notification types.

adhocUserInfoobject(AdhocUserInfo)

Basic information related to ad-hoc traveler profile.

externalIdstring

The partner-assigned user identifier.

relativeOfobject(RelativeOf)Deprecated

Link to primary traveler

travelArrangersobject(UserTravelArrangers)Deprecated

Travel arrangers for a user.

curl -i -X PUT \
  https://apis.spotnana.com/v2/users/4974a66b-7493-4f41-908c-58ba81093947 \
  -H 'Authorization: Bearer <YOUR_TOKEN_HERE>' \
  -H 'Content-Type: application/json' \
  -d '{
    "personalInfo": {
      "addresses": [
        {
          "addressLines": [
            "Golden Gate Bridge"
          ],
          "administrativeArea": "CA",
          "administrativeAreaName": "California",
          "description": "San Francisco Home",
          "isDefault": true,
          "languageCode": "en",
          "locality": "San Francisco",
          "locationCode": "LAX",
          "organization": "Spotnana",
          "postalCode": "94130",
          "continentCode": "AF",
          "recipients": [
            "string"
          ],
          "regionCode": "US",
          "regionName": "America",
          "revision": 1,
          "sortingCode": "Jamaica",
          "sublocality": "string",
          "timezone": "America/Los_Angeles",
          "coordinates": {
            "latitude": 77.1025,
            "longitude": 28.7041
          }
        }
      ],
      "dob": {
        "iso8601": "2017-07-21"
      },
      "email": "example@email.com",
      "emergencyContactInfo": {
        "address": {
          "addressLines": [
            "Golden Gate Bridge"
          ],
          "administrativeArea": "CA",
          "administrativeAreaName": "California",
          "description": "San Francisco Home",
          "isDefault": true,
          "languageCode": "en",
          "locality": "San Francisco",
          "locationCode": "LAX",
          "organization": "Spotnana",
          "postalCode": "94130",
          "continentCode": "AF",
          "recipients": [
            "string"
          ],
          "regionCode": "US",
          "regionName": "America",
          "revision": 1,
          "sortingCode": "Jamaica",
          "sublocality": "string",
          "timezone": "America/Los_Angeles",
          "coordinates": {
            "latitude": 77.1025,
            "longitude": 28.7041
          }
        },
        "designation": "MANAGER",
        "email": "emergency-contact@email.com",
        "name": {
          "family1": "Gandas",
          "family2": "FamilyTwo",
          "given": "Vichitr",
          "middle": "Kumar",
          "suffix": "SR",
          "preferred": "Don"
        },
        "phoneNumber": {
          "countryCode": 91,
          "countryCodeSource": "FROM_NUMBER_WITH_PLUS_SIGN",
          "extension": "222",
          "isoCountryCode": "IN",
          "italianLeadingZero": true,
          "nationalNumber": 8150,
          "numberOfLeadingZeros": 1,
          "preferredDomesticCarrierCode": "7",
          "rawInput": "77777",
          "type": "MOBILE"
        },
        "userOrgId": {
          "organizationAgencyId": {
            "id": "string"
          },
          "organizationId": {
            "id": "string"
          },
          "userId": {
            "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08"
          },
          "tmcInfo": {
            "id": {
              "id": "f49d00fe-1eda-4304-ba79-a980f565281d"
            },
            "primaryServiceProviderTmc": {
              "tmcId": {
                "id": "f49d00fe-1eda-4304-ba79-a980f565281d"
              }
            },
            "secondaryServiceProviderTmcs": [
              {
                "tmcId": {},
                "supplier": "SABRE",
                "travelType": "AIR"
              }
            ],
            "partnerTmcId": {
              "id": "f49d00fe-1eda-4304-ba79-a980f565281d"
            }
          },
          "tmcBasicInfo": {
            "contractingTmc": {
              "id": {
                "id": "f49d00fe-1eda-4304-ba79-a980f565281d"
              },
              "name": "string",
              "logo": {
                "data": "6935813e12584abda0e43d71cd2ea260",
                "dimensions": {},
                "url": "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"
              }
            },
            "bookingTmc": {
              "id": {
                "id": "f49d00fe-1eda-4304-ba79-a980f565281d"
              },
              "name": "string",
              "logo": {
                "data": "6935813e12584abda0e43d71cd2ea260",
                "dimensions": {},
                "url": "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"
              }
            }
          }
        }
      },
      "gender": "FEMALE",
      "identityDocs": [
        {
          "passport": {
            "docId": "PASSPORTID",
            "expiryDate": {
              "iso8601": "2017-07-21"
            },
            "issueCountry": "IN",
            "issuedDate": {
              "iso8601": "2017-07-21"
            },
            "nationalityCountry": "IN",
            "type": "REGULAR"
          }
        },
        {
          "ktn": {
            "number": "123456",
            "issueCountry": "US"
          }
        }
      ],
      "name": {
        "family1": "Gandas",
        "family2": "FamilyTwo",
        "given": "Vichitr",
        "middle": "Kumar",
        "suffix": "SR",
        "preferred": "Don"
      },
      "phoneNumbers": [
        {
          "countryCode": 91,
          "countryCodeSource": "FROM_NUMBER_WITH_PLUS_SIGN",
          "extension": "222",
          "isoCountryCode": "IN",
          "italianLeadingZero": true,
          "nationalNumber": 8150,
          "numberOfLeadingZeros": 1,
          "preferredDomesticCarrierCode": "7",
          "rawInput": "77777",
          "type": "MOBILE"
        }
      ],
      "profilePicture": {
        "data": "6935813e12584abda0e43d71cd2ea260",
        "dimensions": {
          "height": 120,
          "width": 240
        },
        "url": "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"
      },
      "nationality": "Indian",
      "title": "MR",
      "preferredLanguage": "en-US",
      "preferredPronoun": "SHE_HER_HERS",
      "travelerName": {
        "family1": "Gandas",
        "family2": "FamilyTwo",
        "given": "Vichitr",
        "middle": "Kumar",
        "suffix": "SR",
        "preferred": "Don"
      },
      "emergencyContact": {
        "name": "John Smith",
        "email": "emergency-contact@email.com",
        "designation": "MANAGER",
        "relation": "SPOUSE",
        "phoneNumbers": [
          {
            "countryCode": 91,
            "countryCodeSource": "FROM_NUMBER_WITH_PLUS_SIGN",
            "extension": "222",
            "isoCountryCode": "IN",
            "italianLeadingZero": true,
            "nationalNumber": 8150,
            "numberOfLeadingZeros": 1,
            "preferredDomesticCarrierCode": "7",
            "rawInput": "77777",
            "type": "MOBILE"
          }
        ],
        "preferredLanguage": "en-US"
      }
    },
    "businessInfo": {
      "departmentRef": {
        "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
        "name": "string"
      },
      "designation": "MANAGER",
      "email": "user@business.com",
      "employeeId": "101",
      "gradeRef": {
        "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
        "name": "string"
      },
      "legalEntityRef": {
        "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
        "name": "string"
      },
      "managerRef": {
        "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
        "name": "string"
      },
      "officeRef": {
        "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
        "name": "string"
      },
      "organizationRef": {
        "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
        "name": "string"
      },
      "phoneNumbers": [
        {
          "countryCode": 91,
          "countryCodeSource": "FROM_NUMBER_WITH_PLUS_SIGN",
          "extension": "222",
          "isoCountryCode": "IN",
          "italianLeadingZero": true,
          "nationalNumber": 8150,
          "numberOfLeadingZeros": 1,
          "preferredDomesticCarrierCode": "7",
          "rawInput": "77777",
          "type": "MOBILE"
        }
      ],
      "costCenterRef": {
        "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
        "name": "string"
      },
      "countryCode": "USA",
      "workerType": "EMPLOYEE",
      "accountingCode": "123",
      "companySpecifiedAttributes": [
        {
          "fixedColumnName": "contingentType",
          "value": "FSTV"
        }
      ],
      "designatedApproverRefs": [
        {
          "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
          "name": "string"
        }
      ],
      "authorizerEmail": "example@email.com"
    },
    "persona": "EMPLOYEE",
    "tier": "SEAT1A",
    "relativeOf": {
      "userRef": {
        "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
        "name": "string"
      },
      "relation": "SPOUSE"
    },
    "travelPreferences": {
      "preferences": {
        "airPref": {
          "airlinePrefs": [
            {
              "airlines": [
                "Indigo"
              ],
              "flightType": "DOMESTIC"
            }
          ],
          "alliancePref": {
            "alliances": [
              "STAR_ALLIANCE"
            ]
          },
          "farePref": {
            "fareTypes": [
              "CHANGEABLE"
            ]
          },
          "homeAirport": "NEW YORK",
          "mealPref": {
            "exclMealPrefs": [
              "VGML"
            ],
            "inclMealPrefs": [
              "VGML"
            ],
            "specialMealDescription": "Veg only meal"
          },
          "numStopPref": {
            "numOfStops": 34
          },
          "seatAmenityPref": {
            "seatAmenityTypes": [
              "WIFI"
            ]
          },
          "seatLocationPrefs": [
            {
              "cabins": [
                "FIRST"
              ],
              "isBulkHeadPref": false,
              "maxFlightDurationInHours": 3,
              "position": "WINDOW"
            }
          ],
          "preferredAirports": [
            {
              "airportName": "San Francisco International Airport",
              "airportCode": "SFO",
              "label": "HOME"
            }
          ]
        },
        "preferredCurrency": "USD",
        "railCards": [
          {
            "cardNumber": "string",
            "expiryDate": {
              "iso8601": "2017-07-21"
            },
            "name": "Veterans Railcard",
            "spotnanaCode": "VET",
            "vendor": "ATOC"
          }
        ],
        "railPref": {
          "preferredRailStations": [
            {
              "stationName": "Chicago Union Station",
              "stationCode": "CHI",
              "cityName": "Chicago",
              "countryCode": "string",
              "label": "HOME"
            }
          ],
          "seatPreference": {
            "hasAccessibility": false,
            "seatTypes": [
              "NORMAL"
            ],
            "seatLocations": [
              "AISLE"
            ],
            "deckLevels": [
              "UPPER_DECK"
            ],
            "seatDirections": [
              "FORWARD"
            ]
          },
          "travelClasses": [
            "FIRST"
          ],
          "coachPreferences": [
            "NON_SMOKING"
          ],
          "conditionalRates": [
            "AAA"
          ]
        },
        "carPref": {
          "vendors": [
            {
              "code": "ZE",
              "name": "HERTZ",
              "isPresentInPreferredVendors": true
            }
          ],
          "carTypes": [
            "ECONOMY"
          ],
          "engineTypes": [
            "PETROL"
          ],
          "transmissionTypes": [
            "AUTOMATIC"
          ],
          "conditionalRates": [
            "AAA"
          ]
        },
        "hotelPref": {
          "hotelParentChains": [
            {
              "chainCode": "EM",
              "chainName": "Mariott"
            }
          ],
          "hotelBrands": [
            {
              "brandCode": "HY",
              "brandName": "Global Hytt Corp."
            }
          ],
          "hotelAmenityTypes": [
            "PARKING"
          ],
          "roomPreference": {
            "isMobilityAccessible": false,
            "bedCount": "ONE_BED",
            "roomType": "SMOKING",
            "mostImportantFact": "BED_COUNT",
            "roomLocation": "HIGH_FLOOR",
            "pillowType": "FOAM",
            "roomAmenityPrefs": [
              "EXTRA_TOWELS"
            ]
          },
          "conditionalRates": [
            "AAA"
          ]
        }
      }
    },
    "membershipInfo": {
      "membershipInfos": [
        {
          "appliedTo": [
            "TAJ"
          ],
          "id": "firstId",
          "issuedBy": "firstIssuedBy",
          "type": "AIR"
        }
      ]
    },
    "notificationPreferences": {
      "preferences": [
        {
          "notificationType": "FLIGHT_NOTIFICATION",
          "emailPreference": {
            "enabled": true,
            "ccEmails": [
              "user@example.com"
            ]
          }
        }
      ]
    },
    "adhocUserInfo": {
      "profileOwner": {
        "userId": {
          "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08"
        }
      },
      "isSaved": false
    },
    "externalId": "string",
    "travelArrangers": {
      "travelArrangers": [
        {
          "name": {
            "family1": "Gandas",
            "family2": "FamilyTwo",
            "given": "Vichitr",
            "middle": "Kumar",
            "suffix": "SR",
            "preferred": "Don"
          },
          "email": "example@email.com",
          "phoneNumbers": [
            {
              "countryCode": 91,
              "countryCodeSource": "FROM_NUMBER_WITH_PLUS_SIGN",
              "extension": "222",
              "isoCountryCode": "IN",
              "italianLeadingZero": true,
              "nationalNumber": 8150,
              "numberOfLeadingZeros": 1,
              "preferredDomesticCarrierCode": "7",
              "rawInput": "77777",
              "type": "MOBILE"
            }
          ],
          "userId": {
            "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08"
          },
          "status": "PENDING"
        }
      ]
    }
  }'

Responses

No Content

Response
No content