Update client
curl --request PATCH \
--url https://api.entendre.finance/v1/firm/clients/{client_id} \
--header 'Content-Type: application/json' \
--header 'X-API-Key: <api-key>' \
--data '{}'const options = {
method: 'PATCH',
headers: {'X-API-Key': '<api-key>', 'Content-Type': 'application/json'},
body: JSON.stringify({})
};
fetch('https://api.entendre.finance/v1/firm/clients/{client_id}', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));import requests
url = "https://api.entendre.finance/v1/firm/clients/{client_id}"
payload = {}
headers = {
"X-API-Key": "<api-key>",
"Content-Type": "application/json"
}
response = requests.patch(url, json=payload, headers=headers)
print(response.text){
"data": {
"id": "fcl_507f1f77bcf86cd799439011",
"organization_id": "507f1f77bcf86cd799439012",
"name": "Acme Finance",
"web_address": "acme-finance",
"timezone": "America/New_York",
"contact_name": "Alex Smith",
"contact_email": "alex@example.com",
"website": "https://example.com",
"logo_url": null,
"status": "draft",
"is_multi_entity": false,
"pending_actions": [],
"legal_entities_count": 1,
"agents_count": 0,
"integrations": [],
"created_at": "2026-08-31T12:00:00Z",
"updated_at": "2026-08-31T12:00:00Z"
}
}{
"error": {
"code": "VALIDATION_ERROR",
"message": "Invalid path, query or request body.",
"request_id": "req_example"
}
}{
"error": {
"code": "UNAUTHORIZED",
"message": "Authentication is required.",
"request_id": "req_example"
}
}{
"error": {
"code": "FORBIDDEN",
"message": "Insufficient access to organization",
"request_id": "req_example"
}
}{
"error": {
"code": "RESOURCE_NOT_FOUND",
"message": "Resource not found",
"request_id": "req_example"
}
}{
"error": {
"code": "CONFLICT",
"message": "The resource state does not allow this operation.",
"request_id": "req_example"
}
}{
"error": {
"code": "RATE_LIMITED",
"message": "Rate limit exceeded. Retry after 30s.",
"request_id": "req_example"
}
}{
"error": {
"code": "INTERNAL_ERROR",
"message": "Internal server error",
"request_id": "req_example"
}
}{
"error": {
"code": "SERVICE_UNAVAILABLE",
"message": "Service unavailable.",
"request_id": "req_example"
}
}Client
Update client
Updates client details or an allowed lifecycle status. This operation cannot grant organization access.
PATCH
/
v1
/
firm
/
clients
/
{client_id}
Update client
curl --request PATCH \
--url https://api.entendre.finance/v1/firm/clients/{client_id} \
--header 'Content-Type: application/json' \
--header 'X-API-Key: <api-key>' \
--data '{}'const options = {
method: 'PATCH',
headers: {'X-API-Key': '<api-key>', 'Content-Type': 'application/json'},
body: JSON.stringify({})
};
fetch('https://api.entendre.finance/v1/firm/clients/{client_id}', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));import requests
url = "https://api.entendre.finance/v1/firm/clients/{client_id}"
payload = {}
headers = {
"X-API-Key": "<api-key>",
"Content-Type": "application/json"
}
response = requests.patch(url, json=payload, headers=headers)
print(response.text){
"data": {
"id": "fcl_507f1f77bcf86cd799439011",
"organization_id": "507f1f77bcf86cd799439012",
"name": "Acme Finance",
"web_address": "acme-finance",
"timezone": "America/New_York",
"contact_name": "Alex Smith",
"contact_email": "alex@example.com",
"website": "https://example.com",
"logo_url": null,
"status": "draft",
"is_multi_entity": false,
"pending_actions": [],
"legal_entities_count": 1,
"agents_count": 0,
"integrations": [],
"created_at": "2026-08-31T12:00:00Z",
"updated_at": "2026-08-31T12:00:00Z"
}
}{
"error": {
"code": "VALIDATION_ERROR",
"message": "Invalid path, query or request body.",
"request_id": "req_example"
}
}{
"error": {
"code": "UNAUTHORIZED",
"message": "Authentication is required.",
"request_id": "req_example"
}
}{
"error": {
"code": "FORBIDDEN",
"message": "Insufficient access to organization",
"request_id": "req_example"
}
}{
"error": {
"code": "RESOURCE_NOT_FOUND",
"message": "Resource not found",
"request_id": "req_example"
}
}{
"error": {
"code": "CONFLICT",
"message": "The resource state does not allow this operation.",
"request_id": "req_example"
}
}{
"error": {
"code": "RATE_LIMITED",
"message": "Rate limit exceeded. Retry after 30s.",
"request_id": "req_example"
}
}{
"error": {
"code": "INTERNAL_ERROR",
"message": "Internal server error",
"request_id": "req_example"
}
}{
"error": {
"code": "SERVICE_UNAVAILABLE",
"message": "Service unavailable.",
"request_id": "req_example"
}
}Authorizations
Your organization API key. Some operations also need a key that is associated with a user; their pages say so.
Path Parameters
ID of the client.
Minimum string length:
1Body
application/json
Draft client name.
Minimum string length:
1Draft client Entendre subdomain slug.
Pattern:
^[a-z0-9](?:[a-z0-9-]*[a-z0-9])?$Client contact name.
Client contact email.
Client public website.
Whether the client uses multiple legal entities.
Client setup actions.
Show child attributes
Show child attributes
New client state. Send it without other fields. A firm API key can only activate a draft; archive and restore need the dashboard.
Available options:
active, archived Response
The request succeeded.
Show child attributes
Show child attributes