Skip to content

WooCommerce · Stripe, WooPayments & PayPal

Your Stripe payout, reconciled to the cent

Payoutproof is a WooCommerce plugin that turns Stripe and WooPayments payouts into double-entry journal entries that balance exactly against the bank deposit, and reconciles PayPal by period — so the monthly spreadsheet rebuild stops being your job.

Start a free 14-day trial See how it works

No card required No Stripe keys to paste Your data never leaves your site

WooCommerce → Payoutproof
The Payoutproof payouts screen inside WooCommerce, showing total deposited, payout count, and two payment gateways each with its own balanced journal entry
Real output from a live test account, not a mock-up.

Every payout is checked against this. If it does not hold, nothing posts.

The arithmetic

One payout, worked

A week of trading for a store doing about 500 orders a month. Your orders report for these seven days says $8,619.25. Your bank says $8,060.30. Neither is wrong, and nothing in WooCommerce connects them.

Charges captured1158,619.25
Processing fees115−284.05
Refunds settled3−187.50
Dispute withheld1−75.00
Payout adjustment1−12.40
Bank deposit8,060.30

Four things sit in that $558.95, and only one of them is fees. Two of the three refunds are against orders placed last month, so a spreadsheet built from this week's orders will never find them at all.

The fee is charged per transaction, not per payout. Applying 2.9% + $0.30 to the weekly total gives $284.46. The payout says $284.05. That 41 cents is per-charge rounding, it happens every week, and it is the kind of residue that leaves a reconciliation account nobody can clear.

Payoutproof posts this as a journal entry where debits equal credits and the deposit line equals the bank — or it refuses to post and tells you which of the three checks failed.

Fees at Stripe's published US online card rate, 2.9% + $0.30 per successful charge (stripe.com/pricing). Charge count, refund and adjustment values are a worked example at a $74.95 average order; the arithmetic is the part that matters, and it ties.

Start a free 14-day trial See what it costs

The month-end problem

One net figure, and no way back to the orders

A payout arriving in your bank is gross sales, less processing fees, less refunds, less chargebacks, adjusted for currency and reserves, covering orders from several days. Nothing in WooCommerce maps it back.

Today

Rebuilt by hand, every month

  • Export the Stripe balance report and the WooCommerce orders
  • Line them up in a spreadsheet and hunt the difference
  • Find an order whose payment link was never written
  • Post a journal you are not certain is right

With Payoutproof

Decomposed, matched, checked

  • Install, and it reads the gateway you already have
  • Every payout split into its parts, each matched to its order
  • Three checks run — anything that fails is parked, with the reason
  • Export the month and post it without checking it first

Balanced

The payout settled a known set of transactions, debits equal credits, and the bank line matches. Post it.

Transfer

A manual payout. Complete and correct, but it carries no sales — the revenue behind it is journalled by period.

Parked

A check failed. Nothing posts, and the panel names which check — so you see what to fix rather than that something broke.

3checks on every payout, or it will not post
3payment gateways, reconciled side by side
557automated tests, run on every change
0copies of your data leave your server

What it does

Built for the parts that actually go wrong

Reconciliation fails in specific, boring ways. Each of these is one of them.

Balances, or refuses

Three invariants run on every payout: the transactions sum to the deposit, debits equal credits, and the bank line matches. A silently wrong journal entry costs far more than a missing one, so anything failing a check is parked rather than posted.

Nothing to paste for Stripe

It reads the credentials your Stripe gateway already holds and proves they work before claiming anything. Prefer a read-only restricted key? Enter one instead. PayPal is the exception, and deliberately so — see below.

PayPal, by period

PayPal has no payouts to reconcile — funds sit in a balance and you withdraw when you choose. So it reconciles the period instead: opening balance, every fee and transaction across the window, withdrawals on their own line, closing balance. It is the one gateway you enter credentials for, because the PayPal plugin keeps stale ones in an old option and guessing wrong would balance your month against an account you no longer use.

Works with WooPayments

WooPayments never exposes Stripe API keys, which is why external accounting services cannot reach it at all. Payoutproof runs inside WordPress and reads it directly.

Manual payouts, properly

They settle nothing in particular, so they post as clearing-account transfers with the period's activity journalled separately.

Damaged orders still reconcile

Matching goes through Stripe's own metadata first, so orders whose payment link was never written are still found — and can be repaired.

One month, one file

A manual journal CSV most accounting packages accept, or an audit CSV with explicit debit and credit columns. Scoped to a month.

Period activity
A month of WooCommerce settlement activity as one balanced journal entry: processor clearing, chargebacks, refunds, sales revenue and processing fees, each line with its account code
A whole month as one balanced entry, each line carrying the code it posts to in your chart.

Reconcile your last payout Free plan, no card, no time limit.

Alternatives

How this differs from a spreadsheet or a connector

Most stores reconcile payouts by hand, and some pipe Stripe into their accounting software directly. Both work up to a point. Here is where each one stops.

Swipe the table sideways to see all three columns.

Reconciling WooCommerce payouts by hand, with an external connector, and with Payoutproof, compared across seven capabilities.
  By hand, in a spreadsheet External connector Payoutproof
