Bite Apps › SafeCAMT › pain.002 reason codes
pain.002 status and reason codes
What the bank is telling you in a pain.002 status report: the status codes (ACCP, ACSP, PART, RJCT …) and 147 reason codes from AC01 to UPAY, with what each one means and what to check in your pain.001 or pain.008.
Got a pain.002 with rejects? Open it in SafeCAMT with the original payment file — each reason is matched to its payment, in your browser, nothing uploaded.
Open SafeCAMT — free, in your browserHow a pain.002 reports a status
A pain.002 (CustomerPaymentStatusReport) is the bank’s answer to a pain.001 credit transfer file or a pain.008 direct debit file. It names the file it answers in OrgnlGrpInfAndSts/OrgnlMsgId and can give a status at three levels:
| Level | Status element | Refers to | Reasons in |
|---|---|---|---|
| File | OrgnlGrpInfAndSts/GrpSts | OrgnlMsgId | OrgnlGrpInfAndSts/StsRsnInf |
| Batch | OrgnlPmtInfAndSts/PmtInfSts | OrgnlPmtInfId | OrgnlPmtInfAndSts/StsRsnInf |
| Transaction | TxInfAndSts/TxSts | OrgnlEndToEndId, OrgnlInstrId | TxInfAndSts/StsRsnInf |
A transaction without its own TxSts takes the status of its batch, and a batch without PmtInfSts takes the status of the file. Each StsRsnInf holds a reason code in Rsn/Cd (or a bank-specific one in Rsn/Prtry) and often free text in AddtlInf. Banks usually send a first pain.002 after technical validation and may send more as the payments are processed; rejects that happen after settlement arrive as returns in the account statement (camt.053 / camt.054) instead.
- Status codes
- Account (AC)
- Agent and operation (AG)
- Amount and control sums (AM)
- Parties (BE)
- Dates, mandates and element content (CH)
- Dates and cut-off (DT, TM)
- Duplicates (DU)
- File format (FF)
- Mandates (MD)
- Routing and bank identifiers (RC)
- Regulatory and remittance (RR)
- Services agreed with the bank (SL)
- Other codes
- Codes you can catch before sending
Status codes
| Status | Meaning | Outcome |
|---|---|---|
| ACCP | Accepted — customer profile checks passed | Accepted |
| ACTC | Accepted — technical validation passed | Accepted |
| ACSP | Accepted — settlement in process | Accepted |
| ACSC | Accepted — settlement completed | Accepted |
| ACCC | Accepted — credited to the creditor’s account | Accepted |
| ACFC | Accepted — funds checked | Accepted |
| ACWP | Accepted — without posting | Accepted |
| ACWC | Accepted with change | Accepted in part or with a change |
| PART | Partially accepted | Accepted in part or with a change |
| PATC | Partially accepted — technically correct | Accepted in part or with a change |
| PDNG | Pending | In progress |
| RCVD | Received | In progress |
| PRES | Presented | In progress |
| RJCT | Rejected | Not executed |
| CANC | Cancelled | Not executed |
| BLCK | Blocked | Not executed |
Account (AC)
The account number, its status or its type.
| Code | Name | What to check |
|---|---|---|
| AC01 | Incorrect account number | The IBAN or account number is wrong or does not exist. Check the IBAN check digits and ask the counterparty to confirm it. |
| AC02 | Invalid debtor account number | The debtor account number is wrong or missing. |
| AC03 | Invalid creditor account number | The creditor account number is wrong or missing. |
| AC04 | Closed account number | The account has been closed. Ask the counterparty for their current account. |
| AC05 | Closed debtor account number | The debtor account has been closed. |
| AC06 | Blocked account | The account is blocked for this kind of transaction — for direct debits, the debtor may have blocked collections. |
| AC07 | Closed creditor account number | The creditor account has been closed. |
| AC08 | Invalid branch code | — |
| AC09 | Invalid account currency | — |
| AC10 | Invalid debtor account currency | — |
| AC11 | Invalid creditor account currency | — |
| AC12 | Invalid account type | — |
| AC13 | Invalid debtor account type | For SEPA B2B direct debits: the debtor account belongs to a consumer. |
| AC14 | Invalid creditor account type | — |
Agent and operation (AG)
The bank, or whether this kind of transaction is allowed.
| Code | Name | What to check |
|---|---|---|
| AG01 | Transaction forbidden | This type of transaction is not allowed on the account, for example direct debits on a savings account. |
| AG02 | Invalid bank operation code | Wrong transaction code, sequence type (FRST, RCUR, OOFF, FNAL) or local instrument for this mandate. |
| AG03 | Transaction not supported | — |
| AG07 | Unsuccessful direct debit | — |
| AG08 | Invalid access rights | — |
| AGNT | Incorrect agent | — |
Amount and control sums (AM)
Amounts, limits, funds, duplicates and the file’s counts and sums.
| Code | Name | What to check |
|---|---|---|
| AM01 | Zero amount | — |
| AM02 | Not allowed amount | The amount is above the limit agreed for this account or scheme. |
| AM03 | Not allowed currency | — |
| AM04 | Insufficient funds | There was not enough money on the debtor account. Resubmit once it is funded. |
| AM05 | Duplication | The bank already has this payment. Look for a duplicate EndToEndId or a file that was sent twice. |
| AM06 | Too low amount | — |
| AM07 | Blocked amount | — |
| AM09 | Wrong amount | — |
| AM10 | Invalid control sum | CtrlSum does not equal the sum of the amounts. Recalculate it. |
| AM11 | Invalid transaction currency | — |
| AM12 | Invalid amount | — |
| AM13 | Amount exceeds clearing system limit | — |
| AM14 | Amount exceeds agreed limit | — |
| AM15 | Amount below clearing system minimum | — |
| AM16 | Invalid group control sum | CtrlSum in GrpHdr does not match the transactions. |
| AM17 | Invalid payment info control sum | CtrlSum in a PmtInf block does not match its transactions. |
| AM18 | Invalid number of transactions | NbOfTxs does not match the number of transactions in the file. |
| AM19 | Invalid group number of transactions | NbOfTxs in GrpHdr does not match the file. |
| AM20 | Invalid payment info number of transactions | NbOfTxs in a PmtInf block does not match its transactions. |
| AM21 | Limit exceeded | — |
Parties (BE)
Names, addresses and identification of the debtor, creditor or initiating party.
| Code | Name | What to check |
|---|---|---|
| BE01 | Inconsistent with end customer | The name does not match the account holder. |
| BE04 | Missing creditor address | — |
| BE05 | Unrecognised initiating party | The bank does not know the initiating party or the creditor identifier used in the file. |
| BE06 | Unknown end customer | — |
| BE07 | Missing debtor address | — |
| BE08 | Missing debtor name | — |
| BE09 | Invalid country | — |
| BE10 | Invalid debtor country | — |
| BE11 | Invalid creditor country | — |
| BE12 | Invalid country of residence | — |
| BE15 | Invalid identification code | — |
| BE16 | Invalid debtor identification code | — |
| BE17 | Invalid creditor identification code | — |
| BE18 | Invalid contact details | — |
| BE19 | Invalid charge bearer code | SEPA payments must use ChrgBr SLEV. |
| BE20 | Invalid name length | — |
| BE21 | Missing name | — |
| BE22 | Missing creditor name | — |
Dates, mandates and element content (CH)
Dates outside the allowed window, mandate changes, the creditor identifier and element formats.
| Code | Name | What to check |
|---|---|---|
| CH03 | Requested execution or collection date too far in the future | — |
| CH04 | Requested execution or collection date too far in the past | — |
| CH07 | Element is not to be used at B and C level | — |
| CH09 | Mandate changes not allowed | — |
| CH10 | Information on mandate changes missing | — |
| CH11 | Creditor identifier incorrect | Check the creditor identifier and its check digits. |
| CH12 | Creditor identifier not unambiguous at transaction level | — |
| CH13 | Original debtor account is not to be used | — |
| CH14 | Original debtor agent is not to be used | — |
| CH15 | Element content includes more than 140 characters | — |
| CH16 | Element content formally incorrect | — |
| CH17 | Element not admitted | — |
| CH19 | Values will be set to next TARGET day | — |
| CH20 | Decimal points not compatible with currency | The amount has more decimal places than the currency allows. |
| CH21 | Required compulsory element missing | — |
| CH22 | CORE and B2B within one message | — |
Dates and cut-off (DT, TM)
Invalid dates and files that arrive too late.
| Code | Name | What to check |
|---|---|---|
| DT01 | Invalid date | The requested execution or collection date is invalid or outside the allowed window. |
| DT02 | Invalid creation date | — |
| DT03 | Invalid non-processing date | — |
| DT04 | Future date not supported | — |
| DT05 | Invalid cut-off date | — |
| DT06 | Execution date changed | — |
| TM01 | Invalid cut-off time | The file arrived after the cut-off time. |
Duplicates (DU)
An identifier or a whole transaction was sent before.
| Code | Name | What to check |
|---|---|---|
| DU01 | Duplicate message ID | A file with this MsgId was already received. |
| DU02 | Duplicate payment information ID | — |
| DU03 | Duplicate transaction | — |
| DU04 | Duplicate end-to-end ID | — |
| DU05 | Duplicate instruction ID | — |
| DUPL | Duplicate payment | — |
File format (FF)
The file fails the schema or the bank’s format rules.
| Code | Name | What to check |
|---|---|---|
| FF01 | Invalid file format | The file fails the schema or the bank’s format rules — often a wrong namespace or version, a missing element or characters outside the allowed set. |
| FF02 | Syntax error | — |
| FF03 | Invalid payment type information | — |
| FF04 | Invalid service level code | — |
| FF05 | Invalid local instrument code | — |
| FF06 | Invalid category purpose code | — |
| FF07 | Invalid purpose | — |
| FF08 | Invalid end-to-end ID | — |
| FF09 | Invalid cheque number | — |
| FF10 | Bank system processing error | A problem on the bank’s side. Ask the bank whether to resubmit. |
| FF11 | Clearing request aborted | — |
Mandates (MD)
SEPA direct debit mandate problems and refunds.
| Code | Name | What to check |
|---|---|---|
| MD01 | No mandate | No valid mandate is on file — or, for a refund, the debtor disputes having authorised the collection. |
| MD02 | Missing mandatory information in mandate | Mandate ID, signature date or creditor identifier is missing or wrong. |
| MD05 | Collection not due | — |
| MD06 | Refund request by end customer | The debtor asked for the direct debit to be refunded. |
| MD07 | End customer deceased | — |
Routing and bank identifiers (RC)
BICs and clearing-system member identifiers.
| Code | Name | What to check |
|---|---|---|
| RC01 | Bank identifier incorrect | The BIC is wrong or not in the right format. |
| RC02 | Invalid bank identifier | — |
| RC03 | Invalid debtor bank identifier | — |
| RC04 | Invalid creditor bank identifier | — |
| RC05 | Invalid BIC identifier | — |
| RC06 | Invalid debtor BIC identifier | — |
| RC07 | Invalid creditor BIC identifier | — |
| RC08 | Invalid clearing system member identifier | — |
| RC09 | Invalid debtor clearing system member identifier | — |
| RC10 | Invalid creditor clearing system member identifier | — |
| RC11 | Invalid intermediary agent | — |
| RC12 | Missing creditor scheme ID | The creditor identifier (CdtrSchmeId) is missing. |
Regulatory and remittance (RR)
Missing regulatory data, invalid remittance information or character set.
| Code | Name | What to check |
|---|---|---|
| RR01 | Missing debtor account or identification | — |
| RR02 | Missing debtor name or address | — |
| RR03 | Missing creditor name or address | — |
| RR04 | Regulatory reason | — |
| RR05 | Regulatory information invalid | — |
| RR06 | Tax information invalid | — |
| RR07 | Remittance information invalid | — |
| RR08 | Remittance information truncated | — |
| RR09 | Invalid structured creditor reference | — |
| RR10 | Invalid character set | The file contains characters outside the set the bank accepts. |
| RR11 | Invalid debtor agent service ID | — |
| RR12 | Invalid party ID | — |
Services agreed with the bank (SL)
White lists, black lists and limits the debtor set with their bank.
| Code | Name | What to check |
|---|---|---|
| SL01 | Specific service offered by debtor agent | — |
| SL02 | Specific service offered by creditor agent | — |
| SL11 | Creditor not on whitelist of debtor | — |
| SL12 | Creditor on blacklist of debtor | — |
| SL13 | Maximum number of direct debit transactions exceeded | — |
| SL14 | Maximum direct debit transaction amount exceeded | — |
Other codes
Narrative reasons, unspecified reasons, signatures, settlement and bank registration.
| Code | Name | What to check |
|---|---|---|
| CNOR | Creditor bank is not registered | The creditor’s bank cannot be reached through this clearing system — often a wrong BIC. |
| CURR | Incorrect currency | — |
| CUST | Requested by customer | Cancelled at the customer’s request. |
| DNOR | Debtor bank is not registered | The debtor’s bank cannot be reached through this clearing system — often a wrong BIC. |
| DS02 | Order cancelled | — |
| DS04 | Order rejected | — |
| ED01 | Correspondent bank not possible | — |
| ED03 | Balance info request | — |
| ED05 | Settlement failed | — |
| MS02 | Not specified reason, customer generated | The debtor refused the transaction without giving a reason. |
| MS03 | Not specified reason, agent generated | The bank gives no reason. Ask your bank. |
| NARR | Narrative | The reason is given as text in AddtlInf. |
| RF01 | Not unique transaction reference | — |
| UPAY | Undue payment | — |
Codes you can catch before sending
Many rejects are visible in the file itself. SafeCAMT checks these before you upload a pain.001 or pain.008:
| Code | Check |
|---|---|
| AC01 | IBAN length and mod-97 check digits |
| RC01 | BIC format |
| AM10 / AM16 / AM17 | CtrlSum against the sum of the amounts, per batch and for the file |
| AM18 / AM19 / AM20 | NbOfTxs against the number of transactions |
| AM05 / DU04 | End-to-end IDs used twice in one file |
| CH20 | More decimal places than the currency allows |
| CH11 / RC12 / BE05 | Creditor identifier missing or with wrong check digits (pain.008) |
| MD02 | Mandate ID or signature date missing (pain.008) |
| AG02 | Sequence type or local instrument invalid (pain.008) |
| CH22 | CORE and B2B collections in one message (pain.008) |
| RR10 / FF01 | Characters outside the SEPA set, names over 70 or remittance over 140 characters |
| BE19 | ChrgBr other than SLEV in a SEPA file |
Others cannot be seen in a file — a closed account (AC04), insufficient funds (AM04), a missing mandate at the debtor bank (MD01) or a refund request (MD06). For those the pain.002 is the first place they show up.
Where the codes come from
The reason codes are the ISO 20022 external code set ExternalStatusReason1Code; the status codes are ExternalPaymentTransactionStatus1Code and its group and payment-information counterparts. The names above are the ISO names, written out; “What to check” is our own summary of the usual cause. This page lists the 147 reason codes SafeCAMT decodes, not the complete ISO list, and banks and schemes use only a subset — your bank’s implementation guide says which. The SEPA rulebooks use the same codes for rejects, returns and refunds.
FAQ
What is a pain.002 file?
pain.002 is the ISO 20022 CustomerPaymentStatusReport: the message a bank sends back after receiving a pain.001 credit transfer file or a pain.008 direct debit file. It says whether the file, each batch and each transaction was accepted or rejected, with reason codes.
What does RJCT AC01 mean in a pain.002?
RJCT means the transaction was rejected. AC01 (IncorrectAccountNumber) means the account number is wrong or does not exist — most often an IBAN with a typo, which fails the mod-97 check digits.
What is the difference between ACCP, ACSP and ACSC?
ACCP means the payment passed technical and customer-profile checks, ACSP that settlement is in process, and ACSC that settlement on the debtor’s account is completed. All three are positive statuses; a reject is RJCT.
What does MS03 mean?
MS03 (NotSpecifiedReasonAgentGenerated) means the bank rejected the transaction without stating a reason. Ask your bank; the cause is often on the receiving side.
How do I match a pain.002 to my pain.001?
OrgnlMsgId equals the MsgId of your file, OrgnlPmtInfId the PmtInfId of the batch, and OrgnlEndToEndId or OrgnlInstrId the IDs of the transaction. SafeCAMT does this matching in the browser when you open both files, and shows each reject next to its payment.
Last updated 2026-11-10. Something wrong or missing? Email support@biteapps.cc.