Stripe | Financial Infrastructure to Grow Your Revenue

Stripe | Financial Infrastructure to Grow Your Revenue

4466 articles

Send money to recipients and financial accounts you don't own


Public preview

Send money to recipients and financial accounts you don't own Public preview

Learn how to create outbound payments to move money out of financial accounts to third parties.

OutboundPayment objects represent push-based transfers from:

  • A platform’s financial accounts to a financial account owned by connected accounts.
  • Financial accounts owned by one connected account to a financial account owned by another connected account under the same platform.
  • Financial accounts of a connected account to one of the platform’s financial accounts.
  • Financial accounts of a connected accounts any third party recipient.

Note

To move funds between financial accounts and other accounts owned by the same entity, use OutboundTransfers instead.

Source currency:

You can create the following types of OutboundPayment:

From a financial account to:Payout methodRecipient capabilityExpected arrival time
Another financial account under a different account——Immediate
An external UK recipient (third party payout)Faster Payments (FPS)bank_accounts.localImmediate
An external recipient (third party payout) with FXCross-borderVaries by countryTypically 1-7 days (varies by country)

Move money from a platform to connected account

To move funds from your platform’s financial account to a connected account’s financial account, create an OutboundPayment without the Stripe-Context header:

Command Line

Select a language

cURL

Stripe CLI

Ruby

Python

PHP

Java

Node.js

Go

.NET

No results

Note

When moving funds from your platform’s financial account, don’t include the Stripe-Context header. The platform financial account is automatically used as the source of funds.

Move money between connected accounts’ financial accounts

Use Outbound Payments to create an outbound payment:

This example creates an outbound payment between two financial accounts of different connected accounts (under your platform). Set the recipient_notification.setting to none so that a Stripe notification isn’t sent to the recipient.

Command Line

Select a language

cURL

Stripe CLI

Ruby

Python

PHP

Java

Node.js

Go

.NET

No results

Note

To move funds from your platform’s financial account to a connected account’s financial account, don’t specify the Stripe-Context header.

Use a similar request to move funds from your connected account’s financial account to your platform’s financial account.

Create an OutboundPayment to a third party recipient

To pay a third party recipient, first create and onboard a recipient-configured connected account to generate an account ID and a payout method ID that you need for the transaction.

Then create an outbound payment.

Command Line

Select a language

cURL

Stripe CLI

Ruby

Python

PHP

Java

Node.js

Go

.NET

No results

Send an OutboundPayment cross-border or to a recipient in a different currency

Stripe supports sending money in local currency to recipients in many different countries. Before making a cross-border outbound payment, review:

Note

To get access to cross-border Outbound Payments to external bank accounts, contact . Cross-border transfers between financial accounts are enabled by default.

Create an OutboundPaymentQuote to understand applicable FX and fees before making a cross-border outbound payment.

Command Line

Select a language

cURL

Stripe CLI

Ruby

Python

PHP

Java

Node.js

Go

.NET

No results

The response contains the estimated fees, currency exchange rate, and payout amounts prior to creating the payment. The FX quote is valid for 5 minutes. If you don’t create an outbound payment within 5 minutes, you need to request a new quote.

{
 "id": "{{OUTBOUND_PAYMENT_QUOTE_ID}}",
 "object": "v2.money_management.outbound_payment_quote",
 "amount": {
 "value": 30000,
 "currency": "usd"
 },
 "created": "2025-09-09T09:21:17.201Z",
 "delivery_options": null,
 "estimated_fees": [
 {
 "amount": {
 "value": 0,
 "currency": "usd"
 },
 "type": "cross_border_payout_fee"
 },
 {
 "amount": {
 "value": 300,
 "currency": "usd"
 },
 "type": "standard_payout_fee"
 },
 {
 "amount": {
 "value": 100,
 "currency": "usd"
 },
 "type": "foreign_exchange_fee"
 }
 ],
 "from": {
 "debited": {
 "value": 30000,
 "currency": "usd"
 },
 "financial_account": "{{FINANCIAL_ACCOUNT_ID}}"
 },
 "fx_quote": {
 "lock_duration": "five_minutes",
 "lock_expires_at": "2025-09-09T09:26:17.000Z",
 "lock_status": "active",
 "rates": {
 "usd": {
 "exchange_rate": "1.133"
 }
 },
 "to_currency": "eur"
 },
 "to": {
 "credited": {
 "value": 34443,
 "currency": "eur"
 },
 "payout_method": "{{RECIPIENT_PAYOUT_METHOD_ID}}",
 "recipient": "{{RECIPIENT_ACCOUNT_ID}}"
 },
 "livemode": false
}

When creating the payout with OutboundPayment, provide the quote to acknowledge the fees associated with the payout.

At this point, you have all the necessary pieces to pay the recipient from the connected account’s financial account using the Create an OutboundPayment endpoint.

Command Line

Select a language

cURL

Stripe CLI

Ruby

Python

PHP

Java

Node.js

Go

.NET

No results

Send an OutboundPayment in USD Private preview

Available in:

You can send US outbound payments using the following methods:

MethodCapabilitySpeedReversible
ACH (Standard)bank_accounts.localTypically 2-3 business daysYes
Wirebank_accounts.wireSame business dayNo
RTP (Real-Time Payments) Private previewbank_accounts.instantSeconds to minutesNo
Push-to-card Private previewcardsImmediateNo

Command Line

Select a language

cURL

Stripe CLI

Ruby

Python

PHP

Java

Node.js

Go

.NET

No results

For payroll payments, set "purpose": "payroll" to comply with the related setting requirements.

See also

Last verified 2026-09-24

Is this helpful?