As a food producer selling products online via subscriptions, you need to track multiple moving parts: customer payments, Stripe payouts, actual deliveries, and platform fees. These don't always happen at the same time, which can make reconciliation challenging. This guide shows you how to use a simple double-entry accounting system to keep everything organized and balanced.
Why This System Works
Traditional accounting often tries to match payments 1:1 with sales, but with subscription-based sales and delayed payouts, this rarely works cleanly. Customer payments happen immediately, Stripe payouts occur 3-7 days later, and deliveries might happen on different schedules entirely. This system separates these events so you can track them independently while maintaining overall balance.
After the initial set up and familiarisation, it should be possible to keep your accounts up to date with about 60 minutes of work once a week. While the examples below demonstrate an individual purchase, it's not necessary to track every individual sale or payment. It's equally accurate and much faster to focus on weekly aggregated sales and payments.
Setting Up Your Accounts
Create these five accounts in your spreadsheet or accounting software.
Assets (Money Coming In)
Stripe Account: Money owed to you by Stripe (but not yet paid out)
Bank Account: Money actually in your bank account
Liabilities & Revenue (Money Going Out/Earned)
Customer Balance: Credit you owe customers on their accounts
Sales: Revenue from actual deliveries to customers
Platform Fees: Costs for Stripe processing + Ooooby fees
This article is intended to give you a mental model of what is happening. Setting up this model in your specific accounting software is beyond the scope of this article, and may require assistance from your accountant.
How to Record Transactions
When a Customer Makes a Payment
Example: Customer pays £50 for their weekly veg box and extras
Stripe Account | Bank Account | Customer Balance | Sales | Platform Fees | Notes |
+£48.20 |
| +£50.00 |
| -£1.80 | Initial payment |
£48.20 | £0.00 | £50.00 | £0.00 | -£1.80 | Total |
What's happening:
Stripe owes you £48.20 (after the platform fee)
Customer has £50 credit on their account
Platform fees total £1.80
Where to verify:
The two income columns in the report should match your Customer Balance increase in your accounts. This is the total your customers paid this week.
The Balance column in the report should match your Customer Balance total in your accounts. This is effectively how much you owe your customers.
Stripe Dashboard - Transactions
A payment in Stripe should have a matching transaction in a customer account.
Stripe payments are different from Stripe payouts. A payment is when a customer makes a payment to Stripe. A payout is when Stripe transfers your money (less platform fees) to your bank account after the payout delay period.
When You Deliver Products
Example: You deliver a £50 veg box and extras to the customer
Stripe Account | Bank Account | Customer Balance | Sales | Platform Fees | Notes |
+£48.20 |
| +£50.00 |
| -£1.80 | Initial payment |
|
| -£50.00 | +£50.00 |
| Sale |
£48.20 | £0.00 | £0.00 | £50.00 | -£1.80 | Total |
What's happening:
Customer's credit balance decreases by £50
You record £50 in sales revenue
Where to verify:
Sales column. This is the total sales for the week, and will have been deducted off the Customer Balance column.
A detailed breakdown of the sales for the week.
To keep these examples simple, we do not mention any taxes such as VAT. In the Ooooby system, VAT on sales can be viewed in the Sales Details report. It should be noted that payments don't always map directly to sales, so any VAT figures should be calculated from the sales report and not incoming payments.
When Stripe Pays Out
Example: Stripe transfers £48.20 to your bank (potentially covering multiple customer payments)
Stripe Account | Bank Account | Customer Balance | Sales | Platform Fees | Notes |
+£48.20 |
| +£50.00 |
| -£1.80 | Initial payment |
|
| -£50.00 | +£50.00 |
| Sale |
-£48.20 | +£48.20 |
|
|
| Stripe payout |
£0.00 | £48.20 | £0.00 | £50.00 | -£1.80 | Total |
What's happening:
Money moves from "owed by Stripe" to your actual bank account
No change to customer balances or sales (those were recorded earlier)
Where to verify:
Stripe Dashboard - Payouts
Your bank account
Monthly Ooooby Fees
Example: £5 monthly platform fee is deducted (if applicable to your plan)
Stripe Account | Bank Account | Customer Balance | Sales | Platform Fees | Notes |
+£48.20 |
| +£50.00 |
| -£1.80 | Initial payment |
|
| -£50.00 | +£50.00 |
| Sale |
-£48.20 | +£48.20 |
|
|
| Stripe payout |
| -£5.00 |
|
| -£5.00 | Monthly fee |
£0.00 | £43.20 | £0.00 | £50.00 | -£6.80 | Total |
Verifying Your Records
⭐️ The key rule: Your totals must always balance. Assets (Stripe + Bank) must equal Liabilities + Revenue (Customer Balance + Sales + Platform Fees).
Regular Reconciliation Checks
After reconciliation, the following figures should match exactly;
Stripe Account total
Should match the pending payouts in your Stripe dashboard
Bank Account total
Should match your actual bank balance
Customer balance total
Should match the Balance column in the Weekly Finance Summary report
Sales weekly value
Should match the corresponding week in the Weekly Finance Summary or Sales Report
Platform Fees monthly sum
Should match the monthly invoice you receive from Ooooby
Should match the sum of the "Collected Fee" from your Stripe reports
Common Scenarios
Subscription Customers
For weekly/monthly subscriptions, you'll see:
Large customer payments at the start of billing cycles
Regular smaller sales entries as you deliver each week/month
Customer balances that decrease with each delivery
Refunds or Credits
If you need to refund a customer:
Reduce their Customer Balance (negative entry)
Reduce the Stripe Account balance if issuing a card refund
Troubleshooting
If your accounts don't balance:
Check for missing entries (payments without corresponding sales, or vice versa)
Verify platform fee calculations
Look for timing differences in Stripe payouts
Double-check refund or credit entries
Remember: It's normal for individual transactions not to match 1:1 between columns. The important thing is that your overall totals balance.
This system gives you complete visibility into your Ooooby sales while keeping your accounting clean and verifiable against multiple sources.