Skip to main content

How automatic accounting works

SKU.io's accounting isn't a place you post journal entries — it's a ledger that writes itself from the operational documents you already create. This page explains the model so the numbers make sense when you read them.

Double-entry, always balanced

Every accounting entry has at least two lines, and its debits always equal its credits. When you fulfill a sale, SKU.io debits Cost of Goods Sold and credits Inventory Control for the cost of what shipped — the value simply moves from one account to another. Because every entry balances, your whole ledger balances, which is why the Balance Sheet's assets always equal its liabilities plus equity.

Entries are generated from documents

You don't create accounting entries; your operations do. Each kind of document posts its own entry:

When you…SKU.io posts
Invoice a sales orderAccounts Receivable (debit), Sales and Sales Tax (credit)
Fulfill a sales orderCost of Goods Sold (debit), Inventory Control (credit)
Receive stock on a POInventory Control (debit), Accrued Purchases (credit)
Record a supplier billAccrued Purchases (debit), Accounts Payable (credit)
Adjust or write off stockthe adjustment's expense (debit), Inventory Control (credit)
Build with a manufacturing orderWork In Process and finished goods, with labor and overhead

A generation worker picks up new and changed documents within about a minute, and a daily sweep backfills anything missed. You turn generation on once, under Accounting → Settings → Generation, after choosing your chart of accounts.

History is never rewritten

If a document changes after its entry has posted — an order is edited, a return comes back — SKU.io doesn't quietly alter the old entry. It posts a correcting entry instead, so your ledger is an append-only record you can audit. A deleted document's entry is reversed, not erased.

The chart of accounts

Every line points at an account (a nominal code) — Sales, Cost of Goods Sold, Inventory Control, Accounts Receivable, and more. SKU.io maps each kind of posting to an account through a set of posting roles, so you can steer, for example, all sales revenue to one account and shipping revenue to another. SKU.io seeds a sensible default chart you can keep or rename. See the chart of accounts reference.

Batching and provider sync

To keep the ledger tidy, high-volume postings like fulfillments can be batched into periodic summary entries instead of one entry per document. And every entry can sync to an external accounting system — when no provider is connected, entries show a Blocked sync status, which just means "kept in SKU.io only," not an error.

Next steps

Last verified: