What you’ll need
- The approval matrix your policy requires (which amounts, which approvers, how many).
- Approver accounts in the workspace with Admin or Owner roles.
- Optionally, a workflow or chat tool that can receive webhooks.
Components to configure
Steps
1
Design the tiers
Decide the amount bands and who approves each. A common shape: below X automatic within limits; X to Y one approver from Treasury approvers; above Y two approvers. Keep the number of distinct groups small; approvers who sit in many groups approve by habit.
2
Create the groups
Under Approval groups, create each group with New group, add its members, and set Approvers needed. Every member must already be a workspace user with a role that can approve.
3
Attach the threshold
Enable Require approval to withdraw, set Require above amount and select the group. A withdrawal at or above the amount moves to
pending_approval after passing limits and destination rules; below it, no approval is requested.4
Notify approvers where they work
Register a webhook for
withdrawal.pending_approval and signing.pending_approval. Post the wallet, amount, destination and a link to Pending Withdrawals into your approvers’ channel or ticketing system. The decision itself is made in the console by a signed-in approver; the webhook only carries the notice.5
Approve, reject, and record
Approvers open Approvals → Pending Withdrawals and Approve or Reject. When the required number have approved, the withdrawal proceeds to signing and
signing.resumed fires; a rejection ends it with withdrawal.cancelled or signing.rejected. The audit log records each decision with its actor.6
Test the unhappy paths
In the sandbox, confirm that a request needing two approvals does not proceed after one; that a rejection is final; and that a requester who is also an approver cannot satisfy the requirement alone if your policy forbids it. If the platform does not enforce that separation for your configuration, keep requesters out of the approving group.
Considerations
- Approvals are exercised by people in the console; there is no API to approve, so a compromised service key cannot approve its own requests.
- A pending withdrawal holds its amount against the balance until decided, so a backlog of unapproved requests reduces what else can be sent.
- Pair approval with Dual control on configuration, so the threshold cannot be raised by a single administrator to slip a payment under it.

