LMbox
← All agents
Banking · Insurance pilot v0.1.0

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.

Measured gain
1.5-2.5 ETP
de compta fournisseurs récupérés / FOVI bloqués

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).

The problem

Mid-market accounts payable is a five-figure repetitive faucet.

Today

Manual entry + workflow

Yooz / Esker / Basware: the invoice passes through their cloud

3-5 min / invoice
5-15 FTE accounts payable
50-500 k€ average cost of a successful duplicate invoice
  • · 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
0.5-2% of volume paid twice
With Invoice Extractor

Automated pre-processing

On the LMbox appliance, the agent never pays

30 s / invoice (auto mode)
~100% duplicate invoice detection
1.5-2.5 FTE recovered on 25,000 invoices / year
  • 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
The agent recommends, the human pays
How it works

Four steps, from incoming document to human decision.

  1. 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. 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. 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. 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`.

Architecture

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.

Deployment via the SDK
$ lmbox agent deploy ./invoice-extractor \
    --box BOX-XXX \
    --token "$LMBOX_BOX_API_KEY" \
    --api https://api.lmbox.ai

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.

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.