ChargebackDesk · Guides · Product unacceptable
Responding to a Stripe "product_unacceptable" dispute
The customer says the product was defective or not as described (Visa 13.3, Mastercard 4853). Be honest with yourself first: this is the hardest category to win on facts, and the winning posture is specific and factual — never defensive. If your own records confirm the defect, the cardholder is right: accept the dispute in Stripe (the customer already has the money back) and fix the defect.
Deadline rules
- The authoritative deadline is the evidence due-by date on the dispute in Stripe. If you don't respond by then, you automatically lose the dispute. Submit at least 72 hours early.
- One complete submission beats a fast partial one — gather the full complaint thread before you write anything.
- Amex/Discover may start as inquiries (
warning_needs_response); unanswered Discover inquiries can become unchallengeable.
What evidence wins
- The product description as purchased. Archived sales/checkout copy from the purchase period. This is the comparison baseline for the whole dispute — the issuer compares the claim against what you actually promised.
- The complete support thread on the complaint. What was reported, what you did, with timestamps. A resolved ticket with the buyer's acknowledgment is the strongest single artifact in this category.
- Functioning evidence. Uptime records for the disputed period, changelog/version records, and a bug-tracker search showing no matching defect.
- Continued or heavy use after the complaint date. Sustained use contradicts "unacceptable" — let the log make the point.
- If a refund was refused: the policy as shown, the disclosure record, and a specific refusal explanation citing the clause and the facts — never "per our policy" alone.
Optional, never load-bearing: even when no refund was requested, Stripe's guidance for this category lists your refund policy and how you disclosed it before purchase as evidence. If you include them, the policy goes in as a file (refund_policy) and the disclosure as text (refund_policy_disclosure, up to 20,000 characters). They support the case; they don't make it.
The minimum checklist
- ME-U1 — the as-purchased product description is available.
- ME-U2 — at least one, sourced: the complaint was investigated and answered in support records; or continued/meaningful use after the complaint; or a refund refused under a documented, pre-disclosed policy.
- ME-U3 (refusal cases) — policy as-shown + disclosure + specific refusal explanation, all present.
Common mistakes that lose winnable cases
- Arguing quality. "Our course is excellent" is not evidence. Issuers decide on description-match and defect facts — testimonials and reviews are just as useless.
- Cherry-picking support replies. Whole thread or none. A resolved ticket helps you precisely because it's complete.
- Pasting the full terms of service. It answers questions nobody asked and dilutes the evidence that matters. Excerpt the clause that applies, with its source and effective date.
- Fighting a real defect. Downtime matching the complaint window, bug reports confirming the claim, a broken paid feature — if your records say the customer is right, accept the dispute in Stripe (the customer already has the money back) and fix the defect. A lost dispute costs the amount, the fee, and credibility.
- Forgetting a promised refund. A refund promised in writing and never processed turns this into a case you will lose. Accept the dispute in Stripe — it has already returned the money to the customer, so don't refund it again.
Answering an inquiry? Amex and Discover can open a case as an inquiry (warning_needs_response) before any chargeback. Answer it with your narrative plus the single strongest exhibit — here, whichever answers the complaint directly: the resolved support thread, or the as-purchased description. Don't leave it unanswered: an unanswered Discover inquiry can escalate into a dispute you can't challenge. If the customer is right, a full refund resolves an inquiry with no Stripe dispute fee; accepting an inquiry doesn't resolve it.