Refund matches the requirement
Expected
Actual
Evidence limits: This verdict uses the retained business records. It does not establish how the agent executed the request.
Original agent message
We've refunded $42.50 to your original payment method for order ord_mvv2n5iqaomlc4a. It should appear within 5-10 business days.
Satisfied checks · 4
Not applicable · 1
When the support agent approves a refund request and resolves the ticket, the payment for the order named in the ticket must carry a succeeded refund for exactly the requested amount, in the requested currency, within two minutes. Refunds on other payments of the same customer do not count.
- Status
- Resolved
- Agent approved
- yes
- Resolved at
- Oct 30, 2026, 14:32 UTC
- Order quoted
- ord_mvv2n5iqaomlc4a
- Refund requested
- $42.50
- Source
- Support
- Status
- Paid
- Updated
- Oct 30, 2026, 13:32 UTC
- Total
- $42.50
- Source
- Orders
- Payment
- $42.50 Refunded
- Refunds
- Succeededre_mvv2n5ludfg5ynu$42.50
- Refunded
- $42.50 of $42.50
- Source
- Payments
- Shipments for order
- 0
Workflow and authorization
- Workflow
- Approved refund is issued correctly
- Contract version used
- v1approved Oct 30, 2026, 14:32 UTCOpen current configuration
- Source of intent
- Customer request in helpdesk ticket tkt_mvv2n5jlcblys3m (refund), asking for $42.50
- Authorization
- Agent approved the request · required by the captured contract trigger
- Trigger
- A refund ticket becomes resolved after agent approval
- Obligation
- 4 applicable conditions must hold within 2 min of resolution; due Oct 30, 2026, 14:34 UTC
- Instance created by
- connector event · ticket.resolved via webhook (processed)
- Checks run
- 1
Correlated identifiers
- Ticket
- tkt_mvv2n5jlcblys3m
- Order quoted in the ticket
- ord_mvv2n5iqaomlc4a
- Order resolved
- ord_mvv2n5iqaomlc4a · Orders
- Payment
- ch_mvv2n5iyb90tfsx · Payments
- Refunds on that payment
- re_mvv2n5ludfg5ynu
- Shipment
- none for the order
- Customer
- cus_mvv2n5ia9w9xnva
- Other orders, same customer
- none
- Correlation rule
- The order comes only from the ticket's order reference. When it is missing or unknown the verdict is indeterminate, never a guess by email or recency.
Missing or ambiguous evidence
0Nothing was missing: every identifier resolved and every applicable condition could be read from Stripe, siblingRefunds.sinceTicketMinor.
Contract as evaluated v15 conditions · deadline 2 min
This is the version the verdict was computed under. Editing the contract creates a new version and does not change this record.
{
"trigger": {
"object": "ticket",
"categories": [
"refund"
],
"status": "resolved",
"requiresAgentApproval": true
},
"identifiers": {
"order": {
"source": "ticket.orderRef",
"required": true
}
},
"conditions": [
{
"path": "refunds.succeededMinor",
"op": "eq",
"ref": "ticket.requestedAmountMinor",
"id": "refund_amount_correct",
"description": "Succeeded refunds on the named payment equal the requested amount",
"applicableWhen": [
{
"path": "charge.exists",
"op": "eq",
"value": true
},
{
"path": "ticket.requestedAmountMinor",
"op": "neq",
"value": null
}
]
},
{
"path": "refunds.succeededMinor",
"op": "eq",
"ref": "charge.amountMinor",
"id": "refund_full_when_unspecified",
"description": "Without a requested amount, the payment is refunded in full",
"applicableWhen": [
{
"path": "charge.exists",
"op": "eq",
"value": true
},
{
"path": "ticket.requestedAmountMinor",
"op": "eq",
"value": null
}
]
},
{
"path": "charge.currency",
"op": "eq",
"ref": "ticket.requestedCurrency",
"id": "refund_currency_matches",
"description": "The payment's currency matches the requested currency",
"applicableWhen": [
{
"path": "charge.exists",
"op": "eq",
"value": true
},
{
"path": "ticket.requestedCurrency",
"op": "neq",
"value": null
}
]
},
{
"path": "refunds.count",
"op": "lte",
"value": 1,
"id": "refund_single",
"description": "At most one refund was issued against the payment",
"applicableWhen": [
{
"path": "charge.exists",
"op": "eq",
"value": true
}
]
},
{
"path": "siblingRefunds.sinceTicketMinor",
"op": "eq",
"value": 0,
"id": "no_refund_on_other_payments",
"description": "No other payment of the customer was refunded for this request",
"applicableWhen": []
}
],
"deadlineSeconds": 120,
"instance": {
"eventTypes": [
"ticket.resolved"
],
"initialRetrySeconds": 30,
"maxRetrySeconds": 600,
"maxAgeSeconds": 86400
}
}Timeline
- Ticket createdbusiness / scenarioDemo time · Oct 30, 14:32 UTC
- Ticket resolvedbusiness / scenarioDemo time · Oct 30, 14:32 UTCthe clock for the deadline starts here
- Event received (webhook)wall-clock ingestionOct 30, 2026, 14:32 UTC · 2 h agoticket.resolved · evt_mvv2n5nze3v97s7
- Event processedwall-clock ingestionOct 30, 2026, 14:32 UTC · 2 h agoprocessed
- Instance createdwall-clock ingestionOct 30, 2026, 14:32 UTC · 2 h agoby connector event
- Records retrievedbusiness / scenarioDemo time · Oct 30, 14:32 UTCSnapshot labelled by the source/simulation clock, not wall-clock ingestion
- Evaluatedbusiness / scenarioDemo time · Oct 30, 14:32 UTCcheck 1 of this instance
- Deadlinebusiness / scenarioDemo time · Oct 30, 14:34 UTC2 min after resolution
- Final verdict reachedwall-clock ingestionOct 30, 2026, 14:32 UTC · 2 h ago
Record identifiers and retention
Execution out_mvv2n5rig91j6qk · ticket tkt_mvv2n5jlcblys3m · 1 recorded checks.
Stored for this verdict: the business snapshot, predicate results and captured contract v1.
Simulated time · 6 min ahead
Business records and deadlines use scenario time. Ingestion, reviews, and investigation execution use wall time. Timeline events label their clock; both are shown in UTC. Demos advance business time instead of waiting.