Skip to main content

Fraud Detection

The fraud check looks at a document for signs that it was altered, reused or generated, and gives it a risk level. It runs in two places: automatically while a document is extracted, and on demand through the fraud verification API. It never decides on its own. The result is a recommendation that a person reviews, and the extracted data stays available whatever the risk level.

Availability
  • Opt-in. The check is off by default. It runs only for a tenant that allows it and a template that enables it (see Turn it on). Nobody is charged for it without asking for it.
  • Price. 8 credits per analysis, the same whether it runs during an extraction or through the fraud verification API. With the check enabled, each extracted document costs 8 credits on top of the extraction. An analysis the API reuses for the same file is free; one that could not complete is not charged.
  • Environments. The automatic check during extraction runs in the Cogneris development environment and is being enabled in staging and production, where it stays opt-in per tenant. Talk to your Cogneris contact before planning a rollout.
  • No accuracy figure is published. Cogneris does not publish a detection or false-positive rate for this check yet. Treat its result as a reason to look closer, not as a verdict.

When To Use This​

Use it in flows where a forged or reused document causes a financial or compliance loss: onboarding, credit, claims, supplier registration, proof of income or address.

How It Works​

  1. A document is extracted with a template that has fraud detection enabled.
  2. A set of independent checks runs over the extracted fields and the file. A check that cannot run is reported as failed; it never counts as "passed".
  3. Each check may raise signals. The signals are combined into a risk score from 0 to 1 and a risk level.
  4. The result is stored under an analysis ID (requestId) and shown in the Playground, in the workflow review screen and through the API.

Turn It On​

