Skip to main content
Approval workflows insert a human checkpoint between “agent wants to spend” and “transaction executes.” They’re the dial between full autonomy and full oversight.

When approvals fire

Configure thresholds on your wallet policy:
Any transaction amount >= 500 USD → approval required. Below threshold → direct execution. You can have multiple thresholds for different conditions (per-merchant, per-merchant-category, per-time-of-day). See wallet policies for the full rule grammar.

The flow

Create an approval (automatic)

When an agent calls a spending endpoint and the amount is over threshold, Sly automatically creates an approval instead of executing:
The transfer doesn’t execute. It’s pending on apr_....

Approver perspective

Response:
The context block is purpose-built for approvers — “has this been approved before? how much has this agent spent today?” — so approvers don’t need to go hunting for signal.

Approve

The pending transaction executes immediately. The approver’s identity and comment are attached to the audit trail.

Reject

The transaction does not execute. Agent receives a push event (approval_rejected) if connected via SSE; otherwise can poll.

Notifications

Approvers are notified via configured channels:
  • Sly dashboard — always
  • Email — if enabled on the tenant
  • Slack — via OAuth integration (Settings → Integrations → Slack)
  • SMS — for tenants on the Enterprise tier
Each notification includes a one-click deep link to the approval detail page.

Auto-approve rules

For lower-friction workflows, define auto-approval rules:
Auto-approved transactions still appear in the audit log with the rule that matched.

Timeout behavior

If no approver responds within timeout_seconds:
  • Default: timeout_seconds → reject
  • Configurable: on_timeout: "auto_approve" (only for low-sensitivity tenants)
Pending-too-long approvals surface in the dashboard so they don’t silently accumulate.

Escalation

If the primary approver is unavailable, escalate to a higher role:
Escalations re-trigger notifications to the escalation target and extend the timeout.

Endpoints

Good defaults

  • Starting out: $100 threshold, approver_role admin, 1-hour timeout
  • Mature: tiered thresholds (100admin,100 → `admin`, 1000 → owner), faster timeouts with auto-approve for trusted merchants
  • Production-ready: all of the above + Slack notifications + auto-approve for known merchants with history