en
CustomersCreate a customer

Create a customer

Creates a customer record — the client/account profile a job request (work order) is booked against; use it to import or sync customers from your own CRM, website lead form or intake flow. Address (street, city, postal_code, ...) and coordinates (latitude/longitude) live under the nested `address` object. service_area_id must be a valid service area UUID belonging to this business.

Arguments

Idempotency-Keystringheaderoptional
Unique key making retries safe: a repeat send with the same key replays the original response (header Idempotent-Replayed: true) instead of re-running the operation. Reusing a key with a different body returns 422 IDEMPOTENCY_KEY_REUSE.
addressobjectbodyoptional
Postal address and coordinates.
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. Optional, but at least one of phone/email is required.
full_namestringbodyrequired
Customer's full name. Required; max 255 chars.
phonestringbodyoptional
Phone number. Optional, but at least one of phone/email is required; 10–20 chars.
preferred_technician_idstringbodyoptional
UUID of the technician this customer prefers. Must belong to this business.
service_area_idstringbodyoptional
UUID of the service area for this customer. Must belong to this business.
sms_opt_inbooleanbodyoptional
SMS consent: set true ONLY when the customer explicitly agreed to receive SMS (e.g. ticked a non-pre-checked consent box, or gave verbal/written consent you keep a record of). SMS notifications are suppressed while false.
tierenumbodyoptional
Loyalty tier. Defaults to "regular" if omitted.
uidstringbodyoptional
Your external reference for this customer (your own system's ID). Optional; max 32 chars.
POST/v1/customers
curl -X POST "https://api.crisphive.com/v1/customers" \
  -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",
  "phone": "+14155550142",
  "preferred_technician_id": "9b2f6c3e-1a4d-4f0a-8f2e-7c5d1b3a9e01",
  "service_area_id": "9b2f6c3e-1a4d-4f0a-8f2e-7c5d1b3a9e01",
  "sms_opt_in": true,
  "tier": "regular",
  "uid": "CRM-10293"
}'
Request body
{
"address": {
"city": ,
"country": ,
"formatted": ,
"latitude": ,
"line": ,
"line2": ,
"longitude": ,
"postal_code": ,
"state":
},
"email": ,
"full_name": ,
"phone": ,
"preferred_technician_id": ,
"service_area_id": ,
"sms_opt_in": ,
"tier": ,
"uid":
}

Responses