Update a customer
Changes the name, your reference, the price list, the billing address, the tax number or the registrant. Send only what changes. registrant falls back ahead of your account default on a domain ordered for this customer with no contact of its own; null clears it. Changing any field of a registrant already stored drops the registrar's handle and validation for it; sending back the exact same contact keeps them. Changing taxId itself clears taxIdCheck and taxIdTrusted: a check and a trust decision belong to the number that was checked, not to whatever replaces it.
apiKeyAuthorizationBearer <token>An API key from the Developers page. rhq_test_ keys reach the sandbox, rhq_live_ keys the live side.
id*stringapplication/json- body
name?|nullexternalId?|nullpriceListId?|null puts the customer back on your default list
addressLines?array<>|The full new list, replacing any you had. At most 4 lines
taxId?|nullcountry?|Where this customer is, for the tax rules engine (issue #341)
region?|This customer's state or region, for a rule that names one
taxOverride?||null puts this customer back on the account rules
taxIdTrusted?booleanTreats a taxIdCheck.valid === null number (VIES could not be reached) as valid anyway. Ignored when taxId changes in the same request
registrant?|nullSuccess
application/json- response
Success
id*stringemail*stringname*string|nullexternalId*|Your own reference for this customer
priceListId*|The price list this customer is charged from; null is your default list
contractRules*integerHow many prices are agreed with this customer alone, beating their price list
addressLines*array<string>Printed under the customer name on their invoices, line by line
taxId*|Printed on this customer's invoices
country*|Where this customer is, for the tax rules engine to match a rule against (issue #341)
region*|This customer's state or region, for a rule that names one
taxOverride*||This customer’s own exception to the account’s tax rules. Null, the rules decide
taxIdCheck*|The result of the last VIES check on taxId, and when. Null, never checked
taxIdTrusted*booleanWhether you chose to treat a could-not-be-checked (taxIdCheck.valid === null) number as valid anyway
registrant*|The registrant a domain ordered for this customer falls back to, absent a per-order one, ahead of your account's default. Null until set
createdAt*stringISO 8601 timestamp
date-timecurl -X PATCH "https://example.com/v1/customers/cus_01K6XJ4Q8ZT3M9R5V2B7WDHNCA" \ -H "Content-Type: application/json" \ -d '{}'{ "id": "cus_01K6XJ4Q8ZT3M9R5V2B7WDHNCA", "email": "[email protected]", "name": "Jo Bloggs", "externalId": "crm-1042", "priceListId": null, "contractRules": 2, "addressLines": [ "1 Market Street", "San Francisco, CA 94105" ], "taxId": "12-3456789", "country": null, "region": null, "taxOverride": null, "taxIdCheck": null, "taxIdTrusted": true, "registrant": { "name": "Jo Bloggs", "organization": "Northwind Telecom", "email": "[email protected]", "phone": "+1 415 555 0132", "address": "1 Market Street", "city": "San Francisco", "state": "CA", "postalCode": "94105", "country": "US", "validation": "pending" }, "createdAt": "2026-10-07T11:04:31.000Z"}Get a customer GET
Previous Page
Validate a tax number POST
Checks this customer's `taxId` against the EU Commission's VIES service and stores the result with its date. VIES being unreachable is not a failure of the customer: the answer is `valid: null`, "could not be checked", the number is kept, and `taxIdTrusted` on `PATCH /customers/:id` is how you choose to treat it as valid anyway.