Blog
Cash-basis revenue recognition for Stripe subscription charges
Three dates for every subscription charge, and which one a cash-basis business should book revenue on. With the month-end timing problem worked through.
Three dates for every charge
A subscription renews on the 30th. Stripe charges the card that day. The funds become available in your Stripe balance on the 1st or 2nd. The payout reaches your bank on the 3rd. One charge, three dates. On a cash basis, two of them can count as the date the cash was received; the charge date is the accrual date.
| Date | Argument for it | What it ties to |
|---|---|---|
| Charge date (accrual) | The customer paid. Stripe's dashboard and most sync tools use it. | Stripe's sales reports. Not the 1099-K, not the bank. |
| Available date | The funds are yours to withdraw. Stripe's 1099-K uses it. | The 1099-K to the penny. The bank with a lag of a few days. |
| Bank deposit date | The strictest reading of cash received. | The bank statement exactly. Not the 1099-K. |
Pick one, write it in your accounting policy, and apply it to every charge every month. The choice matters only for charges in the last few days of a period, but those exist every month, and switching between dates is what produces revenue that is counted twice or not at all. The boundary itself, with the timezone and the in-transit list, is in Stripe payout cutoff dates at month end.
What accrual does instead
On accrual, the subscription charge on the 30th is revenue on the 30th regardless of when the cash arrives, and the money not yet in the bank sits in a Stripe clearing asset. If the subscription covers a future period, the revenue is deferred and recognised over that period. Most small Stripe-paid businesses file on a cash basis and do not need this, but the clearing account is useful on either basis because it is where the "charged but not yet deposited" money lives.
The month-end timing problem, worked through
Take a $100 Pro plan renewal charged on September 30, fee $3.20, available October 2, paid out and deposited October 3.
- Accrual (charge date): September revenue $100, September fee $3.20. September's Stripe clearing is up $96.80 and the bank is unchanged until October.
- Available-date basis: nothing in September. October revenue $100, fee $3.20. September's books close with no Stripe clearing movement for this charge. The 1099-K agrees.
- Bank-date basis: nothing in September. October 3 revenue $100, fee $3.20, and the bank is up $96.80 the same day. The bank statement agrees line for line.
Each is internally consistent. The trouble starts when sales are booked on the charge date because that is what the sync tool does, and the bank feed is then categorised as income on the deposit date. That is the "Stripe income doubled" problem, and the cure is to treat the payout as a transfer from clearing, never as income.
Refunds, disputes and fees on a cash basis
- A refund is a reduction of revenue on the date Stripe processes it, whichever basis you use for the sale. Stripe does not return the original processing fee, so the fee stays an expense.
- A dispute removes the disputed amount and charges a dispute fee on the dispute date. A win reverses both on the win date.
- Fees are an expense on the same date as the charge they belong to, under your chosen basis.
- Sales tax collected is a liability on every basis. It is not revenue and the 1099-K's inclusion of it does not make it so.
Choosing
If the books exist mainly to file taxes and the business receives a 1099-K, the available-date basis removes a year-end reconciliation entirely. If the owner reads the books against the bank statement, the bank-date basis is the one that makes sense to them. Booking on the charge date is accrual, the default most sync tools give you, and it ties to neither.
ClearDeposits makes this one setting: accrual, cash in bank, or Stripe 1099-K (available-on date; timing only). Every charge, fee, refund and payout is dated by the chosen rule, the clearing account is kept as a real subledger, and the month's entries for QuickBooks Online follow from it. Changing the basis is a dated policy change with a preview of what moves, not a rewrite of history.
Try it free for two months.
ClearDeposits reconciles Stripe charges to payouts to bank deposits and drafts the entries for QuickBooks Online, for you to review. No card to start. US only.