Sample report

A KYC onboarding pack, checked

This is real output from the Australian 100-point identity check ( POST /v1/identity-check) run over a two-document onboarding pack — a passport and a driver’s licence. The documents are synthetic (no real personal data); the result, document types, points, and limitations are verbatim from the production engine. The point: this is what a reviewer sees before anyone is asked to integrate.

✓ Identity establishedAFP 100-point · 2 primary documents
110/ 100 points

Identity established: 110 points across 2 primary documents (the scheme requires 100 points and at least one primary).

DocumentType · categoryFields shownPoints
passport.pngaustralian_passportprimaryNPAS+70
licence.pngdrivers_licenceprimaryNPAS+40

Each document counts only for the fields it actually displays. Authenticity (genuine vs forged) is not checked here — that’s a separate forensic step.

⚠ Incomplete75 more points · 1 primary needed
25/ 100 points

The same check over a thin pack — a single Medicare card — returns the precise gap: “25/100 points; 75 more needed and at least 1 primary document.” That gap is the value — the file comes back with exactly what to ask for, instead of stalling on an inbox.

DocumentType · categoryFields shownPoints
medicare.pngmedicare_cardsecondaryNPAS+25

What this says — and what it doesn’t

Verification COVERAGE, not a legal identity decision. Document type and displayed fields are read by a vision model (perception, may abstain); the points / combination arithmetic is deterministic. Authenticity (genuine vs forged) is a SEPARATE forensic check — a document only fails to count here if it was explicitly checked and failed.

Read it as coverage, not a clearance: the documents add up to identity (or they don’t), and the arithmetic is deterministic — but the engine never asserts that a person is “cleared”. A human owns that decision, with the evidence in front of them.

Fields shown: N Name · P Photo · A Address · S Signature

The same result, as JSON

One call returns the whole report — structured for a system of record, an agent, or a review queue (trimmed below for length):

json
POST /v1/identity-check?scheme=afp_100_point   (multipart: passport.png, licence.png)

{
  "established": true,
  "rule": "points_accumulation",
  "points": 110,
  "target": 100,
  "primaries": 2,
  "min_primary": 1,
  "progress": "110/100 pts",
  "reason": "Identity established: 110 points with 2 primary document(s).",
  "documents": [
    { "filename": "passport.png", "classified_type": "australian_passport",
      "category": "primary", "points": 70, "shows": ["N","P","S"],
      "issued_on": "2024-01-10", "counts": true,
      "note": "+70 pts (primary); authenticity not checked" },
    { "filename": "licence.png", "classified_type": "drivers_licence",
      "category": "primary", "points": 40, "shows": ["N","A","P","S"],
      "counts": true, "note": "+40 pts (primary); authenticity not checked" }
  ],
  "scheme": { "id": "afp_100_point",
              "label": "AFP National Police Check — 100 Point Checklist" }
}