Suspend / Revoke User
Use the User Lifecycle API to change a user's status after they have been created. This lets you temporarily suspend access or permanently revoke it.
Lifecycle statuses
| Status | Description |
|---|---|
clear | User is active and can access APIs per their accessType |
suspended | User access is temporarily blocked. Can be reinstated. |
revoked | User access is permanently removed. Cannot be undone. |
Request
The action, reasonCode, and comment query parameters are all mandatory.
POST /api/v1/client/{clientHashId}/user/{userHashId}/lifecycle
?action=suspend
&reasonCode=role_change
&comment=User+no+longer+requires+access
Query parameters:
| Parameter | Type | Required | Description |
|---|---|---|---|
action | string | Yes | The lifecycle action: suspend, revoke, or clear (to reinstate). |
reasonCode | string | Yes | Reason for the change (e.g. role_change). |
comment | string | Yes | Free-text explanation. Max 255 characters. |
blockType | string | No | Optional block classification. |
Response
{
"status": "suspended",
"message": "User has been Suspended",
"reasonCode": "role_change",
"blockUpdatedBy": "CLIENT"
}
Full lifecycle flow
Customer is Clear
│
▼
Create User (POST /users)
│
├─── kycStatus: kyc_required kycStatus: kyc_not_required
│ (new edit-access user) (view-access user, or stakeholder
│ │ with verified biometric identity)
│ ▼ │
│ Submit KYC (POST /userKyc) │
│ │ │
│ ▼ │
│ User completes biometric check │
│ │ │
│ ▼ │
│ status: pending (subStatus: under_review) │
│ │ │
│ ▼ │
│ Compliance approved │
│ │ │
└───►▼◄─────────────────────────────────────┘
status: clear — user access enabled
[Optional later actions via /lifecycle — see Suspend / Revoke User]
clear → suspended → clear (reinstate via action=clear)
clear → revoked (permanent, cannot be undone)
[rejected path]
pending → rejected (if KYC or compliance check fails)
note
For full details on suspending and revoking users, see Suspend / Revoke User. For the KYC step, see Submit KYC.