SEPA PAIN.002 STATUS READER · RUNS IN YOUR BROWSER · NOTHING UPLOADED

Why did your bank reject these SEPA payments?

Paste or drop the pain.002 status report your bank sent back after you uploaded a SEPA credit transfer or direct debit file. You get the status of the file, of each payment block and of each payment, every reason code (AC04, AM04, MD01, AM10 …) in plain language with what to do, the rejected total, and a list of the rejected payments to fix and resend.

The file is read in this browser tab and never leaves your device. IBANs are masked in the report. Independent of the EPC and of every bank. The reason-code table is read from memory of public ISO 20022 code lists; no bank documentation was available when this was built, and banks add private codes.

1. The bank's status report

A .xml file from your online banking or bank interface, starting with <Document xmlns="urn:iso:std:iso:20022:tech:xsd:pain.002.001.03">. It is the answer to the file you sent, not the file you sent.

Choose a file or paste the text, then click Read the report.

The model, and what it leaves out

Common questions

How do I read a SEPA pain.002 status report?

Paste the XML the bank returned or drop the file onto this page. It shows the status of the whole file, of each payment block and of each payment, turns every reason code into plain language with what to do about it, totals the rejected amount, and builds a list of the rejected payments you can download.

What does a pain.002 status like ACTC, ACCP, PART or RJCT mean?

ACTC means the bank can read the file and its technical checks passed. ACCP means it was accepted for processing, ACSP that settlement is in progress and ACSC that settlement is complete. PART means only some payments in the file were accepted, PDNG that the bank has not decided yet, and RJCT that the file, block or payment was rejected.

What do the rejection codes AC04, AM04, MD01 and AM10 mean?

AC04 is a closed account, so ask the payee for new account details. AM04 is insufficient funds on the account you pay from. MD01 is a direct debit without a valid mandate. AM10 is an invalid control sum, so the total in the file did not match the payments. This page explains about forty codes; a code it does not know is shown as unknown rather than guessed.

Why does my bank report only some of my payments?

Many banks list only the payments that need attention, so the report can be shorter than the file you sent. This page says so when the counts differ, and warns if the report lists more payments than your file had, which suggests it belongs to a different file.

Can I resend the rejected payments straight from this page?

No. The page never sends or edits anything. It gives you a list of the rejected payments with the reason, the category of fix and the action, as a CSV, so you can correct the data in your own system and generate a new file. Check first whether a rejected payment was in fact paid some other way, to avoid paying twice.

Is it safe to put a bank status report into a web page?

The page runs in your browser, the file is read locally and nothing is uploaded; a test in the code asserts there are no network calls. IBANs are masked in the report and the download. Names and references are shown as they appear in your file. Your own policies decide whether you may open a bank file in a browser.

What does this not do?

It does not know your bank's private reason codes, it does not check the report against the payment file you sent, it does not read camt.053 or camt.054 statements, and it covers pain.002.001.03 and later versions by namespace on a best-effort basis. A code table from memory is not your bank's documentation.