Detect AI-generated, edited, and template-forged documents before their data enters your decision

Synthetic & Tampered Documents


Document integrity checks answer: is this document genuine — or was it generated, edited, or assembled?

The newest and fastest-growing fraud class is the fully synthetic document: a bank statement or salary slip generated from scratch by an AI model, with a plausible layout, a real bank's branding, and numbers invented to pass an income check. There is no "original" that was tampered with — the whole artefact is fiction. Classic tamper detection (looking for edit seams) misses it entirely.

9thSense runs both families of signals:

Tamper signals (edited genuine documents)

SignalWhat it indicates
Font & kerning anomaliesA pasted-in salary figure rarely matches the original typeface metrics exactly.
Layout deviationsField positions, spacing, and alignment drift from the known template of that issuer.
Metadata inconsistenciesCreation tooling, timestamps, and modification history that contradict the document's claimed origin.
Compression & resampling artefactsRegions of an image re-saved at different quality than their surroundings.

Synthesis signals (generated documents)

SignalWhat it indicates
Template mismatchThe document doesn't correspond to any real variant the issuer produces.
Arithmetic inconsistencyBalances that don't carry, totals that don't sum, interest that doesn't compound — generators are bad at maths that must hold across a whole statement.
Internal contradictionsIFSC codes that don't match the branch address, transaction dates on non-business days, statement periods that disagree with transaction ranges.
Checksum failuresSynthesized ID numbers rarely satisfy real checksum algorithms — see Goal Rules.

Result shape

{
  "check": "document_integrity",
  "verdict": "flag",
  "risk": 0.72,
  "signals": [
    { "type": "arithmetic_inconsistency", "detail": "closing balance does not carry across pages 2-3" },
    { "type": "metadata_inconsistency", "detail": "creation tool inconsistent with claimed issuer" }
  ]
}

Signals are described at the level a reviewer needs — never as raw model internals — and every flag lands in the case audit trail.

Gating with Goal Rules

{
  "id": "document_integrity",
  "severity": "require",
  "check": "integrity_risk_below",
  "params": {
    "threshold": 0.5,
    "on_fail_message": "We could not verify this document. Please upload the original PDF or a clearer scan."
  },
  "on_deny": {
    "message": "Integrity risk above threshold — route to review.",
    "max_retries": 1,
    "remediate_type": "bank_statement"
  }
}

Integrity flags typically route to review rather than auto-reject: scanned photocopies and bank-app exports produce noisy metadata legitimately. Deterministic failures — a checksum that doesn't validate, arithmetic that doesn't hold — are safe to hard-stop.

Related checks

  • Goal Rules — deterministic format, checksum, and arithmetic rules per document type.
  • Cross-Verification — a synthetic document that survives integrity checks usually contradicts the other documents in the case.