Free Tool Desk

pain.001 Payment File Checker (Technical Pre-Check)

Technical pre-check of a pain.001 credit transfer file: version, counts and control sums, IBANs, references and structured, hybrid or unstructured addresses. Not a bank validator. In your browser.

Free to use No sign-up required Nothing is uploaded

A rejected payment file usually fails on something small: a control sum that does not match the amounts, an IBAN with a typing error, a reference used twice, or a postal address written in a way the bank no longer accepts. This checker opens a pain.001 file, lists the payments in it and applies those common checks, with an explanation of every finding, so you can fix the file before you send it to the bank.

It is a technical pre-check. It is not a bank's validator, it does not apply your bank's implementation guide, and a clean result does not mean a bank will accept or execute the file. Payment data is read in your browser and not uploaded.

Loading the tool…

Overview

About pain.001 Payment File Checker

What is checked. The version and variant (from the namespace, for example pain.001.001.03 or the Swiss .ch variants), the group header (message ID, creation time, initiating party), the number of transactions and the control sum at message and at payment-block level (compared exactly, with no rounding drift), the execution date, debtor and creditor names against the length limit of the version (70 characters up to version .08, 140 from .09), IBAN format and mod-97 checksum, BIC format, amounts (positive, number of decimals for the currency), currencies, SEPA basics (EUR, charge bearer SLEV), duplicate end-to-end, instruction and payment-information IDs, the structured creditor reference (RF check digits) and the rule that unstructured and structured remittance information are not mixed.

Schema check. For versions .03 and .09 the file is also checked against the ISO 20022 base schema in your browser. The schema describes structure only; country and bank variants (for example the Swiss .ch versions or German DK rules) are stricter subsets of it, so a file can pass the schema and still be rejected by a bank.

Addresses. Every debtor and creditor address is classified. A structured address uses separate elements and needs at least a town name (TwnNm) and a country (Ctry); street, building number and postal code are recommended. A hybrid address has that minimum plus up to two AdrLine elements of 70 characters. An unstructured address consists only of AdrLine elements. Swiss banks and the SWIFT cross-border (CBPR+) messages are ending support for fully unstructured addresses around November 2026, and the exact dates differ per bank (UBS and PostFinance, for example, name different dates), so unstructured addresses are flagged, as is a building number written inside the street name.

Report. Findings are sorted by severity and name the payment block and transaction they refer to. You can download the report as Excel (findings and a payment list), as CSV or as JSON.

Compatibility

Supported Formats

pain.001 XML files up to 40 MB. Versions .02 to .12 are read; the checks for name length, addresses and structure use the version in the namespace, and the schema check is available for .03 and .09. Direct debit files (pain.008) and status reports (pain.002) are recognised and refused with an explanation.

Guide

How to Use pain.001 Payment File Checker

  1. Drop the pain.001 XML file onto the box.
  2. Read the summary: version, number of payments, totals per currency and how many addresses are structured, hybrid or unstructured.
  3. Go through the findings from the top. Errors are things a bank would probably reject; "check" items are rules that differ between banks.
  4. Fix the file in your accounting or banking software, export it again and re-check it. Download the report if you need to send it to someone.

Highlights

Features

  • Counts and control sums Message and block totals compared exactly, per currency.
  • IBAN, BIC and reference checks Mod-97 IBAN check, BIC format, duplicate IDs and RF creditor references.
  • Address classification Structured, hybrid, unstructured or incomplete, with the reason for each warning.
  • Schema check for .03 and .09 Structure checked against the ISO 20022 base schema in your browser.
  • Reports to keep Excel with findings and payments, CSV or JSON.

Applications

Use Cases

  • Checking a payment file generated by accounting software before uploading it to e-banking
  • Finding out why a bank rejected a pain.001 upload
  • Preparing for the end of unstructured addresses by seeing which payments still use them
  • Testing the export of a new ERP or payroll system
  • Comparing the totals in a file with the control sum the software wrote

Good to Know

Limitations

This is not an official or bank validator. It cannot know your bank's implementation guide (character sets, accepted payment types, limits, cut-off times, which address forms are accepted), and it does not confirm that an account exists or that funds are available. Some banks accept what this check flags, and some reject what it passes.

The dates and rules for structured addresses are announced by banks and payment bodies and change; the warning text names the direction, not a date you can rely on. The ISO schema used here was taken from a package that redistributes the published ISO files (see the provenance note in the site's schema folder), so compare it with the files on iso20022.org if exactness matters.

This tool runs entirely in your browser — your file is never uploaded to our servers. See our Privacy Policy for full details.

Support

Frequently Asked Questions

Is my payment file uploaded?

No. The file is read and checked in your browser. Names, IBANs and amounts are not sent to our server and are not logged or stored.

Will my bank accept the file if there are no findings?

Not necessarily. This is a technical pre-check against common rules and the ISO schema. Each bank has its own implementation guide, so a file can still be rejected for a reason this tool cannot know.

What is the difference between structured, hybrid and unstructured addresses?

Structured uses separate elements (street, building number, postal code, town, country). Hybrid uses the minimum structured elements (town and country) and adds up to two free address lines. Unstructured is only free address lines, which more and more banks no longer accept.

My control sum does not match. Which one is right?

The amounts of the individual transactions are what the bank pays. The checker adds them exactly and shows the difference to the declared control sum, so you can tell whether a transaction or the total is wrong. Fix the file in the software that created it.

Why does it flag a past execution date?

Banks usually reject a requested execution date in the past or execute on the next business day. The warning is based on today's date in your browser.

Which versions does the schema check cover?

pain.001.001.03 and pain.001.001.09. For other versions the other checks still run.

Keep Going

Related Tools