Stripe | Financial Infrastructure to Grow Your Revenue

Stripe | Financial Infrastructure to Grow Your Revenue

4466 articles

Transfer money between same-owner accounts


Public preview

Transfer money between same-owner accounts Public preview

Learn how to transfer money from financial accounts to other accounts owned by the same business.

An OutboundTransfer object facilitates money movement between financial accounts owned by the same entity (either the same connected account or the same platform). Use outbound transfers to send funds from a financial account to an external bank account or to move money between multiple financial accounts owned by the same entity.

Note

To move funds between financial accounts that different entities own (for example, from your platform financial account to a connected account’s financial account, or between two different connected accounts), use OutboundPayment instead.

Source currency:

You can create the following types of OutboundTransfer:

From a financial account to:Payout methodRecipient capabilityExpected arrival time
Another financial account belonging to the same account——Immediate
External UK bank account belonging to the same accountFaster Payments (FPS)bank_accounts.localImmediate

Move money from one financial account to another financial account

Using an outbound transfer, you can move money between two financial accounts owned by the same connected account. For two financial accounts owned by the platform, exclude the Stripe-Context header specifying the connected account ID.

Command Line

Select a language

cURL

Stripe CLI

Ruby

Python

PHP

Java

Node.js

Go

.NET

No results

Move money from financial account to a bank account

To create an outbound transfer to a bank account your connected account owns, first create a FinancialAddress for the financial account:

Create a financial address when you need to receive funds into a financial account or enable outbound payments to third parties. Specify the type corresponding to the country of the financial account to make sure we provision the correct address credentials (such as a US routing number, British sort code, or EU the related setting).

Command Line

Select a language

cURL

Stripe CLI

Ruby

Python

PHP

Java

Node.js

Go

.NET

No results

If successful, the response provides the ID for the financial address, along with the relevant credentials for the jurisdiction.

{
 "id": "{{FINANCIAL_ADDRESS_ID}}",
 "object": "v2.money_management.financial_address",
 "credentials": {
 "type": "us_bank_account",
 "us_bank_account": {
 "account_number": "123456890",
 "routing_number": "110000000",
 "bic": "TSTEZ122",
 "bank_name": "STRIPE TEST BANK",
 "last4": "6890"
 }
 },
 "status": "active",
 "financial_account": "fa_6504m3x1JLdhVIIIT1A16O0lef0dSQgZ0EhGyZsQCXQ28m",
 "created": "2023-03-30T17:32:06.665Z",
 "currency": "usd"
}

After you create a financial address, it starts in a pending status while Stripe provisions the bank details. When the status becomes active, you can retrieve the credentials (bank details) and share them to receive funds. You can monitor incoming funds using received credits.

Outbound transfers require a financial address.

Add a payout method to the account that will receive the funds:

Create a GB bank account and initiate Confirmation of Payee (CoP) using the GB Bank Accounts API.

Command Line

Select a language

cURL

Stripe CLI

Ruby

Python

PHP

Java

Node.js

Go

.NET

No results

{
 "id": "{{PAYOUT_METHOD_ID}}",
 "object": "v2.core.vault.gb_bank_account",
 "bank_name": "Test Bank",
 "last4": "2345",
 "confirmation_of_payee": { "status": "awaiting_acknowledgement" }
}

Check CoP status and acknowledge if needed.

Command Line

Select a language

cURL

Stripe CLI

Ruby

Python

PHP

Java

Node.js

Go

.NET

No results

Command Line

Select a language

cURL

Stripe CLI

Ruby

Python

PHP

Java

Node.js

Go

.NET

No results

Make the outbound transfer from the financial account according to the region and currency.

At this point, you have all the necessary pieces to transfer funds from the connected account’s financial account using the Create an OutboundTransfer endpoint.

Command Line

Select a language

cURL

Stripe CLI

Ruby

Python

PHP

Java

Node.js

Go

.NET

No results

Webhooks

Stripe emits the following OutboundTransfer events to your webhook endpoint:

  • v2. money _ management. outbound _ transfer. created
  • v2. money _ management. outbound _ transfer. posted
  • v2. money _ management. outbound _ transfer. returned
  • v2. money _ management. outbound _ transfer. updated
  • v2. money _ management. outbound _ transfer. failed
  • v2. money _ management. outbound _ transfer. canceled

See also

Last verified 2026-09-24

Is this helpful?