What your agents doNew
Agent Action Control. Every action checked before it runs, verified and on record.
Agent Action Control is Audon’s product for controlling what AI agents do with money. Every refund, credit, discount, subscription change or order cancel an agent proposes is checked against your rules before it runs, executed through Stripe, Shopify or a signed webhook, verified at the provider and kept as evidence. Formerly Agent Action Integrity.
- Protected actions
- 28,451
- Last 30 days
- Blocked
- 321
- Denied before they ran
- Pending approvals
- 12
- Oldest 26 min
- Potentially prevented
- $27,630.00
- Each intent counted once
- Confirmed prevented
- $9,700.00
- With proof it would have run
Refund · $450.00act_8Rk4…
Customer Support Agent · order_8812 · refund.create
- IdentityAgent key of Customer Support Agent
- PermissionMay run refund.create via Stripe
- Business rulesOrder already fully refunded.
- Financial limitsWithin $500.00 per refund
- DuplicatesSame refund completed on 31 Oct
- ApprovalNot needed
- Decision
- Denied
- Outcome
- Not executed
- Evidence class
- Potentially prevented · $450.00
Evidence4 records · hash-chained
- proposeda3f9…c1
- checks7be2…40
- decisione19d…7a
- outcome52c0…9e
Any model, any framework
Audon controls the actions, not the model.
One call checks and executes
Nothing can change between the check and the run.
Deterministic rules
The same action gets the same decision, every time.
Stripe, Shopify, webhooks
Connect Stripe or Shopify in one click; any system through a signed webhook.
Six steps, one call. The check and the execution are coupled, so nothing changes in between.
- 1
Propose
The agent proposes an action with an idempotency key.
- 2
Check
Permissions, rules, limits, duplicates and approvals.
- 3
Decide
Allowed, denied or sent for approval, with the reason.
- 4
Execute
Through Audon’s connector, with an idempotency key.
- 5
Verify
Audon re-reads the result at the provider before Completed.
- 6
Record
Every step kept as evidence: append-only, hash-chained.
When the outcome is unclear, Audon asks the provider first.
A timeout makes the outcome Unknown. Audon looks the action up at the provider before anything is retried.
Refund · $450.00 · act_9Lp2…
Sent to Stripe10:42:03
No answer after 10 s: Unknown10:42:13
Not retried. Counted as exposure.Checking provider state10:42:43
Refunds on the charge with audon_action_idCompleted, verified10:42:44
Found re_3QmX…; nothing to retry.
| Provider answer | Outcome | Retry |
|---|---|---|
| 2xx with a status | Completed, verified by re-reading the object | Not needed |
| 4xx, or refused before sending | Failed: the provider confirmed it didn’t happen | Safe, with the next attempt key |
| Timeout after sending, 409, 5xx | Unknown: counted as exposure | Only after Audon resolves it |
Decision and outcome are separate fields: an allowed action can still fail at the provider, and Audon says so.
Six functions. Each one runs in the same call, before anything executes.
Action authorization
Each agent has its own key and a list of actions it may run. Pause an agent and every action it proposes is denied.
Financial guardrails
Per-action caps, rolling budgets and velocity limits per agent, customer or organization, on top of built-in rules.
Duplicate prevention
The same action on the same order within 72 hours is caught, and one idempotency key always means one execution.
Human approvals
Above your threshold, a person with the approver role is emailed and decides in the app. An expired request counts as denied.
Outcome verification
Completed means Audon re-read the object at the provider. An unclear outcome is looked up first, with no blind retries.
Audit and evidence
Every check, decision and outcome is kept with the rule version it ran on, ready for an investigation or an auditor.
Three ways in. Start read-only, then put actions behind the gate.
Free action auditRead-only
Connect Stripe or your Shopify store in one click (one install; Audon only reads until you turn on protection for an agent) and, if you have them, upload agent logs (JSONL or OpenTelemetry). Audon reads up to 90 days and flags:
- Duplicate refunds per charge or order
- Refunds above the payment
- Unusual discounts and credits
- Bursts per agent or customer
- Failed and repeated actions
Action GatewayMCP
Point the agent’s tools at a managed MCP endpoint, with an agent key. Each action the agent may run becomes a tool, and every call goes through the checks.
https://audon.ai/mcp/actions
Authorization: Bearer aa_agent_…
tools: refund_create, credit_create,
discount_create, subscription_cancel,
subscription_update, order_cancel,
action_status, action_retryintegrity.execute()
The TypeScript SDK for teams that build their own agents. One call proposes, checks and executes; a denial is a result with its reason, never an exception to catch. The package isn’t on npm yet; the REST call it wraps works today.
before agent → Stripe API
after agent → Audon → Stripe API
decision allowed · denied
pending_approval · would_deny
outcome completed · failed · unknownimport { Audon, idempotencyKey } from '@audon/sdk';
const audon = new Audon({ apiKey: process.env.AUDON_AGENT_KEY! });
const result = await audon.integrity.execute({
agent: 'customer-support-agent',
action: 'refund.create',
resource: 'ch_3QmX…', // the Stripe charge
amount: 45000, // minor units: USD 450.00
currency: 'USD',
idempotencyKey: idempotencyKey('refund', 'order_8812', 'ticket_5602'),
});
if (result.decision === 'denied') {
// result.decision_reason: "Order already fully refunded."
}Check and execute in one call. Not a check, then a direct API call.
Rules in your words. Run as deterministic code.
- 1
Describe
Write the rule in plain language.
- 2
Draft
Audon turns it into a structured rule and validates it against the schema.
- 3
Replay
See what it would have allowed, denied or sent for approval on your history, with a warning for a rule that always allows or never matches.
- 4
Confirm
A person activates the new version. Every decision records the version it ran on.
Describe the rule
Our support agent may refund up to $100 on its own. Above that, a manager approves.
Structured ruleValid
{
"id": "refund-approval",
"effect": "require_approval",
"match": {
"agents": ["support-agent"],
"action_types": ["refund.create"],
"amount": { "gt": 10000, "currency": "USD" }
},
"approval": { "roles": ["owner", "admin"], "timeout_minutes": 1440 }
}Allowed
2,176
To approval
38
Denied
0
Replay on the last 30 days · 2,214 refunds · 38 decisions change
EditActivate v3One grammar for evidence. Blocked is potential. Proof makes it confirmed.
| Class | What it means | Shown as |
|---|---|---|
| Observed action | Audon recorded the action, its decision and its outcome. | Activity |
| Flagged action | An audit finding or anomaly worth a look, such as a possible duplicate refund. | To review |
| Potentially prevented loss | A blocked or held attempt, at its amount at risk. Retries of one intent count once. | Potential, kept apart from confirmed |
| Confirmed prevented loss | Proof the action would have executed and caused loss: a duplicate the provider would have accepted, or a reviewer’s confirmation on record. | Confirmed: the only green |
| Outcome unknown | The provider’s state isn’t known yet. Audon keeps looking it up. | Exposure, until resolved |
| Suspected or confirmed loss | What the read-only audit finds in your history: losses that already happened, so they can be recovered. | Audit findings |
Route every action through Audon. And remove the agent’s direct access.
- Agent keys execute
- One key per agent, bound to its allowed actions. People and admin keys hold no execute right.
- People approve
- Approvals and policy activation need a signed-in person with the right role.
- Least-privilege connections
- One official Stripe or Shopify app install. Audon only reads until you turn on protection for an agent; restricted keys work as a fallback.
- Encrypted secrets
- Access tokens and keys are envelope-encrypted, refreshed by Audon and never shown again.
- Signed webhooks
- Every webhook request is signed and carries the idempotency key.
- Append-only evidence
- Records are hash-chained; the database refuses to change them.
Questions teams ask before routing actions.
What is Agent Action Control?
Is this the same as Agent Action Integrity?
Do we have to change our agent?
Which actions and systems are supported?
Does a language model decide whether an action is allowed?
What happens when Audon can’t tell whether an action ran?
What counts as prevented loss?
Can we try our policies without blocking anything?
How is it priced?
Last updated
Connectors. Where your agents’ actions run.
- How it works
Stripe
Refunds, credits, discounts and subscription changes, checked before they run and verified at Stripe.
- How it works
Shopify
Refunds, cancellations, discount codes and store credit, checked before they run.
- How it works
Webhook
Your endpoint executes: signed requests, idempotency keys and a status endpoint for unclear outcomes.