Invoice Review and Approval
AI extracts invoice data, validates it against the purchase order and goods receipt, flags any discrepancies, and prepares a structured approval package. The finance manager reviews and approves.
Every supplier invoice that arrives in a finance department needs to be checked before it can be approved for payment. The check exists to catch errors, prevent duplicate payments, and ensure the company only pays for what was actually ordered and received. In practice, this means comparing the invoice against the original purchase order and the goods receipt, and investigating any differences before the invoice moves to an approver.
In most finance teams this is done manually. A clerk reads the invoice, enters the data into the accounting system, opens the purchase order in a separate screen, opens the goods receipt in another, and works through a comparison line by line. If something does not match, they contact the purchasing or receiving department to investigate. If the supplier needs to correct something, they send a request and wait. A straightforward invoice takes thirty minutes to an hour; anything with discrepancies takes longer.
This workflow uses AI to handle the extraction, validation, and comparison steps automatically. The AI reads the invoice the moment it arrives, runs all checks against the purchase order and goods receipt, flags issues with a recommended action, and prepares an approval package. The finance manager sees a structured summary and makes a single decision. The mechanical checking work is removed; the judgment stays with the person.
Theoretical estimates based on a finance team processing 150 supplier invoices per month. The manual baseline assumes 30–60 minutes per invoice for data entry, line-by-line comparison against the purchase order and goods receipt, and routing the approval package by hand.
The AI handles extraction, validation, and all comparison checks in seconds. The finance manager's remaining task is a two-minute review of the AI's structured summary — green ticks for passed checks, flagged items for anything that needs attention. At 150 invoices per month, that is approximately 65 hours of clerk and manager time returned to higher-value work each month. Invoices with discrepancies still require human investigation, but the AI's description of each issue means the manager starts from a complete picture rather than having to find the problem themselves.
In the manual process, invoices arrive by email, supplier portal, or post and are logged into the accounting system by hand. A finance clerk is assigned the invoice and begins by reading it in full — checking that all required fields are present, that the amounts look plausible, and that the supplier details match records on file.
The clerk then opens the corresponding purchase order and compares the invoice line by line: quantities, unit prices, totals, tax, and delivery terms. They repeat the comparison against the goods receipt to confirm that what was invoiced was actually received. Any mismatch requires the clerk to contact the purchasing or receiving department for clarification. If the issue cannot be resolved internally, a correction request goes back to the supplier and the process waits.
Once the checks are complete, the clerk prepares an approval package by hand and routes it to the appropriate approver based on invoice amount and department rules. The approver reviews, decides, and records the outcome. The entire sequence, from invoice arrival to approved status, often takes two to five days for a clean invoice and longer when back-and-forth with suppliers or departments is needed.
In the AI-assisted workflow, the moment an invoice arrives it is captured automatically and passed to the AI. The AI reads the document, extracts all structured data — supplier, invoice number, line items, quantities, unit prices, totals, tax, payment terms — and validates that all required fields are present and correctly formatted. This takes seconds regardless of the invoice format or layout.
The AI then runs the comparison checks automatically. It retrieves the corresponding purchase order and goods receipt from the accounting system and checks the invoice line by line against both. If a discrepancy is found — a price that does not match the PO, a quantity that exceeds the goods receipt, a line item not on the original order — the AI flags it immediately with a description of the issue and a recommended next action.
If the checks pass, the AI prepares a structured approval package: extracted data, check results, and the recommended approval path based on invoice amount and department. The finance manager opens a review screen that shows everything in one place. For a clean invoice, the review takes two to three minutes. For flagged invoices, the manager sees exactly what was flagged and why, without needing to repeat any of the checking work themselves.
After approval, the invoice status is updated automatically with a full audit trail — every check performed, every flag raised, every decision recorded — without any manual entry.
The diagram shows the agent's step-by-step checking logic. Blue nodes are automated AI steps that run without any human input. The purple node is the single human-in-the-loop decision point where the finance user chooses to approve the invoice, request a correction, or trigger a re-check after uploading a revised version.
flowchart TD
START([START]) --> load_invoice
load_invoice["**load_invoice**\nFetch invoice, order and pricing list\nfrom Django API"] --> extract_and_validate
extract_and_validate["**extract_and_validate**\nValidate required fields,\nformats and header values"] --> check_against_order
check_against_order["**check_against_order**\nCompare invoice lines\nagainst PO / goods receipt"] --> check_against_pricing
check_against_pricing["**check_against_pricing**\nCompare unit prices\nagainst customer pricing list"] --> summarize_check
summarize_check["**summarize_check**\nGenerate markdown summary of findings\npersist InvoiceCheck to Django"] --> await_user_decision
await_user_decision{{"**await_user_decision**\n⏸ HITL interrupt\nApprove / Request correction / Re-check"}}
await_user_decision -->|approve| send_for_approval
await_user_decision -->|correct| mark_for_correction
await_user_decision -->|recheck| load_invoice
send_for_approval["**send_for_approval**\nMark invoice approved\nvia Django API"] --> END_A([END])
mark_for_correction["**mark_for_correction**\nMark invoice needs_correction\nEmployee uploads corrected invoice"] --> END_B([END])
style await_user_decision fill:#f0e6ff,stroke:#7c3aed,color:#000
style load_invoice fill:#e0f2fe,stroke:#0369a1,color:#000
style extract_and_validate fill:#e0f2fe,stroke:#0369a1,color:#000
style check_against_order fill:#e0f2fe,stroke:#0369a1,color:#000
style check_against_pricing fill:#e0f2fe,stroke:#0369a1,color:#000
style summarize_check fill:#e0f2fe,stroke:#0369a1,color:#000
style send_for_approval fill:#dcfce7,stroke:#16a34a,color:#000
style mark_for_correction fill:#fff7ed,stroke:#c2410c,color:#000
The final result is an approval process where the finance manager's job is reduced to a single focused review. They open the approval screen, see the extracted invoice data alongside the check results — green for passed, flagged for issues — and make a decision. There is no switching between screens, no re-entering data, and no manual comparison work.
Clean invoices move through the AI checks in under a minute and arrive at the approver's queue fully verified. The approver reads the summary, confirms it looks correct, and approves. The whole interaction takes two to three minutes.
Invoices with discrepancies are handled differently. The AI flags each issue with a plain description — for example, "quantity on invoice (50) does not match goods receipt (45)" — and a recommended action. The approver decides whether to route to the relevant department for investigation or to send a correction request to the supplier. The AI handles the notification automatically.
At the end of each day, the finance manager can see how many invoices were processed, how many were clean, how many had discrepancies, and what the average review time was — without anyone compiling a report by hand.