# How to change payout schedule in Stripe

- Tool: Stripe
- Difficulty: Beginner
- Time required: 10 minutes
- Compatibility: All Stripe accounts, API v2024-12+
- Last updated: March 2026

## TL;DR

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.

## Before you start

- A verified Stripe account with payouts enabled
- Dashboard access or Node.js 18+ for API changes

## Step-by-step guide

### 1. 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.

### 2. 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.

### 3. 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.

```
const stripe = require('stripe')(process.env.STRIPE_SECRET_KEY);

// Switch to manual payouts via API
await stripe.accounts.update('acct_your_account', {
  settings: {
    payouts: {
      schedule: {
        interval: 'manual',
      },
    },
  },
});

// Then create payouts manually when ready
const payout = await stripe.payouts.create({
  amount: 50000,  // $500.00
  currency: 'usd',
});
```

**Expected result:** Automatic payouts are disabled. You trigger each payout manually.

### 4. 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.

```
// Set weekly payouts on Fridays
await stripe.accounts.update('acct_your_account', {
  settings: {
    payouts: {
      schedule: {
        interval: 'weekly',
        weekly_anchor: 'friday',
      },
    },
  },
});

// Set monthly payouts on the 15th
await stripe.accounts.update('acct_your_account', {
  settings: {
    payouts: {
      schedule: {
        interval: 'monthly',
        monthly_anchor: 15,
      },
    },
  },
});
```

**Expected result:** The payout schedule is updated via the API. Future payouts follow the new schedule.

### 5. Verify the current schedule

Retrieve the account to confirm the payout schedule is set correctly.

```
const account = await stripe.accounts.retrieve();
const schedule = account.settings.payouts.schedule;

console.log('Interval:', schedule.interval);
console.log('Weekly anchor:', schedule.weekly_anchor);
console.log('Monthly anchor:', schedule.monthly_anchor);
console.log('Delay days:', schedule.delay_days);
```

**Expected result:** The current payout schedule settings are displayed, confirming your configuration.

## Complete code example

File: `payout-schedule.js`

```javascript
require('dotenv').config();
const stripe = require('stripe')(process.env.STRIPE_SECRET_KEY);

async function getPayoutSchedule() {
  const account = await stripe.accounts.retrieve();
  const schedule = account.settings.payouts.schedule;
  console.log('Current payout schedule:', JSON.stringify(schedule, null, 2));
  return schedule;
}

async function setPayoutSchedule(interval, options = {}) {
  const scheduleConfig = { interval };

  if (interval === 'weekly' && options.dayOfWeek) {
    scheduleConfig.weekly_anchor = options.dayOfWeek;
  }

  if (interval === 'monthly' && options.dayOfMonth) {
    scheduleConfig.monthly_anchor = options.dayOfMonth;
  }

  const account = await stripe.accounts.update(
    (await stripe.accounts.retrieve()).id,
    {
      settings: {
        payouts: {
          schedule: scheduleConfig,
        },
      },
    }
  );

  const updated = account.settings.payouts.schedule;
  console.log('Updated schedule:', JSON.stringify(updated, null, 2));
  return updated;
}

// Examples:
// Daily payouts
// setPayoutSchedule('daily');

// Weekly on Fridays
// setPayoutSchedule('weekly', { dayOfWeek: 'friday' });

// Monthly on the 1st
// setPayoutSchedule('monthly', { dayOfMonth: 1 });

// Manual payouts
// setPayoutSchedule('manual');

module.exports = { getPayoutSchedule, setPayoutSchedule };
```

## Common mistakes

- **Setting monthly_anchor to 29, 30, or 31** — undefined Fix: Use 1-28 for the monthly anchor to avoid issues with shorter months. Use a special value or 28 for end-of-month payouts.
- **Expecting the schedule change to affect already-pending payouts** — undefined Fix: Schedule changes only affect future payouts. Already-scheduled payouts will still arrive on their original date.
- **Switching to manual payouts and forgetting to trigger them** — undefined Fix: Set a reminder or build automation to trigger manual payouts. Your balance accumulates indefinitely on manual mode.
- **Not accounting for payout delay days** — undefined Fix: 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

## 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.

---

Source: https://www.rapidevelopers.com/stripe-guide/how-to-change-payout-schedule-in-stripe
© RapidDev — https://www.rapidevelopers.com/stripe-guide/how-to-change-payout-schedule-in-stripe
