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
Invoice NWP-2026-0419
GBP 18,450.00
- From: Priya Shah <accounts@northwind-packaging-billing.example>
- Subject: URGENT: Invoice NWP-2026-0419 — updated bank details
- Amount due: GBP 18,450.00
- Beneficiary: Northwind Packaging Services
- Bank: Harbor Example Bank
- IBAN: GB33 HRBR 6016 1331 9268 19
Quoted by AI extraction
Compared with trusted record
Northwind Packaging Ltd
- 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.
- 1From: Priya Shah <accounts@northwind-packaging-billing.example>
- 2Subject: 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
- 3Due: today, to avoid a hold on your next shipment.
- 4Beneficiary: Northwind Packaging Services
- Bank: Harbor Example Bank
- IBAN: GB33 HRBR 6016 1331 9268 19
- 5Please 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
- 1
A lookalike sender. The supplier’s registered domain is northwind‑packaging.example; this one adds “‑billing”.
- 2
The pretext. New bank details, announced as routine housekeeping.
- 3
A deadline, so nobody stops to check.
- 4
A different account holder, at a different bank, with a new account number.
- 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.
- 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
- 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
- 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.
- 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
- SupplierMatchesIn this request
Northwind Packaging Ltd
Quoted from request: “Accounts Receivable, Northwind Packaging Ltd”
Trusted recordNorthwind Packaging Ltd
Matches - SenderMismatchIn this request
accounts@northwind-packaging-billing.example
Quoted from request: “From: Priya Shah <accounts@northwind-packaging-billing.example>”
Trusted record@northwind-packaging.example
Mismatch - BeneficiaryMismatchIn this request
Northwind Packaging Services
Quoted from request: “Beneficiary: Northwind Packaging Services”
Trusted recordNorthwind Packaging Ltd
Mismatch - Payment accountMismatchIn this request
GB33 HRBR 6016 1331 9268 19
Quoted from request: “IBAN: GB33 HRBR 6016 1331 9268 19”
Trusted recordGB82 WEST 1234 5698 7654 32
Mismatch - BankMismatchIn this request
Harbor Example Bank
Quoted from request: “Bank: Harbor Example Bank”
Trusted recordWest Example Bank
Mismatch - CurrencyMatchesIn this request
GBP
Quoted from request: “Amount due: GBP 18,450.00”
Trusted recordGBP
Matches - AmountUnusualIn this request
GBP 18,450.00
Quoted from request: “Amount due: GBP 18,450.00”
Trusted recordGBP 1,500.00 – 9,000.00 typical
Unusual - InvoiceNo referenceIn this request
NWP-2026-0419
Quoted from request: “Invoice NWP-2026-0419”
Trusted record—
No reference
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.
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.