Skip to content

Approvals

Approvals let a human review a payment before it settles, instead of AllowKit approving or blocking it outright. A payment is held, not lost — it either settles or is refused based on the human decision, and either way a receipt records the outcome.

Example rules:

  • Approve automatically if payment ≤ $0.05.
  • Ask the user if payment > $1.
  • Always ask the user for unknown hosts.
  • Always block blacklisted hosts.

Threshold crossed

A payment amount is above the allowance’s requireApprovalAboveUsd (or asset equivalent).

Held, not blocked

AllowKit creates a pending approval instead of settling or refusing outright.

Human notified

The configured channel — Telegram, Slack, Discord, or email — gets the request with amount, service, and reason.

Decision applied

Approve settles the payment as normal; reject blocks it. Either way a receipt records what happened.

approval.json
{
"approvalId": "appr_01JY6K8Z9R0M3N7P4B2S1Q8",
"agentId": "researchbot-01",
"allowanceId": "alw_researchbot-01",
"requestedAmount": "2.50",
"asset": "USDC",
"service": "new-data-provider",
"reason": "Payment exceeds requireApprovalAboveUsd",
"channel": "telegram",
"expiresInSeconds": 300,
"status": "pending"
}
Channel Behavior
telegram Bot message with inline Approve / Reject buttons.
slack Channel message with interactive buttons, posted via incoming webhook.
discord Bot message with reaction or button-based approval.
email Fallback channel with a signed one-click approve/reject link.