Recoup / Integrations / Stripe

Match AI support promises to Stripe refunds

Updated 17 Oct 2026 ยท 5 min read

When an AI support agent tells a customer a refund is on its way and no refund follows, the customer can ask their bank to dispute the charge, and Stripe files that under "credit not processed" (Stripe docs). Recoup matches each money promise in your tickets to Stripe refunds by charge, amount and time, so missing, duplicate and wrong-amount refunds show up before a dispute does.

Recoup is new. We are onboarding the first brands by hand, so this page describes the method rather than results.

Why Stripe matters for Shopify brands

If every payment runs through Shopify Payments, the Shopify order holds most of what you need. Many brands have a second money trail in Stripe:

  • Checkouts that use Stripe directly rather than Shopify Payments.
  • Subscriptions, memberships or pre-orders billed in Stripe.
  • Headless storefronts where Stripe takes the payment and Shopify holds the order.
  • Refunds a teammate issues straight from the Stripe Dashboard, which may never show on the Shopify order.

In each case a promise can be kept in one system and missed, or repeated, in the other. Recoup reads both and lines them up. The Shopify side is covered on Shopify refund reconciliation.

What is a "credit not processed" dispute?

It is the dispute category a card network uses when a customer says they were promised a refund or credit and did not get it. Stripe groups several network reason codes under it.

Card networkReason codes Stripe maps to "credit not processed"
Visa13.6, 13.7
Mastercard4860
American ExpressC02, C04, C05

Source: Stripe, dispute categories. Checked 17 Oct 2026. Stripe lists further codes for other networks.

A written promise from your own support agent, with no refund behind it, is hard to defend. Companies have already been held to what their chatbot said: see the incident log, starting with the Air Canada tribunal case.

How refunds get issued twice

An essay on HackerNoon describes a failure that returns success: an agent calls a refund API, the call times out, the agent retries, and both calls go through. The same essay describes a refund applied to the wrong transaction that also reports success (HackerNoon). The author presents both as hypothetical, not as real incidents, and we do the same here.

The point holds anyway. A successful API response proves the call was accepted. It does not prove the right amount went to the right charge once. Two other routes to a double refund need no bug at all: a teammate and an agent both acting on the same ticket, or one refund in Shopify and another in the Stripe Dashboard.

What Recoup compares

For each promise found in a ticket, Recoup looks for Stripe refunds on the customer's charges and compares these fields.

Stripe refund fieldCompared withFlag if it differs
amountThe amount promised in the replyWrong amount
chargeThe charge for the order named in the ticketWrong charge
createdThe time of the reply that made the promisePromised, not issued if none after it
status"Refunded" in the replyNot issued if failed or still pending
metadataOrder number and ticket ID, where your tools write themUsed to raise match confidence
Count per chargeOne expected refundIssued twice

Each refund is also checked against your written policy (window, amount ceiling, excluded items) and against the customer's earlier claims, so repeat claimants are listed.

Read-only setup

For the in-browser audit, export refunds and payments from the Stripe Dashboard and load the file with your ticket and Shopify exports. Files never leave your browser.

For the done-for-you audit, you can send the same export, or create a restricted API key. Stripe restricted keys let you set each resource to None, Read or Write. Give Read on charges, refunds, disputes and customers, and None on everything else. Name it "Recoup audit" so it is easy to find, and delete it whenever you like. We never ask for Write.

Stripe also limits what third-party apps may call themselves on its App Marketplace: public app names cannot contain "Stripe", "app", "free" or "paid" (Stripe docs). Any Recoup listing there will follow that rule. Until then, access is by export or restricted key.

More: the full audit method and the glossary.

FAQ

Can Recoup issue or reverse Stripe refunds?

No. Recoup only reads. It reports what is missing, duplicated or wrong, and you fix it in Stripe or Shopify. A restricted key with Read access is all the done-for-you audit needs.

What is a credit not processed chargeback?

A dispute where the customer says a promised refund or credit never arrived. Stripe maps Visa 13.6 and 13.7, Mastercard 4860 and Amex C02, C04 and C05 to this category.

Do I need Stripe if I use Shopify Payments?

No. If every payment and refund goes through Shopify Payments, the Shopify export covers it. Add Stripe only if it takes payments directly, bills subscriptions, or your team refunds from the Stripe Dashboard.

How does Recoup tell a duplicate from two genuine refunds?

It compares refunds with the promises in the tickets. Two refunds on one charge with one promise is flagged. Two refunds that match two separate promises are not.

Who is behind Recoup?

Recoup is built by AGUNA Wellness Ltd (RC 9590421). It is new and we are onboarding the first brands by hand. Contact support@recoupaudit.com.

Check your Stripe refunds

Run the audit on your own exports, with files kept in your browser. Or let us run the first 90 days for you, free.