Skip to main content
PUT
/
v1
/
customers
/
{customer_id}
Update a customer
curl --request PUT \
  --url https://api-staging.bsa.ai/v1/customers/{customer_id} \
  --header 'Authorization: Bearer <token>' \
  --header 'Content-Type: application/json' \
  --data '
{
  "externalId": "<string>"
}
'

Documentation Index

Fetch the complete documentation index at: https://docs.lms.bsa.ai/llms.txt

Use this file to discover all available pages before exploring further.

Rebrands a customer record by changing its externalId. This is the only mutable customer attribute. firstname and displayName move with externalId — the create-time invariant that firstname mirrors externalId for searchability is preserved on update. If you depend on either of those fields in your own systems, expect them to change. Other customer attributes (mobileNo, emailAddress, names beyond firstname) cannot be modified through this API. Close the customer and create a new one if you need a different shape. Two equivalent forms — see Addressing a customer.

Path parameters

customer_id
string
required
The customer’s LMS id. On the /external/{customer_external_id} form, the existing externalId is in the path instead.

Request body

externalId
string
required
The new external identifier. Must be unique across all customers on the deployment.

Examples

# By LMS id
curl -sf -X PUT "$BASE/v1/customers/42" \
  -H "Authorization: Bearer $TOKEN" \
  -H "Content-Type: application/json" \
  -d '{"externalId": "ext-ada-002"}'

# By current externalId — rename ext-ada-001 → ext-ada-002
curl -sf -X PUT "$BASE/v1/customers/external/ext-ada-001" \
  -H "Authorization: Bearer $TOKEN" \
  -H "Content-Type: application/json" \
  -d '{"externalId": "ext-ada-002"}'

Response

200 OK returns the updated customer object.
{
  "id": "42",
  "accountNo": "000000042",
  "externalId": "ext-ada-002",
  "status": "Active",
  "active": true,
  "officeId": "1",
  "officeName": "Head Office",
  "firstname": "ext-ada-002",
  "lastname": "Customer",
  "displayName": "ext-ada-002 Customer",
  "activationDate": "2026-05-25"
}

Errors

CodeWhen
invalid_argumentexternalId missing or empty
not_foundNo customer with that ID
abortedA different customer already has the requested externalId