Reads WooPayments Only via CSV export No — no API keys exist to give it Yes, directly
Stripe, WooPayments and PayPal in one place Three spreadsheets, three methods Usually one processor per connector All three, each on its own books
Matches payouts to WooCommerce orders Manually, one at a time To Stripe charges, not to your orders Every transaction, four ways
Refuses to post when it does not balance Nothing stops you Usually posts anyway Three checks, or it parks
Handles manual payouts correctly If you know the clearing-account method Usually attributes them wrongly Clearing transfer plus period activity
Finds orders with a broken payment link You find them by hand Cannot see WooCommerce at all Matches through Stripe metadata, and repairs
Where your payment data goes Onto your laptop Through a third-party server Nowhere — it runs inside your site
Effort per month An afternoon, every month Low, once configured Open the screen, export the month

Comparison as at September 2026. “Connector” means a third-party service that reads Stripe over its API and writes into accounting software.

  • Free forever, no card. Your three most recent payouts, every journal entry in full.
  • 14 days on any paid plan. No card to begin, and nothing charged if you stop.
  • It posts nothing to your accounts. Journal entries are produced and exported; you decide what is booked.
  • Nothing leaves your site. It talks only to your payment gateways, and stores no copy of your key.

Pricing

Every tier reconciles the same

What changes is history, sites and export — not whether the numbers are right.

Free

$0

To see whether it balances your books at all

  • Your 3 most recent payouts
  • Every journal entry, in full
  • Chart of accounts mapping
  • No card, no time limit

Get the free version

Solo

$1916/mo

One store, up to about 300 orders a month

  • Unlimited payout history
  • CSV export, both formats
  • Multiple payment accounts per store
  • 1 site
  • 14-day trial, no card

Start free trial

Most stores

Store

$4941/mo

A growing store, up to about 2,000 orders a month

  • Everything in Solo
  • 5 sites
  • 14-day trial, no card

Start free trial

Agency

$9983/mo

Bookkeepers running many client stores

  • Everything in Solo
  • Unlimited sites
  • Priority support
  • 14-day trial, no card

Start free trial

The order volumes above are guidance for picking a tier, not limits — no plan caps what Payoutproof will reconcile. Every paid tier has the same features; what changes is how many sites the licence covers. Annual billing is ten months for twelve. 14-day money-back guarantee on every paid plan.

Questions

The things people ask first

Do I need to paste Stripe API keys?

No. Payoutproof reads the credentials your existing WooCommerce Stripe gateway already stores, and verifies them against the Stripe API before using them. If you prefer to narrow its access, you can supply a Stripe restricted key with read access to payouts, balance transactions and charges instead.

Does it work with WooPayments?

Yes, and it is one of the few tools that can. WooPayments never exposes Stripe API keys to the merchant, which means external accounting services cannot reach it at all. Payoutproof runs inside WordPress and reads WooPayments data directly through its own interface.

Does it work with PayPal?

Yes, and it works differently on purpose. PayPal has no payouts to reconcile — funds accumulate in a balance and you withdraw when you choose, so there is no payout object for a journal entry to hang from. Payoutproof reconciles the period instead: opening balance, every transaction and fee across the window, withdrawals as their own line, closing balance, proved against PayPal's own running balance. PayPal is also the one gateway you enter credentials for. That is deliberate: WooCommerce PayPal Payments keeps its old credentials in a previous option key when a merchant reconnects, and an adapter that guessed wrong would reconcile a month against a PayPal account the store no longer uses, with every total looking entirely reasonable.

What happens if a payout does not balance?

It is parked, never posted, and the screen names the check that failed. A journal entry that imports cleanly but is wrong costs far more than one that is missing, so Payoutproof refuses rather than guesses.

Which accounting software can I import into?

Payoutproof exports two CSV layouts: a manual journal with a single signed Amount column and continuation-row grouping, which is the format most accounting packages accept on import, and an audit CSV with explicit Debit and Credit columns.

My payouts are manual rather than automatic. Does that work?

Yes, and it is handled properly. A manual payout is an arbitrary withdrawal from your balance, so Stripe cannot tell you which transactions are in it — there genuinely is no such set. Payoutproof books it as a transfer against a clearing account and journals the period's sales, fees and refunds separately. What remains in clearing is the money still held by your processor, which you can check against Stripe's own balance.

Will it work on a store whose orders are already damaged?

Usually, yes. Orders created through pay-for-order links, the admin screen, or some express checkout paths never receive their Stripe payment intent ID. Payoutproof matches through Stripe's own order metadata first, which survives when the order's own link does not, and it can repair those links as a separate step.

Is my payment data sent anywhere?

No. Payoutproof runs entirely inside your WordPress installation and talks only to your payment provider. There is no third-party service in the path, and no copy of your credentials is stored — the key is read from your gateway at the moment it is needed.

Read first

The reconciliation guide

Thirteen pages on what Payoutproof posts and why — the three states a payout can be in, the two-journal model behind manual payouts, the control that proves your books against your processor's own balance, and how each kind of money maps to your chart of accounts. Every figure in it is real output from a live test account, not a mock-up.

Download the PDF

13 pages · Letter · 492 KB · no email required

The guide open at its cover and at the chapter explaining the three states a payout can be in

Stop rebuilding the payout in a spreadsheet

Install it, open WooCommerce → Payoutproof, and look at last month. Your three most recent payouts reconcile on the free plan — no card, no time limit — which is enough to see whether the deposit ties to the cent before you decide anything. If it does not tie, you will know in a minute rather than an afternoon, and it will name which of the three checks failed.

Start a free 14-day trial Ask a question first