← Blog
Stripe Reconciliation 8 min read

Stripe Payout vs. Bank Deposit: Timing Explained

Stripe says it paid you on Tuesday. Your bank says the deposit arrived Thursday. Here's what happens between payout initiation and bank settlement — and how to handle the gap.

Updated

Every Stripe payout has two dates: the date Stripe says it paid you, and the date your bank says it received the money. They are almost never the same day.

This timing gap is not a Stripe problem or a bank problem. It’s a plumbing problem — money moves through intermediaries, and each hop takes time. But if you don’t account for this gap in your reconciliation, you’ll chase phantom discrepancies every month.

If you’re here because your payouts don’t match your bank deposits, timing is likely the cause — but there are five other reasons too. If you need the full reconciliation process, start with the Stripe-QBO guide. And if you’re on monthly fee billing, your payouts are larger because fees aren’t netted — don’t confuse that with a timing issue.

How a Stripe payout actually moves

Here’s what happens when Stripe creates a payout, step by step:

Day 0 (evening)          Day 0-1              Day 1-2              Day 2-3
┌──────────────┐    ┌──────────────┐    ┌──────────────┐    ┌──────────────┐
│   Stripe     │    │   Stripe's   │    │     ACH      │    │  Your bank   │
│   creates    │───▶│   bank       │───▶│   network    │───▶│   posts      │
│   payout     │    │   submits    │    │   processes   │    │   deposit    │
│              │    │   ACH file   │    │   transfer    │    │              │
└──────────────┘    └──────────────┘    └──────────────┘    └──────────────┘

                                              Visible in      │
                                              bank feed ──────┘

1. Stripe creates the payout object — Stripe closes the day’s balance and creates a payout record. The payout has an arrival_date — Stripe’s estimate of when the money will hit your bank. This is the date shown in your Stripe Dashboard. At this point, no money has moved. Stripe has a record saying it intends to send you money.

2. Stripe submits the ACH file — Stripe bundles payouts and submits them to its bank (typically through an ACH originator). This usually happens the same day the payout is created, but can be delayed by banking hours or holidays.

3. ACH processing — The Automated Clearing House network processes the transfer. ACH operates in batches — files submitted by a certain cutoff are processed in the next cycle. There are two cycles per business day, but most transfers settle in the overnight batch.

4. Your bank receives the deposit — Your bank receives the ACH credit and posts it to your account. Some banks post same-day ACH transfers intra-day; others batch them into an end-of-day posting.

5. The deposit appears in your bank feed — Your bank makes the deposit visible in your account. This might happen at the moment of posting or during the next business day’s processing run, depending on your bank’s technology.

Real-world timing

For a standard US bank account with automatic daily payouts:

EventTypical timingWhat you see
Payout createdT+0 (end of day)Appears in Stripe Dashboard
ACH submittedT+0 or T+1Nothing visible to you
Bank posts depositT+1 to T+2Appears in bank account
Visible in bank feedT+1 to T+3Available in QBO bank feed

“T” is the business day the payout was created. Weekends and bank holidays extend this.

Example: A payout created on Wednesday evening will typically arrive in your bank by Friday morning. A payout created on Friday evening won’t arrive until Tuesday (Monday is processing, Tuesday is arrival) — or Wednesday if Monday is a bank holiday.

Why this matters for reconciliation

The timing gap creates three specific problems:

Month-end cutoff mismatches

A payout created on January 31 with a two-day settlement lands in your bank on February 2. Stripe’s January balance report includes this payout. Your bank’s January statement does not.

If you reconcile Stripe’s January total to your bank’s January deposits, you’ll be short by exactly this payout amount. It’s not missing — it’s in transit.

Solution: When reconciling at month-end, identify payouts created in the last 2-3 business days of the month. These are your “in-transit” items. Add them to your bank balance as reconciling items, or wait until they clear before finalizing.

Quick check:

  • Identify payouts created in the last 3 business days of the period
  • Confirm they appear in next period’s bank deposits
  • Document them as reconciling items on your bank rec
  • Verify last month’s in-transit items cleared this month

Duplicate matching

If you’re matching payouts to bank deposits by amount, the same amount appearing on different days can cause false matches. A $3,500 payout from Monday and a $3,500 payout from Tuesday will both be in transit simultaneously, and if the bank deposits them on consecutive days, it’s easy to match them to the wrong payout.

Solution: Match on amount and date range. The bank deposit should fall within 1-3 business days of the payout creation date. Use the Stripe payout ID if your bank includes it in the deposit reference.

Cash-basis timing confusion

If you’re on cash-basis accounting, revenue is recognized when received — but received where? At the bank (when deposited) or at Stripe (when charged)?

