Authentication
Send an API key as a bearer token. The key must carry the org.update permission; a key without it is refused with 403, not 404.
Where your organisation id goes
This endpoint takes your organisation id in the URL itself, as orgId. Substitute it into the path — there is no header or query parameter that will do instead.
Your organisation id is on the API keys screen in your dashboard, beside the key itself. It is the same id in every call you make.
Try it
Replace anything in angle brackets with your own values, and the key placeholder with a key from your dashboard.
curl -X PATCH https://api.zinndigital.com/v1/orgs/{orgId} \
-H "Authorization: Bearer zdk_live_…" \
-H "Content-Type: application/json" \
-d '{ "name": <string> }'Signed in? The API console in your dashboard fills in your real organisation id and your own key, and runs the request against the live API so you can see the actual response. Open this endpoint in the API console
Details
⛔ Deliberately narrow: only `name`. `type`, `parent_org_id` and `default_currency` are **not** editable here — re-parenting moves a whole billing relationship and is `tenancy.offboarding`'s job. ⭐ The currency is not un-changeable, it simply is not a patchable field: it has its own route, `POST /v1/orgs/{orgId}/billing-currency` (`changeOrganizationBillingCurrency`), because re-denominating converts the wallet and re-prices live subscriptions rather than writing one column. This description read "a currency change would leave stored prices and issued invoices denominated in something the org no longer claims (#501)" until 2026-08-31, which was true of a patch and was read as *"it cannot be done"*. Requires `org.update` **on that org**; an org you cannot reach answers 404 rather than 403, the same as the GET, so this is never an existence oracle.
Parameters
| Name | Type | Required | What it is |
|---|---|---|---|
orgId (path) | Uuid | Yes | Organization ID (UUIDv7). |
orgId (path) | Uuid | Yes | — |
Request body
| Name | Type | Required | What it is |
|---|---|---|---|
name | string | Yes | The organization's display name. The only editable field. |
Response
| Name | Type | Required | What it is |
|---|---|---|---|
id | Uuid | Yes | UUIDv7 identifier — sortable by creation time (docs/02 §8). |
type | OrgType | Yes | Organization type in the tenancy tree. |
parent_org_id | Uuid | null | No | Parent in the tenancy tree; null for a top-level org. |
name | string | Yes | — |
brand_id | object | No | White-label brand applied to this org's surfaces. |
default_currency | CurrencyCode | Yes | ISO 4217 currency code (money is minor units + this code — CLAUDE.md §2.8). |
status | string<active, suspended, closed> | Yes | — |
created_at | string | Yes | — |
Errors this endpoint can return
401 · 403 · 404 · 422 · 429