Free · runs in your browser · nothing uploaded

Send your payment run
right the first time.

paypreflight checks a batch of payments before it reaches the bank — every IBAN checksum, every SEPA rule, every duplicate reference — while a mistake is still a spreadsheet problem and not a payment recall.

No account. No upload, no telemetry — the page has no network code at all.

116IBAN countries
28VAT formats
3input formats · CSV, JSON, pain.001
0bytes uploaded

Check a file now

Drop in a payment file — it never leaves your computer. You can watch it work with the network tab open.

Drop a payment file here, or

CSV (comma or semicolon), JSON array of records, or ISO 20022 pain.001 XML. Up to 5,000 rows.

…or paste rows

What it catches, before your bank does

One engine, the same checks in your browser, the CLI and the MCP server.

🔢

IBAN checksums

ISO 7064 MOD 97-10 validation across 116 countries, with the corrected check digits suggested — not just "invalid".

🔤

SEPA character set

Names containing characters the EPC scheme cannot carry get flagged and cleaned.

💶

Amount & currency rules

European and English notation (1250,00 vs 1,250.00), zero and negative amounts, the SEPA ceiling.

👯

Duplicate references

The same end-to-end reference twice is a rejection waiting to happen. Found across the whole run, not per row.

Σ

Control sums

The total and transaction count declared in a pain.001 header are recomputed and compared — mismatches surface instantly.

🧾

VAT structure

Format checks for 28 VAT areas, fully offline. Live registration is VIES's job, and the report says so honestly.

Same engine, in your pipeline

The CLI is the identical audit engine, offline on your machine or CI runner. One command gates a payment run:

paypreflight check suppliers.csv

paypreflight - suppliers.csv - 10 instruction(s) - 9,680.30 EUR
FAIL  5 error(s), 3 warning(s)

ERROR  2x iban_invalid on line(s) 2, 7
       Creditor IBAN failed ISO 13616 validation …
       fix: GB55WEST12345698765433

WARN   2x duplicate_reference on line(s) 5, 10
       Remittance reference "INV-2026-0003" was already used on line 4.

Exit code 1 → the pipeline stops the bad run before the bank does.

Pricing

Diagnosis is free and stays free. The part that saves the hours is what a business pays for.

Free

€0
  • Full audit report — every check
  • Fix diff preview, in browser and CLI
  • Up to 5,000 rows per file
  • Browser tool, CLI, MCP server
  • MIT-licensed engine
Start checking

Payment via Stripe · promo codes accepted · your offline licence key is minted and sent to your email within 24 hours. It needs no account and never phones home.

Questions

Is my payment file uploaded anywhere?

No. This page and the CLI have no network code at all — the audit runs in your browser or on your machine. A creditor list is exactly the kind of file that must not be emailed to strangers.

Can it fix the file for me?

Yes, with a Pro licence: repaired check digits (re-verified before writing), canonical amounts, cleaned names — each with a change log. Anything needing a human judgement is left alone and listed.

Which file formats?

Bank and ERP exports in CSV (comma or semicolon), JSON arrays of records, and ISO 20022 pain.001 XML. The format is detected from the content, not the filename.

Does the licence need an account?

No. A licence is a signed key verified offline with an HMAC — no phone-home, no login, works in air-gapped finance environments.

Can AI agents use it?

Yes — the same engine speaks MCP over stdio, so Claude Desktop, Cursor, Cline and other MCP clients can run the checks locally.