How it works
The daily rhythm. From PO to invoice.
Five steps between a customer PO landing in your inbox and an accurate invoice hitting your accounts package. Keystone is the layer that connects them, built for catch-weight food production where 100kg ordered never leaves the factory as exactly 100kg.
01
PO arrives, Sales Order Entry
Office staff open the Sales Order Entry page and type the PO in. Customer SKU codes autocomplete against their catalogue, Keystone remembers every customer's specific SKU ↔ your product ↔ your brand packaging mapping. Enter the retailer's code, the internal product and pack format resolve automatically.
02
Weekly production pipeline
Every open order lands in the same window, grouped by production week and make-day, so ops can see what has to leave the door on Tuesday, Wednesday, Thursday at a glance. One view. Every order. No juggling three spreadsheets.
03
Actual production, the catch-weight reality
Ops fill in the real batch codes, weights, units and cases against each order. A 100kg PO becomes 108kg actual because variable-weight product never hits exact numbers. A 24-case order might ship as 23 + 1 short. Keystone captures every gram, every unit, every batch, this is your traceability spine.
04
Dispatch, retailer-ready documents
One click generates the retailer-specific dispatch note, GS1-128 pallet label and COA. Tesco format for Tesco. Aldi format for Aldi. SuperValu, Musgrave, Rewe, Biedronka, Auchan, every customer's template lives inside Keystone. No copying into Word, no format-mismatch depot rejections.
05
Invoice to accounts, at the quantity each customer trades on
Pushed to AccountsIQ / Xero / Sage / QuickBooks over API. Fixed-price retail SKUs invoice at the PO quantity within agreed tolerance, an off-PO invoice triggers short-pays and query queues at the retailer's AP. Per-kg customers invoice at the actual catch weight dispatched. Keystone applies each customer's mode automatically; on PO-priced lines the weight variance stays recorded and reportable in the operations layer.
The differentiator
One workflow, mode-aware invoicing, the answer to the catch-weight problem.
How you invoice a weight difference depends on how the customer trades. Per-kg trade, wholesalers, foodservice, export buyers paying by weight, is invoiced at the actual catch weight: 108kg dispatched, 108kg billed. Fixed-price SKU supply to retail multiples is invoiced at the PO quantity within tolerance, because the retailer's AP matches invoices against the PO and off-PO invoices trigger short-pays. Keystone's operations layer records reality in both modes, every gram of the 108kg, your BRCGS §3.9 and §5.4 evidence, while the invoice follows each customer's trading terms. One workflow, two documents, kept aligned automatically over API.
FAQs
Frequently asked.
Why doesn't my invoice match my delivery weight?
It depends on how that customer trades. For fixed-price SKU supply to retail multiples, the invoice carries the PO quantity within an agreed tolerance, an off-PO invoice triggers short-pays and AP query queues, so matching the PO is what gets you paid on time. For per-kg trade, the invoice carries the actual catch weight recorded at dispatch. Keystone knows which mode each customer is on and raises the right invoice automatically, while the operations ledger records the actual weights and batches in both cases.
What is catch weight invoicing?
Catch weight is the actual weight of a variable-weight product recorded at dispatch, a wheel of cheese, a meat primal, a box of fish. Catch weight invoicing bills the customer for that actual weight, and it's the standard for per-kg trade. Keystone captures catch weights per batch at dispatch and invoices per-kg customers at actual weight; fixed-price retail SKUs are invoiced at PO quantity instead, with the weight variance recorded and reportable.
How do I invoice when I dispatched more than the PO quantity?
Check the customer's trading terms, Keystone applies them automatically. Per-kg customer: invoice the actual dispatched weight, e.g. 108kg. Fixed-price PO from a retail multiple: invoice the 100kg PO quantity within the agreed tolerance, with the +8kg variance recorded as a first-class number in the operations layer, reportable, filterable and visible in your margin numbers, never silently lost.
Do I lose traceability if the invoice doesn't show the real weight?
No, the opposite. Traceability lives in Keystone's operations layer, which records every gram, unit and batch you actually dispatched. That is your BRCGS §5.4 / EU food safety evidence. The invoice is a commercial document that follows the customer's trading terms; the trace evidence is operational. Keeping the two aligned but separate is standard practice, Keystone just automates it.
Which accounting packages does this work with?
AccountsIQ out of the box, with Xero, Sage and QuickBooks available as scoped integrations. Invoices go across the API at the quantity each customer trades on, no CSV exports, no manual re-keying, no Monday-morning reconciliation spreadsheet.