Review and confirm OCR supplier invoices
OCR intake turns a document or shelf photo into a draft the team can review — it never posts stock or money by itself. A person must confirm the recognised rows before they become evidence. This guide covers the intents, the review step, and the supplier-invoice confirmation flow.
Intents
An OCR intake is created with one intent:
| Intent | What it is for |
|---|---|
SUPPLIER_INVOICE | Recognise products, quantities, and prices from a supplier invoice. |
STOCK_COUNT | Recognise a physical count from a count sheet or shelf label. |
SHELF_PHOTO | Recognise products from a shelf photo for stock visibility. |
Intake status
Every intake has a status: PENDING, CONFIRMED, or REJECTED. Pending intakes need a human decision; confirmed intakes are usable evidence; rejected intakes are discarded with the reason recorded.
Reviewing recognised rows
When an intake is parsed, each row carries:
- the recognised raw text;
- the matched product (when the system can map it to a product);
- quantity, unit price, and total where recognised;
- a confidence score between 0 and 1.
Review rules:
- A low-confidence row is a prompt to check the product and quantity manually — never accept it silently.
- A row that did not match a product must be resolved before confirmation.
- OCR output is not evidence by itself; the confirmed review is what counts.
Confirming a supplier invoice
For SUPPLIER_INVOICE intents there is an explicit review-to-purchase command:
- Open the pending intake and review each recognised row (product, quantity, price, confidence).
- Correct any mismatch and attach the supplier.
- Confirm the intake — this is the explicit "reviewed and accepted" step that turns the draft into a purchase record.
- The intake moves to
CONFIRMED; the purchase is linked to the intake so the planner and ledger can reference it. - Reject instead if the document is wrong, duplicated, or not usable — the reason is recorded.
Confirmation is tenant-scoped and safe to retry: the same confirmation request cannot create a second purchase (idempotent handling), and a confirm command on an already-confirmed intake does not double-post.
Good habits
- Never auto-confirm. The value of OCR is speed, not autonomy — a person reviews every intake before it becomes a purchase.
- Fix before confirm. Correct quantity, price, and product mapping in the review step, not after posting.
- Watch confidence. Treat low-confidence rows as needing the most scrutiny.
- Reject duplicates. A repeated upload of the same supplier invoice should be rejected, not confirmed twice.
Related
- Receive, count, adjust, and transfer stock — the receiving workflow OCR supports.
- Plan the day with the planner queue — OCR-linked work items.
- Review ledger aging and export records — how confirmed purchases feed supplier payables.