Database requirement: this plugin stores money in its own tables and relies
on transactions to keep a payment and the invoices it settles consistent with
each other. Those tables must use InnoDB, which is the default on every MySQL
since 5.5 and every MariaDB. On a server configured to default to MyISAM the
tables are created without transaction support and a failure part-way through
recording a payment could leave the entry saved and its allocation missing.
If your store ships before it gets paid, WooCommerce alone cannot tell you what you are owed. An order marked Processing means the goods went out, not that the money came in, and the gap between the two is where a spreadsheet usually appears.
This plugin closes that gap. It watches orders placed through the payment methods you nominate — bank transfer, cheque, cash on delivery, purchase order, anything that defers payment — and records each one as a charge against that customer. When money arrives, you record it, and the balance moves.
What it does
What happens when an order changes
An order is not a fixed document, and the ledger follows what actually happened to it rather than what it looked like on the day it was placed.
Built for real money
Amounts are stored and calculated as exact whole units of your currency rather than as decimal fractions, so a balance never drifts by a fraction of a penny and a fully paid charge closes at exactly zero. Your currency’s decimal places are respected throughout, including currencies with none such as the Japanese yen and currencies with three such as the Kuwaiti dinar. An amount typed with more precision than your currency allows is reported back to you rather than quietly rounded.
Works with what you already run
Requires WooCommerce. Compatible with High-Performance Order Storage, and every order lookup goes through the WooCommerce API rather than direct database access. Any customer role can be treated as a B2B account, including roles created by other B2B plugins, and an optional filter restricts tracking to the roles you nominate.
Your data stays in your database. The plugin makes no external requests of any kind.
A paid add-on, Kascado Accounts Receivable Pro, adds aging reports, automated payment reminders, credit limits and a customer-facing balance page.