Self-serve audit, free
Run an AI agent refund audit in your browser
Add a ticket export from Gorgias, Zendesk or Intercom and a Shopify orders export. Recoup finds every refund, credit, discount and replacement the agent promised, then checks what actually happened in Shopify and Stripe.
Your files never leave this browser. Nothing is uploaded.
The sample is Northline Outfitters (sample data), a made-up store with 60 tickets.
Add your exports
CSV files only. Drop a file on a box, or select the box and press Enter to choose one. We detect the columns for you.
Tickets
Gorgias ticket export, Zendesk ticket export or Intercom conversation export (.csv)
Choose a file or drop it here
Shopify orders
Shopify Orders export, "All orders" or a date range (.csv)
Choose a file or drop it here
Stripe Optional
Stripe Payments export and Refunds export (.csv). Add one or both.
Choose files or drop them here
Check the column mapping
Add a file to see which columns were detected. Fields marked * are needed.
Set your policy
Use the limits your agent is meant to follow. Amounts are in your store currency.
Run the audit
It takes a second or two. Nothing is sent anywhere, so it works offline once this page has loaded.
Add a ticket export and a Shopify orders export to start.
Audit results
| Status | What it means | Promises | At stake |
|---|
| Status | Ticket | Date | Customer | Order | Promise | At stake | Details |
|---|
What happens next
Fix the open items first: issue the refunds that were promised, recover the duplicates, and tighten the agent's rules where it went past your policy. Then run this again next week on the new tickets.
- We run the same checks on every ticket, every week, with read-only access.
- You get the findings list and the money at stake before chargebacks land.
- We are onboarding the first brands by hand, and the first 90-day audit is free.
What the audit checks
The audit reads the agent's replies with fixed rules, not AI. It finds money promises, ignores refusals such as "we can't refund this", and matches each promise to an order by order number, or by email and the closest order in the 90 days before the ticket. Then it compares the promise with Shopify's refunded amount and Stripe's refunds.
| Status | Rule |
|---|---|
| Promised, not issued | A refund was promised, Shopify shows nothing refunded, and Stripe has no refund for that order or email within 14 days. |
| Wrong amount | The refund differs from the promise by more than 1% or 0.50, whichever is larger. A full refund is compared with the order total. |
| Issued twice | Two refunds of the same amount on one order within 72 hours, or refunds that add up to more than the order total. |
| Outside policy | A discount, credit or AI refund above your limits, or a refund asked for after your refund window. |
| Repeat claimant | One email reaches your threshold of money promises in 90 days. |
| No order found | No order number matched and the email has no order in the 90 days before the ticket. |
| Matched | The ledger agrees with the promise and the promise is inside your policy. |
Store credit, gift cards and new discount codes do not appear in these exports, so the audit checks them against your policy only. For the full method, read how to audit AI support agent refunds. Using Gorgias? See the Gorgias AI Agent refund audit. Using Stripe outside Shopify? See Stripe refund reconciliation.