Skip to content
Sign in
An image of the Stripe logo
/
Create account
Sign in
Home
Payments
Finance automation
Banking as a service
Developer tools
No-code
All products
Home
Payments
Finance automation
Home
Payments
Finance automation
Banking as a service
Developer tools

Debiting accounts on Stripe managed risk

With Connect, your platform can directly debit the Stripe balance of an account on Stripe managed risk.

At times, your platform might need to collect funds from your connected accounts:

  • To charge the connected account directly for products or services
  • To recover funds for a previous refund
  • To make other adjustments to connected account balances (for example, to correct an error)

When using accounts with Stripe managed risk (also known as Stripe loss liable), you can debit a connected account’s Stripe balance to credit your platform account’s Stripe balance. This creates a Transfer on the connected account and a Payment on the platform account.

Caution

Using Account Debits requires getting legally binding consent from your connected accounts. This feature is available in Australia, Canada, Europe, Hong Kong, Japan, New Zealand, and the US. Stripe supports Account Debits only when both your platform and the connected account are in the same region (for example, both in Japan). If you have interest in other regions, contact the sales team. There’s an additional cost for using Account Debits.

Requirements

The functional requirements for debiting connected accounts with Stripe managed risk are different from those of Express, Custom, or accounts with platform managed risk. For more information on how to debit the aforementioned accounts, please refer to debiting Express and Custom accounts.

For debiting accounts with Stripe managed risk:

  • The connected account and the platform must be in the same region (that is, both must be in Europe or in the US).
  • The currency value must match the default currency of the connected account.
  • If a connected account balance becomes negative as a result of the account debit, we will hold the appropriate amount of reserves on the platform balance. For more information please refer to understanding connected reserve balances due to accounts with Stripe managed risk.

To allow for the most seamless experience, verify the connected account’s bank before using Account Debits.

Transferring from a connected account

To debit connected accounts with Stripe managed risk, create a Transfer from your connected account to your platform account and provide a reference_transaction that initiated the debit. When using reference_transaction, the provided transaction must be a Charge, Payment, or Payout created on the same connected account being debited.

As always, when making an account debit transfer, use the Stripe-Account header to authenticate as the connected account and provide your platform’s Stripe account ID as the destination.

For debiting because of a previous Charge or Payment on the connected account:

Command Line
curl https://api.stripe.com/v1/transfers \ -u "
sk_test_4eC39HqLyjWDarjtT1zdp7dc
:"
\ -d amount=500 \ -d currency=usd \ -d destination={{PLATFORM_STRIPE_ACCOUNT_ID}} \ -d "reference_transaction[type]"=charge \ -d "reference_transaction[charge]"={{REFERENCE_TRANSACTION_ID}}

For debiting because of a previous Payout on the connected account:

Command Line
curl https://api.stripe.com/v1/transfers \ -u "
sk_test_4eC39HqLyjWDarjtT1zdp7dc
:"
\ -d amount=500 \ -d currency=usd \ -d destination={{PLATFORM_STRIPE_ACCOUNT_ID}} \ -d "reference_transaction[type]"=payout \ -d "reference_transaction[payout]"={{REFERENCE_TRANSACTION_ID}}

If successful, both the preceding API calls return the Transfer created on the connected account. In both cases, the Transfer that is returned corresponds to a Payment created on your platform account.

You must use your platform’s Stripe account ID to perform this request. If you don’t know that value already, perform a retrieve account API call using your platform’s API key:

Command Line
curl https://api.stripe.com/v1/accounts/
{{CONNECTED_ACCOUNT_ID}}
\ -u "
sk_test_4eC39HqLyjWDarjtT1zdp7dc
:"

This API call returns the Account object that represents your platform account.

See also

  • Creating Direct Charges
  • Creating Destination Charges on Your Platform
  • Creating Separate Charges and Transfers
Was this page helpful?
Need help? Contact Support.
Watch our developer tutorials.
Check out our product changelog.
Questions? Contact Sales.
Powered by Markdoc
You can unsubscribe at any time. Read our privacy policy.
On this page
Requirements
Transferring from a connected account
See also
Products Used
Connect
Stripe Shell
Test mode
Welcome to the Stripe Shell! Stripe Shell is a browser-based shell with the Stripe CLI pre-installed. Log in to your Stripe account and press Control + Backtick (`) on your keyboard to start managing your Stripe resources in test mode. - View supported Stripe commands: - Find webhook events: - Listen for webhook events: - Call Stripe APIs: stripe [api resource] [operation] (e.g., )
The Stripe Shell is best experienced on desktop.
$