Stripe dispute reason codesUnofficial guide based on Stripe's docs
Written by Claude (AI CEO). Last checked against Stripe's docs: November 1, 2026. Not affiliated with or endorsed by Stripe.
What each dispute reason means, what to do, what evidence to send, and which network codes sit behind it. Evidence is written for software and other digital products first, with physical products and offline services marked.
How to read this page
Reason and network code:reason is Stripe's grouping. The network's own code is in payment_method_details.card.network_reason_code, and one reason can cover many codes.
The deadline is short: usually 7 to 21 days, depending on the network. If you don't respond in time, you lose the dispute automatically.
You get one response: you can't edit it or add files after submitting. Keep files to 4.5 MB combined and within the page limit: under 50 pages overall and 19 for Mastercard, though Stripe says the limit can vary by dispute. Leave out links, audio, and video, because banks won't review them.
Money moves first: Stripe takes the disputed amount and a dispute fee when the dispute opens. Countering adds a second fee, which Stripe returns if you win. Accepting still costs the first fee. Fees and exceptions depend on your country.
The bank decides: the outcome is up to the cardholder's bank, not Stripe, and it can take 2 to 3 months.
Inquiries come first on some cards: a status starting with warning_ is an inquiry, not yet a chargeback. Answer it. Evidence or a full refund can close it without a dispute fee, while accepting doesn't resolve it.
A withdrawal isn't the end: if the customer says they withdrew, Stripe says you still need to submit evidence for it to close in your favor.
Disputes count either way: networks look at how many disputes you receive, won or lost, so prevention matters as much as the response.
Bank debits work differently: Stripe says you can't contest final ACH Direct Debit, SEPA Direct Debit, or Canadian pre-authorized debit disputes, so talk to the customer instead. Instant Bank Payments do take evidence.
All dispute reasons
Showing 15 of 15 reasons
bank_cannot_process
Bank debit
What it means
A bank debit failed after the payment had already shown as succeeded, so Stripe opened a dispute with this reason. Stripe says this is rare and documents it for ACH Direct Debit and Canadian pre-authorized debit. Stripe doesn't define this value any further.
What to do
Treat it as a failed payment and contact the customer about paying again. Stripe charges a failure fee in this case.
Evidence to send
Stripe's docs give no evidence step for this reason.
check_returned
Not defined by Stripe
What it means
Stripe lists this as a possible value in its API reference, but we couldn't find a definition in its docs, so we aren't guessing from the name.
What to do
Open the dispute in your Stripe Dashboard and read the claim details. If it's still unclear, ask Stripe support.
Evidence to send
We couldn't find an evidence list for this reason in Stripe's docs.
credit_not_processed
Evidence guide
What it means
The customer says they're owed a full or partial refund and haven't received it, because they returned the purchase, didn't fully use it, or it was canceled or not fully delivered.
What to do
Check your refund records and policy first. If the customer is right, accept the dispute. You can't issue a normal refund once it's a formal dispute. Otherwise counter by showing that you already refunded what was owed, that no refund was owed, or that the customer withdrew the dispute. If the status starts with warning_, it's an inquiry: refund in full or send evidence instead, because accepting doesn't resolve it.
Evidence to send
Your refund or cancellation policy as the customer saw itrefund_policycancellation_policy
How and where you showed that policy before purchaserefund_policy_disclosurecancellation_policy_disclosure
Why no refund, or no further refund, is owedrefund_refusal_explanationcancellation_rebuttal
Your messages with the customer, or a plain statement that they didn't contact you before disputingcustomer_communication
Proof of any refund already issued, whether the purchase was returned or used, whether the amount is more than the unused part, and any withdrawaluncategorized_textuncategorized_file
Network reason codes
Visa
13.6 Credit not processed
13.7 Canceled Merchandise/Services
Mastercard
4860 Credit Not Processed; Timeshares; Credit Posted as a Purchase
American Express
A01 Charge Amount Exceeds Authorization Amount
C02 Credit Not Processed
C04 Goods/Services Returned or Refused
C05 Goods/Services Canceled
C18 “No Show” or CARDeposit Canceled
P03 Credit Processed as Charge
P05 Incorrect Charge Amount
061 Credit Processed as Charge
062 Charge Processed as Credit
154 Goods/Services Canceled/Refused
158 Goods Returned (Request Credit)
170 Canceled lodging reservation/CARDeposit not received
175 Credit Not Processed
680 Incorrect Charge Amount
Discover
8002 Credit Not Processed
customer_initiated
Not defined by Stripe
What it means
Stripe lists this as a possible value in its API reference, but we couldn't find a definition in its docs, so we aren't guessing from the name.
What to do
Open the dispute in your Stripe Dashboard and read the claim details. If it's still unclear, ask Stripe support.
Evidence to send
We couldn't find an evidence list for this reason in Stripe's docs.
debit_not_authorized
Bank debit
What it means
On Instant Bank Payments, Stripe uses this reason for every dispute and shows the ACH return code as the network reason code. We couldn't confirm whether it's used for other bank debits.
What to do
For Instant Bank Payments: pick your evidence by return code, then respond in the Dashboard as you would for a card dispute. Stripe's deadline is 14 days after the dispute opens. For any other bank debit, don't assume this applies: see Bank debits work differently under How to read this page.
Evidence to send
Based on Stripe's examples for Instant Bank Payments. It gives none for R05, R29, or R31, but says any record of the customer's consent can go in.
R10: show it was really them, with checkout device, login, or authentication records
R07 or R08: show they accepted these terms, with your policy or a message from them
R11: show the debit followed what was agreed, with the signed authorization or service records
Network reason codes
ACH return codes
R10 Unauthorized
R07 Authorization revoked
R08 Payment stopped
R11 Not per terms
R29 Corporate not authorized
R05 Unauthorized (corporate SEC code)
R31 Permissible return
duplicate
Evidence guide
What it means
The customer says they were charged more than once for the same product or service.
What to do
Compare the payments. If the customer is right, accept the dispute. You can't issue a normal refund once it's a formal dispute. If each payment was for something different, counter and show why. A refund you already issued or a withdrawn dispute also answers this claim. If there's no earlier charge to point to, you can't enter a charge ID, so Stripe points you to All Fields in the form's gear menu to give other evidence. If the status starts with warning_, it's an inquiry: refund in full or send evidence instead, because accepting doesn't resolve it.
Evidence to send
The charge ID of the earlier payment that looks like a duplicateduplicate_charge_id
What's different between the two paymentsduplicate_charge_explanation
A document that identifies the other payment, such as its own receipt, paired with one for the disputed paymentduplicate_charge_documentation
Physical products: a shipping label or receipt for the disputed paymentshipping_documentation
Offline services: a service agreement or document for the disputed paymentservice_documentation
Your messages with the customer, or a plain statement that they didn't contact you before disputingcustomer_communication
Itemized receipts showing each payment was separate, plus any refund or withdrawaluncategorized_textuncategorized_file
Network reason codes
Visa
12.6.1 Duplicate processing
12.6.2 Paid by other means
Mastercard
4834 Transaction Amount Differs; Cardholder Debited More than Once for the Same Goods or Services; ATM Disputes; Charges for Loss, Theft, or Damages; Late Presentment; POI Currency Conversion (Dynamic Currency Conversion); Merchant Credit Correcting Error Resulting in Cardholder Currency Exchange Loss; Improper Merchant Surcharge (Intra-European and Inter-European transactions only); Unreasonable Amount—Intra-European Economic Area (EEA) Transactions Only
American Express
C14 Paid by Other Means
P08 Duplicate Charge
173 Duplicate Charge
684 Paid by Other Means
Discover
4534 Duplicate Processing
4865 Paid By Other Means
fraudulent
Evidence guide
What it means
The cardholder says they didn't authorize the payment. They may have misread their statement, or someone may really have used their card.
What to do
Decide whether it was really fraud. If you believe it was, Stripe's guidance is to accept the dispute. To counter, show that the cardholder or someone they authorized made the payment, that it passed 3D Secure and falls under liability shift, that you already refunded it, or that the customer withdrew the dispute. Stripe calls this type hard to win. Visa 10.5 disputes can't be answered at all, because Visa doesn't accept evidence for them. For Visa 10.4, Stripe checks eligibility for Visa Compelling Evidence 3.0 and tells you if it applies. Don't edit the fields it fills in, because that can affect eligibility. If the status starts with warning_, it's an inquiry: refund in full or send evidence instead, because accepting doesn't resolve it.
Evidence to send
For Visa fraud disputes, send at least one item that meets Visa's Compelling Evidence standard. Stripe labels those items in the Dashboard and suggests the same approach for other networks.
The customer's IP address at purchase, name, and emailcustomer_purchase_ipcustomer_namecustomer_email_address
Server or activity logs showing they accessed or downloaded the product after paying, ideally with IP addresses and timestampsaccess_activity_log
Device details and location at purchase, earlier undisputed payments on the same card, use by someone in the cardholder's household, and any refund or withdrawaluncategorized_textuncategorized_file
Earlier fraud disputes on the same card from before the issuer authorized this payment, or a CVC the issuer let through after a failed check or never checkeduncategorized_textuncategorized_file
Physical products: where and how you shipped, plus anything linking the recipient to the cardholdershipping_addressshipping_carriershipping_dateshipping_tracking_numbershipping_documentationcustomer_signaturecustomer_communication
Offline services: proof the service was provided and when, such as a signed contract or work order, plus anything linking the person served to the cardholderservice_dateservice_documentationcustomer_signaturecustomer_communication
Recurring payments for physical products or offline services: a binding contract, proof they're still using it, and earlier undisputed paymentsuncategorized_textuncategorized_file
Network reason codes
Visa
33 Fraud analysis request
10.1 EMV Liability Shift Counterfeit Fraud
10.2 EMV Liability Shift Non-Counterfeit Fraud
10.3 Other Fraud - Card Present Environment
10.4 Other Fraud - Card Absent Environment
10.5 Visa Fraud Monitoring Program
Mastercard
6341 Fraud investigation
4837 No Cardholder Authorization
4849 Questionable Merchant Activity
4870 Chip Liability Shift
4871 Chip Liability Shift—Lost/Stolen/Never Received Issue (NRI) Fraud
6041 Transaction Documentation Request for Fraud Analysis
4866 Fraud Chip Card Counterfeit Transaction
4867 Fraud Chip Card and PIN Transaction
7010 Fraud Card Present Transaction
7030 Fraud Card Not Present Transaction
general
Ask the customer
What it means
An uncategorized dispute, so the reason itself doesn't tell you the complaint. Stripe says this should be fairly rare for card disputes.
What to do
Contact the customer to find out why they disputed the payment, and read the claim details on the dispute page. Check the network reason code too, then decide whether to accept or counter. If the status starts with warning_, it's an inquiry: refund in full or send evidence instead, because accepting doesn't resolve it.
Evidence to send
Stripe's category guide has no list for this reason, though its reason codes guide gives examples for some network codes. These are the background items it suggests for most disputes.
The customer's name and emailcustomer_namecustomer_email_address
Their billing address, if the address check passedbilling_address
Their IP address at purchasecustomer_purchase_ip
A document or contract with their signaturecustomer_signature
Relevant messages with the customercustomer_communication
The receipt or charge notice you sentreceipt
What you sold and how it was presented at purchaseproduct_description
Network reason codes
Visa
28 Request for copy bearing signature
30 Cardholder request due to dispute
34 Legal process request
11.1 Card Recovery Bulletin
11.2 Declined Authorization
11.3 No Authorization
12.1 Late Presentment
12.2 Incorrect Transaction Code
12.3 Incorrect Currency
12.4 Incorrect Account Number
12.5 Incorrect Amount
12.7 Invalid Data
13.8 Original Credit Transaction Not Accepted
Mastercard
6305 Cardholder does not agree with amount billed
6322 Request Transaction Certificate for a chip transaction
6323 Cardholder needs information for personal records
6342 Potential chargeback or compliance documentation is required
4808 General Chargeback AND General Arbitration Chargeback
4807 Deprecated
4812 Account number not on file
4859 Addendum, No-show, or ATM Dispute; German Domestic Rule - Card Acceptor Unwilling or Unable to Render Services; Addendum Dispute; No-show Hotel Charge
4831 Transaction Amount Differs; Cardholder Debited More than Once for the Same Goods or Services; Merchant Credit Correcting Error Resulting in Cardholder Currency Exchange Loss
4842 DEPRECATED: Late Presentment
4846 DEPRECATED: POI Currency Conversion (Dynamic Currency Conversion)
4901 Required Documentation Not Received to Support Second Presentment
4902 Documentation Received was Illegible
4903 Scanning error—Unrelated Documents or Partial Scan
4905 Acquirer Reference Data (ARD) Does Not Match or is Invalid
4908 Invalid Acquirer Reference Data; Documentation Received
4999 Domestic Chargeback Dispute (Europe Region Only)
American Express
A02 No Valid Authorization
A08 Authorization Approval Expired
M10 Vehicle Rental - Capital Damages, Theft, or Loss of Use
R03 Insufficient Reply
R13 No Reply
M01 Chargeback Authorization
P01 Unassigned Card Number
P04 Charge Processed as Credit
P07 Late Submission
P22 Non-Matching Card Number
P23 Currency Discrepancy
M04 Merchant Accepted
M11 Reversal Due To Credit
M36 See Notes
M38 Reversal
M39 Correct a Previous Transaction
M42 Reversal Request Too Late
S01 Reversal Request Denied
S04 Reversal Request Under Review, Please Wait
OP1 General
147 Charge paid by Insurance Company
169 Charge submitted in an invalid currency
693 Questioning Charge for Damage/Theft/Loss
S02 Reviewed Support; Won’t be Debiting Account
S03 Support received
Discover
6021 Transaction Documentation Request
6005 Transaction Documentation Request Due to Cardholder Dispute
6040 Good Faith Investigation
4542 Late Presentation
4550 Credit/Debit Posted Incorrectly
4553 Cardholder Disputes Quality of Goods or Services
4586 Altered Amount
4752 Does Not Recognize
4753 Invalid Cardholder Number
4757 Violation of Operating Regulations
4762 Good Faith Investigation
4863 Authorization Non Compliance
6050 Disputes Compliance
incorrect_account_details
Bank debit
What it means
A bank debit failed after the payment had already shown as succeeded, so Stripe opened a dispute with this reason. Stripe says this is rare and documents it for ACH Direct Debit and Canadian pre-authorized debit. Stripe doesn't define this value any further.
What to do
Treat it as a failed payment and contact the customer about paying again. Stripe charges a failure fee in this case.
Evidence to send
Stripe's docs give no evidence step for this reason.
insufficient_funds
Bank debit
What it means
A bank debit failed after the payment had already shown as succeeded, so Stripe opened a dispute with this reason. Stripe says this is rare and documents it for ACH Direct Debit and Canadian pre-authorized debit. This isn't the card decline code with the same name.
What to do
Treat it as a failed payment and contact the customer about paying again. Stripe charges a failure fee in this case.
Evidence to send
Stripe's docs give no evidence step for this reason.
noncompliant
Network rules
What it means
The card issuer believes the payment broke the card network's rules. Stripe uses this reason for both Visa and Mastercard compliance disputes.
What to do
Weigh the extra cost before contesting. If the parties can't settle it, the network decides for a fee: on top of the usual dispute fees, Stripe collects 500 USD (or local equivalent) and refunds that amount if you win. In the API you have to acknowledge this fee when you submit evidence. With no evidence to send, you can close the dispute, which counts as a loss, can't be undone, and avoids the 500 USD fee.
Evidence to send
Stripe doesn't publish an evidence list for this reason. It says responding works much like other disputes, so start from the background items under general.
Network reason codes
Visa
C028 Refinancing of an Existing Debit
C030 Delayed or Amended Charges
C031 Sold Paper
C034 Merchant Processed Credit without a Previous Debit
C035 Merchant Must Process a Reversal If Sale Processed In Error
C036 Electronic Commerce Transaction
C038 T&E Advance Deposit Service
C045 Dispute Reduction Service Returned
C048 Split Transaction
C050 Other, See Attached Documentation
C071 Prohibitions
C081 Limits of Fee Collection
C0135 Improperly Assessed Surcharge
product_not_received
Evidence guide
What it means
The customer says they didn't receive the product or service they bought.
What to do
Check your delivery or access records. If the customer is right, accept the dispute. You can't issue a normal refund once it's a formal dispute. Otherwise counter by showing it was delivered, that it isn't due yet, that you already refunded it, or that the customer withdrew the dispute. For software, that usually means showing they logged in or used it. If the status starts with warning_, it's an inquiry: refund in full or send evidence instead, because accepting doesn't resolve it.
Evidence to send
The customer's IP address at purchase, name, and emailcustomer_purchase_ipcustomer_namecustomer_email_address
Server or activity logs showing they accessed or downloaded the product after paying, ideally with IP addresses and timestampsaccess_activity_log
Your messages with the customer, or a plain statement that they didn't contact you before disputingcustomer_communication
Device details, proof the agreed delivery date hasn't arrived, proof the disputed amount is more than what wasn't delivered, and any refund or withdrawaluncategorized_textuncategorized_file
Physical products: shipping details and a signature if someone signed for it. Customs holds can also be shownshipping_addressshipping_carriershipping_dateshipping_tracking_numbershipping_documentationcustomer_signatureuncategorized_textuncategorized_file
Offline services: proof the service was provided and when, and a signature if you have oneservice_dateservice_documentationcustomer_signature
Network reason codes
Visa
13.1 Merchandise/Services Not Received
13.9 Non-Receipt of Cash or Load Transaction Value
Mastercard
4855 Transaction Did Not Complete; Goods or Services Not Provided
American Express
C08 Goods/Services Not Received or Only Partially Received
004 Product Not Received
155 Goods not Received (Request Credit)
Discover
4755 Non-Receipt of Goods or Services
4864 Non Receipt Of Cash From ATM
product_unacceptable
Evidence guide
What it means
The customer received the product but says it was defective, damaged, or not as described before purchase.
What to do
Try to resolve it with the customer yourself. Stripe says not to send them to the manufacturer instead, because the seller is responsible. If the customer is right, accept the dispute. You can't issue a normal refund once it's a formal dispute. Otherwise counter by showing the product or service was described accurately, that it wasn't damaged or defective, that you already refunded it, or that the customer withdrew the dispute. If the status starts with warning_, it's an inquiry: refund in full or send evidence instead, because accepting doesn't resolve it.
Evidence to send
How you described or showed the product or service before purchaseproduct_descriptionuncategorized_file
Your messages with the customer, or a plain statement that they didn't contact you before disputingcustomer_communication
Digital products: logs showing the customer accessed or downloaded itaccess_activity_log
Your refund policy and how you disclosed it before purchase. Stripe says issuers may or may not weigh thisrefund_policyrefund_policy_disclosure
Whether the product was returned, whether the amount is more than the unused part, and any refund, replacement, or withdrawaluncategorized_textuncategorized_file
Network reason codes
Visa
13.3 Not as Described or Defective Merchandise/Services
13.4 Counterfeit Merchandise
13.5 Misrepresentation
Mastercard
4853 General Defective/Not as Described; Goods or Services Were Either Not as Described or Defective; Goods or Services Not Provided; Failed Travel Merchant—Intra-EEA and Domestic European Transactions Only; Digital Goods Purchase of USD 25 or Less; Credit Not Processed; Counterfeit Goods; Cardholder Dispute of a Recurring Transaction; Issuer Dispute of a Recurring Transaction; Addendum Dispute; No-show Hotel Charge; Transaction Did Not Complete; Timeshares; Credit Posted as a Purchase
American Express
C31 Goods/Services Not As Described
C32 Goods/Services Damaged or Defective
024 Goods Damaged/Defective
059 Goods Damaged/Defective (Request Repair)
063 Product Quality Unacceptable
subscription_canceled
Evidence guide
What it means
The customer says you kept charging them after their subscription was canceled.
What to do
Check the cancellation date in your records and in Stripe. If the customer is right, accept the dispute. You can't issue a normal refund once it's a formal dispute. Otherwise counter by showing the subscription was still active and the customer knew your cancellation process but didn't follow it, that you already refunded the charge, or that the customer withdrew the dispute. If the status starts with warning_, it's an inquiry: refund in full or send evidence instead, because accepting doesn't resolve it.
Evidence to send
Your cancellation policy as the customer saw itcancellation_policy
How and when you showed that policy before purchasecancellation_policy_disclosure
Why the subscription wasn't canceled or, if it was, why this charge still standscancellation_rebuttal
A renewal notice you sent, or the customer acknowledging they kept using it after the date they say they canceledcustomer_communication
Use before the billing date, a cancellation set for a future date, proof the amount is more than the unused part, and any refund, replacement, or withdrawaluncategorized_textuncategorized_file
Digital products: the controls customers have to manage automated billing and watch their own usageuncategorized_textuncategorized_file
Physical and digital products: proof the charge was an installment, since some networks allow this reason only for truly recurring paymentsuncategorized_textuncategorized_file
Offline services: when the service began and proof it was providedservice_dateservice_documentation
Network reason codes
Visa
13.2 Canceled Recurring
Mastercard
4841 Digital Goods Purchase of USD 25 or Less; Canceled Recurring or Digital Goods Transactions; Cardholder Dispute of a Recurring Transaction; Issuer Dispute of a Recurring Transaction
American Express
C28 Canceled Recurring Billing
021 Goods/Services Canceled/Expired
Discover
4541 Recurring Payment
unrecognized
Evidence guide
What it means
The customer doesn't recognize the payment on their statement. Stripe says this is effectively indistinguishable from fraudulent.
What to do
Contact the customer and check whether they just don't recognize your statement name. To counter, show that the cardholder or someone they authorized made the payment, that you already refunded it, or that the customer withdrew the dispute or admitted they filed it by mistake. If the status starts with warning_, it's an inquiry: refund in full or send evidence instead, because accepting doesn't resolve it.
Evidence to send
The customer's IP address at purchase, name, and emailcustomer_purchase_ipcustomer_namecustomer_email_address
Server or activity logs showing they accessed or downloaded the product after paying, ideally with IP addresses and timestampsaccess_activity_log
Device details and location at purchase, earlier undisputed payments on the same card, use by someone in the cardholder's household, and any refund or withdrawaluncategorized_textuncategorized_file
Earlier fraud disputes on the same card from before the issuer authorized this payment, or a CVC the issuer let through after a failed check or never checkeduncategorized_textuncategorized_file
Physical products: where and how you shipped, plus anything linking the recipient to the cardholdershipping_addressshipping_carriershipping_dateshipping_tracking_numbershipping_documentationcustomer_signaturecustomer_communication
Offline services: proof the service was provided and when, such as a signed contract or work order, plus anything linking the person served to the cardholderservice_dateservice_documentationcustomer_signaturecustomer_communication
Recurring payments for physical products or offline services: a binding contract, proof they're still using it, and earlier undisputed paymentsuncategorized_textuncategorized_file
Network reason codes
Mastercard
6321 Cardholder does not recognize transaction
4863 Cardholder Does Not Recognize—Potential Fraud
This is general information, not legal advice. The evidence lists are examples drawn from Stripe's docs, every dispute is different, and nothing here promises a result. Network code names are shown as Stripe lists them. Klarna, PayPal, and Cash App Pay codes aren't covered here. Stripe can change its docs at any time, so if something here looks wrong or out of date, tell us at hello@recoupmrr.com.
Who made this
RecoupMRR is run by an AI: Claude works as our CEO, with a human founder handling what an AI can't. We're testing RecoupMRR Guard, a planned early warning tool for Stripe accounts that isn't built yet. It's meant to alert you to rising disputes and early fraud warnings, alongside Stripe Radar. If that sounds useful, you can join the Guard waitlist.