Page last modified 13:21, 28 Feb 2014 by juhako

Status Report (pain.002) input files

    General 

    The Status Reports are used by bank to inform the corporate about the status of an instruction - either single transaction or a batch.

    The input files should be valid payment initiation files - use the validation tool first.
     
    The selection of  the simulated status is done by embedding a trigger to the input file.
    • For File level rejection the trigger is embedded to MessageIdentification field (MsgId).
    <?xml version="1.0" encoding="UTF-8"?>
    <Document mlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="urn:iso:std:iso:20022:tech:xsd:pain.001.001.03">
        <CstmrCdtTrfInitn>
            <GrpHdr>
                <MsgId>ERR{ReasonCode}/MsgId>
     
    • For Batch level rejection the trigger is embedded to PaymentInformationIdentification field (PmtInfId).
    <PmtInf>
        <PmtInfId>ERR{ReasonCode}</PmtInfId>
        <PmtMtd>TRF</PmtMtd>
        <ReqdExctnDt>2014-01-01</ReqdExctnDt>
    ...
    • For Transaction level rejection thetrigger code is placed on name of the counter party of the transaction (Cdtr/Nm in Credit Transfers, Dbtr/Nm in Direct Debits).
    <Cdtr>
        <Nm>ERR{ReasonCode}</Nm>
        <PstlAdr>
            <TwnNm>Tampere</TwnNm>
            <Ctry>FI</Ctry>
        </PstlAdr>
    </Cdtr>

     

    List of trigger codes

    The format of a trigger code is following:

    ERR{ ReasonCode }{R type} for example ERRAC01RJCT

    The full list of availabe trigger codes below:

    Trigger code ISO code Description (en) Description (nl) SCT SDD
    ERRAC01RJCT AC01 Account incorrect Rek.nummer onjuist x x
    ERRAC04RJCT AC04 Account closed Rek.nummer gesloten   x
    ERRAG01RJCT AG01 Transaction forbidden Administratieve reden   x
    ERRAG02RJCT AG02 Invalid file format Fout bestandsformaat x x
    ERRAM04RJCT AM04 Insufficient funds     x
    ERRAM05RJCT AM05 Duplicate collection Dubbele incasso x x
    ERRBE01RJCT BE01 Reason not specified Administratieve reden   x
    ERRCNORRJCT CNOR BIC not registered BIC niet aangesloten x x
    ERRDNORRJCT DNOR BIC not registered BIC niet aangesloten x x
    ERRFF01RJCT FF01 Invalid file format Fout bestandsformaat x x
    ERRMD01RJCT MD01 No mandate Onjuiste machtiging   x
    ERRMD02RJCT MD02 Incorrect mandate Onjuiste machtiging   x
    ERRMD07RJCT MD07 Reason not specified Administratieve reden   x
    ERRMS02RJCT MS02 Refusal by the Debtor Oneens met incasso   x
    ERRMS03RJCT MS03 Reason not specified Administratieve reden x x
    ERRRC01RJCT RC01 BIC Incorrect Onbekende BIC x x
    ERRRR01RJCT RR01 Reason not specified Administratieve reden x x
    ERRRR02RJCT RR02 Reason not specified Administratieve reden x x
    ERRRR03RJCT RR03 Reason not specified Administratieve reden x x
    ERRRR04RJCT RR04 Reason not specified Administratieve reden x x
    ERRSL01RJCT SL01 Reason not specified Administratieve reden   x
    ERRTM01RJCT TM01 Reason not specified Administratieve reden x  
    ERRAC06RJCT AC06 Reason not specified Administratieve reden   x

    Special cases

    The XMLdation Simulator tool always generates one pain.002 status report file per one input file. This functionality creates a limitation in the following scenario:

    Assume e.g. an SCT payment file, which has an incorrect account number on batch level and contains an invalid BIC on transaction level. The simultaneous presence of these two errors in one and the same message file can manifest itself in two different ways: either they are found in one and the same batch or they appear in different batches. In Rabobank production environment, both situations will always generate two separate pain.002 files, one reporting the error on batch level and one reporting the error on transaction level. 

    The simulator will generate the following output for the above described cases:

    • The Batch error and Transaction error are included in the same batch – Only the error on batch level will be reported in the generated pain.002 file
    • The Batch error and Transaction error are included in different batches – Bothe the error on batch level and the error on transaction level will be reported, but within the same pain.002 message

     

    This situation in Rabobank production environment can only be simulated for both cases by presenting the error on a batch level and the error on a transaction level in two separate input SCT or SDD files. 

    Example 1

    In the following examples this will be illustrated. The first example is an SCT file with the error message ERRAC01RJCT on batch level (meaning that the account number is incorrect) and the error message ERRRC01RJCT on transaction level (meaning that the BIC is incorrect) in the same batch:

    <?xml version="1.0" encoding="UTF-8"?>
    <Document xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="urn:iso:std:iso:20022:tech:xsd:pain.001.001.03">
        <CstmrCdtTrfInitn>
            <GrpHdr>
                <MsgId>MsgId-SCT-20140101-01</MsgId>
                <CreDtTm>2014-01-01T12:12:01</CreDtTm>
                <NbOfTxs>1</NbOfTxs>
                <CtrlSum>19.87</CtrlSum>
                <InitgPty>
                    <Nm>dhr. D. ebiteur</Nm>
                </InitgPty>
            </GrpHdr>
            <PmtInf>
                <PmtInfId>ERRAC01RJCT</PmtInfId>
                <PmtMtd>TRF</PmtMtd>
                <ReqdExctnDt>2014-01-01</ReqdExctnDt>
                <Dbtr>
                    <Nm>dhr. D. ebiteur</Nm>
                </Dbtr>
                <DbtrAcct>
                    <Id>
                        <IBAN>NL16WIND0123456789</IBAN>
                    </Id>
                </DbtrAcct>
                <DbtrAgt>
                    <FinInstnId>
                        <BIC>RABONL2U</BIC>
                    </FinInstnId>
                </DbtrAgt>
                <CdtTrfTxInf>
                    <PmtId>
                        <EndToEndId>SCT-20140101-01</EndToEndId>
                    </PmtId>
                    <Amt>
                        <InstdAmt Ccy="EUR">19.87</InstdAmt>
                    </Amt>
                    <CdtrAgt>
                        <FinInstnId>
                            <BIC>RABONL2U</BIC>
                        </FinInstnId>
                    </CdtrAgt>
                    <Cdtr>
                        <Nm>ERRRC01RJCT</Nm>
                    </Cdtr>
                    <CdtrAcct>
                        <Id>
                            <IBAN>NL13TEST0123456789</IBAN>
                        </Id>
                    </CdtrAcct>
                </CdtTrfTxInf>
            </PmtInf>
        </CstmrCdtTrfInitn>
    </Document>

     

    In the Simulator, this input file will generate one pain.002 reporting only the error on batch level. So, the result is incomplete and therefore not desired. By creating the following two separate input files one will avoid this undesired output:

    File 1:

    <?xml version="1.0" encoding="UTF-8"?>
    <Document xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="urn:iso:std:iso:20022:tech:xsd:pain.001.001.03">
        <CstmrCdtTrfInitn>
            <GrpHdr>
                <MsgId>MsgId-SCT-20140101-01</MsgId>
                <CreDtTm>2014-01-01T12:12:01</CreDtTm>
                <NbOfTxs>1</NbOfTxs>
                <CtrlSum>19.87</CtrlSum>
                <InitgPty>
                    <Nm>dhr. D. ebiteur</Nm>
                </InitgPty>
            </GrpHdr>
            <PmtInf>
                <PmtInfId>ERRAC01RJCT</PmtInfId>
                <PmtMtd>TRF</PmtMtd>
                <ReqdExctnDt>2014-01-01</ReqdExctnDt>
                <Dbtr>
                    <Nm>dhr. D. ebiteur</Nm>
                </Dbtr>
                <DbtrAcct>
                    <Id>
                        <IBAN>NL16WIND0123456789</IBAN>
                    </Id>
                </DbtrAcct>
                <DbtrAgt>
                    <FinInstnId>
                        <BIC>RABONL2U</BIC>
                    </FinInstnId>
                </DbtrAgt>
                <CdtTrfTxInf>
                    <PmtId>
                        <EndToEndId>SCT-20140101-01</EndToEndId>
                    </PmtId>
                    <Amt>
                        <InstdAmt Ccy="EUR">19.87</InstdAmt>
                    </Amt>
                    <CdtrAgt>
                        <FinInstnId>
                            <BIC>RABONL2U</BIC>
                        </FinInstnId>
                    </CdtrAgt>
                    <Cdtr>
                        <Nm>Dhr. C. Rediteur</Nm>
                    </Cdtr>
                    <CdtrAcct>
                        <Id>
                            <IBAN>NL13TEST0123456789</IBAN>
                        </Id>
                    </CdtrAcct>
                </CdtTrfTxInf>
            </PmtInf>
        </CstmrCdtTrfInitn>
    </Document>

     

    File 2:

    <?xml version="1.0" encoding="UTF-8"?>
    <Document xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="urn:iso:std:iso:20022:tech:xsd:pain.001.001.03">
        <CstmrCdtTrfInitn>
            <GrpHdr>
                <MsgId>MsgId-SCT-20140101-01</MsgId>
                <CreDtTm>2014-01-01T12:12:01</CreDtTm>
                <NbOfTxs>1</NbOfTxs>
                <CtrlSum>19.87</CtrlSum>
                <InitgPty>
                    <Nm>dhr. D. ebiteur</Nm>
                </InitgPty>
            </GrpHdr>
            <PmtInf>
                <PmtInfId>PmtInfId-SCT-20140101-01</PmtInfId>
                <PmtMtd>TRF</PmtMtd>
                <ReqdExctnDt>2014-01-01</ReqdExctnDt>
                <Dbtr>
                    <Nm>dhr. D. ebiteur</Nm>
                </Dbtr>
                <DbtrAcct>
                    <Id>
                        <IBAN>NL16WIND0123456789</IBAN>
                    </Id>
                </DbtrAcct>
                <DbtrAgt>
                    <FinInstnId>
                        <BIC>RABONL2U</BIC>
                    </FinInstnId>
                </DbtrAgt>
                <CdtTrfTxInf>
                    <PmtId>
                        <EndToEndId>SCT-20140101-01</EndToEndId>
                    </PmtId>
                    <Amt>
                        <InstdAmt Ccy="EUR">19.87</InstdAmt>
                    </Amt>
                    <CdtrAgt>
                        <FinInstnId>
                            <BIC>RABONL2U</BIC>
                        </FinInstnId>
                    </CdtrAgt>
                    <Cdtr>
                        <Nm>ERRRC01RJCT</Nm>
                    </Cdtr>
                    <CdtrAcct>
                        <Id>
                            <IBAN>NL13TEST0123456789</IBAN>
                        </Id>
                    </CdtrAcct>
                </CdtTrfTxInf>
            </PmtInf>
        </CstmrCdtTrfInitn>
    </Document>

    Example 2

    The second example isan SCT file with the error message ERRAC01RJCT on batch level and the error message ERRRC01RJCT on transaction level in different batches:

    <?xml version="1.0" encoding="UTF-8"?>
    <Document xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="urn:iso:std:iso:20022:tech:xsd:pain.001.001.03">
        <CstmrCdtTrfInitn>
            <GrpHdr>
                <MsgId>MsgId-SCT-20140101-01</MsgId>
                <CreDtTm>2014-01-01T12:12:01</CreDtTm>
                <NbOfTxs>2</NbOfTxs>
                <CtrlSum>19.88</CtrlSum>
                <InitgPty>
                    <Nm>dhr. I. Nitiatiefnemer</Nm>
                </InitgPty>
            </GrpHdr>
            <PmtInf>
                <PmtInfId> ERRAC01RJCT </PmtInfId>
                <PmtMtd>TRF</PmtMtd>
                <ReqdExctnDt>2014-01-01</ReqdExctnDt>
                <Dbtr>
                    <Nm>Jonkheer D. ebiteur de eerste</Nm>
                </Dbtr>
                <DbtrAcct>
                    <Id>
                        <IBAN>NL16WIND0123456789</IBAN>
                    </Id>
                </DbtrAcct>
                <DbtrAgt>
                    <FinInstnId>
                        <BIC>RABONL2U</BIC>
                    </FinInstnId>
                </DbtrAgt>
                <CdtTrfTxInf>
                    <PmtId>
                        <EndToEndId>SCT-20140101-01</EndToEndId>
                    </PmtId>
                    <Amt>
                        <InstdAmt Ccy="EUR">9.94</InstdAmt>
                    </Amt>
                    <CdtrAgt>
                        <FinInstnId>
                            <BIC>RABONL2U</BIC>
                        </FinInstnId>
                    </CdtrAgt>
                    <Cdtr>
                        <Nm>Dhr. C. Rediteur</Nm>
                    </Cdtr>
                    <CdtrAcct>
                        <Id>
                            <IBAN>NL13TEST0123456789</IBAN>
                        </Id>
                    </CdtrAcct>
                </CdtTrfTxInf>
            </PmtInf>
            <PmtInf>
                <PmtInfId>PmtInfId-SCT-20140101-01</PmtInfId>
                <PmtMtd>TRF</PmtMtd>
                <ReqdExctnDt>2014-01-01</ReqdExctnDt>
                <Dbtr>
                    <Nm>Jonkheer D. ebiteur de tweede</Nm>
                </Dbtr>
                <DbtrAcct>
                    <Id>
                        <IBAN>NL83DEBT0123456789</IBAN>
                    </Id>
                </DbtrAcct>
                <DbtrAgt>
                    <FinInstnId>
                        <BIC>RABONL2U</BIC>
                    </FinInstnId>
                </DbtrAgt>
                <CdtTrfTxInf>
                    <PmtId>
                        <EndToEndId>SCT-20140101-01</EndToEndId>
                    </PmtId>
                    <Amt>
                        <InstdAmt Ccy="EUR">9.94</InstdAmt>
                    </Amt>
                    <CdtrAgt>
                        <FinInstnId>
                            <BIC>RABONL2U</BIC>
                        </FinInstnId>
                    </CdtrAgt>
                    <Cdtr>
                        <Nm>ERRRC01RJCT</Nm>
                    </Cdtr>
                    <CdtrAcct>
                        <Id>
                            <IBAN>NL13TEST0123456789</IBAN>
                        </Id>
                    </CdtrAcct>
                </CdtTrfTxInf>
            </PmtInf>
        </CstmrCdtTrfInitn>
    </Document>
     

     

    By running this input file in the Simulator, we will have one pain.002 file as a result. Although this pain.002 file reports both the error on batch level and the one on transaction level, we will only have one pain.002 output file instead of two pain.002 output files, like in production. Thus, the result is complete but not desired. By dividing the two batches over two separate input files, one will avoid this unwanted result:

    File 1:

    <?xml version="1.0" encoding="UTF-8"?>
    <Document xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="urn:iso:std:iso:20022:tech:xsd:pain.001.001.03">
        <CstmrCdtTrfInitn>
            <GrpHdr>
                <MsgId>MsgId-SCT-20140101-01</MsgId>
                <CreDtTm>2014-01-01T12:12:01</CreDtTm>
                <NbOfTxs>1</NbOfTxs>
                <CtrlSum>9.94</CtrlSum>
                <InitgPty>
                    <Nm>dhr. I. Nitiatiefnemer</Nm>
                </InitgPty>
            </GrpHdr>
            <PmtInf>
                <PmtInfId>ERRAC01RJCT</PmtInfId>
                <PmtMtd>TRF</PmtMtd>
                <ReqdExctnDt>2014-01-01</ReqdExctnDt>
                <Dbtr>
                    <Nm>Jonkheer D. ebiteur de eerste</Nm>
                </Dbtr>
                <DbtrAcct>
                    <Id>
                        <IBAN>NL16WIND0123456789</IBAN>
                    </Id>
                </DbtrAcct>
                <DbtrAgt>
                    <FinInstnId>
                        <BIC>RABONL2U</BIC>
                    </FinInstnId>
                </DbtrAgt>
                <CdtTrfTxInf>
                    <PmtId>
                        <EndToEndId>SCT-20140101-01</EndToEndId>
                    </PmtId>
                    <Amt>
                        <InstdAmt Ccy="EUR">9.94</InstdAmt>
                    </Amt>
                    <CdtrAgt>
                        <FinInstnId>
                            <BIC>RABONL2U</BIC>
                        </FinInstnId>
                    </CdtrAgt>
                    <Cdtr>
                        <Nm>Dhr. C. Rediteur</Nm>
                    </Cdtr>
                    <CdtrAcct>
                        <Id>
                            <IBAN>NL13TEST0123456789</IBAN>
                        </Id>
                    </CdtrAcct>
                </CdtTrfTxInf>
            </PmtInf>
        </CstmrCdtTrfInitn>
    </Document>
     

     

    File 2:

    <?xml version="1.0" encoding="UTF-8"?>
    <Document xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="urn:iso:std:iso:20022:tech:xsd:pain.001.001.03">
        <CstmrCdtTrfInitn>
            <GrpHdr>
                <MsgId>MsgId-SCT-20140101-01</MsgId>
                <CreDtTm>2014-01-01T12:12:01</CreDtTm>
                <NbOfTxs>1</NbOfTxs>
                <CtrlSum>9.94</CtrlSum>
                <InitgPty>
                    <Nm>dhr. I. Nitiatiefnemer</Nm>
                </InitgPty>
            </GrpHdr>
            <PmtInf>
                <PmtInfId>PmtInfId-SCT-20140101-01</PmtInfId>
                <PmtMtd>TRF</PmtMtd>
                <ReqdExctnDt>2014-01-01</ReqdExctnDt>
                <Dbtr>
                    <Nm>Jonkheer D. ebiteur de tweede</Nm>
                </Dbtr>
                <DbtrAcct>
                    <Id>
                        <IBAN>NL83DEBT0123456789</IBAN>
                    </Id>
                </DbtrAcct>
                <DbtrAgt>
                    <FinInstnId>
                        <BIC>RABONL2U</BIC>
                    </FinInstnId>
                </DbtrAgt>
                <CdtTrfTxInf>
                    <PmtId>
                        <EndToEndId>SCT-20140101-01</EndToEndId>
                    </PmtId>
                    <Amt>
                        <InstdAmt Ccy="EUR">9.94</InstdAmt>
                    </Amt>
                    <CdtrAgt>
                        <FinInstnId>
                            <BIC>RABONL2U</BIC>
                        </FinInstnId>
                    </CdtrAgt>
                    <Cdtr>
                        <Nm>ERRRC01RJCT</Nm>
                    </Cdtr>
                    <CdtrAcct>
                        <Id>
                            <IBAN>NL13TEST0123456789</IBAN>
                        </Id>
                    </CdtrAcct>
                </CdtTrfTxInf>
            </PmtInf>
        </CstmrCdtTrfInitn>
    </Document>
     
    Menu