# Template 05: Duplicate

**Stripe category:** `duplicate`
**Typical codes:** Visa 12.6.1 (duplicate processing), 12.6.2 (paid by other means) · Mastercard 4834 · Amex P08, C14

**The claim:** "I was charged twice for the same thing" or "I already paid another way."

---

## What the bank needs to see

From [Stripe: dispute categories](https://docs.stripe.com/disputes/categories):

- Each payment was for a separate product or service.
- Or you already refunded, or the customer withdrew the dispute.

## Fight or accept?

| Situation | Decision |
|---|---|
| Two charges for two different things (e.g. a plan + an add-on, two seats, two months) | **Fight** |
| An upgrade and a prorated charge that look alike | **Fight**, and explain the proration in one sentence |
| A real double charge (retry bug, double-click) | **Accept**, refund the duplicate if not already disputed, fix the integration. Stripe says your integration should handle errors without double-charging. |
| They paid by invoice/bank transfer and also by card for the same thing | **Accept** |

## Evidence to attach (digital product / SaaS)

| Evidence | Stripe field | What to put in it |
|---|---|---|
| The other charge's ID | `duplicate_charge_id` | The `ch_...` ID of the payment the customer thinks is the duplicate |
| Why they're different | `duplicate_charge_explanation` | "Charge 1 was the Pro plan for March. Charge 2 was 500 extra credits bought on March 12." |
| Receipts for both | `duplicate_charge_documentation` | Both receipts side by side, each with its line items |
| Customer communication | `customer_communication` | Any messages |
| Other | `uncategorized_file` / `uncategorized_text` | Usage showing both items were delivered (two seats in use, credits consumed); any refund already issued |

If no duplicate charge exists, Stripe says you can open **All Fields** from the gear menu in the Dashboard and give other evidence instead.

## Rebuttal letter

```
Re: Dispute on charge [CHARGE_ID], [AMOUNT] [CURRENCY], [DATE]

These are two separate purchases, not a duplicate. We ask that this dispute be reversed.

Charge 1: [OTHER_CHARGE_ID], [DATE], [AMOUNT], for [ITEM 1]. (Exhibit A)
Charge 2 (disputed): [CHARGE_ID], [DATE], [AMOUNT], for [ITEM 2]. (Exhibit B)

The difference: [one sentence, e.g. "Charge 1 renewed the monthly plan. Charge 2 is a one-time purchase of 500 credits that the customer made from the Billing page at 14:32 UTC."]

Both were delivered: [e.g. "The 500 credits were added at 14:32 UTC and 431 have been used since." (Exhibit C)]

Evidence attached
A. Receipt for charge 1
B. Receipt for charge 2
C. Delivery/usage of the second item

We ask that this dispute be reversed in our favor.
[YOUR NAME], [BUSINESS NAME], [SUPPORT EMAIL]
```

## Mistakes that lose this one

- Receipts without line items. If both just say "Payment – $29", the bank can't tell them apart.
- Not checking whether it really was a double charge before fighting.

## Prevent the next one

Itemized receipts. Different statement descriptor suffixes per product type (e.g. `SHIPPED* PRO PLAN` vs `SHIPPED* CREDITS`). Idempotency keys on payment requests so a retry can't charge twice ([Stripe: error handling](https://docs.stripe.com/api/errors/handling)).

*Made by Dan Shipped — @danshipped. Not legal advice.*
