---
title: "Update a client"
method: PUT
path: "/api/business/{businessId}/client/{clientId}"
tags: ["Client"]
---

# Update a client

`PUT /api/business/{businessId}/client/{clientId}`

Update and return a client for the specified business id and client id

## Path parameters

- `businessId` string, required
- `clientId` string, required

## Request body

- ClientUpdateRequest
  - `linkedClientMobile` string
  - `landLine` string
  - `email` string
  - `address` AddressData
    - `streetAddress1` string
    - `streetAddress2` string
    - `city` string
    - `state` string
    - `postalCode` string
    - `country` string
  - `birthDate` string, date
  - `clientSince` string, date-time
  - `gender` 'MALE' | 'FEMALE' | 'NON_BINARY' | 'NOT_SPECIFIED' | 'PREFER_NOT_TO_SAY' | 'UNKNOWN'
  - `notes` string
  - `smsMarketingConsent` boolean
  - `emailMarketingConsent` boolean
  - `smsReminderConsent` boolean
  - `emailReminderConsent` boolean
  - `preferredStaffId` string
  - `externalId` string
  - `creatingBranchId` string
  - `archived` boolean
  - `banned` boolean
  - `clientCategoryIds` string[] — The list of client category IDs associated with this client
  - `clientId` string
  - `version` integer
  - `firstName` string, required
  - `lastName` string, required
  - `mobile` string
  - `firstVisit` string, date

## Response `200`

Client updated successfully

- ClientResponse
  - `linkedClientMobile` string
  - `landLine` string
  - `email` string
  - `address` AddressData
    - `streetAddress1` string
    - `streetAddress2` string
    - `city` string
    - `state` string
    - `postalCode` string
    - `country` string
  - `birthDate` string, date
  - `clientSince` string, date-time
  - `gender` 'MALE' | 'FEMALE' | 'NON_BINARY' | 'NOT_SPECIFIED' | 'PREFER_NOT_TO_SAY' | 'UNKNOWN'
  - `notes` string
  - `smsMarketingConsent` boolean
  - `emailMarketingConsent` boolean
  - `smsReminderConsent` boolean
  - `emailReminderConsent` boolean
  - `preferredStaffId` string
  - `externalId` string
  - `creatingBranchId` string
  - `archived` boolean
  - `banned` boolean
  - `clientCategoryIds` string[] — The list of client category IDs associated with this client
  - `clientId` string
  - `version` integer
  - `firstName` string, required
  - `lastName` string, required
  - `mobile` string
  - `createdAt` string, date-time
  - `updatedAt` string, date-time
  - `photoUrl` string
  - `creditAccount` CreditAccount
    - `outstandingBalance` number
    - `creditDays` integer
    - `creditLimit` number
  - `loyaltyCard` LoyaltyCard
    - `serial` string
    - `points` integer
  - `mergedToClientId` string
  - `linkedClientId` string — id of the linked (parent) client this client is linked to, if any
  - `deleted` boolean
  - `firstVisit` string, date
  - `lastVisit` string, date
  - `lastVisitedBranchId` string

## Other responses

- `400` — Client data is invalid, unable to update a client
- `404` — Business or client with the specified ids don't exist
- `409` — Client has been updated since it was read
- `429` — Request rate limit exceeded. Current limit set to 100 rps.
- `500` — Internal Server Error

---

[API](https://skmtc.net/phorest/apis/third-party-api.md) · [All operations](https://skmtc.net/phorest/apis/third-party-api/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/phorest/third-party-api/versions/2218bc90d39c/schema)
