Guide
How to create a supplier statement (with running balance)
A supplier statement tells one supplier everything that happened on their account over a period: every bill, credit note and payment, with a running balance that lands on the amount currently owed. This guide shows you how to build one from an accounting export — the same process Statemint automates, so you can do it by hand or skip to the tool.
What a supplier statement needs
Whatever the source, every statement needs these fields per line:
- Supplier — the account the line belongs to
- Date — chronological order is the whole point
- Type — bill, credit note or payment
- Reference — invoice or payment number
- Debit and credit amounts — bills increase the balance, payments and credit notes reduce it
Step 1 — Export the transactions
In Xero: Business → Purchases → Bills and Business → Purchases → Payments, then Export each as CSV. In QuickBooks, run a Vendor or Unpaid Bills report and export it. Keep every column the export gives you — you'll map the ones you need and ignore the rest.
Step 2 — Map the columns
Spreadsheets from different packages name things differently
(Contact vs Vendor, Total vs Amount).
Pick the column that plays each role. If your export has a single
signed amount column, treat positives as debits and negatives as
credits. Watch dates: 05/01/2026 is ambiguous — choose
the export's date format explicitly rather than guessing.
Step 3 — Build the running balance
Sort ascending by date (keep the original order within the same date), then walk the rows:
balancerow = balanceprevious + debit − credit
Use integer cents, never floating point: adding
0.1 ten times in a spreadsheet formula can land on
0.9999999…, and a statement that misses by a cent is a
statement nobody trusts. Finally, assert the identity:
closing balance = opening balance + Σ debits − Σ credits
Here's a worked example:
| Date | Type | Ref | Debit | Credit | Balance |
|---|---|---|---|---|---|
| 2026-07-02 | Bill | INV-1041 | 1,200.00 | 1,200.00 | |
| 2026-07-15 | Payment | BP-331 | 1,200.00 | 0.00 | |
| 2026-07-28 | Bill | INV-1088 | 850.00 | 850.00 |
Closing balance 850.00 = 0 + (1,200 + 850) − 1,200. If your last line doesn't satisfy the identity, a row is missing or mis-signed — fix that before sending.
Step 4 — Print and send
Lay it out as: your firm's name and logo, "Supplier Statement", the supplier's name, the period, the table, and a prominent closing balance. When printing for several suppliers, start each one on a new page and repeat the table header on every page.
Doing it by hand vs. using a tool
A spreadsheet template works, but effort and error risk scale with how many suppliers you rebuild each month — mis-sorted dates and dropped rows are the usual gotchas. Statemint does the same job from the same export: drop the export, confirm the auto-detected columns, pick suppliers, print. Everything runs locally in your browser — your client's data is never uploaded. Preview is free; printing without a watermark is a one-time purchase — $29 early bird, $39 regular.
Further reading
Sources
The running-balance identity above matches the form used in common AP reconciliation templates (opening + invoices − payments ± adjustments) — see Sage’s AP reconciliation guide. Statemint enforces the same identity in integer cents, locally, with no upload / no API / no OCR.
Try it with the built-in sample
No file needed — preview a full statement in your browser.
Open Statemint →