# Disputes on Connect platforms

Learn about the dispute responsibilities on Connect platforms.

You can view all disputes filed against your platform and connected accounts in your Dashboard. When one of your connected accounts receives a dispute against a payment, the [charge type](https://docs.stripe.com/connect/charges.md#types) and negative balance responsibility determine:

- Whether you or your connected account responds to that dispute to accept or challenge it.
- Which account Stripe debits for the chargeback and fees.

This guide describes how Stripe processes disputes for each charge type and how you can handle them.

| Behavior | Direct charges | Indirect charges |
| --- | --- | --- |
| Account to use when responding through the API | Connected account. Use its ID in the [`Stripe-Account` header](https://docs.stripe.com/connect/authentication.md#stripe-account-header). | Platform account. |
| Balance debited for the disputed amount | Connected account’s balance. | Platform’s balance, with or without `on_behalf_of`. |
| Account debited for dispute-related fees | Depends on the connected account’s [fee configuration](https://docs.stripe.com/connect/direct-charges-fee-payer-behavior.md). | Platform account. |

## Direct charges

For connected accounts that use [direct charges](https://docs.stripe.com/connect/direct-charges.md), Stripe always attempts to debit disputed amounts from the connected account’s balance. However, if Stripe can’t debit the amount, ultimate responsibility depends on whether Stripe or the platform is [responsible for negative balances](https://docs.stripe.com/connect/risk-management.md#identify-negative-balance-responsibility).

For dispute-related fees, responsibility depends on your connected account options. The following table shows whether Stripe debits dispute-related fees from the platform or the connected account:

| Account option | Dispute fee payer |
| --- | --- |
| v2 `Account` with [defaults.responsibilities.fees_collector](https://docs.stripe.com/api/v2/core/accounts/object.md#v2_account_object-defaults-responsibilities-fees_collector) = `application` | Platform |
| v2 `Account` with [defaults.responsibilities.fees_collector](https://docs.stripe.com/api/v2/core/accounts/object.md#v2_account_object-defaults-responsibilities-fees_collector) = any of the following values, including legacy Standard, Express, and Custom accounts:
- `stripe`
- `application_custom`
- `application_express` | Connected account |
| v2 `Account` with [defaults.responsibilities.fees_collector](https://docs.stripe.com/api/v2/core/accounts/object.md#v2_account_object-defaults-responsibilities-fees_collector) = `application_unified_accounts_beta` | Connected account (for information about changing the payer to your platform, [contact Stripe Support](https://support.stripe.com/)) |
| v1 `Account` with [controller.fees.payer](https://docs.stripe.com/api/accounts/create.md#create_account-controller-fees-payer) = `application` | Platform |
| v1 `Account` with [controller.fees.payer](https://docs.stripe.com/api/accounts/create.md#create_account-controller-fees-payer) = any of the following values, including legacy Standard, Express, and Custom accounts:
- `account`
- `application_custom`
- `application_express` | Connected account |
| v1 `Account` with [controller.fees.payer](https://docs.stripe.com/api/accounts/create.md#create_account-controller-fees-payer) = `application_unified_accounts_beta` | Connected account (for information about changing the payer to your platform, [contact Stripe Support](https://support.stripe.com/)) |

## Destination and separate charges and transfers

For [destination charges](https://docs.stripe.com/connect/destination-charges.md) and [separate charges and transfers](https://docs.stripe.com/connect/separate-charges-and-transfers.md), with or without `on_behalf_of`, Stripe debits dispute amounts and fees from your platform account.

Set up [a webhook](https://docs.stripe.com/webhooks.md) to listen for [dispute created events](https://docs.stripe.com/api/events/types.md#event_types-charge.dispute.created).

You can reverse the transfer to your connected account through the [Dashboard](https://dashboard.stripe.com/test/transfers) or by [creating a transfer reversal](https://docs.stripe.com/api/transfer_reversals/create.md) to recover the dispute chargeback funds. If the connected account has a negative balance, Stripe attempts to debit its external account if [debit_negative_balances](https://docs.stripe.com/connect/account-balances.md#automatically-debit-connected-accounts) is set to `true`.

Time your reversal according to how you choose to handle the dispute:

- If you accept the dispute, you can reverse the transfer immediately.
- If you challenge the dispute, wait for the dispute outcome before reversing the transfer.
  - If you win, don’t reverse the transfer.
  - If you lose, reverse the transfer.

If you reverse the transfer for a disputed payment that you challenge and win, transfering those funds back to a connected account can have unexpected results:

- If your platform has an insufficient balance, the transfer fails. Prevent insufficient balance errors by [adding funds to your Stripe balance](https://docs.stripe.com/get-started/account/add-funds.md).
- [Cross-border transfer restrictions](https://docs.stripe.com/connect/account-capabilities.md#transfers-cross-border) might prevent you from repaying your connected account.

If Stripe is responsible for the connected account’s negative balances, a transfer reversal can fail when the account has insufficient available funds. Handle reversal failures by retrying when sufficient funds become available.

To automate dispute management and handle chargebacks, browse [Fraud Stripe Apps](https://marketplace.stripe.com/categories/fraud) on the App Marketplace.

## Provide Connect embedded components to allow your connected accounts to respond to disputes

Your connected accounts can use [Connect embedded components](https://docs.stripe.com/connect/get-started-connect-embedded-components.md) to manage disputes from within your site.

The following components support dispute management:

- [Payments component](https://docs.stripe.com/connect/supported-embedded-components/payments.md): Displays all of an account’s payments and disputes.
- [Disputes list component](https://docs.stripe.com/connect/supported-embedded-components/disputes-list.md): Displays all of an account’s disputes.
- [Disputes for a payment component](https://docs.stripe.com/connect/supported-embedded-components/disputes-for-a-payment.md): Displays the disputes for a single specified payment. You can use it to include dispute management functionality on a page with your payments UI.

Note: The following is a preview/demo component that behaves differently than live mode usage with real connected accounts. The actual component has more functionality than what might appear in this demo component. For example, for connected accounts without Stripe dashboard access (custom accounts), no user authentication is required in production.

## Smart Disputes

If you use [Smart Disputes](https://docs.stripe.com/disputes/smart-disputes.md), you can [enable Smart Disputes auto-responses for your connected accounts](https://docs.stripe.com/disputes/smart-disputes/auto-respond.md?dashboard-or-api=dashboard#settings-for-connect-platforms).

## See also

- [Dispute categories](https://docs.stripe.com/disputes/categories.md)
- [Use Radar with Connect](https://docs.stripe.com/connect/radar.md)
- [Smart Disputes](https://docs.stripe.com/disputes/smart-disputes.md)
- [Smart Disputes fee passthrough](https://docs.stripe.com/connect/smart-disputes-fee-passthrough.md)
