ARLing

SEPA File Rejected? What to Check in a Pain.001 File

A rejected bulk payment file rarely comes with a clear reason, so finding the one broken element inside a pain.001 XML file by hand can take longer than fixing it once you know where to look. Most pain.001 validation errors come from a short, repeatable list: a transaction count or control sum that no longer matches the actual payments, an IBAN that fails its checksum, a BIC that does not exactly match the importing bank, or an execution date the bank will not accept. Since 15 November 2026 the SEPA schemes have added a new item to that list: when a payment carries a postal address, the address must be structured or hybrid, and a plain, unstructured address is no longer accepted. This note goes through what to check first when a bank rejects a bulk payment file, explains exactly what the new structured address rule requires, and shows how to run the whole check in your browser without sending the file to anyone.

What usually gets a bulk payment file rejected

Two numbers in the file header cause a large share of rejections: the transaction count has to equal the actual number of payment blocks in the file, and the control sum has to equal the exact total of all instructed amounts, to the cent. A mismatch usually shows up when someone adds or removes a payment without recalculating the header, and it is one of the most common reasons an import gets refused.

Both the debtor and creditor IBAN get checked for the right format, the length that country uses, and the checksum built into the IBAN itself; an IBAN written with spaces inside the file fails on that alone. The BIC of the debtor's own bank also has to match exactly the bank the file is imported into, not merely look like a valid BIC in general.

An execution date has to be a real calendar date that is not already in the past; Tatra banka and VÚB, for example, also refuse a date set too far ahead. The character set allowed in a SEPA file is limited to plain letters, digits and a short list of symbols; names and payment references that use accented letters need to be rewritten without them before export, since some banks cannot import the file at all otherwise.

The structured address rule that starts on 15 November 2026

From 15 November 2026 the SEPA schemes require that, when a payment does carry a postal address, that address is either structured or hybrid; a fully unstructured address, meaning free text only, is no longer accepted and the bank rejects the file. Version 1.0 of the same rulebook had listed 22 November 2026; version 1.1 corrected it to 15 November 2026, so a document that still says 22 November is quoting an outdated version.

The rule covers every SEPA scheme: a regular SEPA credit transfer, an instant SEPA credit transfer, and a SEPA direct debit, whether Core or B2B. More than one party inside a single file can carry an address at once, including the debtor, the creditor, the ultimate debtor and ultimate creditor, and the party that submits the file to the bank; one of them carrying the old address format is often enough for a bank to reject the whole batch, not only the one payment it belongs to, though whether a bank rejects one payment or the entire file is that bank's own choice.

What a structured or hybrid address actually needs

The minimum a structured or hybrid address needs is the town written in TwnNm and a two-letter country code in Ctry. That code has to follow the same two-letter list used worldwide, for example SK, CZ, DE or AT; the bank rejects a spelled-out country name just as it would any other invalid code. A hybrid address can keep at most two lines of free text in AdrLine alongside TwnNm and Ctry; three lines or more are refused even in a hybrid address.

None of this applies when a file carries no address at all: the address stays optional in a SEPA payment, and a file without any postal address passes after the deadline exactly the way it does today. The problem only sits in files that do carry an address, and carry it in the old, unstructured shape.

Checking your own file does not need special software: open it as plain text and search for the string PstlAdr. If that string is not there, the file has no address to fix. If it is there, it needs a town in TwnNm and a two-letter code in Ctry, and no more than two lines in AdrLine. The smallest edit that turns an old address into one that passes is adding TwnNm and Ctry to the existing PstlAdr block; a fully structured address goes further and splits the line into StrtNm, BldgNb, PstCd, TwnNm and Ctry, in the order the schema itself sets.

Which pain.001 version you use, and fixing the file in the browser

Both pain.001.001.03 and pain.001.001.09 can carry a structured address, so the November deadline is about the address, not about which version of the message you send; which version a bank accepts on import is that bank's own decision to make. The older, pain.001.001.03, address block covers StrtNm, BldgNb, PstCd, TwnNm and Ctry; the newer, pain.001.001.09, adds BldgNm, Flr, PstBx, Room, TwnLctnNm and DstrctNm, and narrows AdrLine itself to two lines.

The free SEPA pain.001 Doctor runs entirely in your browser, needs no account, and never sends the file anywhere, since there is no server behind the page at all. Pick your bank, and it walks through every element of the file, showing the exact path to the problem, the value it found, and a ready fix to paste back in. It is available in Slovak, German and English.

If the file keeps coming out of an older export in the unstructured shape, a separate browser tool builds a fresh pain.001 straight from a spreadsheet, with the address already split into street, building number, postal code, town and country, and it can write either version of the message.

Frequently asked questions

Does the 15 November 2026 rule affect a file that has no address at all?

No, the rule only reaches files that already carry a postal address. If you are not sure whether yours does, open it as plain text and search for PstlAdr; when that string is missing, there is nothing in the file to change.

Should I use pain.001.001.03 or pain.001.001.09?

Either version can carry the fields the new rule needs, so the more useful question is what your bank accepts on import, and that is each bank's own decision; ask your accounting software vendor which version it exports and from which release, and ask your bank which version it will keep accepting.

Can I check my file without installing anything or sending it to anyone?

Yes, everything happens locally in the browser tab, with no account and no upload needed. The page itself comes in Slovak, German and English; there is no separate Czech version, so a Czech-speaking user works from the Slovak one instead.

Fixing it now

Run your file through the free SEPA pain.001 Doctor first: it works in your browser, checks every element against the bank you pick, and shows the exact fix for anything from a bad checksum to an address still stuck in the old, unstructured shape.

If you handle payments for more than one client and need a written report you can pass on, the paid file check takes the file through an upload on the page and, within 24 hours, sends back a corrected pain.001 file together with a note on exactly which payments would fail after 15 November 2026 and the question to put to your accounting software vendor; it is a format check, not tax or legal advice, and ARLing is not a bank, so a clean result does not guarantee that the bank will accept the payment, since that decision stays with the bank.

Sources. The facts in this note are numbered after our internal fact list and were checked on the publication date. ARLing is not a bank; a clean check result is no guarantee that the bank accepts the payment. If a source has changed since, write to andrej@arling.sk and we will correct this page.