Skip to content
Create account
or
Sign in
The Stripe Docs logo
/
Ask AI
Create account
Sign in
Get started
Payments
Revenue
Platforms and marketplaces
Money management
Developer resources
Overview
Get started with Connect
Integration fundamentals
Example integrations
Account management
Onboard accounts
Configure account Dashboards
Work with connected account types
Payment processing
Accept payments
    Create a charge
    Set statement descriptors
    Set MCCs
    Handle multiple currencies
    Create payment links with Connect
    Use Radar with Connect
    Disputes on Connect
    Create subscriptions
    Create invoices
    Multiple payment method configurations
    Embed the payment method settings component
    Account balance
      Add funds to your platform balance
      Debit connected accounts
      Set reserves on connected accounts
Pay out to accounts
Platform administration
Manage your Connect platform
Tax forms for your Connect platform
HomePlatforms and marketplacesAccept paymentsAccount balance

Set reserves on your connected accountsPrivate preview

Temporarily reserve part of a connected account’s funds to cover refunds and disputes.

Applicable connected accounts

This content applies only to connected accounts with certain configurations.
This content applies to connected accounts where the platform is responsible for their negative balances.

With Radar for platforms, you can reduce the likelihood of negative connected account balances by creating Reserves. Reserves temporarily prevent portions of connected account balances from being paid out while they’re still subject to refunds or disputes. Any refunds or disputed funds from a transaction are automatically taken first from reserved amounts associated with that transaction.

When reserved funds are released, they become available for the next payout to the connected account. You can’t reserve funds for longer than 180 days.

Understanding different reserve types

Reserves that your platform creates for connected accounts are similar to reserves that Stripe creates for Stripe user accounts, including for platforms. When viewing account Balances, the connect_reserved hash represents reserves that Stripe holds in the platform balance, and the risk_reserved hash represents reserves that the platform holds in a connected account’s balance.

You can create reserves in the following ways:

  • Hold: Reserve a single amount that releases on a specified date. You can also manually release a hold.
  • Plan: Set up a plan that automatically creates a hold for a percentage of each charge. Each hold releases either on a specified date (fixed reserve) or a specified number of days after the associated charge (rolling reserve).
    • Use fixed reserve plans for temporary or date-specific dispute and refund concerns, such as for payments related to an upcoming event.
    • Use rolling reserve plans for automated management of ongoing risk. Implementing a standard reserve window also lets you set consistent expectations for connected accounts around payouts.

Understand reserve scenarios

Some common scenarios for implementing reserves include:

  • Regular transactions with a high percentage of refunds: Set up a fixed plan to reserve funds from each transaction and release each hold after a number of days equal to your standard refund window.
  • A large transaction with an unusually long delivery time: Create a hold or fixed reserve plan to reserve funds from that transaction and release them when its return window closes.
  • Ticket transactions for an event at risk of cancellation: Set up a fixed reserve plan to reserve funds from each transaction and release them all the day after the event.
  • Travel or lodging reservations that can be canceled for a refund until a certain number of days before the reservation date: Create a fixed reserve plan and update each hold release date to match that of the fulfillment date or the refund deadline for that reservation.
  • A connected account that experiences a large number of disputes: Set up a rolling reserve plan to reserve funds from each transaction for a certain length of time based on the dispute risk.
  • A sudden large increase in the number of transactions for a connected account: Set up a rolling reserve plan to reserve funds from each transaction and release them all on a date that gives the platform time to investigate the possibility of fraud.
  • Protection against fraudulent connected accounts: Set up a rolling reserve plan to reserve funds from each transaction with a new connected account and release them at the end of the account’s probationary period.

The following diagrams illustrate the flow of reserved funds in different scenarios:

Configure reserves

When you implement a reserve, the appropriate amount and hold time depends on the level of risk associated with a transaction. Consider the likelihood of refunds or disputes, as well as their size in relation to the connected account’s normal balance and to your platform’s risk tolerance.

A connected account’s level of risk depends in part on its exposure, which is its unfulfilled volume that’s subject to refunds and disputes. If your platform can’t directly access that information, you can estimate it by tracking the account’s refund and dispute rates and its average payments. The relationship between an account’s average exposure and its average balance can help you determine its level of risk for a negative balance.

