One order, followed all the way through
Eight stages, from the message a customer types to the report you read that evening. You appear in exactly one of them — and it is the one where money changes hands.
- 01
A message arrives
A customer messages your shop's WhatsApp number the way they always have. Nothing about their habit changes.
How messages are understood- Every message is recorded with its WhatsApp id — that id is what stops one retried delivery becoming three identical orders.
- STOP and START are honoured before anything else runs.
- A message from your own number is a command, not an order, and never creates a customer record for you.
- A pure acknowledgement — “ok”, “thanks”, a thumbs-up — gets a read receipt and nothing else.
Every word must be an acknowledgement
“ok 2kg” is still an order. “thanks, when is delivery?” is still a question. Only a message that is entirely acknowledgement is answered with silence.
- 02
It is read against your catalogue
One classification call turns free text into a label. Everything after that is your data and your rules.
- Products, aliases, quantities and units are matched against what you actually stock.
- A line that cannot be resolved becomes a question, never a guess.
- Text that was never a product line — a name, a unit number, “after 6pm” — is kept as a note on the order.
- Pleasantries are neither. They are not saved and not echoed.
The model labels. Code decides.
It never chooses a price, never decides whether to append to an open order, never computes a total. A mislabelled message produces the wrong kind of reply — never a wrong amount of money.
- 03
The customer confirms
Until they tap Confirm, nothing is committed. That tap does three things at once, all or nothing.
The order lifecycle- Reserves stock, decrementing each product atomically.
- Freezes every price, so a change tomorrow cannot restate today.
- Starts the payment deadline — normally 24 hours.
- If a line has gone short in the meantime, the whole confirm rolls back and the customer is told which lines are short and how much is left.
Naming the shortfall is the point
A customer told only that something failed can give up. One told “1 tin left” reduces the quantity and completes the order. On the pilot that difference turned two failed confirms into a completed order the next day.
- 04
Payment is requested and the receipt is checked
Your QR and bank details go out immediately, with the amount, the reference and the deadline.
How receipts are verified- Reminders go out before the deadline, inside your shop's quiet hours.
- An unpaid order expires and its stock goes back — but never while a receipt is sitting on it undecided.
- An arriving receipt is downloaded, hashed and stored privately, then read.
- Six deterministic checks run in a fixed order: duplicate image, duplicate reference, currency, date, amount, recipient account. The first failure wins and names itself.
Reading is AI. Judging is not.
A vision model reads the amount and reference off the image. The six checks that decide what to do about it are ordinary rules with no model involved.
- 05
You approve the money
The single decision the software will not make for you, on any plan, with any confidence score.
Approving payments- Approve, Reject or record a Partial — from the WhatsApp card or the dashboard queue.
- Both doors run the same code, so neither can skip a guard the other applies.
- A rejected receipt locks the order until a fresh one arrives, so it cannot be approved later by accident.
- Every decision writes an audit record that is only ever created, never updated or deleted.
- 06
The invoice issues itself
The moment you approve, a numbered PDF is issued and delivered over WhatsApp.
Invoices- The number is reserved inside the same transaction that marks the order paid, so a failure cannot leave a gap in the sequence.
- The PDF renders after that has safely committed — a renderer crash can never un-approve a payment.
- It is built only from the frozen order snapshot, so rebuilding a six-month-old invoice cannot pull in today's prices or address.
- A part-payment that leaves a balance issues nothing.
- 07
It goes out the door
PACK, SHIP, DELIVERED — typed with one hand while loading, or tapped in the dashboard.
The fulfilment pipeline- Forward only, and the refusal names the status the order is actually in.
- Skipping a stage is legal and sends one message about where the order actually reached.
- A skipped stage leaves its timestamp empty, because empty is the record that it was skipped.
- Printable packing lists and run sheets show everything outstanding, not just today.
- 08
The evening report
One message after 8pm: what sold, what is owed, what needs you, what is running low.
The daily summary- A quiet day still gets a summary saying so — a report that goes silent on bad days is one you stop trusting.
- The day is only marked as reported after the message actually went out, so a failure retries.
- Low stock reads one rule, shared by the dashboard, the catalogue and this summary.
Design rules
Four decisions that shape everything above
These are not settings. They are the reasons the rest of it behaves the way it does.
The owner always approves the money
No confidence score unlocks it and no setting disables it. Verification exists to make your decision fast and informed, not to make it for you.
The model never supplies a value
It classifies and labels. Every price, quantity, total and date a customer sees was read from your database.
Snapshots, not live lookups
A line stores the price shown, an order stores its currency, an invoice stores its own contents. Changing a setting can never restate history.
Your shop's clock, not ours
Every deadline, reminder, summary and date is rendered in your shop's own time zone — including half-hour offsets.
Try it against your own price list
Onboarding is hands-on by design. Tell us about the shop and we will walk you through provisioning a number and loading your catalogue.

