# Fund a financial account

Learn how to move money into a financial account balance.

You have the following options to fund a financial account:

| Funding method | Availability for outbound payments and transfers | Where to initiate |
| --- | --- | --- |
| [Send funds from a Stripe payments balance](https://docs.stripe.com/treasury/connect/moving-money/fund-a-financial-account.md#payments-balance) | Instant | Stripe API |
| [Send funds from your external bank account to a FinancialAddress](https://docs.stripe.com/treasury/connect/moving-money/fund-a-financial-account.md#external-account) | 1 working day (7 days initially for the first 5000 GBP in funding) | From your bank |
| [Use inbound transfers from a linked external bank account](https://docs.stripe.com/treasury/connect/moving-money/fund-a-financial-account.md#inbound-transfer) | 3-5 business days | Stripe API |
| [Submit a cheque using remote capture](https://docs.stripe.com/treasury/connect/moving-money/fund-a-financial-account.md#remote-capture) | 2 – 6 working days | Stripe API |
| [Send funds from an existing financial account](https://docs.stripe.com/treasury/connect/moving-money/fund-a-financial-account.md#existing-financial-account) | Instant | Stripe API |
| [Simulate a received credit](https://docs.stripe.com/treasury/connect/moving-money/fund-a-financial-account.md#testingrc) (Sandbox only) | Instant | Stripe API |
| [Use automatic transfer rules](https://docs.stripe.com/treasury/connect/moving-money/fund-a-financial-account.md#automatic-transfer-rules) | Instant (when rule triggers) | Stripe API |

## Send funds from a Stripe Payments balance

As the platform, you can move money from your payments [Balance](https://docs.stripe.com/api/balance.md) to your financial accounts or from your connected accounts’ payments balance to their financial accounts.

When testing, you can use [Stripe test cards](https://docs.stripe.com/testing.md?testing-method=tokens#available-balance), as in the following example. Test cards allow you to fund your Stripe payments balance instantly so you can test moving those funds to your financial account without waiting.

```curl
curl https://api.stripe.com/v1/payment_intents \
  -u "<<YOUR_SECRET_KEY>>:" \
  -H "Stripe-Version: 2026-06-24.preview" \
  -d amount=10000 \
  -d currency=usd \
  -d payment_method=pm_card_bypassPending \
  -d confirm=true \
  --data-urlencode "return_url=https://example.com/return"
```

The following example moves funds from a platform’s balance to its financial account:

```curl
curl https://api.stripe.com/v1/payouts \
  -u "<<YOUR_SECRET_KEY>>:" \
  -H "Stripe-Version: 2026-06-24.preview" \
  -d amount=978 \
  -d currency=usd \
  -d "payout_method={{FINANCIALACCOUNTID_ID}}"
```

To move money from your connected account’s payments balance, pass the `Stripe-Account` to identify the connected account as the target of the request:

```curl
curl https://api.stripe.com/v1/payouts \
  -u "<<YOUR_SECRET_KEY>>:" \
  -H "Stripe-Version: 2026-06-24.preview" \
  -H "Stripe-Account: {{CONNECTEDACCOUNT_ID}}" \
  -d amount=78 \
  -d currency=usd \
  -d "payout_method={{FINANCIALACCOUNTID_ID}}"
```

## Send funds from an external bank account

You should only credit financial accounts using external bank accounts that you own.

To get the bank credentials for your financial account, you must create a [FinancialAddress](https://docs.stripe.com/api/v2/money-management/financial-addresses.md?api-version=preview).

To create a financial address for your financial account, use the [Create FinancialAddress](https://docs.stripe.com/api/v2/money-management/financial-addresses/create.md?api-version=preview) API.

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](https://docs.stripe.com/api/v2/money-management/financial-addresses/object.md?api-version=preview#v2_financial_address_object-credentials) (such as a US routing number, British sort code or EU IBAN).

```curl
curl -X POST https://api.stripe.com/v2/money_management/financial_addresses \
  -H "Authorization: Bearer <<YOUR_SECRET_KEY>>" \
  -H "Stripe-Version: 2026-06-24.preview" \
  -H "Stripe-Context: {{CONTEXT_ID}}" \
  --json '{
    "financial_account": "{{FINANCIALACCOUNTID_ID}}",
    "type": "us_bank_account"
  }'
```

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

#### US

```json
{
  "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"
}
```

#### UK

```json
{
  "id": "{{FINANCIAL_ADDRESS_ID}}",
  "object": "v2.money_management.financial_address",
  "created": "2025-06-19T19:17:54.607Z",
  "credentials": {
    "type": "gb_bank_account",
    "gb_bank_account": {
      "account_holder_name": "Jenny Rosen",
      "account_number": "123456890",
      "last4": "6890",
      "sort_code": "12-34-56"
    }
  },
  "currency": "gbp",
  "financial_account": "{{FINANCIAL_ACCOUNT_ID}}",
  "settlement_currency": "gbp",
  "status": "pending",
  "livemode": false
}
```

#### EU

```json
{
  "id": "{{FINANCIAL_ADDRESS_ID}}",
  "object": "v2.money_management.financial_address",
  "created": "2025-06-19T19:17:54.607Z",
  "credentials": {
    "type": "sepa_bank_account",
    "sepa_bank_account": {
      "account_holder_name": "Jenny Rosen",
      "bank_name": "SEPA Test Bank",
      "bic": "TSTEZ122",
      "country": "IE",
      "iban": "IE29AIBK93115212345678",
      "last4": "6890"
    }
  },
  "currency": "eur",
  "financial_account": "{{FINANCIAL_ACCOUNT_ID}}",
  "settlement_currency": "eur",
  "status": "pending",
  "livemode": false
}
```

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](https://docs.stripe.com/treasury/connect/moving-money/fund-a-financial-account.md#monitor-received-credits).

You can use the [Get FinancialAddress](https://docs.stripe.com/api/v2/money-management/financial-addresses/retrieve.md?api-version=preview) API to fetch details about the financial address:

```curl
curl -G https://api.stripe.com/v2/money_management/financial_addresses/{{FINANCIAL_ADDRESS_ID}} \
  -H "Authorization: Bearer <<YOUR_SECRET_KEY>>" \
  -H "Stripe-Version: 2026-06-24.preview" \
  -H "Stripe-Context: {{CONTEXT_ID}}" \
  -d "include[0]=credentials.us_bank_account.account_number"
```

After you retrieve the `FinancialAddress`, you can view the account credentials, such as a US routing number, British sort code or European IBAN, which you can use to send money from your external bank account.

To list financial addresses associated with your financial account, use the [List Financial Addresses](https://docs.stripe.com/api/v2/money-management/financial-addresses/list.md?api-version=preview) API. You can use different parameters to filter out financial addresses for your financial account.

The following example request lists all financial addresses for the account:

```curl
curl https://api.stripe.com/v2/money_management/financial_addresses \
  -H "Authorization: Bearer <<YOUR_SECRET_KEY>>" \
  -H "Stripe-Version: 2026-06-24.preview" \
  -H "Stripe-Context: {{CONTEXT_ID}}"
```

In the US, connected accounts can fund USD financial accounts by sending ACH, RTP or electronic transfers to the financial address credentials. RTP funds are typically available within minutes.

| Funding method | Funds available | Where to initiate |
| --- | --- | --- |
| ACH | 0-2 business days | From your bank |
| RTP | Typically within minutes | From your bank |
| Wire | Same day | From your bank |

> RTP funding is available only for financial accounts in the US. If your Stripe account is outside the US, you can fund your USD financial account using ACH or an electronic transfer.

## Use inbound transfers from a linked external bank account  (Private preview)
Available in: US, GB
You can use inbound transfers to fund your connected account’s Stripe financial account by debiting their linked external bank account.

#### US

Embed a component in your platform where users link and verify their bank account for instant verification with no microdeposits or waiting period. Stripe:

- Verifies ownership and obtains proof that the account holder authorised the debit.
- Secures a mandate for legal authorisation to pull funds on an ongoing basis.
- Generates a tokenised credential representing the account and routing numbers securely vaulted as a reusable `usba_*` payment method.

Your connected account must have the `money_manager` configuration and active [business_storage.inbound.usd](https://docs.stripe.com/api/v2/core/accounts/create.md?api-version=preview#v2_create_accounts-configuration-money_manager-capabilities-business_storage-inbound-usd) capability to use inbound transfers to fund their financial accounts from their external bank account.

### Authenticate the external account

Create an [AccountSession](https://docs.stripe.com/api/account_sessions.md) on your server to render either the `account_management` or `account_onboarding` embedded component requesting the `external_account_collection` feature. This allows your connected account to link their external bank account to Stripe through the component UI.

```curl
curl https://api.stripe.com/v1/account_sessions \
  -u "<<YOUR_SECRET_KEY>>:" \
  -H "Stripe-Version: 2026-06-24.preview; embedded_connect_beta=v2" \
  --data-urlencode "account=identifier(connectedAccount)" \
  -d "components[account_management][enabled]=true" \
  -d "components[account_management][features][external_account_collection]=true"
```

Alternatively, you can verify a US bank account using the API:

1. [Create a US bank account](https://docs.stripe.com/api/v2/core/vault/us-bank-accounts/create.md).
2. [Send microdeposits](https://docs.stripe.com/api/v2/core/vault/us-bank-accounts/send-microdeposits.md).
3. [Confirm the microdeposit amounts or descriptor code](https://docs.stripe.com/api/v2/core/vault/us-bank-accounts/confirm-microdeposits.md).

After the `USBankAccount` verification status becomes `verified`, you can use the resulting `usba_*` credential for inbound transfers.

#### UK

To use Bacs debit inbound transfers, your connected account must have the `money_manager` configuration with the [business_storage.inbound.gbp](https://docs.stripe.com/api/v2/core/accounts/create.md?api-version=preview#v2_create_accounts-configuration-money_manager-capabilities-business_storage-inbound-gbp) capability active.

### Attach a bank account

Your connected account must have a valid GB bank account that supports Bacs debits. You can attach a bank account to your financial account by following the instructions to [add a payout method](https://docs.stripe.com/treasury/connect/moving-money/out-of/outbound-transfers.md#add-a-payout-method).

### Collect consent

Inbound transfers in the UK require a mandate that affirms the bank account owner’s consent to allow debits from the account. You must present the following Direct Debit Instructions (DDI) to your connected account, collect their acceptance, and record the following evidence:

- `accepted_at`: A datestamp in the past indicating when the connected account consented to the DDI.
- `ip_address`: The IP address used by the connected account when they consented.
- `user_agent`: The browser or client user agent used by the connected account when they consented.

I authorise Stripe Payments UK Limited, at the direction of , to (A) send instructions to my bank to debit my account and (B) my bank to debit my account in accordance with those instructions, for the purpose of funding my  Financial Account, subject to the safeguards assured by the Direct Debit Guarantee. I confirm that I am the only person required to authorise debits from this bank account. I agree to receive notice of each debit two days prior to the debit.

### Create the Inbound Mandate

After acceptance, create a mandate for the connected account’s GB Bank Account credential, specifying `type: "bacs"` and the online acceptance evidence. If you provide an optional Bacs reference prefix, it must be valid and 10 or fewer characters.

```curl
curl -X POST https://api.stripe.com/v2/money_management/inbound_transfer_mandates \
  -H "Authorization: Bearer <<YOUR_SECRET_KEY>>" \
  -H "Stripe-Version: 2026-09-30.preview" \
  -H "Stripe-Context: {{CONTEXT_ID}}" \
  --json '{
    "credential": "gbba_…",
    "type": "bacs",
    "user_accepted_details": {
        "accepted_at": "2026-08-24T12:00:00Z",
        "type": "online",
        "online": {
            "ip_address": "203.0.113.1",
            "user_agent": "Connected account client"
        }
    }
  }'
```

Stripe validates that:

- The credential is a GB Bank Account credential and belongs to the authenticated compartment
- The acceptance evidence is complete

If a pending or active mandate already exists for the same user and credential, Stripe returns that existing mandate rather than creating another one.

The response includes the mandate ID, its Bacs reference, the acceptance details, and its lifecycle status.

```json
{
  "id": "{{INBOUND_TRANSFER_MANDATE_ID}}",
  "object": "v2.money_management.inbound_transfer_mandate",
  "livemode": true,
  "credential": "gbba_…",
  "created": "2026-08-24T12:00:01Z",
  "type": "bacs",
  "bacs": {
    "reference": "STRIPE/ITM_9823427"
  },
  "user_accepted_details": {
    "accepted_at": "2026-08-24T12:00:00Z",
    "online": {
      "ip_address": "203.0.113.1",
      "user_agent": "Connected account client"
    }
  },
  "status": "pending",
  "status_transitions": {}
}
```

#### Account name verification

Upon mandate creation, Stripe verifies that the name on file for the financial account matches the name on the bank account. Failure returns an error requiring the user to provide a bank account that matches the account held in their name.

#### Mandate activation

Advise your connected accounts that DDI acceptance can take up to 3 business days. During this period:

- Indicate that authorization is in progress.
- Prevent new inbound transfers from using this credential

Successful activation sends the `v2.money_management.inbound_transfer_mandate.activated` webhook event and changes `inbound_transfer_mandate` status from `pending` to `active`.

### Create an inbound transfer

You or your connected account can initiate an inbound transfer to move funds into their financial account from their linked external account.

#### USD Embedded component

You can render the [financial_accounts](https://docs.stripe.com/treasury/connect/prebuilt-embedded-finance.md#available-components) embedded component to allow your connected account to transfer money from their linked external account to their financial account using the **Move money** user interface.

#### USD API

1. Look up the credential created from the external account authorisation session.
   ```curl
   curl https://api.stripe.com/v2/money_management/payout_methods \
     -H "Authorization: Bearer <<YOUR_SECRET_KEY>>" \
     -H "Stripe-Version: 2026-06-24.preview" \
     -H "Stripe-Context: {{CONTEXT_ID}}"
   ```
Make sure the `usage_status.transfers` parameter for the credential is `eligible`.
2. Provide the `usba_*` credential ID as the value of the `from` parameter in the InboundTransfer request.
   ```curl
   curl -X POST https://api.stripe.com/v2/money_management/inbound_transfers \
     -H "Authorization: Bearer <<YOUR_SECRET_KEY>>" \
     -H "Stripe-Version: 2026-06-24.preview" \
     -H "Stripe-Context: {{CONTEXT_ID}}" \
     --json '{
       "from": {
           "payment_method": "usba_123456"
       },
       "to": {
           "financial_account": "{{FINANCIALACCOUNTID_ID}}",
           "currency": "usd"
       },
       "amount": {
           "value": 1,
           "currency": "usd"
       },
       "description": "Transfer from external account"
     }'
   ```

#### GBP API

You must have an active mandate in place before requesting an inbound transfer using a Bacs debit. Otherwise, the request returns an error.

1. Look up the credential created from the external account authorisation session.
   ```curl
   curl https://api.stripe.com/v2/money_management/payout_methods \
     -H "Authorization: Bearer <<YOUR_SECRET_KEY>>" \
     -H "Stripe-Version: 2026-06-24.preview" \
     -H "Stripe-Context: {{CONTEXT_ID}}"
   ```
Make sure the `usage_status.transfers` parameter for the credential is `eligible`.
2. Provide the `gbba_*` credential ID as the value of the `from` parameter in the `InboundTransfer` request.
   ```curl
   curl -X POST https://api.stripe.com/v2/money_management/inbound_transfers \
     -H "Authorization: Bearer <<YOUR_SECRET_KEY>>" \
     -H "Stripe-Version: 2026-06-24.preview" \
     -H "Stripe-Context: {{CONTEXT_ID}}" \
     --json '{
       "from": {
           "payment_method": "gbba_123456"
       },
       "to": {
           "financial_account": "{{FINANCIALACCOUNTID_ID}}",
           "currency": "gbp"
       },
       "amount": {
           "value": 1000,
           "currency": "gbp"
       },
       "description": "Funding transfer from external account"
     }'
   ```

### Transfer lifecycle

After creation, an inbound transfer moves through various states. Listen for and handle the following `v2.money_management.inbound_transfer` webhook events at each stage:

| Event | Description |
| --- | --- |
| `bank_debit_queued` | Transfer created, waiting to send to the bank network. |
| `bank_debit_processing` | Debit submitted, awaiting settlement. |
| `bank_debit_succeeded` | Bank confirmed the debit. |
| `available` | Funds available in the financial account. |
| `bank_debit_failed` | Debit failed, possibly because of insufficient funds or an invalid account. |
| `bank_debit_returned` | The bank returned the debit after initial success (can occur days later). |

## Submit a cheque using remote capture  (Private preview)
Available in: US
> #### Request access
> 
> Cheque acceptance requires separate access in addition to Treasury for platforms. If you already use Treasury for platforms, contact your Stripe representative to request this feature.

Platforms in the US can use Check Scan to fund their connected accounts’ financial accounts. Capture images of an endorsed cheque to create a [US Paper Check](https://docs.stripe.com/api/us-paper-check.md) object that you can include in a PaymentIntent. Payment funds become available in the connected account’s `payments` financial account.

Your connected account must have the `money_manager` configuration and the `merchant` configuration with an active `us_paper_check_payments` capability.

```curl
curl -X POST https://api.stripe.com/v2/core/accounts/{{CONNECTEDACCOUNT_ID}} \
  -H "Authorization: Bearer <<YOUR_SECRET_KEY>>" \
  -H "Stripe-Version: 2026-06-24.preview" \
  --json '{
    "include": [
        "configuration.merchant"
    ],
    "configuration": {
        "merchant": {
            "capabilities": {
                "us_paper_check_payments": {
                    "requested": true
                }
            }
        }
    }
  }'
```

## Send funds from an existing financial account

You can transfer funds between financial accounts using the [OutboundTransfer](https://docs.stripe.com/treasury/connect/moving-money/out-of/outbound-transfers.md#move-money-from-one-financial-account-to-another-financial-account) or [OutboundPayment](https://docs.stripe.com/treasury/connect/moving-money/out-of/outbound-payments.md#move-money-from-a-platform-to-connected-account) APIs.

- Use [OutboundTransfer](https://docs.stripe.com/treasury/connect/moving-money/out-of/outbound-transfers.md#move-money-from-one-financial-account-to-another-financial-account) to transfer money between financial accounts owned by the same entity (for example, between two financial accounts owned by the same platform, or two financial accounts owned by the same connected account).
- Use [OutboundPayment](https://docs.stripe.com/treasury/connect/moving-money/out-of/outbound-payments.md#move-money-from-a-platform-to-connected-account) for payments between different connected accounts and payments to and from the platform and connected account.

## Monitor received credits

Every transaction that adds funds to a financial account generates a [ReceivedCredit](https://docs.stripe.com/api/v2/money-management/received-credits/object.md?api-version=preview) object on the financial account, detailing how funds were sent and from what account, where possible.

For USD financial accounts in the US, funds can arrive through ACH, RTP or electronic transfers.

### List received credits

[List received credits](https://docs.stripe.com/api/v2/money-management/received-credits/retrieve.md?api-version=preview) to review a set of funding transactions for a financial account. Use parameters in the request to filter the results by created date or to limit responses.

```curl
curl https://api.stripe.com/v2/money_management/received_credits \
  -H "Authorization: Bearer <<YOUR_SECRET_KEY>>" \
  -H "Stripe-Version: 2026-06-24.preview" \
  -H "Stripe-Context: {{CONTEXT_ID}}"
```

### Get a received credit

[Retrieve a received credit](https://docs.stripe.com/api/v2/money-management/received-credits/retrieve.md?api-version=preview) by its ID to review details such as the `amount`, `status` and `type` of transfer.

> US platforms using ACH transfers can also obtain the private preview `bank_transfer.network_details.ach` resource, which provides additional information like `addenda` and originator and receiver details. [Contact sales](https://stripe.com/contact/embedded-finance) for access.

```curl
curl https://api.stripe.com/v2/money_management/received_credits/{{RECEIVED_CREDIT_ID}} \
  -H "Authorization: Bearer <<YOUR_SECRET_KEY>>" \
  -H "Stripe-Version: 2026-06-24.preview" \
  -H "Stripe-Context: {{CONTEXT_ID}}"
```

```json
    {
      "id": "rc_test_123",
      "object": "v2.money_management.received_credit",
      "amount": {
        "value": 1,
        "currency": "usd"
      },
      "balance_transfer": {
        "payout_v1": "",
        "type": "outbound_payment"
      },
      "created": "2025-06-11T19:25:47.222Z",
      "description": "Received money from an FA",
      "financial_account": "fa_test_321",
      "receipt_url": "https://payments.stripe.com/transaction_receipt/…",
      "status": "succeeded",
      "status_details": null,
      "status_transitions": {
        "failed_at": null,
        "returned_at": null,
        "succeeded_at": "2025-06-11T19:25:47.222Z"
      },
      "type": "balance_transfer",
      "livemode": false
    }
```

### Create a test received credit

[Credit a financial address](https://docs.stripe.com/api/v2/money-management/financial-addresses/credit.md?api-version=preview) to add virtual funds and increase your financial account balance for testing.

```curl
curl -X POST https://api.stripe.com/v2/test_helpers/financial_addresses/{{FINANCIAL_ADDRESS_ID}}/credit \
  -H "Authorization: Bearer <<YOUR_SECRET_KEY>>" \
  -H "Stripe-Version: 2026-06-24.preview" \
  -H "Stripe-Context: {{CONTEXT_ID}}" \
  --json '{
    "amount": {
        "value": 250,
        "currency": "usd"
    },
    "network": "ach"
  }'
```

Set `network` to a [supported value](https://docs.stripe.com/api/v2/money-management/financial-addresses/credit.md?api-version=preview#v2_credit_financial_addresses-network) for the country and currency.

The response indicates if the simulation was successful, and you can check the balance of the financial account to confirm the increase.

```curl
curl https://api.stripe.com/v2/money_management/financial_accounts/{{FINANCIALACCOUNTID_ID}} \
  -H "Authorization: Bearer <<YOUR_SECRET_KEY>>" \
  -H "Stripe-Version: 2026-06-24.preview" \
  -H "Stripe-Context: {{CONTEXT_ID}}"
```

## Set up automatic transfer rules

Automatic transfer rules enable platforms to automatically split funds from a connected account’s payments balance to a financial account during scheduled payouts. This eliminates the need for manual calculations and transfers.

Before setting up automatic transfer rules, make sure:

- The connected account has at least one active financial account.
- The connected account is on an automatic payout schedule.
- The financial account supports the currency you want to transfer.

### Configure automatic transfer rules

Use the [Balance Settings API](https://docs.stripe.com/api/balance-settings.md?api-version=preview) to configure automatic transfer rules for your connected accounts. You can set one financial account per currency as the automatic transfer destination.

You can also configure automatic transfer rules for users on a manual payout schedule.

### Enable automatic payouts

Automatic payouts is disabled if `payments.payouts.schedule.interval` is set to `manual`. You must enable automatic payouts to activate the rules.

```curl
curl https://api.stripe.com/v1/balance_settings \
  -u "<<YOUR_SECRET_KEY>>:" \
  -H "Stripe-Version: 2026-06-24.preview" \
  -H "Stripe-Account: {{CONNECTEDACCOUNT_ID}}" \
  -d "payments[payouts][schedule][interval]=daily"
```

### Transfer a fixed amount

Transfer up to a specific amount to a financial account, with the remaining balance going to the connected account’s external bank account. When you use `transfer_up_to_amount`, the connected account must have a bank account configured for the currency. If the balance is less than `transfer_up_to_amount`, the entire balance is transferred to the financial account.

```curl
curl https://api.stripe.com/v1/balance_settings \
  -u "<<YOUR_SECRET_KEY>>:" \
  -H "Stripe-Version: 2026-06-24.preview" \
  -H "Stripe-Account: {{CONNECTEDACCOUNT_ID}}" \
  -d "payments[payouts][automatic_transfer_rules_by_currency][usd][0][payout_method]={{FINANCIALACCOUNTID_ID}}" \
  -d "payments[payouts][automatic_transfer_rules_by_currency][usd][0][type]=transfer_up_to_amount" \
  -d "payments[payouts][automatic_transfer_rules_by_currency][usd][0][transfer_up_to_amount]=1500000"
```

### Transfer all funds

Transfer all available funds to a financial account. When you use `transfer_all`, an external bank account isn’t required for the connected account.

```curl
curl https://api.stripe.com/v1/balance_settings \
  -u "<<YOUR_SECRET_KEY>>:" \
  -H "Stripe-Version: 2026-06-24.preview" \
  -H "Stripe-Account: {{CONNECTEDACCOUNT_ID}}" \
  -d "payments[payouts][automatic_transfer_rules_by_currency][gbp][0][payout_method]={{FINANCIALACCOUNTID_ID}}" \
  -d "payments[payouts][automatic_transfer_rules_by_currency][gbp][0][type]=transfer_all"
```

### Update automatic transfer rules

Update a rule by submitting the complete configuration for the currency:

```curl
curl https://api.stripe.com/v1/balance_settings \
  -u "<<YOUR_SECRET_KEY>>:" \
  -H "Stripe-Version: 2026-06-24.preview" \
  -H "Stripe-Account: {{CONNECTEDACCOUNT_ID}}" \
  -d "payments[payouts][automatic_transfer_rules_by_currency][usd][0][payout_method]={{FINANCIALACCOUNTID_ID}}" \
  -d "payments[payouts][automatic_transfer_rules_by_currency][usd][0][type]=transfer_up_to_amount" \
  -d "payments[payouts][automatic_transfer_rules_by_currency][usd][0][transfer_up_to_amount]=2000000"
```

### Remove automatic transfer rules

Remove the automatic transfer rule for a currency:

```curl
curl https://api.stripe.com/v1/balance_settings \
  -u "<<YOUR_SECRET_KEY>>:" \
  -H "Stripe-Version: 2026-06-24.preview" \
  -H "Stripe-Account: {{CONNECTEDACCOUNT_ID}}" \
  -d "payments[payouts][automatic_transfer_rules_by_currency][gbp]="
```

### View the current configuration

Retrieve the current automatic transfer rules:

```curl
curl https://api.stripe.com/v1/balance_settings \
  -u "<<YOUR_SECRET_KEY>>:" \
  -H "Stripe-Version: 2026-06-24.preview" \
  -H "Stripe-Account: {{CONNECTEDACCOUNT_ID}}"
```
