Update sub-account settings

Merge keys into the sub-account's settings object. Keys you send overwrite existing ones; keys you don't send are kept.

PATCH https://api.centerfy.ai/webhooks/inbound/agency/sub-accounts/:id

Headers

HeaderRequiredValueDescription
x-api-keyYesyour agency API key (cfy_…)Agency (organization-wide) API key, created in the agency workspace under Settings → API Keys (“Agency API Keys”; the tab only appears on White Label or SaaS Mode plans). Or send Authorization: Bearer <key>; x-api-key wins if both are present. Keys must start with cfy_. A sub-account key is rejected with 401.
Content-TypeYesapplication/jsonThe request body is JSON.

Path parameters

NameTypeRequiredDescription
idstring (uuid)YesThe sub-account id. Must belong to the key’s agency and not be deleted.

Body parameters

NameTypeRequiredDefaultDescription
settingsobjectYes—Free-form keys to merge into settings. wallet_balance is always dropped, so this endpoint can never move money.

Request body

{
  "settings": {
    "timezone": "America/Chicago",
    "monthly_credit_amount": 25
  }
}

Example

curl -X PATCH "https://api.centerfy.ai/webhooks/inbound/agency/sub-accounts/{id}" \
  -H "x-api-key: $CENTERFY_AGENCY_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
  "settings": {
    "timezone": "America/Chicago",
    "monthly_credit_amount": 25
  }
}'
import { CenterfyAgencyClient } from "@centerfy/sdk";

const agency = new CenterfyAgencyClient({ apiKey: process.env.CENTERFY_AGENCY_API_KEY! });

const result = await agency.subAccounts.update("<subAccountId>", {
  "settings": {
    "timezone": "America/Chicago",
    "monthly_credit_amount": 25
  }
});
console.log(result);
centerfy --agency subAccounts update <subAccountId> '{"settings":{"timezone":"America/Chicago","monthly_credit_amount":25}}'

MCP tool: centerfy_agency_sub_accounts_update (see MCP server)

Response

{
  "status": "success",
  "sub_account": {
    "id": "5a1f3c2e-8b4d-4e6f-9a7b-1c2d3e4f5a01",
    "name": "Acme Roofing",
    "slug": "acme-roofing",
    "parent_sub_account_id": null,
    "is_active": true,
    "archived_at": null,
    "paused_reason": null,
    "paused_at": null,
    "paused_note": null,
    "subscription_plan": "starter",
    "subscription_status": "active",
    "max_users": 10,
    "max_contacts": 1000,
    "created_at": "2026-09-14T15:20:00.000Z",
    "updated_at": "2026-10-06T12:00:00.000Z",
    "features": {
      "crm_integration_enabled": true,
      "ai_agents_enabled": true,
      "workflows_enabled": true,
      "invoicing_enabled": false,
      "email_integration_enabled": true,
      "phone_integration_enabled": true,
      "llm_integration_enabled": false
    },
    "settings": {
      "rebilling_enabled": true,
      "monthly_credit_amount": 25,
      "timezone": "America/Chicago"
    }
  }
}

Errors

  • 400 — if settings is missing or contains nothing but wallet_balance.
  • 404 — when the sub-account id is not a uuid, does not exist, is deleted, or belongs to another agency.
  • 401 — when the key is missing, not cfy_-prefixed or unknown (including sub-account keys); 403 when the agency is not on a White Label or SaaS Mode plan; 429 above 50 requests per minute per agency (Retry-After header set); 500 ‘database error’ on an internal failure.

Notes

Only settings can be changed; name, limits and features are not writable here.

© 2026 Centerfy AI. All rights reserved.