When you configure reserves for a connected account, decide how much of its exposure your platform is willing to cover, and for how long. You must also consider how reserving funds can affect a connected account’s ability to conduct business.

Some of the factors that can affect the amount of risk associated with a connected account’s exposure include:

  • The average value of its orders
  • Its dispute rate
  • Whether its industry commonly has extended delivery times or high loss rates (for example, event ticketing, travel & lodging, furniture, or construction)
  • External macroeconomic events, such as supply chain disruptions, recessions, or tariffs

For example, consider a connected account where your ideal risk tolerance is 70% of its transaction amounts, and it has a normal refund window of 30 days. You might reserve 30% of each transaction amount for 30 days from the original transaction date. However, because the business involves small margins, you determine that holding that much of its revenue for that long could hinder its ability to fulfill orders. You might hold smaller amounts for longer periods, such as 20% for 45 days, or larger amounts for shorter periods, such as 40% for 10 days.

To simplify the process of configuring reserves, you can assign connected accounts to groups based on their risk level, and configure a reserve plan for each group.

Manage account expectations

In order to set expectations for your connected accounts and protect yourself against potential legal liability, your Terms of Service must clearly explain your reserve policy. Also, consider helping potential connected accounts understand what to expect from your platform by publishing public guidance about your reserve policy.

Work with the Reserves API

The Reserves API provides three objects:

  • ReserveHold: Represents a reserved amount associated with a transaction.
  • ReservePlan: Automatically creates a ReserveHold for each transaction according to user-defined settings.
  • ReserveRelease: Represents the release of funds from a ReserveHold. A ReserveRelease is created automatically when a ReserveHold reaches its scheduled release date or when funds from a ReserveHold are used for a refund or dispute.

Manually reserve and release funds

You can manually reserve funds by creating a ReserveHold object, and manually release funds by creating a ReserveRelease. When you release funds from a ReserveHold, you can release the entire amount or a partial amount. However, you can’t add funds to an existing ReserveHold.

You can associate a manually-created ReleaseHold with an existing ReleasePlan. In that case, any changes to that ReleasePlan affect the ReleaseHold the same way that they affect ReleaseHolds automatically created by that ReleasePlan.

Creating a ReserveHold or ReserveRelease generates the following BalanceTransactions:

  • ReserveHold
    • BalanceTransaction of type reserved_funds, representing a debit from the payments balance
    • BalanceTransaction of type reserve_hold, representing a credit to the risk_reserved balance
  • ReserveRelease
    • BalanceTransaction of type reserve_release, representing a debit from the risk_reserved balance
    • BalanceTransaction of type reserved_funds, representing a credit to the payments balance

Automatic release of reserve holds

A reserve hold releases automatically when any of the following events occurs:

  • The ReserveHold’s release_schedule.scheduled_release arrives. You can set its release_schedule.release_after timestamp, which automatically sets scheduled_release to the first midnight UTC following release_after.
  • 180 days pass since the ReserveHold’s created timestamp.
  • A refund or dispute for an amount equal to or greater than the ReserveHold occurs for its associated transaction.

Refunds and disputes for small amounts

Reserves don’t support refunds or disputes for amounts less than a transaction’s existing ReserveHold. A refund or dispute for an amount less than the transaction’s ReserveHold amount doesn’t automatically release the ReserveHold. The dispute or refunded amount is taken from the connected account’s balance, which can cause it to become negative. In this case, you must release the ReserveHold manually if you don’t want to wait for its scheduled release date.

Extend reserve holds

You can manually update the scheduled release date of a ReserveHold or a ReservePlan. If you update the release date of a ReservePlan with a fixed release date, it automatically updates all ReserveHolds associated with that ReservePlan. However, if you change the number of days to hold funds for a rolling ReservePlan that sets release dates relative to the transaction date, it only affects future ReserveHolds. It doesn’t change the scheduled release dates of existing ReserveHolds associated with the plan.

In any case, the scheduled release date of a ReserveHold can never be more than 180 days after its creation date, regardless of how it was created.

Disable reserve plans

To permanently cancel a ReservePlan, disable it. Disabling a ReservePlan automatically releases all existing ReserveHolds associated with the plan at the next midnight UTC. You can’t pause or temporarily disable a ReservePlan.

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