en
Customers›Update a customer

Update a customer

PARTIAL update — send only the fields you are changing; anything you OMIT is left exactly as stored (two-way CRM sync friendly: push one field from your system of record without re-sending the record). To CLEAR a field, send it as an empty string: uid, phone, email, notes, preferred_technician_id, service_area_id. `tier` and `status` are enums with no empty member, so an empty value there is ignored rather than stored. `full_name` cannot be set to empty. The nested `address` object is all-or-nothing: omit it to leave the stored address (and its coordinates) untouched; when present it REPLACES the whole block, and missing latitude/longitude are geocoded from the address. A customer must keep at least one contact channel — an update that would clear both phone and email is refused with PHONE_OR_EMAIL_REQUIRED.

Arguments

idstringpathrequired
Customer ID (UUID)
▾addressobjectbodyoptional
Postal address and coordinates. Omit the whole object to leave the stored address untouched; when present it REPLACES the address block.
citystringbodyoptional
City / locality. Max 100 chars.
countrystringbodyoptional
Country (free-form or ISO code). Max 100 chars.
formattedstringbodyoptional
Human-readable single-line address; when set it wins over the discrete parts for display. Max 500 chars.
latitudenumberbodyoptional
Geographic latitude in decimal degrees (-90..90). Omit if unknown.
linestringbodyoptional
Street address, line 1 (e.g. "123 Main St"). Max 255 chars.
line2stringbodyoptional
Street address, line 2 (apartment, suite, unit). Max 255 chars.
longitudenumberbodyoptional
Geographic longitude in decimal degrees (-180..180). Omit if unknown.
postal_codestringbodyoptional
Postal / ZIP code. Max 32 chars.
statestringbodyoptional
State / province / region. Max 100 chars.
emailstringbodyoptional
Email address. Omit to leave unchanged, "" to clear.
full_namestringbodyoptional
Customer's full name. Omit to leave unchanged; an empty or blank value is ignored (a customer cannot be left nameless). Max 255 chars.
notesstringbodyoptional
Free-form internal notes about the customer. Omit to leave unchanged, "" to clear; max 4000 chars.
phonestringbodyoptional
Phone number in E.164 international format (`+16135550188`); a bare national number is rejected with PHONE_INVALID — see createCustomerReq.Phone. Omit to leave unchanged, "" to clear. 10–20 chars.
preferred_technician_idstringbodyoptional
UUID of the technician this customer prefers. Omit to leave unchanged, "" to clear. Must belong to this business.
service_area_idstringbodyoptional
UUID of the service area for this customer. Omit to leave unchanged, "" to clear. Must belong to this business.
sms_opt_inbooleanbodyoptional
SMS consent, tri-state: omit/null = leave unchanged; true = grant (only when the customer explicitly consented — the original consent timestamp is preserved); false = revoke (opt-out, stops SMS immediately).
statusenumbodyoptional
Lifecycle status. Omit to leave unchanged; "" is ignored.
tierenumbodyoptional
Loyalty tier. Omit to leave unchanged; "" is ignored (an enum has no empty member).
uidstringbodyoptional
Your external reference for this customer. Omit to leave unchanged, "" to clear. Max 32 chars.
PUT/v1/customers/{id}
curl -X PUT "https://api.crisphive.com/v1/customers/9b2f6c3e-1a4d-4f0a-8f2e-7c5d1b3a9e01" \
  -H "Authorization: Bearer chsk_test_4eC8xQ9mZ2pL7Ka0rT" \
  -H "Content-Type: application/json" \
  -d '{
  "address": {
    "city": "San Francisco",
    "country": "US",
    "formatted": "123 Market Street, San Francisco, CA 94103",
    "latitude": 1,
    "line": "123 Market Street",
    "line2": "Suite 200",
    "longitude": 1,
    "postal_code": "94103",
    "state": "CA"
  },
  "email": "jane.doe@example.com",
  "full_name": "Jane Cooper",
  "notes": "Please call on arrival.",
  "phone": "+14155550142",
  "preferred_technician_id": "9b2f6c3e-1a4d-4f0a-8f2e-7c5d1b3a9e01",
  "service_area_id": "9b2f6c3e-1a4d-4f0a-8f2e-7c5d1b3a9e01",
  "sms_opt_in": true,
  "status": "active",
  "tier": "regular",
  "uid": "CRM-10293"
}'
Request body
{
"address": {
"city": ,
"country": ,
"formatted": ,
"latitude": ,
"line": ,
"line2": ,
"longitude": ,
"postal_code": ,
"state":
},
"email": ,
"full_name": ,
"notes": ,
"phone": ,
"preferred_technician_id": ,
"service_area_id": ,
"sms_opt_in": ,
"status": ,
"tier": ,
"uid":
}

Responses