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 method | Recipient capability | Expected arrival time |
|---|---|---|---|
| Another financial account belonging to the same account | — | — | Immediate |
| External UK bank account belonging to the same account | Faster Payments (FPS) | bank_accounts.local | Immediate |
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
