Verify payment details before money moves.

ProofPay reads a payment request, checks the payee and account against the supplier records you already trust, and holds the payment when they don’t match.

A hackathon prototype. Suppliers and requests are synthetic, payments are simulated, and nothing connects to a bank.

ProofPay — Verify

Compared with trusted record

  • Senderaccounts@northwind-packaging-billing.exampleRecord @northwind-packaging.exampleDiffers
  • BeneficiaryNorthwind Packaging ServicesRecord Northwind Packaging LtdDiffers
  • BankHarbor Example BankRecord West Example BankDiffers
  • Payment accountGB33 HRBR 6016 1331 9268 19Record GB82 WEST 1234 5698 7654 32Differs

Hold

3 critical mismatches with registered records

Simulated release locked

Payment redirection starts with an ordinary email.

The attacker copies a real supplier’s invoice, changes where the money goes, and adds reasons not to check. Everything looks familiar except the one line that decides where the money lands.

A synthetic request from the ProofPay demo set.

  1. 1From: Priya Shah <accounts@northwind-packaging-billing.example>
  2. 2Subject: URGENT: Invoice NWP-2026-0419 — updated bank details
  3. Hello,
  4. Following our recent banking migration, we have updated our bank details. Please make all future payments, including invoice NWP-2026-0419, to the account below. Our previous account can no longer receive funds.
  5. Amount due: GBP 18,450.00
  6. 3Due: today, to avoid a hold on your next shipment.
  7. 4Beneficiary: Northwind Packaging Services
  8. Bank: Harbor Example Bank
  9. IBAN: GB33 HRBR 6016 1331 9268 19
  10. 5Please confirm by email once payment has been sent. We are unable to take calls this week due to the migration.
  11. Priya Shah
  12. Accounts Receivable, Northwind Packaging Ltd
  1. 1

    A lookalike sender. The supplier’s registered domain is northwind‑packaging.example; this one adds “‑billing”.

  2. 2

    The pretext. New bank details, announced as routine housekeeping.

  3. 3

    A deadline, so nobody stops to check.

  4. 4

    A different account holder, at a different bank, with a new account number.

  5. 5

    It rules out the call-back, the one step that would expose the change.

Extract, compare, explain, protect.

Only the first step uses AI, and it never sees the verdict. Text hidden in an invoice can’t argue its way past the rules.

  1. 1AI

    Extract

    The model reads the request and quotes the sender, payee, bank, account, and amount word for word. A value it can’t point to in the text is discarded.

    “IBAN: GB33 HRBR 6016 1331 9268 19”

    Found in the source text

  2. 2Rules

    Compare

    Each quoted value is checked against the trusted record for that supplier: sender domain, payee, bank, and account.

    Request
    GB33 HRBR 6016 1331 9268 19
    Record
    GB82 WEST 1234 5698 7654 32
  3. 3Rules

    Explain

    Each finding says what differs, where the value came from, and what to do next, in fixed wording rather than generated text.

    This request directs payment to GB33 HRBR 6016 1331 9268 19, but the account on file for Northwind Packaging Ltd is GB82 WEST 1234 5698 7654 32.

  4. 4Rules

    Protect

    A critical mismatch holds the payment in a simulated approval step. A request that needs review can’t be released without a reviewer note.

    On hold, release locked

Example results

Payment request

From: Priya Shah <accounts@northwind-packaging-billing.example>
Subject: URGENT: Invoice NWP-2026-0419 — updated bank details

Hello,

Following our recent banking migration, we have updated our bank details. Please make all future payments, including invoice NWP-2026-0419, to the account below. Our previous account can no longer receive funds.

Amount due: GBP 18,450.00
Due: today, to avoid a hold on your next shipment.

Beneficiary: Northwind Packaging Services
Bank: Harbor Example Bank
IBAN: GB33 HRBR 6016 1331 9268 19

Please confirm by email once payment has been sent. We are unable to take calls this week due to the migration.

Priya Shah
Accounts Receivable, Northwind Packaging Ltd

