---
title: "Update an existing customer"
method: PATCH
path: "/v1/customer/{customerId}"
tags: ["customer"]
---

# Update an existing customer

`PATCH /v1/customer/{customerId}`

## Path parameters

- `customerId` string, required

## Request body

- UpdateCustomer
  - `name` string — name of customer
  - `email` string — email address for billing purposes
  - `billAddress` Address
    - `street1` string — street address, line 1
    - `street2` string — street address, line 2
    - `street3` string — street address, line 3
    - `city` string — city
    - `state` string — state
    - `country` string, required — country (two-digit ISO code)
    - `postal` string — postal code
    - `geo` Geopoint
      - `type` string, required — Type of point
      - `coordinates` number[], required — The longitude and latitude of the point
    - `approxGeo` Geopoint
      - `type` string, required — Type of point
      - `coordinates` number[], required — The longitude and latitude of the point
  - `industry` string — industry that customer is in
  - `source` 'ADP_MARKETPLACE' | 'SELF_SERVE' | 'SELF_SERVE_TEST' | 'SEQUOIA_ONE' | 'CONNECT' — source of customer signup
  - `status` 'ACTIVE' | 'INACTIVE' | 'TRIAL' | 'CHURN' | 'PAYMENT_ERROR' — current status
  - `salesforceAccountId` string — salesforce account id
  - `products` ProductItem[] — products that this customer has purchased
    - `productId` string, required
    - `stripePriceId` string, required
  - `trialProducts` TrialProduct[] — products this customer has temporary trial access to, each bounded by a date range
    - `productId` string, required — id of the product the customer is trialing
    - `startDate` string, date, required — first date the trial grants access (inclusive)
    - `endDate` string, date, required — last date the trial grants access (inclusive)
  - `restrictedFeatures` string[] — features that are restricted for the customer
  - `featureOptionOverrides` FeatureAccessOption[] — override feature options for the customer
    - `name` 'CONFIGURED_ROLES' | 'SMART_FIELDS' | 'APP_FIELD_MAPPERS' | 'MULTI_PAYROLL_INSTALLS', required — The name of the feature option tied to the feature access
    - `description` string — The description of the feature option
    - `type` 'LIMIT' | 'FULL_ACCESS', required — The feature option type
    - `limit` integer — The feature option limit
  - `disableAi` boolean — customer has opted out of all use of AI -- no AI features may be enabled on any of their orgs
  - `startDate` string, date — initial date of billing
  - `endDate` string, date — end of service date for churning customers -- on or after this date, service should be disabled
  - `nextInvoiceDate` string, date — date of next invoice
  - `primaryHeadCountFilter` string — primary headcount filter - used for billing purposes
  - `secondaryHeadCountFilter` string — secondary headcount filter - used for billing purposes
  - `tertiaryHeadCountFilter` string — tertiary headcount filter - used for billing purposes
  - `arr` number — current ARR of the customer based on most recent invoice
  - `trialStartDate` string, date — date this customer begins their trial period
  - `trialEndDate` string, date — date this customer ends their trial period
  - `stripeSubscriptionSync` 'SYNC' | 'DELETE' — Stripe subscription settings

## Response `204`

customer updated

## Other responses

- `400` — invalid data
- `401` — not authorized
- `403` — permission denied
- `404` — not found

---

[API](https://skmtc.net/charthop/apis/charthop-api.md) · [All operations](https://skmtc.net/charthop/apis/charthop-api/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/charthop/charthop-api/revisions/26da34ae934f/schema)
