Skip to main content
The base tenant endpoints (create, list, get) are under API Reference → Tenants. This page covers lifecycle operations available to platform-admin callers.
These endpoints are intended for platform operators, not tenant users. In production, route them through a separate auth boundary (e.g. an internal admin API gateway).

Update tenant

PUT /v1/tenants/{id}
curl -X PUT https://api.qustody.io/v1/tenants/tnt_01HXYZ \
  -H "Authorization: Bearer $QUSTODY_ADMIN_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "name": "Acme Treasury (Renamed)",
    "ip_allowlist": ["203.0.113.0/24"],
    "metadata": {"tier": "enterprise"}
  }'
Updatable fields
FieldDescription
nameDisplay name
ip_allowlistArray of CIDRs; empty = no restriction
metadataFree-form JSON object
Response 200
{
  "id": "tnt_01HXYZ...",
  "name": "Acme Treasury (Renamed)",
  "status": "active",
  "ip_allowlist": ["203.0.113.0/24"],
  "metadata": {"tier": "enterprise"},
  "updated_at": "2026-04-27T10:15:00Z"
}

Suspend tenant

Marks the tenant suspended. All subsequent API calls from credentials in that tenant return 1000 UNAUTHORIZED. In-flight transactions remain visible but cannot transition states.
POST /v1/tenants/{id}/suspend
curl -X POST https://api.qustody.io/v1/tenants/tnt_01HXYZ/suspend \
  -H "Authorization: Bearer $QUSTODY_ADMIN_KEY" \
  -H "Content-Type: application/json" \
  -d '{"reason": "non-payment", "notify_email": "billing@acme.example"}'

Reactivate tenant

Restores a suspended tenant to active. Webhook deliveries that accumulated during suspension are not replayed automatically — use /webhooks/{id}/replay if needed.
POST /v1/tenants/{id}/reactivate
curl -X POST https://api.qustody.io/v1/tenants/tnt_01HXYZ/reactivate \
  -H "Authorization: Bearer $QUSTODY_ADMIN_KEY"

Required permissions

EndpointPermission
PUT /v1/tenants/{id}tenants:update
POST /v1/tenants/{id}/suspendtenants:update
POST /v1/tenants/{id}/reactivatetenants:update
Only admin has these by default.