Set reserves on your connected accountsPrivate preview
Temporarily reserve part of a connected account’s funds to cover refunds and disputes.
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_
hash represents reserves that Stripe holds in the platform balance, and the risk_
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
. AReserveRelease
is created automatically when aReserveHold
reaches its scheduled release date or when funds from aReserveHold
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 typereserved_
, representing a debit from the payments balancefunds BalanceTransaction
of typereserve_
, representing a credit to thehold risk_
balancereserved
ReserveRelease
BalanceTransaction
of typereserve_
, representing a debit from therelease risk_
balancereserved BalanceTransaction
of typereserved_
, representing a credit to the payments balancefunds
Automatic release of reserve holds
A reserve hold releases automatically when any of the following events occurs:
- The
ReserveHold
’srelease_
arrives. You can set itsschedule. scheduled_ release release_
timestamp, which automatically setsschedule. release_ after scheduled_
to the first midnight UTC followingrelease 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
.