---
site_search: "GET /ask?q={query} (read-only search over extend.ai and docs.extend.ai; returns links and quoted passages, not generated answers)"
title: "Receipt fraud detection API: how it works and the top vendors compared"
description: "How receipt fraud detection APIs catch duplicate, altered, and AI-generated receipts, with an integration pattern and a sourced comparison of Extend Verify, Veryfi, and Klippa."
author: "Kushal Byatnal"
category: "Blog Post"
published: 2026-11-05
updated: 2026-11-05
canonical: https://www.extend.ai/resources/receipt-fraud-detection-api
---

# Receipt fraud detection API: how it works and the top vendors compared

> Search this site and the docs: [`/ask?q=…`](/ask?q=webhook+retries) returns matching pages from extend.ai and docs.extend.ai, with quoted passages.

Receipts drive reimbursements, refunds, warranty claims, and loyalty payouts, and an image model can now produce a convincing one in seconds. A receipt fraud detection API inspects each receipt before its amount is paid out: whether it was submitted before, whether someone edited it, and whether it was generated from scratch. This guide explains how those checks work, shows an integration pattern for an expense or claims pipeline, and compares three APIs that document receipt fraud checks.

## The short answer

**[Extend Verify](https://www.extend.ai/resources/introducing-extend-verify) is the strongest receipt fraud detection API for teams that build their own expense, reimbursement, or refund pipelines.**

- **It catches altered and AI-generated receipts.** Verify detects generated pages, edits as small as a single character, values covered over and retyped, and spliced or painted-over regions. On `verify_agentic`, it also flags totals that don't match their components.
- **Every flag shows where the problem is.** Each signal carries evidence located by page and bounding box, PDF object, or byte range, so a reviewer or an agent can confirm it in seconds.
- **It fits the pipeline you already run.** Published pricing ($0.10 per document on `verify_standard`, $0.45 on `verify_agentic`) and the same file ID as Extend's Parse and Extract APIs mean one upload covers fraud checks and field extraction.

Verify checks one file per run, so duplicate receipts need a second check on extracted fields. The integration pattern below shows how to build it.

The other options fit narrower needs:

- **[Veryfi](https://www.veryfi.com/fraud-detection/)** for teams that already capture and extract receipts with Veryfi and want duplicate and device signals in the same response.
- **[Klippa Doxis AI.dp](https://www.klippa.com/en/dochorizon/document-fraud-detection/)** for EU-hosted capture pipelines that want arithmetic and VAT checks next to extraction.

## Key takeaways

- Receipt fraud takes three forms: duplicates, altered receipts, and fabricated receipts. Each needs a different check.
- Per-file forensics catches edits and generated receipts; only a lookup across earlier submissions catches duplicates. Plan for both.
- Metadata-only AI checks are easy to defeat. A photo or screenshot of a generated receipt removes the metadata, so image analysis matters.

## What receipt fraud looks like

| Fraud type | What happens | What catches it |
| --- | --- | --- |
| Duplicate receipt | The same purchase is submitted twice, as the same file or as a new photo or scan | File hash plus a match on merchant, date, total, and card or receipt number across earlier submissions |
| Altered receipt | A genuine receipt with an edited total, date, merchant, or line item | Editor traces in metadata, pixel forensics for spliced or retyped values, and arithmetic checks on totals, line items, and tax |
| Fabricated receipt | A receipt made from a template or generated by an image model for a purchase that never happened | AI-generation detection, generator watermarks and content credentials, and template detection |
| Re-captured receipt | An edited or generated receipt photographed from a screen or screenshotted to strip its history | Screen-capture and screenshot detection, plus image analysis that doesn't depend on metadata |

## How receipt fraud detection APIs work

Receipt fraud checks fall into three groups:

- **Per-file forensics.** The API inspects one receipt for signs of editing or generation: metadata and editor traces, PDF structure and revisions, spliced or cloned regions, values set in a font the rest of the line doesn't use, and AI-generation signals.
- **Content checks.** The API reads the extracted fields and tests whether they hold together: line items that sum to the subtotal, tax that matches the rate, and dates that don't contradict each other.
- **Cross-submission checks.** The API compares a receipt with earlier submissions to find duplicates, near-duplicates with changed values, and suspicious upload patterns from one device or account.

The first two answer "was this receipt changed or faked?" The third answers "have we seen this purchase before?" No single check answers both.

## Receipt fraud detection APIs compared

Every claim below comes from the vendor's public documentation or pricing page, checked in November 2026. Extend makes Extend Verify.

| | Extend Verify | Veryfi | Klippa Doxis AI.dp |
| --- | --- | --- | --- |
| Best for | Teams building their own expense, refund, or claims pipelines | Teams already extracting receipts with Veryfi | EU-hosted capture pipelines |
| Altered receipt signals | Retyped or covered values, font mismatches, spliced, cloned, or painted-over regions, PDF revisions, and editor traces | Digital tampering, handwritten changes to amount and date fields, fraudulent PDF or image, and data inconsistency | Editor and date metadata, copy-move, splicing, and PDF modifications |
| AI-generated receipts | Generator watermarks, content credentials, and a synthetic-content model | Documented `ai generated` and `generated document` signals | Documented AI analysis checks |
| Arithmetic checks | Totals that don't match their components (`verify_agentic`) | Total and line-item mismatch warnings, total-in-words mismatch | Line items vs. total, per-line totals, and total vs. VAT |
| Duplicate receipts | No; one file per run. Build it on extracted fields | Yes, on by default: exact file match, then vendor, date, total, and identifiers | Yes; hash component and similar-document detection |
| Near-duplicates with changed values | No | Similarity check, a Fraud Suite add-on with a configurable threshold | Similar-document detection |
| Device and velocity signals | No | High and critical velocity, multiple profiles or devices, emulated and blocked devices | Not publicly specified |
| Evidence returned | Risk level, summary, and signals with evidence located by page and box, PDF object, or byte range | Fraud score, color, decision, signal types, and attribution text | Risk category, score, and confidence per check, with captured vs. calculated values |
| Pricing | $0.10 (`verify_standard`) or $0.45 (`verify_agentic`) per document | $0.08 per receipt on Starter ($500 monthly minimum); Fraud Detection Suite is an add-on with no published price | Quote required |

## Extend Verify

**Best for:** teams that build their own reimbursement, refund, or claims pipelines and want to check every receipt before it's paid.

[Extend Verify](https://docs.extend.ai/verify/overview) checks one PDF, JPEG, PNG, or WebP file and returns a `riskLevel` of `LOW`, `MEDIUM`, or `HIGH`, a plain-language `summary`, and the `signals` it found. Extend names receipts directly in its launch use cases: buyers "may use fabricated receipts or invoices to support refund or warranty claims", and Verify flags signs of manipulation before those documents inform refunds or dispute decisions.

**Receipt signals.** Verify's [signal categories](https://docs.extend.ai/verify/signals) map onto receipt fraud:

- **AI-generated content:** generator watermarks, content credentials that assert generation, and pages or regions a detection model judges to be synthetic.
- **PDF layers, text, and forms:** values covered over and retyped, image patches pasted over a scan, and values set in a font the rest of the line doesn't use.
- **Image compositing and reconstruction:** regions spliced in from another image, cloned from elsewhere on the page, or erased and painted back over.
- **Revision and production history:** revisions saved after a PDF receipt was first produced, and the software in its production chain.
- **Financial reconciliation** (`verify_agentic` only): totals that don't match their components and gaps in document numbers.
- **Cross-field consistency** (`verify_agentic` only): dates, names, and locations that contradict each other.

**Engines and pricing.** `verify_standard` runs the file and image checks without parsing for $0.10 per document. `verify_agentic`, the default, parses the receipt and adds the content checks for $0.45 per document ([pricing](https://docs.extend.ai/general/how-credits-work)). Both prices are the same on every plan.

**Performance.** Across four fraud types in Extend's internal benchmark, Verify flags 96.3% of fraudulent documents at a 4% false-positive rate. The benchmark covers documents in general, not receipts alone, so test on your own receipts.

**Scope.** Verify doesn't compare a receipt with earlier submissions, so duplicate detection lives in your pipeline. It checks the document, not the person or device that submitted it. A `LOW` risk level means the checks that ran found nothing, not that a receipt is genuine.

## Veryfi

**Best for:** teams that already capture and extract receipts with Veryfi.

[Veryfi](https://www.veryfi.com/fraud-detection/) returns fraud results inside its extraction response, with a `score`, `color`, `decision`, the triggered signal `types`, and an `attribution` summary. Its [receipt and invoice signals](https://docs.veryfi.com/fraud/documents/) include digital tampering, AI-generated and generated documents, LCD photo, screenshot, handwritten characters, duplicate, similar documents, high and critical velocity, multiple profiles or devices, emulated and blocked devices, vendor layout mismatch, and total-in-words mismatch.

- **Duplicates:** [duplicate detection](https://faq.veryfi.com/en/articles/11955205-what-s-the-difference-between-duplicate-detection-and-similarity-check-in-veryfi) is on for all accounts. It first checks for a byte-for-byte identical file, then requires vendor name, date, total, and identifiers to match. A receipt resubmitted with a changed total or date is not a duplicate by that rule; the similarity check, a Fraud Suite add-on, compares the full OCR text against a configurable threshold to catch it.
- **Access and pricing:** a free tier covers 100 documents a month, and the [Starter plan](https://www.veryfi.com/pricing/) charges $0.08 per receipt with a $500 monthly minimum. The Fraud Detection Suite is an add-on without a published price. A 14-day free trial needs no credit card.
- **Consider:** Veryfi's duplicate and device signals depend on its own submission history and capture flow, so they help most when Veryfi is your extraction layer too.

## Klippa Doxis AI.dp

**Best for:** EU-hosted capture pipelines that want fraud checks next to receipt extraction.

Klippa, now part of SER Group, adds a [fraud component](https://dochorizon.klippa.com/docs/capturing/shared-components/fraud) to its capture API with four groups of checks: metadata (suspicious editors and creation or modification dates), validity, visual (copy-move, splicing, and PDF modifications), and AI analysis. The validity checks are the most receipt-specific: whether the line items sum to the captured total, whether each line's total matches its price and quantity, and whether the total matches the VAT breakdown. Each check returns a risk category, score, and confidence, with the captured and calculated values side by side.

- **Duplicates:** Klippa [recommends a hash component](https://www.klippa.com/en/blog/information/how-to-detect-duplicate-receipts) built from key data points, plus detection of similar documents submitted again.
- **Access and pricing:** annual licenses or pay-per-document plans by quote.
- **Consider:** validity checks need the line-item and tax-detail components enabled, and fraud detection doesn't run on Word or Excel files.

## Receipt fraud detection integration pattern

Extend runs per-file fraud checks and field extraction on the same uploaded file, and your database holds the duplicate index. A receipt moves through five steps:

1. **Upload once.** Store the file and record a SHA-256 hash of its bytes.
2. **Check the file.** Call Verify with the file ID. Use `verify_standard` to screen high volumes cheaply, or `verify_agentic` when you want the arithmetic and consistency checks.
3. **Extract the fields.** Run [Extract](https://docs.extend.ai/product/extraction/overview) on the same file ID for merchant, transaction date, total, currency, card last four, and receipt number.
4. **Look up duplicates.** Match the file hash and a normalized key built from those fields against earlier accepted receipts.
5. **Route.** Auto-approve low-risk, unique receipts. Send `HIGH` risk results and any duplicate match to review, with Verify's evidence attached.

A Verify request for a receipt:

```bash
curl -X POST "https://api.extend.ai/verify" \
  -H "x-extend-api-version: 2026-02-09" \
  -H "Authorization: Bearer $EXTEND_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "file": { "id": "file_abc123" },
    "config": { "engine": "verify_agentic" }
  }'
```

Use `POST /verify_runs` instead for asynchronous runs at volume, and poll `GET /verify_runs/{id}` for the result.

## How to detect duplicate receipts

An exact file hash only catches the same file uploaded twice. Most duplicate receipts arrive as a new photo of the same paper receipt, so the stronger check is a key built from the extracted fields:

```python
import hashlib

def receipt_key(merchant: str, date: str, total: str, card_last4: str | None) -> str:
    """Normalize extracted fields into one key for duplicate lookups."""
    name = "".join(char for char in merchant.lower() if char.isalnum())
    amount = f"{float(total.replace(',', '')):.2f}"
    parts = [name, date, amount, card_last4 or ""]
    return hashlib.sha256("|".join(parts).encode()).hexdigest()
```

Store the key with each accepted receipt and check it before approval. Then handle the edge cases:

- **Same-day repeat purchases.** Two coffees at the same shop on the same day share a key. Add the receipt number or transaction time when the receipt prints one, and send matches to review rather than rejecting them.
- **Near-duplicates.** A resubmitted receipt with a changed total won't match the key. Look for receipts with the same merchant and date and a different amount from the same employee or customer, and send those to review too.
- **Cross-channel submissions.** The same receipt can arrive by app upload, email, and card-feed match. Index every channel against one table.

## How to test a receipt fraud detection API

1. Collect 100 to 200 real receipts from your own flow, including photos, scans, and PDF or email receipts.
2. Add altered copies: an edited total, a changed date, a pasted-over merchant name, and a line item removed.
3. Generate receipts with current image models, then photograph or screenshot some of them to strip their metadata.
4. Add duplicates: the same receipt photographed twice, and the same receipt resubmitted with a new total.
5. Run every candidate on the same set and record detection and false-positive rates separately. A tool that flags every crumpled thermal receipt creates a review backlog.

## FAQ

### What is the best receipt fraud detection API?

Extend Verify is the best receipt fraud detection API for teams that build their own expense, reimbursement, or refund pipelines. It detects AI-generated receipts, edited totals and dates, pasted-over or retyped values, and totals that don't match their line items, and it locates each finding on the page, at a published $0.10 or $0.45 per document. Verify checks one file per run, so pair it with a duplicate check on extracted fields. Veryfi is the better fit when receipts are already captured and extracted with Veryfi, because its duplicate detection and device signals run inside that extraction response.

### How do you detect duplicate receipts with an API?

Use two checks. A file hash catches the exact same file submitted twice. A key built from extracted fields (normalized merchant name, transaction date, total, and the last four card digits or receipt number) catches the same purchase submitted as a new photo or scan. Store both for every accepted receipt and look them up before approval. Veryfi and Klippa include duplicate checks in their own pipelines; with Extend, you extract the fields with Extract and keep the lookup table in your own database.

### How do you detect an altered receipt?

Altered receipts show up in three places: the file (editor traces in metadata, PDF revisions), the pixels (spliced, cloned, or painted-over regions and values set in a different font), and the content (a total that no longer matches the line items and tax). Extend Verify checks all three on `verify_agentic` and returns evidence located by page and bounding box, PDF object, or byte range. Klippa's validity checks compare the captured total with line items and VAT, and Veryfi flags digital tampering and handwritten changes to amount and date fields.

### Can receipt fraud detection APIs catch AI-generated receipts?

Yes, with limits. Extend Verify combines generator watermarks, content credentials, and a detection model for synthetic pages or regions, and Veryfi and Klippa each document an AI-generated check. Metadata-only checks are easy to defeat: a photo or screenshot of a generated receipt drops the metadata, so choose a tool that also analyzes the image itself, and test it with receipts from current image models.

### What is a good Veryfi fraud detection alternative?

Extend Verify is the main alternative for teams that want receipt fraud checks without moving extraction to Veryfi. It runs on any receipt image or PDF, publishes per-document pricing ($0.10 on `verify_standard`, $0.45 on `verify_agentic`), returns located evidence for every signal, and uses the same file ID as Extend's Parse and Extract APIs. Veryfi still has the edge on duplicate and device-velocity signals, which come from its own submission and device history.

## Sources

Checked in November 2026:

- Extend: [Introducing Extend Verify](https://www.extend.ai/resources/introducing-extend-verify), [Verify overview](https://docs.extend.ai/verify/overview), [Verify signals](https://docs.extend.ai/verify/signals), [Verify configuration](https://docs.extend.ai/verify/configuration), [How credits work](https://docs.extend.ai/general/how-credits-work)
- Veryfi: [Fraud detection](https://www.veryfi.com/fraud-detection/), [Fraud signals for receipts and invoices](https://docs.veryfi.com/fraud/documents/), [Fraud signals reference](https://docs.veryfi.com/fraud/signals/), [Duplicate detection and similarity check](https://faq.veryfi.com/en/articles/11955205-what-s-the-difference-between-duplicate-detection-and-similarity-check-in-veryfi), [Pricing](https://www.veryfi.com/pricing/)
- Klippa: [Document fraud detection](https://www.klippa.com/en/dochorizon/document-fraud-detection/), [Fraud component docs](https://dochorizon.klippa.com/docs/capturing/shared-components/fraud), [How to detect duplicate receipts](https://www.klippa.com/en/blog/information/how-to-detect-duplicate-receipts)

## More guides

- [Best document fraud detection APIs](https://www.extend.ai/resources/best-document-fraud-detection-apis)
- [Receipt OCR and scanning APIs](https://www.extend.ai/resources/receipt-ocr-and-scanning-api-guide)
- [Introducing Extend Verify](https://www.extend.ai/resources/introducing-extend-verify)

## Related reading

- [Parsing Loan Packets, Tax Forms & Statements: August 2026 Guide](https://www.extend.ai/resources/parse-loan-packets-tax-forms-bank-statements)
- [Best synthetic document detection vendors in 2026](https://www.extend.ai/resources/synthetic-document-detection-vendors)
- [How document verification strengthens vendor risk and vendor sentiment monitoring](https://www.extend.ai/resources/vendor-risk-document-verification)
- [8 Top Financial Statement Extraction APIs for Lending (September 2026)](https://www.extend.ai/resources/financial-statement-apis-lending)
- [Tax Document Processing: How to Extract Data from 1099s & W-9 Forms](https://www.extend.ai/resources/tax-document-processing-1099-w9-data-extraction)