Most accountants use the bank deposit date for cash-basis recognition, which means the last few days of charges each month get pushed into the next period. This is consistent but not always intuitive — your Stripe dashboard says you earned $50,000 in January, but your books say $48,000 because some payouts haven’t settled.

Solution: Pick one convention and stick with it. Cash-basis on bank deposit date is the most defensible. Document the policy so it’s applied consistently month to month.

Stripe’s arrival_date vs. your bank’s posting date

Stripe provides an arrival_date on each payout — their estimate of when the money will reach your bank. This is usually accurate within one business day, but it’s an estimate, not a guarantee.

Your bank’s posting date is the actual date the money appeared in your account. Use the bank’s date as the source of truth for reconciliation.

When the dates disagree (payout arrival_date is Feb 1, bank posts Feb 2), it usually means the ACH file arrived after your bank’s cutoff for same-day posting. It’s not an error — just a timing difference.

Payout schedules and their impact

Stripe offers several payout schedule options, and each one changes the reconciliation dynamic:

SchedulePayout frequencyReconciliation impact
Automatic daily (default)One per business dayEasiest — each payout maps to a narrow window
Automatic weeklyOne per weekLarger batches, more transactions per payout
Automatic monthlyOne per monthHardest — entire month’s activity in one payout
ManualYou trigger payoutsYou control timing, but ACH gap still applies

Regardless of schedule, the ACH settlement time is the same. The only thing that changes is how many charges are bundled into each payout.

Handling the gap in QuickBooks

In QBO, the in-transit amount is money that has left Stripe but hasn’t hit your bank. You have two options:

Option A: Ignore it — Don’t record anything until the bank deposit appears. Reconcile weekly or monthly, and the timing differences wash out over the period. This is simpler and works fine for most businesses.

Option B: Use a clearing account — Create a “Stripe Clearing” or “Funds in Transit” account. When Stripe creates the payout, debit the clearing account and credit revenue. When the bank deposit arrives, debit checking and credit the clearing account. This gives you a real-time view of in-transit funds but adds complexity. Only worth it if you have large payouts and need precise daily cash positions.

For a full walkthrough of the QBO setup, see How to reconcile Stripe with QuickBooks Online.

Why tools fail here

Stripe can tell you when it created the payout. Your bank can tell you when it posted the deposit. But neither system knows both dates — and neither can match the two for you.

This is a cross-system timing problem. It requires comparing Stripe’s payout ledger to your bank’s deposit ledger, within a date tolerance, and tracking the in-transit items at period boundaries. No single-system tool can do this because no single system has the data.

A reconciliation control pulls from both sources, matches payouts to deposits within the settlement window, and flags anything that hasn’t cleared. The output tells you exactly what’s in transit, what’s matched, and what’s actually missing.

Generate your Stripe reconciliation pack →

Upload your Stripe payout report and bank deposit CSV. Get back matched pairs with timing annotations, in-transit items, and a signed variance summary.

Troubleshooting

Stripe payout date different from bank deposit date

This is expected. Stripe reports the payout creation date; your bank reports the deposit posting date. The gap is 1-3 business days. Match on amount within that window.

Stripe payout shows “Paid” but not in bank

Check how many business days have passed since the payout was created. If it’s been fewer than 3 business days, wait. If it’s been more, check whether Stripe has a “Failed” status for the payout (Dashboard → Payouts). Failed payouts are retried automatically.

Bank shows Stripe deposit on a weekend

Some banks post ACH transfers on weekends; Stripe doesn’t create payouts on weekends. This means a Friday payout can appear in your bank on Saturday or Sunday. For reconciliation purposes, use the next business day as the effective date.

In-transit items keep growing month over month

If your in-transit list grows (more items entering than clearing), something is wrong. Payouts should clear within 3 business days. Check for failed payouts, bank account changes, or Stripe holds on your account.

FAQ

Why is the Stripe payout date different from the bank deposit date?

Because they’re measuring different events. Stripe’s date is when the payout was initiated. The bank’s date is when it was received. There’s a 1-3 business day ACH settlement gap between them. Neither date is wrong — they’re just different timestamps on the same transfer.

How long should I wait before investigating a missing Stripe deposit?

Wait 3 business days from the Stripe payout creation date. Most deposits clear in 2. If it hasn’t appeared after 3 business days and Stripe shows the payout as “Paid,” contact your bank. If Stripe shows “Failed,” it will be retried.

Can I get same-day Stripe deposits?

Stripe offers Instant Payouts (to a debit card) for an additional fee. Standard ACH payouts always have the 1-2 day delay. Instant Payouts eliminate the timing gap but cost more per payout.

What’s a Stripe clearing account and do I need one?

A clearing account in QBO tracks funds in transit between Stripe and your bank. It’s useful for businesses with large daily payouts that need precise cash positions. Most businesses can skip it — the timing differences wash out within a few days.