Pay with Stripe balancePublic preview
Collect subscription fees directly from the Stripe balances of your connected accounts.
Connect platforms can create a payment method linked to a connected account’s available Stripe balance. That allows a platform to collect subscription payments directly from a connected account’s available balance, instead of through external payment methods such as cards.
Note
Stripe balance payments are available only for Connect platforms that use Billing, and can only be used to make subscription payments to the platform.
Eligibility
Stripe balance payments are subject to the following conditions:
- You can only configure this payment method for an active connected account that’s controlled by your platform and that has the
card_
capability active.payments - You can only use this payment method for debiting subscription payments from connected accounts where your platform provides embedded payments, not for any other goods or services.
- Paying from a Stripe balance is not available when using Dynamic Payment Methods. You must explicitly specify paying from a Stripe balance as a payment method when creating a subscription payment.
Timing and availability of funds
Payments made from a Stripe balance are confirmed immediately. Stripe balance payments from connected accounts in the same country as your platform become available in your Stripe balance with same-day settlement (T+0). Cross-border payments from connected accounts in a different country become available in your Stripe balance with next-day settlement (T+1).
Required approval from your connected accounts 
You must obtain all necessary authorizations and approvals from your connected accounts before collecting payments from their Stripe balances. We recommend using the following language to inform your connected accounts, and that you provide an option to opt out of paying from their Stripe balance:
By clicking Confirm, you authorize to debit your Stripe account balance for any amount owed for recurring charges arising from your use of 's services, pursuant to 's website and terms.
Refunds
You can partially or fully refund any successful Stripe balance payment. The refund process is the same as that for card payments.
Transaction failures
Payment from a connected account’s Stripe balance requires sufficient available funds in the specified presentment currency. Otherwise, the PaymentIntent fails with an insufficient_
decline code. The payment fails even if the account has sufficient funds in a different currency.
We recommend configuring your integration to manage balance-related payment failures.
Avoid balance payment failures
Because payments from a connected account’s Stripe balance rely on its available funds, you can avoid payment failures by taking steps to maximize your connected accounts’ balances.
Tailor connected account payout schedules
Coordinate your payout schedules with your subscription billing cycles. For example, if you charge subscription fees on the first day of each month, and schedule weekly payouts on Mondays, then months with more Mondays have more payouts. Those months have lower available balances than months with fewer payouts, making payment failures more likely.
Another way to avoid payment failures due to payouts is to change to manual payouts before a subscription payment. At a set time before each subscription payment, if a connected account has sufficient available funds, switch it to manual payouts. After the subscription payment, switch it back to automatic payouts. That prevents the automatic payout of funds needed for the subscription payment.
Set a minimum balance on connected accounts
You can prevent automatic payouts from reducing a connected account’s available balance below a certain amount by defining a minimum balance for that account.
- Find the account in your Dashboard.
- From the account’s overflow menu (), select View Dashboard as….
- Click the gear icon and select Settings.
- Under Account Settings, click Business.
- Select the External payout accounts and scheduling tab.
- Turn on Keep a minimum amount in your payments balance and enter an amount.
You must manually set the minimum balance for each connected account.
Handle balance payment failures
Set up webhooks and event destinations to receive notifications about subscription payments. Identify payment failures by listening for the invoice.
event. When a payment fails:
- The PaymentIntent status changes to
requires_
.action - The Subscription status remains
incomplete
for the current invoice. - The Subscription continues to generate invoices, which remain in
draft
status.
Note
Payments from Stripe balances don’t support smart retries.
If a payment from a Stripe balance fails due to insufficient available funds, you can retry it by following these steps:
- Set the connected account’s payout schedule interval to
manual
. - Listen for the next payment that comes into the connected account, then check the account’s available balance.
- If the available balance is equal to or greater than the subscription fee, set the unpaid invoice’s payment method to
stripe_
and retry it. Otherwise, continue listening for payments until the available balance is enough to pay the invoice.balance - If the payment succeeds, restore the connected account’s normal payout schedule.
Instead of retrying a failed payment from a Stripe balance, you can try using a different payment method by specifying it directly on the invoice. You can also implement a flow that allows connected accounts to update their own subscription payment methods.
Supported currencies by country
Stripe doesn’t support all currencies in every jurisdiction. When you collect a payment from a connected account’s Stripe balance, that account’s country determines which currencies are available. The following table shows the supported currencies for Stripe balance payments from accounts in each country.
Below is the full table of supported currencies for paying from a Stripe balance, based on the connected account’s country.
Country | Default Currency | Supported Currencies for Paying with Stripe Balance |
---|---|---|
United States | USD | USD |
Canada | CAD | CAD, USD |
Switzerland | CHF | CHF |
United Kingdom | GBP | GBP, EUR |
Austria | EUR | EUR |
Belgium | EUR | EUR |
Bulgaria | BGN | EUR, BGN |
Cyprus | EUR | EUR |
Czech Republic | CZK | EUR, CZK |
Germany | EUR | EUR |
Denmark | DKK | EUR, DKK |
Estonia | EUR | EUR |
Spain | EUR | EUR |
Finland | EUR | EUR |
France | EUR | EUR |
Greece | EUR | EUR |
Croatia | EUR | EUR |
Hungary | HUF | EUR, HUF |
Ireland | EUR | EUR |
Italy | EUR | EUR |
Lithuania | EUR | EUR |
Luxembourg | EUR | EUR |
Latvia | EUR | EUR |
Malta | EUR | EUR |
Netherlands | EUR | EUR |
Poland | PLN | EUR, PLN |
Portugal | EUR | EUR |
Romania | RON | EUR, RON |
Sweden | SEK | EUR, SEK |
Slovenia | EUR | EUR |
Slovakia | EUR | EUR |
Norway | NOK | NOK, EUR |
Reporting and payment tracking
Payments made using a connected account’s Stripe balance generate transaction data reflecting the payment details on both the platform and the connected account.
On the platform, the payment creates a Charge and a BalanceTransaction with positive amounts. The BalanceTransaction has the following values:
reporting_
:category charge
source
: Charge object IDtype
:payment
On the connected account, the payment creates only a BalanceTransaction, with a negative amount and the following values:
description
: "Stripe balance payment - " + description from the PaymentIntentreporting_
:category stripe_
balance_ payment_ debit source
: nulltype
:- For payments:
stripe_
balance_ payment_ debit - For refunds:
stripe_
balance_ payment_ debit_ reversal
- For payments: