Integration via ISO - Step 4: Payout Status
Payment Status
TxB provides a global framework for monitoring the lifecycle of every transaction. Every transaction processed by TxB transitions through a standardized set of statuses, this uniformity ensures that Widget Co’s systems can handle diverse payment types using a single logic flow.
In the ISO 20022 standard, the Customer Payment Status Report (PSR) is supported by the pain.002 message. There are three levels of pain.002 provided by TxB:
- File Level (Payment Request Received): Indicates whether the request is Accepted (ACTC) or Rejected (RJTC).
- Batch Level (Batch Processing): Applicable for ACH only; reflects the status of the overall payment batch.
- Payment Level (Payment Processing): Shows the status of each individual payment within a payment instruction pain.001.
File Level pain.002
The File Level pain.002 serves as a feedback mechanism regarding the processing of a previously submitted payment initiation file (pain.001). The file-level status pertains to the Group Status <GrpSts>, which communicates the overall outcome of the entire file submission.
| pain.002 Group Status | Type | Description |
|---|---|---|
| ACTC | Terminal | Accepted Technical Validation: The file has passed all syntax and schema validations. It is accepted for further processing. |
| RJCT | Terminal | Rejected: The entire file is rejected due to a schema error, a duplicate ID, or other reasons. |
Batch and Payment Level pain.002
The Batch and Payment Information Level pain.002 is the feedback regarding a particular group of payments or individual payments within a file. This information is located in the “Batch level” status <PmtInfSts> or "Payment Level" status <TxSts>.
Widget Co. reconciles payments at the individual payment level, so they do not subscribe to the batch level pain.002.
| pain.002 Payment Status | Type | Description |
|---|---|---|
| PDNG | Intermediate | Pending: Processing is delayed (e.g., due to insufficient funds or currency cut-off). |
| ACCP | Intermediate | Accepted Customer Profile: The request has passed initial validation and is queued for processing. |
| ACSP | Terminal / Intermediate | Accepted Settlement In Process: The payment has been dispatched to the clearing network (e.g., Fedwire, NACHA). ACSP may be a Terminal status if TxB does not received settlement confirmation from the Payee’s Bank. |
| ACSC | Terminal | Accepted Settlement Complete: Depending on the payment rail / payment destination, either the network or the agent bank or beneficiary bank has confirmed receipt of funds. |
| RJCT | Terminal | Returned / Rejected: The payment was rejected by the receiving bank; funds are credited back to the debtor account at TxB. or TxB stopped the payment due to an error (e.g., invalid account details, currency rule validation fail etc.). StsRsnInf tag to provide additonal details for the same. |
Widget Co. maintains full payment status visibility through pain.002 in 15 minutes intervals.
Below Payment Lifecycle Diagram shows the ISO 20022 codes:

