Invoice Extractor
Vendor invoice pre-processing: structured field extraction, 3-way matching invoice ↔ purchase order ↔ delivery note, fraud detection (FOVI / duplicate / typosquat / invalid VAT). Auto-approval only on perfect match. The agent NEVER triggers a payment — it routes to human approval.
For a mid-market company processing 25,000 invoices/year: 1.5 to 2.5 FTE accounts-payable recovered (3-5 min per invoice today → 30 s when auto). And — more importantly — near-100 % FOVI detection (one successful wire fraud costs €50-500k).
Mid-market accounts payable is a five-figure repetitive faucet.
Saisie manuelle + workflow
Yooz / Esker / Basware : la facture passe par leur cloud
- · 5 à 15 personnes y passent 60-80 % de leur temps
- · Rapprochement reste manuel ou règles-simples
- · Détection FOVI dépend de la vigilance humaine
- · Factures, IBAN, contrats partent dans un cloud non FR
Pré-traitement automatique
Sur l'appliance LMbox, l'agent ne paie jamais
- › Rapprochement à 3 sources : facture ↔ BC (ERP) ↔ BL (WMS)
- › IBAN jamais en clair : empreinte SHA-256 tronquée
-
›
Dérive d'IBAN →
hold_for_investigation, jamais validation simple - › Texte contenant « ignore previous instructions » → blocage
Four steps, from incoming document to human decision.
-
1
Structured extraction
The OCR pre-processor (Tesseract, Azure Document Intelligence, or qwen2.5-vl on the connector side) extracts the text. The agent fills `extracted_fields`: vendor, amounts, lines, VAT, and a truncated SHA-256 of the IBAN — never the IBAN in clear. Unreadable or empty text → `hold_for_investigation`, no guessing.
-
2
3-way matching ERP + WMS
`lookup_purchase_order` queries the ERP (SAP, Cegid, Sage, Pennylane, Odoo), `lookup_delivery_note` queries the WMS. Field-by-field comparison: HT total, currency, quantities, lines. Every `po_id` and `delivery_note_id` in the output is cryptographically bound to a tool call this turn (Layer D grounding) — no PO invented to plug a gap.
-
3
Fraud detection (FOVI, typosquat, duplicate, prompt injection)
`lookup_vendor_master_data` returns `last_known_iban_fingerprint` and `similar_known_vendors[]`. Any IBAN drift from the last known → `hold_for_investigation` critical, never plain `route_to_approver` (a distracted approver could rubber-stamp it). Vendor name visually close to a known one but different SIREN → typosquat → block. Invoice text containing 'ignore previous instructions' → prompt-injection-attempt → block.
-
4
Routing decision + human escalation
Strict decision tree: auto_approve ONLY if perfect match + known vendor + IBAN unchanged + amount below threshold + valid VAT + no discrepancy ≥ medium + zero safety_flag. Any other combination routes to the appropriate approval queue (accountant, procurement, CFO, CISO) with structured context, calibrated priority, and a ticket_id returned by `escalate_human`.
Tools, connectors, deployment.
Tools (function-calling)
5-
lookup_purchase_order -
lookup_delivery_note -
check_duplicate_invoice -
lookup_vendor_master_data -
escalate_human
Optional connectors
5- finance-erp-po
- finance-wms-delivery
- finance-invoice-history
- finance-vendor-master
- finance-ap-queue
Each connector activates based on the customer's subscription.
$ lmbox agent deploy ./invoice-extractor \
--box BOX-XXX \
--token "$LMBOX_BOX_API_KEY" \
--api https://api.lmbox.eu
LMbox guarantees across the catalogue
Data stays with you
Model and data stay on the customer's LMbox appliance. No patient, contract or invoice data is ever sent to an external cloud.
Audit chain
Every tool call, every agent output is timestamped, hashed and admissible before the regulator (ACPR, ANSM, CNIL, EBA).
Human decision
The agent recommends, the human decides. No auto-signature, no auto-payment: final responsibility stays with the business.
Other catalogue agents
NDA Reviewer
Reads each incoming NDA, identifies non-standard clauses against the firm's internal template library, drafts an amendment memo for the responsible partner.
Meeting Summarizer
Turns a raw meeting transcript (Teams, Zoom, locally-transcribed audio) into a structured CR: decisions made, action items with owner and deadline, open questions.
Try Invoice Extractor on the public demo.
One-click sign-in. You see the agent installed on a real LMbox, with its system prompt loaded and audit chain live.