Case study · Payments marketplace

Every dollar that moves through the platform, accounted for.

A payments marketplace collects from customers, pays out to providers and keeps a fee. We built the accounting so each job lands in the books on its own, and Stripe Clearing ends every day at $0.

11payment scenarios mapped to the ledger
$0.00left in Stripe Clearing after every job
Netrevenue booked under ASC 606 agent treatment
Dailyclearing check, with exceptions flagged before close
ClientPayments marketplace (name withheld) StackStripe Connect · Mercury · Puzzle GL API Updated
The problem

Marketplace money moves in pieces.

A customer pays once, Stripe takes a fee, the provider is paid out and the platform keeps the rest. Refunds, disputes and failed payouts arrive days later.

Most books record the bank deposit and stop there. Revenue is overstated, provider money looks like income and the clearing account drifts. Nobody can say what one job actually earned.

Why the usual setup misses it

QuickBooks, Xero and Puzzle all connect to Stripe, and they move the data well. But those connectors were built for a business selling its own products.

They don't know which part of a charge is your fee, that a provider payout settles a liability, or that Stripe Clearing should end at $0. A standard bookkeeping setup books what syncs as-is. That's where marketplace books go wrong, and where we fix them.

Stripe Connect moves the money.
We make sure your books know what it means.

What we built

One set of rules, posted automatically.

01

One rule set for 11 scenarios

SC-01 to SC-11, each with its own balanced journal entry.

Payer billingCustomer billingProvider settlementExceptions & returns
02

Agent treatment under ASC 606

The platform books its fee as revenue, not the full charge. Provider money is a liability until it's paid out.

03

Automated posting

Payment events flow from Stripe and Mercury webhooks into the general ledger through the Puzzle GL API. No copy-paste.

04

A daily clearing check

If Stripe Clearing isn't $0, the exception is flagged for review before close.

One job, start to finish

A $700 job with a 15% platform fee.

Where the money goes

  • Customer charge $700.00
  • Stripe fee −$5.00
  • Provider payout −$595.00
  • Paid to platform bank $100.00
  • Platform fee recognized as revenue $105.00
  • Stripe Clearing after posting $0.00

What posts to the general ledger

AccountDebitCredit
Customer pays by card
Stripe Clearing700.00
Provider Payable595.00
Platform Fee Revenue105.00
Stripe takes its fee
Stripe Processing Fees5.00
Stripe Clearing5.00
Provider is paid out
Provider Payable595.00
Stripe Clearing595.00
Payout lands in the bank
Operating Bank100.00
Stripe Clearing100.00
Totals · Stripe Clearing ends at $0.001,400.001,400.00

The $105 fee is revenue. The $5 Stripe fee is a cost. The $595 never touches the income statement.

Illustrative example from the demo, using sample figures. Not client data.

The result

Books that match how the platform works.

  • Revenue reported net, the way an auditor or investor expects it.
  • Clearing reconciled daily, not discovered at year-end.
  • Refunds, disputes and payout returns booked to the right job automatically.
  • Monthly close reviewed by a person, with the routine posting already done.

See it work

Run sample Stripe Connect events through the same rules and watch each one become a journal entry. Sample data, no client information.

Running payments through Stripe Connect?

Book a discovery call and we'll walk through how your money moves.

Client name and details withheld. Figures on this page are illustrative.