Chargeback reason codes Duplicate

Stripe "Duplicate" disputes

What a Stripe Duplicate dispute means (Visa 12.6, Mastercard 4834, Amex P08) and how SaaS and course businesses show each charge was separate, or already refunded.

Updated 14 October 2026 · By Dripwork, the team behind Flatfight

Stripe reason: Duplicate

reason = duplicate

The cardholder says they were charged more than once for the same thing.

NetworkCodeNetwork's name
Visa12.6.1Duplicate Processing
Visa12.6.2Paid by Other Means
Mastercard4834Cardholder Debited More than Once for the Same Goods or Services
American ExpressP08Duplicate Charge
American ExpressC14Paid by Other Means
Discover4534Duplicate Processing

Codes Stripe files under this reason that online businesses see most. Stripe shows the code on the dispute as the network reason code.

What it means

The cardholder says they were charged more than once for the same thing. On Stripe the dispute shows the reason Duplicate, with codes such as Visa 12.6.1 (Duplicate Processing), Visa 12.6.2 (Paid by Other Means), Mastercard 4834 or American Express P08.

"Paid by other means" is a variant: the customer says they paid for the same purchase another way, such as by bank transfer or with a different card.

Why software, course and membership customers file it

  • Two plans, or a plan and an add-on. A monthly subscription and a separate one-off purchase look alike on a statement.
  • An upgrade. A prorated charge plus the new plan's charge in the same month.
  • A failed payment retried. The customer saw a pending authorisation and a completed charge.
  • A real double charge, such as a double-click at checkout. If so, refund it promptly.

What wins it

Show that each payment was for something different, or that you already refunded the duplicate:

Evidence Stripe field
The ID of the other payment the customer thinks this duplicates duplicate_charge_id
What's different between the two payments duplicate_charge_explanation
Separate receipts or invoices for each payment duplicate_charge_documentation
Messages with the customer, or a note that they never contacted you customer_communication
A refund already made, with its date and amount uncategorized_text, uncategorized_file

For subscription businesses, the explanation usually decides it:

  • Name what each charge was for. "Payment 1: Growth plan, monthly, 1 to 30 September. Payment 2: one-off template pack." Two invoices with different line items make it obvious.
  • Show prorations. For an upgrade, show the old plan, the new plan, and how the prorated amount was calculated.
  • Show the refund. If you already refunded the duplicate, the date and amount usually end the dispute.

What doesn't work, and when to accept

  • Two identical receipts with no explanation. If they look the same, the bank will assume they are.

If it really was charged twice and you haven't refunded it, accept the dispute. Refunding as well would pay the customer twice.

How Flatfight handles it

Flatfight checks the customer's payments in Stripe for another unrefunded payment of the same amount in the 7 days before the disputed one. If there is one, it warns you that this may be a real duplicate, so you can decide before spending the counter fee. If there isn't, the response says so, and adds the invoice and billing period the payment covers and any refund already issued.

FAQ

What if there is no other payment?

Then the claim has no basis. Say so plainly, and show the payment history for that customer. In the Stripe form, you can leave the duplicate charge ID empty when no duplicate exists.

I refunded one of the charges after the dispute arrived. Does that help?

Not usually. The bank has already returned the disputed amount, so refunding again pays the customer twice. Answer the dispute instead.

How much are dispute fees costing you?

Find out in seconds with a read-only key. We never store it.

Run the free calculator