You need the tenant administrator profile.

  1. Allow it for the tenant. In Tenant agent settings › Guards, select Allow fraud detection in Playground (this adds fraud-detection to the tenant's allowed domain agents). Keep Fraud enforcement on Advisory (record only) — see Advisory and enforce.
  2. Enable it on the template. In the template's agent configuration, tab Domain agents, enable Fraud detection in Playground and choose a Sensitivity.
  3. Extract a document with that template. The result shows the Trust & fraud check step.

Sensitivity​

Sensitivity changes only where the levels start, not how the score is computed.

Sensitivityreview fromsuspect from
Low0.500.85
Medium (default)0.350.70
High0.200.55

A tenant administrator can also override the thresholds and the weights of the score for the whole tenant under Fraud scoring (advanced) on the same Guards page. Leave them unset unless you have reviewed enough results to know why you are moving them.

Risk Levels​

LevelShown asWhat to do
trustedTrustedNo signal reached the review threshold. Continue with the extracted data.
reviewReview recommendedHave a person look at the document before relying on it.
suspectSuspiciousPause the decision and review. The extraction is still available.

A broken or unverifiable PDF digital signature always produces at least review, whatever the sensitivity.

Signals​

Each signal has a code, a severity (low, medium, high), a score and a short piece of evidence in plain text. Signals with score 0 are informational: they are shown so you know the check ran, and they do not raise the risk.

CheckSignalWhat it means
Field consistencyinvalid_tax_idA CPF or CNPJ field fails its check digits.
impossible_dateA date field is in the future.
value_inconsistencyAn amount field does not contain a number.
PDF structurepdf_incremental_updatesThe PDF was saved more than once after it was created.
pdf_date_mismatchThe modification date is earlier than the creation date.
pdf_producer_anomalyThe program that created the PDF differs from the one that produced it.
pdf_missing_metadataThe PDF carries no creator or producer information.
Image analysisela_inconsistencyError-level analysis found compression that is uneven across the image or page, which can indicate an edit.
Reuseduplicate_documentThe exact same file was already submitted in your tenant.
layout_reuseA visually near-identical document was already submitted in your tenant.
repeat_reuseThe same layout keeps coming back; the score grows with each repetition.
Volumevelocity_anomalyYour tenant submitted more analyses today than the configured daily limit (20 by default).
Content Credentials (C2PA)c2pa_present_invalidThe file carries a C2PA manifest that is broken or does not match the content.
c2pa_present_valid, c2pa_present_untrusted, c2pa_absent, c2pa_unavailableInformational. A valid manifest, a manifest from a signer outside the trust lists, no manifest, or not evaluated. Absence is not suspicion.
PDF digital signaturepdf_signature_brokenA signature exists but the document changed after it was signed. Forces at least review.
pdf_signature_unverifiableA signature exists but could not be verified. Forces at least review.
pdf_signature_untrustedThe signature is intact but the signer is not trusted.
pdf_signature_valid, pdf_signature_absent, pdf_signature_unavailableInformational. A valid signature does not lower the risk.
Instructions in the documentprompt_injection_attemptThe text contains instructions aimed at an AI system.
AI-generated likelihood(a number, not a signal)An AI model's estimate, from 0 to 1, that the extracted text reads as generated. It does not look at the image.

Every check that reads the file — PDF structure, image analysis, C2PA and PDF signatures — reads it exactly as you uploaded it, not the copy Cogneris normalizes for extraction. Re-saving or printing a document to PDF before sending it erases the edit history these checks look for, so send the file as you received it.

How the score is built​

The score adds three weighted parts and is capped at 1:

  • 0.6 × the strongest signal score (one strong signal counts; many weak ones do not add up);
  • 0.3 × the AI-generated likelihood;
  • 0.4 × the strength of any instructions found in the document.

"Generated by AI" is not the same as fraud: a legitimate system can generate a document. That is why the AI-generated likelihood is only one part of the score.

Advisory And Enforce​

The tenant chooses how the result is used, under Fraud enforcement:

ModeEffect
Advisory (record only) (default)The result is recorded and shown. Nothing is blocked.
EnforceA result at or above the chosen level (Review or higher, or Suspect only) is marked Blocked; a flagged result below it is marked Flagged.

In both modes the check runs and the result is recorded. In Enforce, a Blocked result is reported to the caller (fraudBlocked: true on the extraction, policyAction: "block" on the result) and the document goes to human review. Cogneris never rejects a document by itself: the extracted data is still returned.

Review Flagged Documents​

In Vision​

Tenant agent settings › Review (the Fraud review queue) lists every review or suspect result that has no verdict yet, newest first. Open one, read the signals and record a verdict:

  • Confirmed fraud
  • False positive
  • Inconclusive

Only a tenant administrator can submit a verdict; submitting again replaces it. The verdicts are the only quality measure available today: they let you see, per risk level, how often the check was right.

In Workflow​

When a workflow extraction phase runs with fraud detection on, a document whose level is review or suspect (or is flagged or blocked) goes to the Fraud review queue of the Manual Review phase, which takes precedence over every other queue, and the process cannot be approved automatically. The reviewer sees the risk level, the score, the AI-generated likelihood and each check with its signals. See Organize human review.

Verify A Document Through The API​

POST /api/v1/fraud-verify takes one file and returns the verdict, the score, every signal with a plain label and every check that ran. Call it with an API key holding the fraud-verify.write scope (a * key holds it). It costs 8 credits per analysis. Sending the same file again at the same sensitivity within 24 hours returns the earlier analysis, marked reused, at no charge.

Send the values you already extracted from the document in fields to add the field-consistency checks (tax ids, dates, amounts). Without them, only the file is checked.

The tenant must have fraud detection allowed (step 1 of Turn it on); otherwise the call is refused with fraud.not_enabled and nothing is charged. See Fraud verification API.

Read The Result Through The API​

With an API key, GET /api/v1/fraud-verify/{requestId} reads any analysis back, including one made during an extraction (fraudRequestId). See Fraud verification API.

Inside the platform, GET /vision/agent-runs/{requestId}/fraud-assessment returns the same result. Read available first: false means there is no result for that ID, which is not the same as trusted. Then read riskLevel, signals and checks; any name in failedCoverage is a check that did not complete. See Fraud assessment API and Fraud review API.

What It Does Not Do Yet​

These are on the roadmap, not available today:

  • pointing to where on the page a sign was found (page and region);
  • detecting character-level edits in native PDFs (fonts, glyphs, overlaid objects);
  • looking at the image to judge whether a document was generated by AI;
  • a published accuracy figure.