# Handle Payment Disputes (/how-to/payments/handle-payment-disputes)



When a customer disputes a charge with their bank, Stripe creates a **dispute** (also called a chargeback). You have a limited window to respond with evidence. Resytech helps by extracting payment evidence from Stripe and generating a dispute response document.

Prerequisites [#prerequisites]

* A connected Stripe account.
* A booking with a disputed card payment.

How Disputes Work [#how-disputes-work]

1. The customer contacts their bank and disputes a charge.
2. Stripe notifies you of the dispute and temporarily reverses the charge (the funds are held).
3. You have until the **evidence due date** to submit a response.
4. If you submit compelling evidence, the bank may reverse the dispute in your favor.
5. If you do not respond or the evidence is insufficient, the dispute is lost and the funds are returned to the customer permanently.

Dispute Information [#dispute-information]

When you view a disputed payment, the system retrieves these details from Stripe:

Dispute Details [#dispute-details]

| Field                    | Description                                                                          |
| ------------------------ | ------------------------------------------------------------------------------------ |
| **Dispute ID**           | Stripe's unique identifier for the dispute (starts with `dp_`)                       |
| **Charge ID**            | The original charge that was disputed                                                |
| **Amount**               | The disputed amount (may be less than the full charge for partial disputes)          |
| **Currency**             | The currency of the dispute                                                          |
| **Reason**               | Why the customer disputed (see reasons below)                                        |
| **Status**               | Current dispute status                                                               |
| **Created**              | When the dispute was filed                                                           |
| **Evidence Due By**      | Deadline for submitting evidence                                                     |
| **Is Charge Refundable** | Whether the charge can still be refunded (as an alternative to fighting the dispute) |
| **Network Reason Code**  | The card network's specific reason code                                              |
| **Evidence Submitted**   | Whether evidence has already been submitted and how many times                       |

Common Dispute Reasons [#common-dispute-reasons]

| Reason                  | Meaning                                                         | Best Evidence                                     |
| ----------------------- | --------------------------------------------------------------- | ------------------------------------------------- |
| `fraudulent`            | Customer claims they did not authorize the charge               | 3D Secure proof, IP address, booking confirmation |
| `duplicate`             | Customer claims they were charged twice                         | Show distinct bookings/services for each charge   |
| `product_not_received`  | Customer claims service was not delivered                       | Signed waivers, check-in records, photos          |
| `product_unacceptable`  | Customer claims service quality was poor                        | Terms of service, waiver, communications          |
| `subscription_canceled` | Customer claims a recurring charge continued after cancellation | N/A (Resytech does not use subscriptions)         |
| `unrecognized`          | Customer does not recognize the charge                          | Statement descriptor, booking confirmation email  |

Charge Evidence [#charge-evidence]

Resytech extracts detailed evidence from the original charge to help you build your response:

Payment Method Details [#payment-method-details]

| Field                  | Description                                       |
| ---------------------- | ------------------------------------------------- |
| Card Brand             | Visa, Mastercard, Amex, etc.                      |
| Card Last 4            | Last 4 digits of the card                         |
| Card Country           | Country where the card was issued                 |
| Card Funding           | Credit, debit, or prepaid                         |
| Authorization Code     | The bank's authorization code for the transaction |
| Network Transaction ID | Unique ID from the card network                   |

Security Checks [#security-checks]

| Check                         | Meaning                                                           |
| ----------------------------- | ----------------------------------------------------------------- |
| **CVC Check**                 | Whether the security code matched (`pass`, `fail`, `unavailable`) |
| **Address Line 1 Check**      | Whether the billing address matched                               |
| **Address Postal Code Check** | Whether the billing ZIP code matched                              |

3D Secure Results [#3d-secure-results]

If the payment used 3D Secure authentication:

| Field                   | Description                                                        |
| ----------------------- | ------------------------------------------------------------------ |
| **Result**              | The 3DS authentication result (`authenticated`, `attempted`, etc.) |
| **Version**             | 3DS protocol version (1.0 or 2.0)                                  |
| **Authentication Flow** | How authentication was performed (`challenge`, `frictionless`)     |

3D Secure is strong evidence in `fraudulent` disputes because it proves the cardholder authenticated the transaction.

Risk Assessment [#risk-assessment]

| Field              | Description                                          |
| ------------------ | ---------------------------------------------------- |
| **Risk Score**     | Stripe Radar's risk score (0--100, higher = riskier) |
| **Risk Level**     | `normal`, `elevated`, or `highest`                   |
| **Network Status** | How the card network evaluated the transaction       |
| **Outcome Type**   | Whether Stripe approved or blocked the charge        |
| **Seller Message** | Human-readable description of the risk assessment    |

Generate a Dispute Document [#generate-a-dispute-document]

Resytech can generate a PDF document containing all the evidence for a dispute.

1. Open the booking with the disputed payment.
2. Click **Generate Dispute Document**.
3. Configure what to include:

| Option                     | Default  | Description                                                        |
| -------------------------- | -------- | ------------------------------------------------------------------ |
| **Charge ID**              | Required | The Stripe charge ID (`ch_...`) for the disputed payment           |
| **Dispute ID**             | Optional | The Stripe dispute ID (`dp_...`) for additional context            |
| **Include Waivers**        | Yes      | Include any signed waivers as evidence of the customer's agreement |
| **Include Communications** | Yes      | Include email/SMS communication history with the customer          |
| **Additional Notes**       | No       | Free-text notes to include in the evidence document                |

4. Click **Generate**.
5. Download the PDF and upload it to the dispute response in the Stripe Dashboard.

Responding in Stripe [#responding-in-stripe]

After generating your evidence:

1. Log in to your Stripe Dashboard at [dashboard.stripe.com](https://dashboard.stripe.com).
2. Navigate to **Payments > Disputes**.
3. Find the dispute and click on it.
4. Upload the evidence document and fill in the response fields.
5. Submit the evidence before the deadline.

You can submit evidence only once per dispute. Make sure your response is complete before submitting.

Tips [#tips]

* **Respond quickly.** You typically have 7--21 days depending on the card network. The exact deadline is shown in the dispute details.
* **3D Secure is your strongest defense** against fraudulent disputes. Consider enabling 3DS for all card payments.
* **Waivers are valuable evidence.** If the customer signed a waiver before the activity, it proves they were present and agreed to the terms.
* **Accept the dispute if appropriate.** If the customer has a legitimate complaint, it may be better to accept the dispute (or proactively refund) rather than fight it. Lost disputes incur additional fees from Stripe.
* **Stripe charges a dispute fee** (typically $15) regardless of the outcome. This fee is returned only if you win the dispute.

What to Do Next [#what-to-do-next]

* [Issue a Refund](/how-to/payments/issue-a-refund) -- if you choose to refund instead of fighting a dispute.
* [Set Up Stripe](/how-to/payments/set-up-stripe) -- review your Stripe configuration.
