River
Y CombinatorBacked by Y Combinator

Finance & AccountingFree

Stripe Settlement and Payout Reconciliation

Gross, fees and net tied to every deposit, with the timing gap isolated and the year's gross reconciled to the form your processor files.

Start here

River's settlement reconciler reads the Stripe, PayPal, Square or AmEx files alongside the bank statement and ties every payout to the credit that landed. Each payout breaks into its own movements: charges, refunds, chargebacks, dispute fees, processor fees and any reserve. What comes back is a tie-out sheet where every deposit foots to a named set of transactions, plus the journal entries to post. Beside it sits the list of what did not reconcile, with the amount and the days it has been open on every item.

Tying net deposits to the bank is one of two reconciliations, and it is the easier one. The form your processor files reports gross: the total of reportable transactions without regard to adjustments for credits, fees, refunded amounts or shipping, dated on the transaction rather than the payout. So the number the IRS receives and the number your bank shows differ on two axes at once, and the difference in the example below is 128,463.14.

Written for the controller or accountant closing a month with three processors and one bank account. The bank side often arrives as a PDF, which is what bank statement PDFs is for, and the posted result lands in the normalized trial balance. Company card spend running the other way goes through the card statement matcher. Amazon, Shopify and Etsy sellers want marketplace settlement reconciliation instead, where a reserve rather than a fee drives the gap. A retail till reconciling cash and card together by shift wants the daily sales reconciliation template instead.

The payout report does not always exist

Stripe's own documentation draws the line: for a manual payout, Stripe cannot identify which transactions are included because you chose the timing and the amount, and reconciling it against your transaction history is your job. Automatic payouts carry a payout id you can filter balance transactions by. Manual ones do not. Any template that assumes a settlement report exists for every deposit breaks on the first manual payout, silently, in the month somebody moved cash early.

Amounts arrive in the currency's smallest unit. In Stripe's own sample response a payout of eighty dollars is the integer 8000 and a charge of a hundred is 10000, so the payout in the example below appears as 4451741. Read as dollars that is 4,451,741.00, a hundred times too large, and it still foots against itself perfectly. A tie-out that agrees internally and disagrees with the bank by exactly a factor of a hundred is this, every time.

A payout can be negative. Refunds and chargebacks are movements inside the same payout as the charges, so a week with a large refund and thin sales settles as a debit on the bank statement rather than a credit. Most reconciliation sheets have no row for that at all, and the reconciler ends up coding it as a bank fee. It is not. It is revenue reversing, and it belongs against returns rather than against operating expense.

How it works

  1. Add the settlements

    Paste or attach whatever your processors export, in whatever mix of formats they arrive in.

  2. Add the bank side

    The statement or the cash account detail for the same period, so each payout finds its credit.

  3. River ties each payout

    Every deposit foots to named transactions, and the year's gross bridges to what the processor reports.

  4. Post and chase

    Take the entries into the ledger and work the unreconciled list by amount and by age.

What you get

  • Every payout decomposed into charges, refunds, chargebacks, dispute fees, processor fees and reserve
  • Each bank credit tied to a named set of transactions, or carried as unmatched with its age
  • The gross to 1099-K bridge, built separately from the net to bank tie-out
  • Amounts read in the unit the export actually uses, rather than assumed to be dollars
  • Negative payouts treated as revenue reversing, rather than coded away as a bank fee
  • The journal entries to post, with the merchant clearing account proving out to what is in transit

Common questions

Why does my 1099-K show more than my bank deposits?

Because it is a different number measured on a different date. The form reports gross reportable transactions with no adjustment for fees, refunds, discounts or shipping, dated on the transaction. Your deposits are net, dated on the payout. In the example the two differ by 128,463.14, and the bridge names every dollar of it.

Does it work for PayPal and Square as well as Stripe?

Yes, and they are genuinely different files. One gives a balance transaction per movement, one gives an activity download with a row type per line and gross and net in separate columns, one settles daily by location. Each is read on its own terms rather than pushed through an importer that assumes Stripe's shape.

What if a deposit has no settlement report behind it?

That is the manual payout case, and it is documented rather than exotic. When you choose the timing and the amount, the processor cannot say which transactions are inside. The reconciliation works backwards instead: it takes the amount and the date and proposes the set of balance movements that produce it, then asks you to confirm.

Does it post the journal entries?

It writes them, you post them. Every entry clears the merchant clearing account, so the account proves out to the balance still in transit at period end rather than drifting. Fees are an expense and refunds hit returns, because netting fees against revenue is what makes the 1099-K impossible to reconcile later.

How does it handle the reserve a processor holds?

As its own line, held separately from a fee. A reserve is your money sitting somewhere else, so it belongs on the balance sheet rather than in cost of sales, and it releases later. The bridge shows the balance held at period end and the amount released during the period as two figures, not one net movement.

Is this the same as marketplace settlement reconciliation?

Related, and pointed at a different file. A marketplace settlement carries commission, fulfilment and storage fees plus a reserve the platform sets, so the marketplace version leads on the reserve. A payment processor charges a fee and passes the rest through, so the gap here is fees, refunds and the days between transaction and payout.

Stripe Settlement and Payout Reconciliation

Fill in the form and your workspace opens with the work already underway.