Skip to content
Create account
or
Sign in
The Stripe Docs logo
/
Ask AI
Create account
Sign in
Get started
Payments
Finance automation
Platforms and marketplaces
Money management
Developer tools
Get started
Payments
Finance automation
Get started
Payments
Finance automation
Platforms and marketplaces
Money management
Overview
Get started with Connect
Integration fundamentals
Example integrations
Onboard accounts
Configure account Dashboards
    Get started with Connect embedded components
    Customize Connect embedded components
    Supported Connect embedded components
      Available Components
      Account management
      Account onboarding
      Balances
      Documents
      Financial account
      Financial account transactions
      Issuing card
      Issuing cards list
      Notification banner
      Payment details
      Payments
      Payouts
      Payouts list
      Tax registrations
      Tax settings
      Preview components
      App install
      App viewport
      Capital financing
      Capital financing application
      Capital financing promotion
      Disputes for a payment
      Export Tax Transactions
      Payment method settings
      Reporting chart
    Stripe Dashboard customization
    Platform controls for Stripe Dashboard accounts
    Express Dashboard
Accept payments
Pay out to accounts
Manage your Connect platform
Tax forms for your Connect platform
Work with connected account types
HomePlatforms and marketplacesConfigure account DashboardsSupported Connect embedded components

Disputes for a paymentPrivate preview

Enable a connected account to view and manage disputes for a payment.

Copy page

Render a UI component for connected accounts to view disputes applicable to a specific payment. Connected accounts can see details for each dispute, such as the dispute reason, status, amount, and created date. If you enable the dispute_management feature for the account session, the connected account can perform actions like submitting evidence and accepting disputes. This functionality is also available in the Payment details component.

This inline component can be integrated on the same page as your other payments UI. It’s suitable for use in full screen, overlay, drawer, or any other layout with adaptable widths. If there aren’t any disputes associated with the payment, the component renders nothing. You can also configure custom behavior, such as different margins, for when there are no disputes. To do so, set a custom callback function using onDisputesLoaded.

In rare cases, a connected account can receive multiple disputes for the same payment created by a customer. Your connected account must review and handle each dispute for the same payment separately. We recommend you inform your connected accounts about this best practice to help improve their payment success rate.

By default, embedded components are most compatible with Connect integrations that accept direct charges. Embedded components display less information for destination charges and separate charges and transfers, and this UI component renders nothing for these charge types. To enable users to see disputes associated with destination charges with the on_behalf_of attribute, enable the destination_on_behalf_of_charge_management feature.

When creating an Account Session, enable this component by specifying payment_disputes in the components parameter. You can turn on or off an individual feature of the payment details component by specifying the features parameter under payment_disputes:

Command Line
cURL
curl https://api.stripe.com/v1/account_sessions \ -u "
sk_test_BQokikJOvBiI2HlWgH4olfQ2
:"
\ -H "Stripe-Version: 2025-04-30.basil; embedded_connect_beta=v2;" \ -d account=
{{CONNECTED_ACCOUNT_ID}}
\ -d "components[payment_disputes][enabled]"=true \ -d "components[payment_disputes][features][refund_management]"=true \ -d "components[payment_disputes][features][dispute_management]"=true \ -d "components[payment_disputes][features][destination_on_behalf_of_charge_management]"=false

After creating the account session and initializing ConnectJS, you can render the Disputes for a payment component in the frontend:

payment-disputes.js
JavaScript
// Include this element in your HTML const paymentDisputes = stripeConnectInstance.create('payment-disputes'); paymentDisputes.setPayment('{{PAYMENT_INTENT_OR_CHARGE_ID}}'); container.appendChild(paymentDisputes);

Note

For destination charges and separate charges and transfers, the PaymentIntent doesn’t exist on the connected account. Instead, pass the associated charge ID that belongs to the connected account.

Supported parameters

This embedded component supports the following parameters:

MethodTypeDescription
setPaymentstringThe ID of the payment, charge, or PaymentIntent that displays in the overlay. This should be an ID of the payment, charge, or PaymentIntent on the connected account. If this attribute isn’t defined, the embedded component renders nothing. To obtain this ID, query the charges API or use a payment ID that you’ve created or stored in your integration.required
setOnDisputesLoaded({total}: {total: number}) => voidWe send this event with the total number of disputes on this payment when the disputes are loaded. It allows specifying custom behaviors when disputes are loaded.

Dispute management for destination charges

When you enable both dispute_management and destination_on_behalf_of_charge_management, your connected accounts can update and modify dispute evidence, counter disputes, and accept disputes for destination charges with the on_behalf_of attribute set to the connected account.

For destination charges, with or without on_behalf_of, Stripe debits dispute amounts and fees from your platform account.

We recommend setting up a webhook to listen to dispute created events. When that happens, you can attempt to recover funds from the connected account by reversing the transfer through the Dashboard or by creating a transfer reversal.

If the connected account has a negative balance, Stripe attempts to debit its external account if debit_negative_balances is set to true.

If you challenge the dispute and win, you can transfer the funds that you previously reversed back to the connected account. If your platform has an insufficient balance, the transfer fails. Prevent insufficient balance errors by adding funds to your Stripe balance.

Common mistake

Retransferring a previous reversal is subject to cross-border transfer restrictions, meaning you might have no means to repay your connected account. Instead, wait to recover disputed cross-border payment transfers for destination charges with on_behalf_of until after a dispute is lost.

Request early access Private preview

Sign in to request access to this Connect embedded component in preview.

If you don’t have a Stripe account, you can register now.

Was this page helpful?
YesNo
Need help? Contact Support.
Join our early access program.
Check out our changelog.
Questions? Contact Sales.
LLM? Read llms.txt.
Powered by Markdoc