# Update a contact record Update an existing contact record in the CRM module of the PMS. This endpoint requires the contact's unique ID as a path variable and a JSON payload containing the updated contact details, such as name, contact information, role, or related metadata. The system verifies the existence of the contact and applies locking mechanisms to prevent concurrent modifications during the update process. Upon successful completion, the updated contact record is saved, and the response includes the latest contact details. This endpoint is essential for maintaining up-to-date contact information and ensuring data integrity in the CRM module. Endpoint: PUT /api/v3/contacts/{id} Version: 3.0.9 Security: OAuth2 ## Path parameters: - `id` (integer, required) Contact ID ## Query parameters: - `currentUser` (object, required) ## Request fields (application/json): - `id` (integer) - `firstName` (string, required) - `middleNames` (string) - `lastName` (string, required) - `jobTitle` (string) - `department` (string) - `preferences` (string) - `status` (string) Enum: "ACTIVE", "INACTIVE", "BANNED", "ARCHIVED", "VIP", "WAITLIST", "REMOVED" - `marketingOptOut` (boolean) Marketing opt-out status of the contact - `contactSalesAccount` (object) Sales account associated with the contact - `contactSalesAccount.id` (integer) Unique identifier of the finance account - `contactSalesAccount.accountCode` (string) Account code of the finance account - `contactSalesAccount.contact` (object, required) - `contactSalesAccount.contact.id` (integer) Unique identifier of the contact - `contactSalesAccount.contact.firstName` (string) First name of the contact - `contactSalesAccount.contact.lastName` (string) Last name of the contact - `contactSalesAccount.company` (object) Company summary associated with the finance account - `contactSalesAccount.company.id` (integer) Unique identifier of the company - `contactSalesAccount.company.companyName` (string) Name of the company - `contactSalesAccount.externalId` (string) External identifier of the finance account - `contactSalesAccount.exportedDate` (string) Date when the finance account was exported - `contactSalesAccount.exportStatus` (string) Export status of the finance account Enum: "SKIPPED", "CREATED", "PENDING", "SENT", "EXPORTED", "FAILED", "IMPORTED" - `title` (string) Title of the contact Enum: "MR", "MISS", "MS", "MRS" - `gender` (string) Gender of the contact Enum: "MALE", "FEMALE", "OTHER" - `referrer` (object) - `referrer.id` (integer) Unique identifier of the referrer - `referrer.code` (string) Code of the referrer - `referrer.name` (string) Name of the referrer - `industry` (object) - `industry.id` (integer) Unique identifier of the industry - `industry.name` (string) Name of the industry - `marketSegment` (object) - `marketSegment.id` (integer) Unique identifier of the market segment - `marketSegment.name` (string, required) Name of the market segment - `nationality` (object) Nationality of the contact - `nationality.id` (integer) ID of the nationality - `nationality.name` (string) Name of the nationality - `nationality.isoCode` (integer) ISO code of the nationality - `nationality.sortOrder` (integer) Sort order of the nationality - `nationality.countryCodeAlpha2` (string) Country code in Alpha-2 format - `primaryContactAddress` (object, required) Data Transfer Object representing a contact's address - `primaryContactAddress.id` (integer) Unique identifier of the address - `primaryContactAddress.addressLine1` (string) First line of the address - `primaryContactAddress.addressLine2` (string) Second line of the address - `primaryContactAddress.addressLine3` (string) Third line of the address - `primaryContactAddress.city` (string) City of the address - `primaryContactAddress.postCode` (string) Postal code of the address - `primaryContactAddress.country` (object) Data Transfer Object representing a Country entity in the Property Management System (PMS). - `primaryContactAddress.country.id` (integer) Unique identifier of the country - `primaryContactAddress.country.name` (string, required) Name of the country - `primaryContactAddress.country.sortOrder` (integer, required) Sort order of the country - `primaryContactAddress.country.countryCodeAlpha2` (string, required) Alpha-2 country code - `primaryContactAddress.country.countryCodeAlpha3` (string, required) Alpha-3 country code - `primaryContactAddress.country.countryCodeNumeric` (string, required) Numeric country code - `primaryContactAddress.nickname` (string) Nickname of the contact address - `primaryContactAddress.primary` (boolean) Indicates if this is the primary address - `primaryContactEmailAddress` (object, required) Primary email address of the contact - `primaryContactEmailAddress.id` (integer) Unique identifier of the email address Example: 1 - `primaryContactEmailAddress.email` (string, required) Email address Example: "info@resharmonics.com" - `primaryContactEmailAddress.nickname` (string) Nickname of the contact - `primaryContactEmailAddress.primary` (boolean) Indicates if this is the primary email address - `primaryContactTelephoneNumber` (object, required) Primary telephone number of the contact - `primaryContactTelephoneNumber.number` (string, required) - `primaryContactTelephoneNumber.primary` (boolean) Indicates if this is the primary telephone number - `preferredContactMethod` (string) Preferred contact method of the contact Enum: "TELEPHONE", "EMAIL", "MAIL" - `type` (string) Type of the contact Enum: "BOOKER", "GUEST" - `source` (string) Source of the contact Enum: "OFFLINE_SOURCE", "ONLINE_ENQUIRY_FORM", "ONLINE_BOOKING", "DIRECT_SALE", "SALES_CHANNEL" - `idCheck` (boolean) ID check status of the contact - `companyName` (string) Company name associated with the contact - `lifecycleStage` (string) Lifecycle stage of the contact Enum: "LEAD", "QUALIFIED", "DISQUALIFIED", "OPPORTUNITY", "CUSTOMER" - `lastBookingRole` (string) Last booking role of the contact Enum: "NONE", "BOOKER", "GUEST", "GUEST_BOOKER" - `uuid` (string) UUID of the contact - `password` (string) Password of the contact - `saltoIdentifier` (string) Salto identifier of the contact - `saltoAssignedTagId` (string) Salto assigned tag ID of the contact - `cognitoId` (string) Cognito ID of the contact - `passportNumber` (string) Passport number of the contact - `saltoRegistrationStatus` (string) Salto registration status of the contact Enum: "UNKNOWN", "NOT_INVITED", "INVITED", "REGISTERED" - `saltoKeysLastUpdated` (string) Last updated time of Salto keys - `keyCardCode` (string) Key card code of the contact - `identityConfirmedDate` (string) Date when the identity was confirmed - `identityConfirmedReference` (string) Reference for the identity confirmation - `creditCheckOk` (boolean) Credit check status of the contact - `creditCheckDate` (string) Date of the credit check - `socialSecurityNumber` (string) Social security number of the contact - `dateOfBirth` (string) ## Response 200 fields (application/json): - `id` (integer) - `firstName` (string, required) - `middleNames` (string) - `lastName` (string, required) - `jobTitle` (string) - `department` (string) - `preferences` (string) - `status` (string) Enum: "ACTIVE", "INACTIVE", "BANNED", "ARCHIVED", "VIP", "WAITLIST", "REMOVED" - `marketingOptOut` (boolean) Marketing opt-out status of the contact - `contactSalesAccount` (object) Sales account associated with the contact - `contactSalesAccount.id` (integer) Unique identifier of the finance account - `contactSalesAccount.accountCode` (string) Account code of the finance account - `contactSalesAccount.contact` (object, required) - `contactSalesAccount.contact.id` (integer) Unique identifier of the contact - `contactSalesAccount.contact.firstName` (string) First name of the contact - `contactSalesAccount.contact.lastName` (string) Last name of the contact - `contactSalesAccount.company` (object) Company summary associated with the finance account - `contactSalesAccount.company.id` (integer) Unique identifier of the company - `contactSalesAccount.company.companyName` (string) Name of the company - `contactSalesAccount.externalId` (string) External identifier of the finance account - `contactSalesAccount.exportedDate` (string) Date when the finance account was exported - `contactSalesAccount.exportStatus` (string) Export status of the finance account Enum: "SKIPPED", "CREATED", "PENDING", "SENT", "EXPORTED", "FAILED", "IMPORTED" - `title` (string) Title of the contact Enum: "MR", "MISS", "MS", "MRS" - `gender` (string) Gender of the contact Enum: "MALE", "FEMALE", "OTHER" - `referrer` (object) - `referrer.id` (integer) Unique identifier of the referrer - `referrer.code` (string) Code of the referrer - `referrer.name` (string) Name of the referrer - `industry` (object) - `industry.id` (integer) Unique identifier of the industry - `industry.name` (string) Name of the industry - `marketSegment` (object) - `marketSegment.id` (integer) Unique identifier of the market segment - `marketSegment.name` (string, required) Name of the market segment - `nationality` (object) Nationality of the contact - `nationality.id` (integer) ID of the nationality - `nationality.name` (string) Name of the nationality - `nationality.isoCode` (integer) ISO code of the nationality - `nationality.sortOrder` (integer) Sort order of the nationality - `nationality.countryCodeAlpha2` (string) Country code in Alpha-2 format - `primaryContactAddress` (object, required) Data Transfer Object representing a contact's address - `primaryContactAddress.id` (integer) Unique identifier of the address - `primaryContactAddress.addressLine1` (string) First line of the address - `primaryContactAddress.addressLine2` (string) Second line of the address - `primaryContactAddress.addressLine3` (string) Third line of the address - `primaryContactAddress.city` (string) City of the address - `primaryContactAddress.postCode` (string) Postal code of the address - `primaryContactAddress.country` (object) Data Transfer Object representing a Country entity in the Property Management System (PMS). - `primaryContactAddress.country.id` (integer) Unique identifier of the country - `primaryContactAddress.country.name` (string, required) Name of the country - `primaryContactAddress.country.sortOrder` (integer, required) Sort order of the country - `primaryContactAddress.country.countryCodeAlpha2` (string, required) Alpha-2 country code - `primaryContactAddress.country.countryCodeAlpha3` (string, required) Alpha-3 country code - `primaryContactAddress.country.countryCodeNumeric` (string, required) Numeric country code - `primaryContactAddress.nickname` (string) Nickname of the contact address - `primaryContactAddress.primary` (boolean) Indicates if this is the primary address - `primaryContactEmailAddress` (object, required) Primary email address of the contact - `primaryContactEmailAddress.id` (integer) Unique identifier of the email address Example: 1 - `primaryContactEmailAddress.email` (string, required) Email address Example: "info@resharmonics.com" - `primaryContactEmailAddress.nickname` (string) Nickname of the contact - `primaryContactEmailAddress.primary` (boolean) Indicates if this is the primary email address - `primaryContactTelephoneNumber` (object, required) Primary telephone number of the contact - `primaryContactTelephoneNumber.number` (string, required) - `primaryContactTelephoneNumber.primary` (boolean) Indicates if this is the primary telephone number - `preferredContactMethod` (string) Preferred contact method of the contact Enum: "TELEPHONE", "EMAIL", "MAIL" - `type` (string) Type of the contact Enum: "BOOKER", "GUEST" - `source` (string) Source of the contact Enum: "OFFLINE_SOURCE", "ONLINE_ENQUIRY_FORM", "ONLINE_BOOKING", "DIRECT_SALE", "SALES_CHANNEL" - `idCheck` (boolean) ID check status of the contact - `companyName` (string) Company name associated with the contact - `lifecycleStage` (string) Lifecycle stage of the contact Enum: "LEAD", "QUALIFIED", "DISQUALIFIED", "OPPORTUNITY", "CUSTOMER" - `lastBookingRole` (string) Last booking role of the contact Enum: "NONE", "BOOKER", "GUEST", "GUEST_BOOKER" - `uuid` (string) UUID of the contact - `password` (string) Password of the contact - `saltoIdentifier` (string) Salto identifier of the contact - `saltoAssignedTagId` (string) Salto assigned tag ID of the contact - `cognitoId` (string) Cognito ID of the contact - `passportNumber` (string) Passport number of the contact - `saltoRegistrationStatus` (string) Salto registration status of the contact Enum: "UNKNOWN", "NOT_INVITED", "INVITED", "REGISTERED" - `saltoKeysLastUpdated` (string) Last updated time of Salto keys - `keyCardCode` (string) Key card code of the contact - `identityConfirmedDate` (string) Date when the identity was confirmed - `identityConfirmedReference` (string) Reference for the identity confirmation - `creditCheckOk` (boolean) Credit check status of the contact - `creditCheckDate` (string) Date of the credit check - `socialSecurityNumber` (string) Social security number of the contact - `dateOfBirth` (string)