Payment confirmation

The payment confirmation guides you through the process of how to retrieve a list of payment statuses as collections, then retrieve a payment status item and finally confirm that a retrieval of a payment status is successful.

A payment status can originate from your Bank or transition through the TIS proprietary mapping service to enrich its content, providing you with a harmonized status report. You will receive the Bank's original payment status by default. To receive the TIS proprietary payment status, you need to log onto the TIS web portal and click on Administration -> System Integration -> Client System Integration -> scroll down -> click on payment statuses –> and check the Receive TIS payment status box.

1. Collections: retrieve a list of payment statuses

To retrieve a list of your available payment statuses, you need to include the file-format, e.g. "PAIN_002_001_02" and the client-system-id associated with your API client as query parameters in the URI.

curl --request GET \
     --url 'https://api-mtls.eu-test.tispayments.com:443/rest/api/v1/payment-statuses?client-system-id=<client_system_name>&file-format=<file_format>' \
     --header 'accept: application/json'
{
  "pageNumber": 1,
  "numberOfPages": 5,
  "pageSize": 50,
  "totalNumberOfElements": 240,
  "content": [
    {
      "fileMetadata": {
        "fileId": "112233",
        "filename": "file-name",
        "fileFormat": "PAIN_002_001_02",
        "checksum": "{sha-1}b170b8f6c5d93a1ddb5d32c2df8709bce621e040",
        "tenantId": "1234",
        "createdOn": "2018-10-18T06:37:35.036"
      },
      "links": [
        "#/components/schemas/FileDownloadLink",
        "#/components/schemas/FileDownloadConfirmationLink"
      ]
    }
  ],
  "links": [
    {
      "rel": "NextPage",
      "href": "https://api-mtls.eu.tispayments.com/v1/payment-statuses/108851654546147?client-system-id=101&page-size=10&page-number=2"
    }
  ]
}

2. Item: retrieve a payment status

Now you can use the hateoas link "href" returned in step 1 to retrieve a singleton payment status by including your client-system-id as a query. The response returns the payment status in a supported data format, e.g. PAIN_002_001_02.

curl --request GET \
     --url 'https://api-mtls.eu-test.tispayments.com:443/rest/api/v1/payment-statuses/<file_ID>?client-system-id=<client_system_name>' \
     --header 'accept: application/octet-stream'
<?xml version="1.0"  encoding="UTF-8"?>
<Document
    xmlns="urn:iso:std:iso:20022:tech:xsd:pain.002.001.02">
    <pain.002.001.02>
        <GrpHdr>
            <MsgId>1706609106889</MsgId>
            <CreDtTm>2017-09-28T14:33:26</CreDtTm>
        </GrpHdr>
        <OrgnlGrpInfAndSts>
            <OrgnlMsgId>4B3Z9PZVJZPTC4FVH33L0WBDY32RKR</OrgnlMsgId>
            <OrgnlMsgNmId>Other Format</OrgnlMsgNmId>
            <OrgnlCreDtTm>2017-09-28T14:33:26</OrgnlCreDtTm>
            <OrgnlNbOfTxs>1</OrgnlNbOfTxs>
            <GrpSts>RJCT</GrpSts>
        </OrgnlGrpInfAndSts>
        <TxInfAndSts>
            <OrgnlInstrId>IBIRMFFTUMBPQHQ</OrgnlInstrId>
            <StsRsnInf>
                <StsRsn>
                    <Prtry>[BGMREF: 6510000051] Deviated Order</Prtry>
                </StsRsn>
            </StsRsnInf>
            <StsRsnInf>
                <StsRsn>
                    <Prtry>er Name is not allowed for the Ord</Prtry>
                </StsRsn>
            </StsRsnInf>
            <StsRsnInf>
                <StsRsn>
                    <Prtry>ering Account. [IDOC Fields :EDKA1</Prtry>
                </StsRsn>
            </StsRsnInf>
            <StsRsnInf>
                <StsRsn>
                    <Prtry>(ZA or AG): NAME1]</Prtry>
                </StsRsn>
            </StsRsnInf>
            <OrgnlTxRef>
                <Amt>
                    <InstdAmt Ccy="EUR">100</InstdAmt>
                </Amt>
                <Dbtr>
                    <Nm>German Office</Nm>
                    <PstlAdr>
                        <Ctry>DE</Ctry>
                        <AdrLine>Hauptstr. 1, 12345 Musterstadt</AdrLine>
                    </PstlAdr>
                    <CtryOfRes>DE</CtryOfRes>
                </Dbtr>
                <DbtrAcct>
                    <Id>
                        <IBAN>FR1420041010050500013M02606</IBAN>
                    </Id>
                    <Ccy>EUR</Ccy>
                </DbtrAcct>
                <Cdtr>
                    <Nm>Test</Nm>
                    <PstlAdr>
                        <Ctry>DE</Ctry>
                    </PstlAdr>
                </Cdtr>
                <CdtrAcct>
                    <Id>
                        <IBAN>DE60123123123</IBAN>
                    </Id>
                </CdtrAcct>
            </OrgnlTxRef>
        </TxInfAndSts>
    </pain.002.001.02>
</Document>

3. Confirm: a payment status is retrieved

The final step is to confirm that a payment status is retrieved by your server. This ensures a payment status that is already retrieved, is no longer returned when calling the API.

curl --request DELETE \
     --url 'https://api-mtls.eu-test.tispayments.com:443/rest/api/v1/payment-statuses/<<file_ID>>?client-system-id=<client_system_name>' \
     --header 'accept: application/json'
204

Payment statuses table

You will be able to retrieve the below payment statuses based on your configuration and ISO XML version PAIN_002_001_03.

Original Bank Payment Status

Status code from incoming PAIN.002 ISO XML filePayment Status in UI (header/batch level):Payment Status in UI (item/transaction level):
ACCRBank response unclearBank response unclear
*any other non-ISO code/unknown status codeBank response unclearBank response unclear
RCVDPayment still in processItem still in process
PDNGPayment still in processItem still in process
ACCPTechnical Validation by Bank SuccessfulTechnical Validation by Bank Successful
ACTCAll payments were acceptedItem accepted by bank
ACSPAll payments were acceptedItem accepted by bank
ACSCAll payments were acceptedItem accepted by bank
ACWCAll payments were acceptedItem accepted by bank
ACPTAll payments were acceptedItem accepted by bank
PARTPayment was partially acceptedN/A (*in order for the batch to be in status “Payment was partially accepted”, there must be at least one transaction accepted by bank and at least one transaction rejected by bank)
RJCTAll payments were rejectedItem rejected by bank

TIS Proprietary Payment Status

Status code from incoming PAIN.002 ISO XML filePayment Status in UI (header/batch level):Payment Status in UI (item/transaction level):
ACTCBank response unclearBank response unclear
PDNGPayment still in processItem still in process
ACCPAll payments were acceptedAll payments were accepted
PARTPayment was partially acceptedN/A (*in order for the batch to be in status “Payment was partially accepted”, there must be at least one transaction accepted by bank and at least one transaction rejected by bank)
RJCTAll payments were rejected” or “Rejected by Approvers” or “Rejected by Specialist” or “Rejected by ComplianceItem rejected by bank” or “Rejected by Approver” or “Rejected by Specialist” or “Rejected by Compliance”