# Evidence map (digital products and SaaS)

Based on Stripe's published dispute guidance for "Digital products or services". Verified October 2026.
Sources: https://docs.stripe.com/disputes/categories · https://docs.stripe.com/disputes/responding · https://docs.stripe.com/disputes/api/visa-ce3

General principle from Stripe: digital products have no tracking number, so "focus on evidence of usage, login, or download".

---

## Fraud (`fraudulent`, `unrecognized`)

**Bank needs:** the legitimate cardholder (or an authorized person) made the payment; or 3DS liability shift; or refund already issued; or customer withdrew / admitted recognizing the charge; or (Visa) Compelling Evidence 3.0.

| Field | Content |
|---|---|
| `customer_purchase_ip` | IP at purchase |
| `customer_name` | Name at checkout |
| `customer_email_address` | Account email |
| `access_activity_log` | Logins/downloads/usage after payment, with IPs and timestamps |
| `uncategorized_file` / `uncategorized_text` | Device location and device ID at purchase; household member made it; earlier undisputed payments on the same card; earlier fraud disputes on this card before the issuer authorized; CVC failed but issuer approved, or CVC unchecked; refund issued; withdrawal |

**Visa CE 3.0 (code 10.4 only):** ≥2 prior undisputed, paid, non-validation payments on the same payment method, 120–364 days before; matching 2 main elements (purchase IP; device fingerprint or device ID; not both device fields together) or 1 main + 1 secondary (shipping address, email, customer account ID); product descriptions for all; `merchandise_or_services` set. Don't edit fields Stripe pre-fills.

## Not received (`product_not_received`)

**Bank needs:** delivered, or not due yet; or refunded; or withdrawn.

| Field | Content |
|---|---|
| `customer_purchase_ip`, `customer_name`, `customer_email_address` | As above |
| `access_activity_log` | Proof of access or download after payment |
| `customer_communication` | Messages; or a clear statement that the customer never made contact before disputing |
| `uncategorized_file` / `uncategorized_text` | Device location/ID; agreed delivery date not reached; if partly delivered, dispute exceeds the undelivered part; refund; withdrawal |

## Not as described (`product_unacceptable`)

**Bank needs:** accurately represented before purchase; not defective; or refunded; or withdrawn.

| Field | Content |
|---|---|
| `product_description` / `uncategorized_file` | Product as represented before purchase (dated screenshots) |
| `customer_communication` | All messages, or statement of no contact |
| `access_activity_log` | Proof of access/use, IPs and timestamps |
| `refund_policy`, `refund_policy_disclosure` | Policy text and how it was shown before purchase (issuer may or may not weigh it) |
| `uncategorized_file` / `uncategorized_text` | Dispute exceeds unused value; replacement provided; refund; withdrawal |

## Subscription canceled (`subscription_canceled`)

**Bank needs:** subscription still active and the customer knew and didn't follow the cancellation procedure; or refunded; or withdrawn.

| Field | Content |
|---|---|
| `cancellation_policy` | Policy text as shown |
| `cancellation_policy_disclosure` | How and when it was shown before purchase |
| `cancellation_rebuttal` | Why the subscription wasn't canceled, or why this payment is still valid |
| `customer_communication` | Renewal notice sent, or customer's acknowledgment of continued use after the claimed cancellation date |
| `uncategorized_file` / `uncategorized_text` | Billing controls offered (cancel button, usage monitoring, spend limits); consumed before billing; dispute exceeds unused value; customer wrong about cancellation date; it was an installment, not recurring; refund; withdrawal |

## Duplicate (`duplicate`)

**Bank needs:** each payment was for a separate product or service; or refunded; or withdrawn.

| Field | Content |
|---|---|
| `duplicate_charge_id` | ID of the other payment |
| `duplicate_charge_explanation` | How the two differ |
| `duplicate_charge_documentation` | Receipts uniquely identifying each payment, itemized |
| `customer_communication` | Messages |
| `uncategorized_file` / `uncategorized_text` | Documentation that payments were separate; refund; withdrawal |

If no other charge exists, use **All Fields** (gear menu) in the Dashboard to give alternate evidence.

## Credit not processed (`credit_not_processed`)

**Bank needs:** refund already issued; or customer not entitled; or withdrawn.

| Field | Content |
|---|---|
| `refund_policy`, `cancellation_policy` | Policy text |
| `refund_policy_disclosure`, `cancellation_policy_disclosure` | How it was shown before purchase |
| `refund_refusal_explanation`, `cancellation_rebuttal` | Why no (further) refund is owed |
| `customer_communication` | Refund request and reply |
| `uncategorized_file` / `uncategorized_text` | Refund already issued; partial use / dispute exceeds unused value; withdrawal |

---

## Submission rules (all categories)

- One response only. No edits after submitting.
- One file per evidence type; combine into multi-page PDFs.
- 4.5 MB total. Mastercard: 19 pages total.
- No audio/video, no links, no "contact us for more information".
- Response window is usually 7–21 days depending on network. Missing it loses the dispute.
- Issuer decision typically takes 60–75 days.
- US fees (June 2025 onward): $15 dispute received (not returned), $15 dispute countered (returned if you win). Other countries differ.