HOLD

Payment held

Payment account differs from the registered account. Account holder name differs from the registered beneficiary.

Recommended actionDo not pay. Confirm the details by calling the supplier on a number you already have, not one from this request.

Analyzed: Invoice NWP-2026-0419 · GBP 18,450.00 · from accounts@northwind-packaging-billing.exampleMatched record: Northwind Packaging Ltd

Payment account differs from the registered account

This request

GB33 HRBR 6016 1331 9268 19

Quoted: “IBAN: GB33 HRBR 6016 1331 9268 19”

Trusted record

GB82 WEST 1234 5698 7654 32

Synthetic record · confirmed by call-back to onboarding contact (last confirmed 2026-03-14)

Trusted record
Northwind Packaging Ltd
Findings
3 critical · 2 review · 2 context
Extraction
Example · stored reference extraction, not live AI

Evidence

Compared with trusted record for Northwind Packaging Ltd · synthetic · confirmed by call-back to onboarding contact · last confirmed 2026-03-14

  • SupplierMatches
    In this request

    Northwind Packaging Ltd

    Quoted from request: “Accounts Receivable, Northwind Packaging Ltd”

    Trusted record

    Northwind Packaging Ltd

  • SenderMismatch
    In this request

    accounts@northwind-packaging-billing.example

    Quoted from request: “From: Priya Shah <accounts@northwind-packaging-billing.example>”

    Trusted record

    @northwind-packaging.example

  • BeneficiaryMismatch
    In this request

    Northwind Packaging Services

    Quoted from request: “Beneficiary: Northwind Packaging Services”

    Trusted record

    Northwind Packaging Ltd

  • Payment accountMismatch
    In this request

    GB33 HRBR 6016 1331 9268 19

    Quoted from request: “IBAN: GB33 HRBR 6016 1331 9268 19”

    Trusted record

    GB82 WEST 1234 5698 7654 32

  • BankMismatch
    In this request

    Harbor Example Bank

    Quoted from request: “Bank: Harbor Example Bank”

    Trusted record

    West Example Bank

  • CurrencyMatches
    In this request

    GBP

    Quoted from request: “Amount due: GBP 18,450.00”

    Trusted record

    GBP

  • AmountUnusual
    In this request

    GBP 18,450.00

    Quoted from request: “Amount due: GBP 18,450.00”

    Trusted record

    GBP 1,500.00 – 9,000.00 typical

  • InvoiceNo reference
    In this request

    NWP-2026-0419

    Quoted from request: “Invoice NWP-2026-0419”

    Trusted record

    —

Payment gate

Simulation — no funds move
Pay
GBP 18,450.00
To
Northwind Packaging Services
Account
GB33 HRBR 6016 1331 9268 19

On hold — release is locked

Call the supplier on the number in your records — not one from this request — before anything is paid.

Run these requests with live AI in the demo

The AI reads.
The rules decide.

The AI reads

Any written format
Pasted emails, forwarded threads, invoice text, and chat messages.
Verbatim evidence
Every extracted value carries the exact words it was taken from.
The invoice as data
Instructions aimed at AI tools are flagged as findings and can’t change the result.

The rules decide

Trusted record comparison
Account, payee, bank, and sender checked against the supplier you registered.
Grounded or discarded
A value that doesn’t appear in the request text is treated as missing.
Lookalike senders
Extra words, swapped letters, and different domain endings are flagged.
Unknown suppliers
A request from a supplier with no trusted record never passes on its own.
Three verdicts
Hold, needs review, or no mismatch found. Never “verified legitimate”.

Out of scope

Email authentication
SPF, DKIM, and DMARC aren’t checked. Only the pasted text is inspected.
Account ownership
ProofPay doesn’t contact banks. Accounts are compared only with your records.
Real payments
Releases are simulated. Nothing is connected to a bank and no money moves.

Know what you’re paying.Before you pay.

Paste a payment request, or run one of the synthetic examples, and see what ProofPay holds and why.