Documentation · Document AI

Fraud detection. A score, with the receipts.

A 0-100 fraud score per document, plus the signals that drove it — tampering, inconsistency, synthetic generation and metadata anomalies. Every finding cites the pixels or bytes that fired.

← Back to documentation

Overview

A document-level risk score plus the evidence that produced it.

  • 0-100 score — calibrated against the labelled samples in your tenant; higher is more suspicious.
  • Per-signal verdicts — each fired signal carries a category, severity and a region-of-interest reference.
  • Synthetic-generation checks — looks for diffusion artifacts and known generator fingerprints, not just copy-paste tampering.
  • Audit-ready — every score links to a trace you can show an auditor or regulator.

Endpoint

POST /v1/fraud/score Sync · ≤50 pages

Request

POST /v1/fraud/score
curl -X POST https://api.cogneris.ai/v1/fraud/score \
  -H "Authorization: Bearer $COGNERIS_KEY" \
  -F "file=@./claim-photo-front.jpg" \
  -F "context=insurance_claim" \
  -F "signals=all"

Parameters

  • file or source.url — image, scan or PDF.
  • context — hints the calibration: invoice, kyc, insurance_claim, payslip, generic.
  • signalsall (default), or a comma-separated subset like tampering,metadata.
  • linked_documents — array of prior document IDs to cross-check (e.g. invoice ↔ purchase order).

Response

200 OK
{
  "data": {
    "score":    72,
    "verdict":  "review",
    "findings": [
      {
        "signal":    "image_tampering",
        "category":  "tampering",
        "severity":  "high",
        "page":      1,
        "bbox":      [412, 680, 724, 740],
        "detail":    "Pixel inconsistencies around the date field; JPEG quantisation mismatch."
      },
      {
        "signal":    "metadata_anomaly",
        "category":  "metadata",
        "severity":  "medium",
        "detail":    "Author tag references an editor not present in genuine samples."
      }
    ]
  },
  "meta": {
    "job_id":   "fr_01J9PR1Z…",
    "model":    "flx-fraud-2026-04",
    "audit_url": "https://app.cogneris.ai/audit/fr_01J9PR1Z"
  },
  "has_errors": false
}

Signal catalogue

SignalWhat it catches
image_tamperingSplicing, copy-paste, brush retouching at pixel level.
font_inconsistencySingle line set in a different font, kerning or baseline.
synthetic_generationDiffusion artifacts, generator fingerprints, MRZ regenerators.
metadata_anomalyEXIF, PDF producer, fonts and timestamps that don't match the issuer.
field_math_mismatchTotals that don't reconcile, dates outside the policy window.
cross_doc_conflictValue disagrees with a previously linked document in linked_documents.

Thresholds & routing

  • 0 – 29 · pass — green-light the workflow.
  • 30 – 69 · review — route to a human; show them the findings list.
  • 70 – 100 · block — hold the document; require a second-level reviewer.

Bands are tenant-tunable. Override defaults via PATCH /v1/fraud/thresholds.

Feedback loop

When a human reviewer overturns a score, post the verdict back via POST /v1/fraud/feedback. Confirmed-fraud and confirmed-clean labels both feed the next calibration cycle, run weekly per tenant. We never share fraud labels across tenants.

Errors

CodeMeaning
400Unknown context or malformed linked_documents.
422Document too low-resolution to evaluate (under 150 DPI for image signals).
429Rate-limited; honour Retry-After.

Next: Validation rules

Cross-field checks and custom business rules.

Read Validation rules