Document Fraud Detection

Check bank statements, IDs, invoices and other documents for signs of forgery and manipulation. Review file history, inconsistent figures and visual findings, with page evidence where available.

Request demo
File structure
"incremental_updates": 1
"producer": "iLovePDF"
"hidden_text": false

See it in action

From an uploaded document to a verdict with the evidence behind it.

What you get

File history and structure

PDF forensics that look for signs a file was changed after it was created: incremental saves, earlier revisions still inside the file, editing software in the metadata, hidden text and a text layer that does not match what is printed.

Numbers that do not add up

Running balances, statement summaries, duplicate rows, page order and period dates on bank statements; totals, VAT and line sums on invoices and pay stubs.

Rules for each document type

Emirates ID numbers and MRZ check digits, invoice TRN and IBAN formats, W-2 tax arithmetic, certificate QR codes and references. Each type has its own validator.

Pasted and overlaid text

The page image is checked for signs of amounts and names pasted over the original content, and for characters that do not belong to the surrounding layout.

Photos and AI images

Checks EXIF data, C2PA content credentials and available AI-generator metadata for signs that an image was generated or re-saved.

Evidence, not a black box

Each finding comes with a short summary a reviewer can read in a minute. Edits on a page also show the page, the highlighted area and an image of it.

Documents it checks

Each document type gets its own rules on top of the shared file and visual checks. Documents of any other type still get the shared checks.

  • Native PDFs, scans and photos
  • PDF, JPG, PNG, TIFF and WEBP, up to 50 MB per file
  • Up to 30 files in one async request
Bank statementsEmirates IDInvoicesTrade licensesAcademic certificatesVAT returnsSIMAH credit reportsMOLIM credit reportsW-2 formsPay stubs

Fraud detection API, webhooks and dashboard

Send a file or a file URL over the REST API, or upload it in the dashboard. Small batches return in the same request; larger ones run in the background and post the result to your webhook.

REST API with API keys
Signed webhooks
Batch upload
Evidence images
Executive summary
Paper OS Seal agent
POST /api/v1/fraud-detection
Authorization: Bearer sk-paperwork-...

# Example response (excerpt)
{
  "document_type": "bank_statement",
  "verdict": "FRAUDULENT",
  "recommendation": "REJECT",
  "signals": [{
    "type": "bs_balance_chain_mismatch",
    "severity": "critical",
    "page": 3,
    "bbox": [412, 288, 126, 14]
  }],
  "executive_summary": "..."
}

Frequently asked questions

Have a question that is not here?

Can it tell if a PDF is fake or edited?

It looks for signs of tampering in the file history, document content and page images. The result explains what was found so your team can review it alongside the original document.

Should we send the original file or a screenshot?

Send the original file when you have it. A native PDF preserves file structure and revision information that a screenshot does not contain; image checks use the evidence available in the image.

Which documents can it check?

Bank statements, Emirates IDs, invoices, trade licenses, academic certificates, VAT returns, SIMAH and MOLIM credit reports, W-2 forms and pay stubs have document-specific rules. Other document types can receive general file and visual analysis; the checks used depend on the file and available evidence.

How does it catch an edited bank statement?

It checks running balances, statement summaries, duplicate rows, page order and period dates. Inconsistent amounts can break the balance chain; findings identify the affected rows and pages. These checks help flag suspicious changes for review.

Is the result a score or an explanation?

A verdict of CLEAN, SUSPICIOUS or FRAUDULENT, a recommended action and the findings behind them. Page locations, highlighted areas and evidence images are included where available.

Which file types and sizes are supported?

PDF, JPG, PNG, TIFF and WEBP, up to 50 MB per file. Up to 5 files are checked in one request, and up to 30 in a background request that posts the result to your webhook.

How do I get results into my system?

Use the REST API or dashboard. Background jobs can send results to your webhook; provide a webhook secret for an HMAC SHA-256 signature. You can also poll the job status.

How can a reviewer investigate a finding?

Start with the finding’s explanation, then inspect its page location or evidence image where available. Use the findings together with the original document and the context of the case.

Can it run on our own servers?

Yes. The platform is available as a private deployment. Whether document data goes to external OCR or AI providers depends on your deployment configuration.

Try it on your own documents

Request demo