Skip to content

Update End Customer

This endpoint updates an existing end customer by ID.

PUT /v1/end-customers/end-customers/:id

Include your API key in the x-api-key header. See Authentication.

end-customers:write
ParameterTypeRequiredDescription
idstringYesEnd customer ID to update.

Send only the fields you want to change. Omitted fields keep their current values. The server does not validate the request body against a schema, so a value of the wrong type is not rejected with 400.

FieldTypeRequiredDescription
namestringNoNew end customer name. null is rejected by the database and returns 500.
descriptionstring | nullNoNew description. Send null to clear it.
clientIdstring | nullNoNew client. Send null to remove the client. A client that does not exist in your account, or is deleted, returns 400.
emailstring | nullNoNew email. Send null to clear it. The format is not checked.
phoneNumberstring | nullNoNew phone number. Send null to clear it.
addressstring | nullNoNew address. Send null to clear it.
notesstring | nullNoNew internal notes. Send null to clear them.
isArchivedbooleanNoNew archive state.
{
"description": "Updated description",
"notes": null,
"isArchived": false
}
Terminal window
curl -X PUT "https://api.crewsum.com/v1/end-customers/end-customers/endcustomer-abc123def4567890" \
-H "x-api-key: $CREWSUM_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"description": "Updated description",
"notes": null,
"isArchived": false
}'

On success, the API returns HTTP 200 OK. The response has no data field.

{
"message": "Successfully updated end customer: endcustomer-abc123def4567890"
}
  • Every successful update sets updatedAt to the current time.
  • Changing clientId does not change the projects that use this end customer.
  • Archiving an end customer does not archive its projects.
  • The API does not check that the end customer exists. An unknown ID returns 200 with the success message, nothing is changed, and no webhook is sent.
  • After the end customer is updated, Crewsum attempts to send the end-customers.updated webhook event. A webhook failure does not change the response.
StatusMeaning
400{"message": "EndCustomerID missing"}. The ID path segment is empty.
400{"message": "Client not found"}. No client with this clientId exists in your account, or the client is deleted. Nothing is changed.
500{"message": "Error updating end customer: <id>"}. Crewsum could not update the end customer, for example because name is null.
500The request has no JSON body. The response uses the standard server error shape.

Authentication and scope failures are described in Errors.