Skip to content

ISO 20022 reference

ISO 20022 payment status codes: pain.002 and pacs.002

After you send a payment file, your bank answers with a pain.002 status report: received, accepted, settled, pending or rejected, for the whole file, each block and each payment. Every status below has its own page with what it means and what to do.

19 payment statuses and 4 statement entry statuses.

The life of a payment

A payment that goes well can be reported at each of these steps; most banks report only some of them.

  1. RCVD Received: The message was received; nothing has been checked yet.
  2. ACTC Accepted technical validation: Syntax and authentication checks passed.
  3. ACCP Accepted customer profile: Technical checks and the customer profile checks passed.
  4. ACSP Accepted settlement in process: All checks passed and the payment is being executed.
  5. ACSC Accepted settlement completed: Settled on the debtor’s account.
  6. ACCC Accepted settlement completed (creditor): Settled on the creditor’s account.

At any step before settlement the payment can be rejected (RJCT) with a reason code that says why. A file in which some payments are accepted and others not is PART; each payment then has its own status.

In progress

Received, checked or waiting: another status will follow.

In progress payment statuses
CodeNameMeaningReported for
RCVDReceivedThe message was received; nothing has been checked yet.the whole file, a payment block or a single transaction
ACTCAccepted technical validationSyntax and authentication checks passed.the whole file, a payment block or a single transaction
PDNGPendingWaiting on further checks; the status will change.the whole file, a payment block or a single transaction
PATCPartially accepted technical correctTechnically correct, but it needs several authorisations and only some have been given. A transaction status only.a single transaction, in pain.002.001.08 and later
BLCKBlockedA payment reported as ACWP is blocked: for now the funds are neither posted to the creditor nor returned.a single transaction, in pain.002.001.08 and later
PRESPresentedA request to pay was presented to the debtor.a single transaction, in pain.002.001.08 and later

Accepted

The checks passed and the payment is going ahead, possibly with a change.

Accepted payment statuses
CodeNameMeaningReported for
ACCPAccepted customer profileTechnical checks and the customer profile checks passed.the whole file, a payment block or a single transaction
ACFCAccepted funds checkedAccepted, and the funds are available.a single transaction, in pain.002.001.08 and later
ACWCAccepted with changeAccepted, but something was changed (for example the date or remittance information).the whole file, a payment block or a single transaction
ACWPAccepted without postingAccepted, but the payment will not be posted to the creditor’s account.a single transaction, in pain.002.001.08 and later
ACSPAccepted settlement in processAll checks passed and the payment is being executed.the whole file, a payment block or a single transaction
ACISAccepted and cheque issuedA payment by cheque was accepted and the cheque issued, but not yet deposited or cleared.a single transaction, in pain.002.001.08 and later
ACPDAccepted clearing processedReleased by the debtor’s bank and accepted by the clearing system.a single transaction, in pain.002.001.08 and later

Settled

The money has moved: the end of the road for a payment.

Settled payment statuses
CodeNameMeaningReported for
ACSCAccepted settlement completedSettled on the debtor’s account.the whole file, a payment block or a single transaction
ACCCAccepted settlement completed (creditor)Settled on the creditor’s account.the whole file, a payment block or a single transaction
CPUCCash picked up by creditorThe creditor has collected the cash.a single transaction, in pain.002.001.08 and later

Partly accepted

A file or block where some payments go ahead and others do not, or not yet.

Partly accepted payment statuses
CodeNameMeaningReported for
PARTPartially acceptedSome transactions accepted; others not yet accepted (pending or rejected); see the transaction statuses. A group or block status only.the whole file or a payment block

Not executed

Rejected or cancelled: the payment will not be made.

Not executed payment statuses
CodeNameMeaningReported for
RJCTRejectedRejected: the payment will not be executed. The reason code says why.the whole file, a payment block or a single transaction
CANCCancelledThe payment initiation was cancelled after a request for cancellation. ISO reserves it for API-based payment initiation.a single transaction, in pain.002.001.08 and later

Entry statuses on statements (camt)

Statements and reports use a different status: whether an entry is booked. It sits in Ntry/Sts of camt.052, camt.053 and camt.054 (a bare code up to version .001.06, Ntry/Sts/Cd from .001.07).

Entry status codes
CodeNameMeaningIn the balance
BOOKBookedPosted to the account: part of the booked balance.Counts toward the booked balance (opening booked + booked entries = closing booked).
PDNGPendingNot yet posted; it may still change or be cancelled. Not part of the booked balance.Not in the booked balance. A pending entry may change or disappear before it is booked.
INFOInformationReported for information only; it will not be booked (for example an expected or advised item).Not in the booked balance, and never will be.
FUTRFutureAlready on the bank’s books, with value on a future date; not in today’s booked balance.Not in today’s booked balance: the bank has it on its books, but its value applies on a future date.

See how entries and balances fit together in the camt.053 format.

Look up a status from a script or an AI agent

The same explanation is available to scripts and AI agents, keyless: the REST endpoint GET /api/v1/explain and the explain_code tool of the MCP server at https://iso20022-navigator.com/mcp (API and MCP docs; add it to Claude, Cursor or VS Code).

REST · curl
curl -s 'https://iso20022-navigator.com/api/v1/explain?code=ACSC&kind=payment_status'
MCP · tools/call
{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "tools/call",
  "params": {
    "name": "explain_code",
    "arguments": {
      "code": "ACSC",
      "kind": "payment_status"
    }
  }
}
Response (JSON)
{
  "query": "ACSC",
  "kind": "payment_status",
  "matches": [
    {
      "kind": "payment_status",
      "code": "ACSC",
      "name": "Accepted settlement completed",
      "definition": "Settled on the debtor’s account.",
      "usedIn": "pain.002 / pacs.002 GrpSts, PmtInfSts, TxSts",
      "reference": "https://iso20022-navigator.com/iso20022-status-codes/acsc"
    }
  ]
}