# Using manual payouts Send manual payouts to your connected accounts. If you set the value of [schedule.interval](https://docs.stripe.com/api/accounts/object.md#account_object-settings-payouts-schedule) to `manual`, we hold funds in the accountholder’s balance until you specify otherwise. You must pay out the funds within the time period specified below, based on the business’s country: | Country | Holding Period | | ------------------- | -------------- | | Thailand | 10 days | | United States | 2 years | | All other countries | 90 days | To trigger a payout of these funds, use the [Payouts API](https://docs.stripe.com/api/payouts/create.md). ```dotnet StripeConfiguration.ApiKey = "<>"; var options = new AccountUpdateOptions { Settings = new AccountSettingsOptions { Payouts = new AccountSettingsPayoutsOptions { Schedule = new AccountSettingsPayoutsScheduleOptions { Interval = "manual" }, }, }, }; var service = new AccountService(); Account account = service.Update("<>", options); ``` ```go stripe.Key = "<>" params := &stripe.AccountParams{ Settings: &stripe.AccountSettingsParams{ Payouts: &stripe.AccountSettingsPayoutsParams{ Schedule: &stripe.AccountSettingsPayoutsScheduleParams{ Interval: stripe.String(string(stripe.AccountSettingsPayoutsScheduleIntervalManual)), }, }, }, }; result, err := account.Update("<>", params); ``` ```java Stripe.apiKey = "<>"; Account resource = Account.retrieve("<>"); AccountUpdateParams params = AccountUpdateParams.builder() .setSettings( AccountUpdateParams.Settings.builder() .setPayouts( AccountUpdateParams.Settings.Payouts.builder() .setSchedule( AccountUpdateParams.Settings.Payouts.Schedule.builder() .setInterval(AccountUpdateParams.Settings.Payouts.Schedule.Interval.MANUAL) .build() ) .build() ) .build() ) .build(); Account account = resource.update(params); ``` ```node const stripe = require('stripe')('<>'); const account = await stripe.accounts.update( '<>', { settings: { payouts: { schedule: { interval: 'manual', }, }, }, } ); ``` ```python import stripe stripe.api_key = "<>" account = stripe.Account.modify( "<>", settings={"payouts": {"schedule": {"interval": "manual"}}}, ) ``` ```php $stripe = new \Stripe\StripeClient('<>'); $account = $stripe->accounts->update( '<>', ['settings' => ['payouts' => ['schedule' => ['interval' => 'manual']]]] ); ``` ```ruby Stripe.api_key = '<>' account = Stripe::Account.update( '<>', {settings: {payouts: {schedule: {interval: 'manual'}}}}, ) ``` The Payouts API is only for moving funds from a connected Stripe account’s balance into their external account. To move funds between the platform and a connected account, see creating [separate charges and transfers](https://docs.stripe.com/connect/separate-charges-and-transfers.md) or creating [destination charges](https://docs.stripe.com/connect/destination-charges.md) through the platform. *Escrow* has a precise legal definition, and Stripe doesn’t provide escrow services or support escrow accounts. However, you can control payout timing through manual payouts, which allow you to delay payouts to certain accounts. When using manual payouts, you must pay out funds within the time frame for the business’s country. Delayed payouts can be useful when a delivery is delayed or when there’s a possibility of a refund. ## Regular payouts The following example sends 10 USD from a connected account’s Stripe balance to their external account: ```dotnet StripeConfiguration.ApiKey = "<>"; var options = new PayoutCreateOptions { Amount = 1000, Currency = "usd" }; var service = new PayoutService(); Payout payout = service.Create(options); ``` ```go stripe.Key = "<>" params := &stripe.PayoutParams{ Amount: stripe.Int64(1000), Currency: stripe.String(string(stripe.CurrencyUSD)), }; result, err := payout.New(params); ``` ```java Stripe.apiKey = "<>"; PayoutCreateParams params = PayoutCreateParams.builder().setAmount(1000L).setCurrency("usd").build(); Payout payout = Payout.create(params); ``` ```node const stripe = require('stripe')('<>'); const payout = await stripe.payouts.create({ amount: 1000, currency: 'usd', }); ``` ```python import stripe stripe.api_key = "<>" payout = stripe.Payout.create( amount=1000, currency="usd", ) ``` ```php $stripe = new \Stripe\StripeClient('<>'); $payout = $stripe->payouts->create([ 'amount' => 1000, 'currency' => 'usd', ]); ``` ```ruby Stripe.api_key = '<>' payout = Stripe::Payout.create({ amount: 1000, currency: 'usd', }) ``` With a standard payout, you can move an amount up to the user’s available balance. To find that amount, perform a [retrieve balance](https://docs.stripe.com/api.md#retrieve_balance) call on their behalf. Stripe tracks balance contributions from different payment sources in separate balances. The retrieve balance response breaks down the components of each balance by source type. For example, to create a payout specifically for a non-credit-card balance, specify the `source_type` in your request. ```dotnet StripeConfiguration.ApiKey = "<>"; var options = new PayoutCreateOptions { Amount = 24784, Currency = "USD", SourceType = "bank_account", }; var service = new PayoutService(); Payout payout = service.Create(options); ``` ```go stripe.Key = "<>" params := &stripe.PayoutParams{ Amount: stripe.Int64(24784), Currency: stripe.String(string(stripe.CurrencyUSD)), SourceType: stripe.String(string(stripe.PayoutSourceTypeBankAccount)), }; result, err := payout.New(params); ``` ```java Stripe.apiKey = "<>"; PayoutCreateParams params = PayoutCreateParams.builder() .setAmount(24784L) .setCurrency("USD") .setSourceType(PayoutCreateParams.SourceType.BANK_ACCOUNT) .build(); Payout payout = Payout.create(params); ``` ```node const stripe = require('stripe')('<>'); const payout = await stripe.payouts.create({ amount: 24784, currency: 'USD', source_type: 'bank_account', }); ``` ```python import stripe stripe.api_key = "<>" payout = stripe.Payout.create( amount=24784, currency="USD", source_type="bank_account", ) ``` ```php $stripe = new \Stripe\StripeClient('<>'); $payout = $stripe->payouts->create([ 'amount' => 24784, 'currency' => 'USD', 'source_type' => 'bank_account', ]); ``` ```ruby Stripe.api_key = '<>' payout = Stripe::Payout.create({ amount: 24784, currency: 'USD', source_type: 'bank_account', }) ``` While individual balance components can go negative (such as through refunds or chargebacks), you can’t create payouts for greater than the aggregate available balance.