Keystone
by CloudVoro
How it works

The daily rhythm.
From PO to invoice.

Five steps between the retailer PO and the accurate invoice. Built for catch-weight food where 100 kg ordered never leaves the factory as exactly 100 kg.

How it works, from PO to invoice

Five steps. Monday morning to Friday invoice.

The daily rhythm of a food manufacturer, PO in the door, produced on the floor, dispatched to the retailer, invoiced through your accounts. Keystone is the layer that connects those five moments without spreadsheets in between.

01
PO arrives
Staff open the Sales Order Entry page and type the PO in. Customer, delivery date, lines.
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 pipeline
Every open order lands in the same window, grouped by production week.
One view. Every order. Grouped by production make-day so ops can see what has to leave the door on Tuesday, Wednesday, Thursday at a glance. No juggling three spreadsheets.
03
Actual production
Ops fill in the real batch codes, weights, units and cases against each order.
This is where reality lives. A 100kg PO becomes 108kg actual because cheese cuts don't hit 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
One click generates the retailer-specific dispatch note, GS1-128 pallet label and COA.
Tesco format for Tesco. Aldi format for Aldi. SuperValu format for 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
Pushed to AccountsIQ / Xero / Sage / QuickBooks via API, at the quantity each customer trades on.
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.
Why this matters
You dispatched 108kg. What should the invoice say?
Depends on the deal. Fixed-price retail SKU: the 100kg PO quantity, within tolerance, so the retailer's AP matches and pays without a query. Per-kg trade: the actual 108kg catch weight. Keystone knows each customer's mode and raises the right invoice, and the operations layer keeps the real weights and batches either way.
The differentiator

Why food producers need an operations layer that records more than the invoice shows.

A 100 kg cheese PO ships as 104 kg, 108 kg or 96 kg. Not sloppy, that’s variable-weight food. The industry calls the actual weight catch weight. Handling it properly is where generic ERPs fail.

Two invoicing modes, both standard. Per-kg trade (wholesale, foodservice, export): invoice the actual catch weight. Fixed-price retail SKUs: invoice the PO quantity within tolerance, the retailer’s AP matches on PO. Get it wrong and either your traceability breaks or the retailer short-pays every invoice.

Keystone: one workflow, mode-aware invoicing.Operations layer records the real 108 kg, your traceability spine. The invoice, pushed to AccountsIQ / Xero / Sage over API, follows each customer’s terms: PO quantity for retail SKUs, catch weight for per-kg. The 8 kg variance stays a first-class number, filterable, reportable, visible in margin.

Catch-weight FAQs

The questions producers actually ask.

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.

Compliance & trust

How we keep your
data and your audits safe.

Enterprise-grade controls as standard, encryption, MFA for every user, tenant isolation and immutable audit trails, on EU cloud or your own servers. Privacy queries go to privacy@cloudvoro.com. Sub-processor list at /legal/sub-processors. Full security posture at /site/security.

Live
Hosted in EU / Ireland, or on-premise
Customer data resides on AWS Ireland (eu-west-1) and never leaves the EU. Local on-premise deployment available where policy requires it.
Live
GDPR · Privacy Contact named
Internal Data Protection Lead handles subject access requests. Owner is ADPO Ireland member.
Live
MFA for every user
TOTP multi-factor authentication across all roles, with rate limiting, brute-force lockout and reCAPTCHA bot protection on public forms.
Live
ISO 27001 · aligned controls
Security controls mapped to the ISO/IEC 27001:2022 Annex A framework, access management, encryption, logging, incident response.
Live
NIS2 · supporting evidence
Tenant isolation, MFA and immutable audit trails give customers in NIS2 scope direct supporting evidence for their obligations.
Live
Encryption · at rest & in transit
TLS 1.3 in transit, industry-standard symmetric ciphers at rest, KMS-managed keys.