Skip to main content
PUT
/
v1
/
customers
/
external
/
{customer_external_id}
Update a customer
curl --request PUT \
  --url https://api.dev.bsa.ai/v1/customers/external/{customer_external_id} \
  --header 'Authorization: Bearer <token>' \
  --header 'Content-Type: application/json' \
  --data '
{
  "externalId": "<string>"
}
'
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. Prefer the externalId form — address the customer by the reference you already store, with no mapping to a numeric LMS id. See Addressing a customer.

Path parameters

customer_external_id
string
required
The customer’s current externalId. On the alternative /v1/customers/{customer_id} form, the numeric LMS id 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 current externalId (recommended) — 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"}'

# Same effect, 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"}'

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 externalId or id
abortedA different customer already has the requested externalId