pain002 Status Examples
pain002 File Level Status
ACTC: The file has passed all syntax and schema validations. It is accepted for further processing.
<OrgnlGrpInfAndSts>
<OrgnlMsgId>GS00LPXNBKR</OrgnlMsgId>
<OrgnlMsgNmId>pain.001.001.08</OrgnlMsgNmId>
<OrgnlNbOfTxs>1</OrgnlNbOfTxs>
<OrgnlCtrlSum>122.0</OrgnlCtrlSum>
<GrpSts>ACTC</GrpSts> <!-- Success Status -->
<StsRsnInf>
<!-- Additional information -->
<AddtlInf>File accepted post technical and profile validations</AddtlInf>
<AddtlInf>Original File Name: GS00LPXNBKR</AddtlInf>
</StsRsnInf>
</OrgnlGrpInfAndSts>RJCT: The entire file is rejected due to a schema error, a duplicate ID, or other reasons.
<OrgnlGrpInfAndSts>
<OrgnlMsgId>GS1AZL9XJZX</OrgnlMsgId>
<OrgnlMsgNmId>pain.001.001.08</OrgnlMsgNmId>
<GrpSts>RJCT</GrpSts> <!-- Rejection Status -->
<StsRsnInf>
<Rsn>
<Cd>BE05</Cd> <!-- Status Reason Code -->
</Rsn>
<!-- Additional information -->
<AddtlInf>FPCON0002: Payment file failed. Account not authorized for payments. All payments rejected.</AddtlInf>
<AddtlInf>Original File Name: GS1AZL9XJZX</AddtlInf>
</StsRsnInf>
</OrgnlGrpInfAndSts>pain002 Batch Level Status
<OrgnlGrpInfAndSts>
<OrgnlMsgId>GSQTZ8BVAYW4</OrgnlMsgId>
<OrgnlMsgNmId>pain.001.001.08</OrgnlMsgNmId>
<OrgnlNbOfTxs>1</OrgnlNbOfTxs>
<OrgnlCtrlSum>325.0000</OrgnlCtrlSum>
</OrgnlGrpInfAndSts>
<OrgnlPmtInfAndSts>
<OrgnlPmtInfId>955b566cf036472b91e3ca72897004a9</OrgnlPmtInfId>
<PmtInfSts>ACCP</PmtInfSts> <!-- Batch Success Status -->
<StsRsnInf>
<Rsn>
<Cd>NARR</Cd>
</Rsn>
<!-- Additional information -->
<AddtlInf>Accepted post profile and tech validations</AddtlInf>
</StsRsnInf>
</OrgnlPmtInfAndSts>pain002 Payment Level Status
PDNG: Processing is delayed (e.g., due to insufficient funds or currency cut-off).
<OrgnlPmtInfAndSts>
<OrgnlPmtInfId>ISO_B2B_USD</OrgnlPmtInfId>
<TxInfAndSts>
<OrgnlEndToEndId>GSABCDFR3QK</OrgnlEndToEndId>
<TxSts>PDNG</TxSts> <!-- Payment Status -->
<StsRsnInf>
<Rsn>
<Cd>NARR</Cd>
</Rsn>
<!-- Additional information -->
<AddtlInf>Date Warehoused</AddtlInf>
</StsRsnInf>
<AcctSvcrRef>GI12444555955</AcctSvcrRef>
<OrgnlTxRef>
<Amt>
<InstdAmt Ccy="USD">29.00</InstdAmt>
</Amt>
</OrgnlTxRef>
</TxInfAndSts>
</OrgnlPmtInfAndSts>ACCP: The request has passed initial validation and is queued for processing.
<OrgnlPmtInfAndSts>
<OrgnlPmtInfId>ISO_B2B_USD</OrgnlPmtInfId>
<TxInfAndSts>
<OrgnlEndToEndId>GSABCDFR3QK</OrgnlEndToEndId>
<TxSts>ACCP</TxSts> <!-- Payment Status -->
<StsRsnInf>
<Rsn>
<Cd>NARR</Cd>
</Rsn>
</StsRsnInf>
<AcctSvcrRef>GI12444555955</AcctSvcrRef>
<OrgnlTxRef>
<Amt>
<InstdAmt Ccy="USD">29.00</InstdAmt>
</Amt>
</OrgnlTxRef>
</TxInfAndSts>
</OrgnlPmtInfAndSts>ACSP (with FX): The payment has been dispatched to the clearing network (e.g., Fedwire, NACHA). ACSP may be a Terminal status if TxB does not received settlement confirmation from the Payee’s Bank
<OrgnlPmtInfAndSts>
<OrgnlPmtInfId>GS3615043619aaaa3245</OrgnlPmtInfId>
<TxInfAndSts>
<OrgnlInstrId>1014778TPaaa</OrgnlInstrId>
<OrgnlEndToEndId>GSWTKYXOD6BQ</OrgnlEndToEndId>
<TxSts>ACSP</TxSts> <!-- Payment Status -->
<StsRsnInf>
<Rsn>
<Cd>NARR</Cd>
</Rsn>
<!-- Additional information with FX details -->
<AddtlInf>Payment accepted and settlement in progress</AddtlInf>
<AddtlInf>XchgRate = 0.59116084</AddtlInf> <!-- FX exchange rate -->
<AddtlInf>FundingAmt = 634.02</AddtlInf> <!-- Funding ccy amount -->
<AddtlInf>XchangeTime = 2025-05-19T15:49:30.590Z</AddtlInf>
</StsRsnInf>
<AcctSvcrRef>GI2513900001002</AcctSvcrRef>
<OrgnlTxRef>
<Amt>
<InstdAmt Ccy="CAD">1072.50</InstdAmt> <!-- Payment amount instructed -->
</Amt>
</OrgnlTxRef>
</TxInfAndSts>
</OrgnlPmtInfAndSts>ACSC: Depending on the payment rail / payment destination, either the network or the agent bank or beneficiary bank has confirmed receipt of funds.
<OrgnlPmtInfAndSts>
<OrgnlPmtInfId>ISO_B2B_GBP</OrgnlPmtInfId>
<TxInfAndSts>
<OrgnlEndToEndId>GSVQIWXR3QK</OrgnlEndToEndId>
<TxSts>ACSC</TxSts> <!-- Payment Status -->
<StsRsnInf>
<Rsn>
<Cd>NARR</Cd>
</Rsn>
<!-- Additional information -->
<AddtlInf>Payment accepted and settlement completed</AddtlInf>
</StsRsnInf>
<AcctSvcrRef>GI1233456789</AcctSvcrRef>
<OrgnlTxRef>
<Amt>
<InstdAmt Ccy="GBP">29.00</InstdAmt>
</Amt>
</OrgnlTxRef>
</TxInfAndSts>
</OrgnlPmtInfAndSts>RJCT: TxB stopped the payment due to an error (e.g., invalid account details, currency rule validation fail etc.).
<OrgnlPmtInfAndSts>
<OrgnlPmtInfId>0009610000017</OrgnlPmtInfId>
<TxInfAndSts>
<OrgnlInstrId>0009610000017</OrgnlInstrId>
<OrgnlEndToEndId>GSSON3MOGTZT4NDPIH</OrgnlEndToEndId>
<TxSts>RJCT</TxSts> <!-- Rejected Payment Status -->
<StsRsnInf>
<Rsn>
<Cd>AC03</Cd> <!-- Status Reason Code -->
</Rsn>
<!-- Additional information with description -->
<AddtlInf>Creditor Account Number is invalid/missing</AddtlInf>
</StsRsnInf>
<AcctSvcrRef>1000123456789ABCDE</AcctSvcrRef>
<OrgnlTxRef>
<Amt>
<InstdAmt Ccy="MXN">5000.00</InstdAmt>
</Amt>
</OrgnlTxRef>
</TxInfAndSts>
</OrgnlPmtInfAndSts>Additional information
| 1: Connect | 2: Create Account | 3: Payout | 4: Payout Status | 5: Account Status | 6: Reconcile |
|---|
Was this page useful?
Give feedback to help us improve developer.gs.com and serve you better.