Refund policy

Server-side guardrails for AI-initiated refunds: limits, dry-run, human approval, and user confirmation.

Refunds are optional per tenant (settings.refunds.enabled). The model calls request_refund; Supdesk enforces policy regardless of model output.

Settings

  • currency — default currency code.
  • autoApproveMaxMinor — amounts at or below auto-execute (after dry-run) unless user confirmation is required.
  • humanApprovalAboveMinor — amounts above this are rejected for auto flow; between auto and human thresholds → awaiting_human for agent approval.
  • maxPerUserPer30d — rolling cap per verified end user.
  • requireUserConfirmation — show in-chat confirm card (awaiting_user) before executing.
  • policyText — injected into the system prompt so the model knows your rules.

Flow

  • Model proposes refund → connector dryRun must pass.
  • If amount > humanApprovalAboveMinor → reject.
  • If amount > autoApproveMaxMinor → awaiting_human (dashboard queue).
  • Else if requireUserConfirmation → awaiting_user in-chat card.
  • On confirm → real connector call → succeeded/failed → result fed back to the model.

Security

  • Only verified sessions (verified=1) may request refunds.
  • User id sent to your connector always comes from the session, never from tool arguments.
  • Connector responses are treated as untrusted in the prompt.