Skip to content
Keklik Technologies

Service

Document intake and extraction

Invoices and forms turned into checked records, with uncertain fields sent to a person.

Document extraction demos well. Ten clean invoices from one supplier come out perfectly. The trouble starts with a scanned fax, a credit note that looks like an invoice, or a supplier who changed their template in March.

We build for those cases. Every field has a confidence score, totals are checked against line items, and anything below the threshold goes to a review queue with the document open beside it. The aim is that nothing wrong reaches your ledger without someone seeing it.

Inputs
PDF · Scans · Images · Email attachments
Document types
Invoices · Purchase orders · Delivery notes · Forms · Statements
Extraction
Header fields plus line items
Validation
Arithmetic, supplier, VAT and duplicate checks
Confidence
Score per field, with a routing threshold
Human review
Queue with document and field side by side
Destinations
Accounting system · ERP · Database · Sheet
Evaluation
Test set re-run on every prompt or model change
Audit
Source document kept and linked to every record
Specifications

How it runs

The stages of a typical document intake setup. Yours may skip some or add others.

  1. Intake

    Documents arrive by mailbox, watched folder or upload, and the original is stored unchanged before processing starts.

  2. Classify

    The document type is identified first. An invoice and a credit note need different rules.

  3. Extract

    Header fields and line items are pulled into a schema, each with a confidence score.

  4. Validate

    Line items must add up to the total, tax must reconcile, and the supplier must exist. A failed check sends the document to review.

  5. Review

    Anything below the threshold is queued for a person, with the document and the extracted field side by side.

  6. Post

    Approved records are written to your system with the source document linked. A retry can't post the same record twice.

Example output

An example of the format. We agree the exact fields with you before building anything.

Extraction output, abbreviatedjson
{
  "document_id": "doc_01HQ8F3M",
  "type": "invoice",
  "type_confidence": 0.99,
  "supplier": { "name": "…", "matched_id": "SUP-2041", "confidence": 0.96 },
  "invoice_number": { "value": "INV-88412", "confidence": 0.98 },
  "issue_date":    { "value": "2026-02-28", "confidence": 0.97 },
  "currency": "EUR",
  "line_items": [
    { "description": "…", "qty": 12, "unit": 41.5, "net": 498.0, "confidence": 0.94 },
    { "description": "…", "qty": 3,  "unit": 88.0, "net": 264.0, "confidence": 0.72 }
  ],
  "totals": { "net": 762.0, "tax": 160.02, "gross": 922.02 },
  "checks": { "line_sum_matches_total": true, "tax_reconciles": true,
              "duplicate_of": null },
  "routing": { "decision": "review", "reason": "line_item_confidence_below_0.85" }
}

In detail

Checks that run before anything posts

10
  • Line items sum to the stated net
  • Tax reconciles at the stated rate
  • Gross equals net plus tax
  • Supplier matches a known record
  • Invoice number not already processed
  • Purchase order exists and is open
  • Quantities within tolerance of the delivery note
  • Currency matches the supplier's agreement
  • Date within an acceptable window
  • Bank details unchanged since the last invoice

What you get

This list goes into the scope document, and we check the finished work against it.

  • 1Intake from email, a watched folder or upload
  • 2Extraction to your field schema, with confidence per field
  • 3Checks on totals, tax, duplicates and supplier match
  • 4Review queue for anything under the threshold
  • 5Records written into your accounting system or database
  • 6Test set built from your own documents

Questions

What accuracy can you commit to?

The accuracy we test on your documents. Before launch we build a test set from your own inputs and report the result. A figure quoted before anyone has seen your documents means nothing.

What happens to documents the system is unsure about?

They go to a review queue with the doubtful fields marked. The system is built so that a wrong value never posts without a person seeing it.

Can it write into our accounting system?

Where the system has an API, yes, and a retry can't double-post. Where it doesn't, we deliver a file in the format it imports.

Do you keep the original documents?

Every record links to its source document, so you can show an auditor where each figure came from.

Start with a scope

We write a short document first: what gets built, what it needs from you and what it costs. You decide whether to go ahead after reading it.