Change your Stripe payout schedule in Dashboard → Settings → Payouts → Manage. Choose between daily (default), weekly (pick a day), or monthly (pick a date). You can also set a minimum payout amount or switch to manual payouts. Via the API, update the account's payout schedule using stripe.accounts.update with the settings.payouts.schedule object.
Configuring Your Stripe Payout Schedule
Stripe pays out your available balance automatically on a schedule you control. The default is daily (every business day), but you can switch to weekly or monthly depending on your cash flow needs. Weekly payouts arrive on a day you choose; monthly payouts arrive on a date you pick. You can also set a minimum payout amount to avoid small transfers, or switch to manual payouts if you prefer full control.
Prerequisites
- A verified Stripe account with payouts enabled
- Dashboard access or Node.js 18+ for API changes
Step-by-step guide
Change the schedule in the Dashboard
Change the schedule in the Dashboard
Go to Stripe Dashboard → Settings → Payouts. Under 'Payout schedule', click 'Manage' or 'Edit'. Select your preferred frequency: daily, weekly, or monthly. For weekly, choose the day of the week. For monthly, choose the day of the month (1-28, or 'last day'). Click Save.
Expected result: Payout schedule is updated. Future payouts follow the new schedule. Existing pending payouts are not affected.
Set a minimum payout amount (optional)
Set a minimum payout amount (optional)
In the same Payout settings, you can set a minimum payout amount. Stripe will accumulate your balance until it reaches this threshold before initiating a payout. This avoids small, frequent transfers.
Expected result: Payouts only trigger when your available balance exceeds the minimum amount you set.
Switch to manual payouts
Switch to manual payouts
If you want full control over when payouts happen, switch to manual payouts. In Dashboard → Settings → Payouts, change the schedule to 'Manual'. You'll need to trigger each payout yourself from the Dashboard or API.
1const stripe = require('stripe')(process.env.STRIPE_SECRET_KEY);23// Switch to manual payouts via API4await stripe.accounts.update('acct_your_account', {5 settings: {6 payouts: {7 schedule: {8 interval: 'manual',9 },10 },11 },12});1314// Then create payouts manually when ready15const payout = await stripe.payouts.create({16 amount: 50000, // $500.0017 currency: 'usd',18});Expected result: Automatic payouts are disabled. You trigger each payout manually.
Update the schedule via API
Update the schedule via API
For platform accounts using Stripe Connect, or for programmatic control, update the payout schedule via the API. Set interval to 'daily', 'weekly', or 'monthly' along with the appropriate anchor.
1// Set weekly payouts on Fridays2await stripe.accounts.update('acct_your_account', {3 settings: {4 payouts: {5 schedule: {6 interval: 'weekly',7 weekly_anchor: 'friday',8 },9 },10 },11});1213// Set monthly payouts on the 15th14await stripe.accounts.update('acct_your_account', {15 settings: {16 payouts: {17 schedule: {18 interval: 'monthly',19 monthly_anchor: 15,20 },21 },22 },23});Expected result: The payout schedule is updated via the API. Future payouts follow the new schedule.
Verify the current schedule
Verify the current schedule
Retrieve the account to confirm the payout schedule is set correctly.
1const account = await stripe.accounts.retrieve();2const schedule = account.settings.payouts.schedule;34console.log('Interval:', schedule.interval);5console.log('Weekly anchor:', schedule.weekly_anchor);6console.log('Monthly anchor:', schedule.monthly_anchor);7console.log('Delay days:', schedule.delay_days);Expected result: The current payout schedule settings are displayed, confirming your configuration.
Complete working example
1require('dotenv').config();2const stripe = require('stripe')(process.env.STRIPE_SECRET_KEY);34async function getPayoutSchedule() {5 const account = await stripe.accounts.retrieve();6 const schedule = account.settings.payouts.schedule;7 console.log('Current payout schedule:', JSON.stringify(schedule, null, 2));8 return schedule;9}1011async function setPayoutSchedule(interval, options = {}) {12 const scheduleConfig = { interval };1314 if (interval === 'weekly' && options.dayOfWeek) {15 scheduleConfig.weekly_anchor = options.dayOfWeek;16 }1718 if (interval === 'monthly' && options.dayOfMonth) {19 scheduleConfig.monthly_anchor = options.dayOfMonth;20 }2122 const account = await stripe.accounts.update(23 (await stripe.accounts.retrieve()).id,24 {25 settings: {26 payouts: {27 schedule: scheduleConfig,28 },29 },30 }31 );3233 const updated = account.settings.payouts.schedule;34 console.log('Updated schedule:', JSON.stringify(updated, null, 2));35 return updated;36}3738// Examples:39// Daily payouts40// setPayoutSchedule('daily');4142// Weekly on Fridays43// setPayoutSchedule('weekly', { dayOfWeek: 'friday' });4445// Monthly on the 1st46// setPayoutSchedule('monthly', { dayOfMonth: 1 });4748// Manual payouts49// setPayoutSchedule('manual');5051module.exports = { getPayoutSchedule, setPayoutSchedule };Common mistakes when changing payout schedule in Stripe
Why it's a problem: Setting monthly_anchor to 29, 30, or 31
How to avoid: Use 1-28 for the monthly anchor to avoid issues with shorter months. Use a special value or 28 for end-of-month payouts.
Why it's a problem: Expecting the schedule change to affect already-pending payouts
How to avoid: Schedule changes only affect future payouts. Already-scheduled payouts will still arrive on their original date.
Why it's a problem: Switching to manual payouts and forgetting to trigger them
How to avoid: Set a reminder or build automation to trigger manual payouts. Your balance accumulates indefinitely on manual mode.
Why it's a problem: Not accounting for payout delay days
How to avoid: Even with daily payouts, there's a delay (typically 2 business days for US). The schedule determines when Stripe initiates the payout, but bank processing adds additional time.
Best practices
- Start with daily payouts for consistent cash flow, then adjust as needed
- Use weekly payouts on Fridays to align with business week accounting
- Set a minimum payout amount to reduce the number of small bank transfers
- Use the API to manage payout schedules for Stripe Connect platform accounts
- Monitor payout.paid and payout.failed webhooks to track delivery
- Account for bank processing time (2 business days for US) when planning cash flow
- Keep manual payout mode only if you have a specific reason — automatic is more reliable
Still stuck?
Copy one of these prompts to get a personalized, step-by-step explanation.
Write a Node.js module that manages Stripe payout schedules. Include functions to get the current schedule, set daily/weekly/monthly/manual intervals, and validate the anchor parameters. Use stripe.accounts.update to change the schedule.
Build a Stripe payout schedule manager in Node.js that retrieves the current schedule, supports setting daily, weekly (with day anchor), monthly (with date anchor), and manual intervals via the API.
Frequently asked questions
What is the default Stripe payout schedule?
The default is daily automatic payouts. Stripe initiates a payout of your available balance every business day. For US accounts, payouts arrive in 2 business days.
Can I get paid out on weekends?
Stripe only initiates payouts on business days. If your scheduled payout day falls on a weekend or holiday, it moves to the next business day.
How do I set weekly payouts?
In Dashboard → Settings → Payouts → Manage, select 'Weekly' and choose your preferred day. Via the API, set interval: 'weekly' and weekly_anchor: 'friday' (or any day).
What happens if I change my payout schedule mid-cycle?
Already-scheduled payouts are not affected. The new schedule applies to future payouts only. Your accumulated balance will follow the new schedule.
Can I have different payout schedules for different currencies?
No. The payout schedule applies to all currencies. However, payouts for each currency go to their respective bank accounts, and each payout contains only one currency.
What is the minimum payout amount?
By default there is no minimum. You can set a custom minimum in Dashboard → Settings → Payouts. When set, Stripe accumulates your balance until it exceeds the minimum before initiating a payout.
Talk to an Expert
Our team has built 600+ apps. Get personalized help with your project.
Book a free consultation