Liigu edasi põhisisu juurde

Gateway Technical Documentation

 

Access and Basics

How to start

Before starting the registration process your organisation must meet several prerequisites in order to be successfully onboarded as a customer for Coop Pank Gateway API:

  • You must have a valid customer contract with Coop Pank.
  • You must sign an additional Coop Pank Gateway contract.
  • You must obtain an authentication certificate(s):
    • If you use the certificate for authentication issued by SK ID Solutions AS, you can use it for both Sandbox and Live. For operators it is mandatory to use the authentication certificate issued by SK ID Solutions AS. For single clients it is strongly suggested.
    • If you request the certificates from Coop Pank CA, you need test certificate for Sandbox and the other one for Live environment.

On-boarding process for starting to use live environment:

  • The first thing you should do is submit the application for Coop Pank Gateway at Coop Pank webpage. In case you need any help with services, contact your personal Business Client Manager.
  • Based on your application, IT support team prepares your dedicated Sandbox test environment.
  • For testing in Sandbox an authentication certificate is needed. Sandbox accepts certificates issued by SK ID Solutions AS or by Coop Pank. Additional information about requesting an authentication certificate from Coop Pank.
  • Development and testing of your integrations can start after receiving a confirmation email.
  • After you are done with testing and ready to proceed to live, inform your Business Client Manager.
  • In case you used the authentication certificate issued by Coop Pank for testing, you should request for another certificate for live environment. Live environment can not be used with test certificate. If you used the authentication certificate issued by SK ID Solutions AS, you can continue to use it for live as well.
  • Business Client Manager prepares and signs the Coop Pank Gateway contract.
  • After your contract is signed you will receive a confirmation email that your services are ready to use.

For additional help, please contact your personal Business Client Manager or the IT Support Team gateway@cooppank.ee.

 

 

Clients and connection schemes

It's possible to use the Gateway API services as a single client or as an operator.

Single clients

Using it as a single client means that client itself is the owner of the authentication certificate and connection software. Certificate provides access to one customer or legal entity only.

Operators/service providers and end users using their services

Operators or service providers are the intermediary. They themselves own a certificate and provide the service to multiple customers or legal entities. It is usually for accounting software providers and other similar business cases.

In this scheme there are two kinds of clients:

  • service provider itself (software owner, technical aggregator) - they are directly connected to Gateway API;
  • end user clients, who use Gateway API through service providers - not directly connected to Gateway API.

Only service provider connection software is using Gateway API services directly. End users are using the service provider software. For all requests we also need to know the end user - the actual client that uses the service provider. For this we require two HTTP headers in addition to regular expected input:

  • Client-Code (registration code)
  • Client-Country (country code in ISO 3166-1 alpha-2 format - issuing country of registration code)

If these are missing from the request, you will get a corresponding error.

 

 

Certificates

Authentication (connection) certificates are necessary for both test and live environments. Certificates are necessary for single clients and operators/service providers. Certificate identifies and confirms on transport layer that messages were sent by customer's software to the Bank.

  • You can use the certificate for authentication issued by SK ID Solutions AS, you can use it for both Sandbox and Live. For operators it is mandatory to use the authentication certificate issued by SK ID Solutions AS. For single clients it is strongly suggested. There is no need to exchange any files with the bank and you can start using immediately.
  • Alternatively you can request the certificates from Coop Pank CA, you need test certificate for Sandbox and the other one for Live environment. It is an SSL Base64 PEM certificate that also requires a key.

    Process for Coop Pank CA certificate generation (ignore if you are using SK ID Solution AS certificate):

    1. Follow the instructions to create the CSR file and private key.
    2. For Sandbox environment's certificate attach the CSR file when submitting the application for Coop Pank Gateway (CSR file does not have to be digitally signed).
    3. For Live environment's certificate send the CSR file to your personal Business Client Manager after you are done with testing. The CSR file must be digitally signed by the company's official representative (according to Estonian Business Registry).
    4. IT support team will sign it with CA certificate and will send you a generated certificate.

To verify your certificates and test the basic connection to the API you can use the Communication Test services service in both Live and Sandbox.

 

 

Environments

Gateway has two environments:

  • Live environment
  • Sandbox environment

Live

Live base URL is: https://cpgw.cooppank.ee/

Sandbox

Sandbox can be used to test your integrations when on-boarding or also any additional developments. It is technically also very similar to Live environment - the services, messages structure etc. is the same.

Sandbox base URL is: https://cpgw-sandbox.cooppank.ee/

 

 

Gateway API services

List of services which are available in the Gateway API.

SERVICEDESCRIPTION AND PURPOSESERVICESFORMATS
Generic Services   
Communication TestFor testing the connection and credentials (certificates).GET gateway/api/heartbeat
GET gateway/api/heartbeat/mq
POST gateway/api/heartbeat
XML
MessagingFor managing the messages (reading, deleting).GET gateway/api/messages/
GET gateway/api/messages/next
GET gateway/api/messages/count
POST gateway/api/messages/delete
response varies according to messages
AIS Services   
Account StatementGetting an account statement or list of transactions for a selected periodPOST gateway/api/account-statementXML camt.060.001.06 / camt.053.001.02
Account BalanceGetting account balancesPOST gateway/api/account-balanceXML camt.060.001.06 / XML camt.052.001.02
Automatic Account Statement

Generated every midnight for the previous twenty-four hours. It's generated for every account separately.  For customers with contracts. 

 

message in the response tableXML camt.053.001.02
Debit Credit Notification

For every transaction a new message will be generated immediately (in the response table). 

 

message in the response tableXML camt.054.001.02
PIS Services   
Payment InitiationService for Payment initiation. Service is used to initiate return payments.POST gateway/api/paymentXML pain.001.001.03 / pain.002.001.12

 

Messaging

One of the main functions of Coop Pank Gateway is the messaging service. On the database side, it consists of  two tables - request table and response table. Customer posts its requests to request table and gets its messages from response table.  By default the response table returns oldest unread first. Messaging process consists of three steps: posting a request, getting the response and deleting the response.

Flow of API requests:

POST [base-url]/gateway/api/payment                  # initiate payment request
GET [base-url]/gateway/api/messages/next              # receive response message 
# handle message on customer side
DELETE [base-url]/gateway/api/messages/[Message-Response-Id]    # delete read message to confirm it's received
POST [base-url]/gateway/api/account-statement       # initiate account statement request
GET [base-url]/gateway/api/messages/next            # receive response message with account statement data status
# handle message on customer side
DELETE [base-url]/gateway/api/messages/[Message-Response-Id]    # delete read message to confirm it's received 
POST [base-url]/gateway/api/account-balance       # initiate account balance request
GET [base-url]/gateway/api/messages/next            # receive response message with account balance data status
# handle message on customer side
DELETE [base-url]/gateway/api/messages/[Message-Response-Id]    # delete read message to confirm it's received  
GET [base-url]/gateway/api/messages/next            # receive the oldest unread/undeleted message
# handle message on customer side
DELETE [base-url]/gateway/api/messages/[Message-Response-Id]    # delete read message to confirm it's received

Sending requests

POST [base-url]/gateway/api/payment
POST [base-url]/gateway/api/account-statement
POST [base-url]/gateway/api/account-balance

In response of successful sending of the request in HTTP header Message-Request-Id is returned, for example:

Message-Request-Id: 8743bd85-a917-4e12-9630-af8da25c4735

Every Message-Request-Id has at least one corresponding message-response-id. Some requests may have multiple - for example Payment Initiation.
Message-Request-Id: 8743bd85-a917-4e12-9630-af8da25c4735

 

Getting back the responses

For message traffic there are different possibilities. 

 

Get next message
GET [base-url]/gateway/api/messages/next

One can use the following filters and parameters. If no filters/parameters are selected, the oldest unread (undeleted) message is returned

  • Filter-Response-Type - for example account statement, account_balance etc. It's useful if there are huge amount on unread messages. Then it makes easier to find the right one.
  • Client-code - for using in Service Provide mode only. Company registration code of the Service Provider or its customer. When using the Service Provider own value also related customers messages are returned by default.
  • Client-Country -  for using in Service Provide mode only. Issuing country of registration code (ISO country code, 2 char) 
  • Filter-Service-Provider - for filtering operator's messages only when Client-Code and Client-Country are filled with operator's own values. Values: 1/true (filter is on) or 0/false (filter is off). For example possible combinations and their outcomes:
    • Client-Code and Client-Country are filled with operator's own values and Filter-Service-Provider=false, then the oldest unread message from the messages of the operator and its clients is returned.
    • Client-Code and Client-Country are filled with operator's own values and Filter-Service-Provider=true, then operator's own oldest unread message is returned.
    • Client-Code and Client-Country are filled with operator's own values, but filter is empty, then the oldest unread message from the messages of the operator and its clients is returned.
    • Client-Code and Client-Country are filled with operator's end user's value, then filter has no effect.

Headers of the response:

  • Client-code - Client code of the company whose message is being returned.
  • Client-Country -  Country code of the company whose message is being returned (ISO country code, 2 char).
  • Message-Request-Id (optional) - the same id as the initial request. There are cases where request id can be missing, for example the Debit Credit Notification.
  • Sample: Message-Request-Id: b84eee42-cb31-4687-8fad-2815ab3bd414 
  • Message-Response-Id (mandatory) - unique response id.
    Sample: message-response-id: 886b106c-d62e-274b-9732-dc15e86c874e  
  • Message-Response-Type - type of the response depending on the request or purpose. 
    Sample: message-response-type: PAYMENT_INITIATION  (response message for Payment Initiation request).

When executing the request you can receive following HTTP responses:

  • 200 - there is at least one unread message and it is returned
  • 204 - there are no unread messages

 

Get messages list
GET [base-url]/gateway/api/messages  

One can use the following filters and parameters. If no filters/parameters are selected, the list of messages in returned ordered by oldest unread (undeleted) message first and the default limit of messages is 10

  • Filter-Response-Type - for example account statement, account_balance etc. It's useful if there are huge amount on unread messages. Then it makes easier to find the right one.
  • Client-code - for using in Service Provide mode only. Company registration code of the Service Provider or its customer. When using the Service Provider own value also related customers messages are returned by default.
  • Client-Country -  for using in Service Provide mode only. Issuing country of registration code (ISO country code, 2 char) 
  • Limit - sets the maximum number of messages in the list (default is 10)

Headers of the response:

  • Message-Request-Id (optional) - the same id as the initial request. There are cases where request id can be missing, for example the Debit Credit Notification.
    Sample: Message-Request-Id: b84eee42-cb31-4687-8fad-2815ab3bd414 
  • Message-Response-Id (mandatory) - unique response id.
    Sample: message-response-id: 886b106c-d62e-274b-9732-dc15e86c874e  
  • Message-Response-Type - type of the response depending on the request or purpose. 
    Sample: message-response-type: PAYMENT_INITIATION  (response message for Payment Initiation request).

When executing the request you can receive following HTTP responses:

  • 200 - there is at least one unread message and it is returned
  • 204 - there are no unread messages

List of messages is returned in JSon format:

  • messageResponseId -  unique ID, for deleting the message, this ID must be referred
  • messageRequestId -  unique ID. It matches the ID in the sending requests (payment, account stament, account balance)
  • messageResponseType -  Refers to the service (account_statement, payment_initiation)
  • clientCode -  client's reg.code 
  • clientCountry -  client's country code
  • messageCreatedTime -  timestamp
[
  {
    "messageResponseId": "886b106c-d62e-274b-9732-dc15e86c874e",
    "messageRequestId": "b84eee42-cb31-4687-8fad-2815ab3bd414",
    "messageResponseType": "PAYMENT_INITIATION",
    "clientCode": "12345678",
    "clientCountry": "EE",
    "messageCreatedTime": "2022-09-21T16:29:40.660"
  },
  {
    "messageResponseId": "590ab50c-6cd1-f742-8b75-d71eb054b377",
    "messageRequestId": "cd0b349b-dec5-4878-8718-60f3f02c6067",
    "messageResponseType": "ACCOUNT_STATEMENT",
    "clientCode": "12345678",
    "clientCountry": "EE",
    "messageCreatedTime": "2022-09-22T08:58:40.114"
  }
]
 
Read the content of the message
GET [base-url]/gateway/api/messages/{messageResponseId}   

 To read the content of the message, use this service. MessageResponseId is the same that is returned by the service [base-url]/gateway/api/messages.

When executing the request you can receive following HTTP responses:

  • 200 - there is at least one unread message and it is returned
  • 204 - there are no unread messages
  • 404 - no message found with given message response id
 
Get number of unread (undeleted) messages
GET [base-url]/gateway/api/messages/count

Use this service to get the number of pending messages.

Sample response:

{
    "count": 8
}

 

Deleting the message = Confirm the successful reading of the message/response

After reading a message it should be deleted promptly, it's so called confirming the reading. For this, use the response id.

DELETE [base-url]/gateway/api/messages/{messageResponseId}
 
Bulk delete = bulk delete

For deleting the messages there's another option where one can delete multiple messages at a time. This is more useful when used together with List of Messages service. 

POST [base-url]/gateway/api/messages/delete

Sample body in JSon format:

{
  "messageResponseIds": [
    "3fa85f64-5717-4562-b3fc-2c963f66afa6",
    "886b106c-d62e-274b-9732-dc15e86c874e"
  ]
} 

Response body contains the results for all the requests messages.

  • status: 200 - delete successful; 400 - already deleted or not found

Response sample:

{
  "messages": [
    {
      "messageResponseId": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
      "status": 400
    },
    {
      "messageResponseId": "886b106c-d62e-274b-9732-dc15e86c874e",
      "status": 200
    }
  ]
}

 

 

Dates and time-zones

Depending on the season GMT+2 or GMT+3 time zone is used in Estonia. By default all date and time data uses that.

Precise information is available: https://www.timeanddate.com/time/zone/estonia/tallinn

Request's dates

Dates that are specified in requests (for example Account Statement, Account Balance, Payment Initiation) use ISO date format. Only following form "YYYY-MM-DD" is taken into account and all other additions are ignored (for example time zones).

Used format is "YYYY-MM-DD" where:

  • YYYY indicates the year
  • MM indicates the month
  • DD indicates the day

 

Language and Code Pages

We use the Windows-1257 code page with mainly supporting Baltic and a list of other European languages. ISO20022 standard messages use UTF-8.

UTF-8 Unicode characters, which are not supported by Windows-1257, will be replaced with "?" symbols. This rule applies to all API services unless stated differently.

For example unstructured payment description submitted in the payment file:

//Submitted by customer
Payment description - личный.
 
//Sent to the payment scheme
Payment description - ????????.

 

 

Error handling

Service specific errors are returned with following XML file. Errors are mostly returned with descriptions.

INDEXMULT.MESSAGE ELEMENTXML TAGDESCRIPTION
1.0[1..1]Errors<Errors> 
1.1[1..n]+Error<Error> 
1.2[1..1]++ErrorCode<ErrorCode> 
1.3[1..1]++Description<Description>Description text.
1.4[0..1]++Field<Field>Reference to faulty field.

 

Sample

<?xml version='1.0' encoding='UTF-8'?>
  <Errors>
    <Error>
      <ErrorCode>errStatement_RequestInvalid</ErrorCode>
      <Description>Request message fails xsd validation</Description>
      <Field/>
    </Error>
  </Errors>

 

 

Response codes

CODE DESCRIPTION
503Service UnavailableTechnical error.
403ForbiddenAuthorization or authentication failure. Requested service is not stated in Gateway API agreement, Gateway API agreement is not valid or other failure.
500Internal Server ErrorTechnical error.
200OKRequest is handled successfully
202AcceptedPOST request accepted.
429Too many requestsMax 10 requests per hour per client is allowed.

 

 

Communication Test

Heartbeat service

GET [base-url]/heartbeat

With heartbeat it's possible to test if system is up and connection certificate is configured correctly. If configured correctly, it returns current system time.
One should use for testing some API testing tool (Postman, SOAP UI, cURL). Sample statements is in code box below. Your PEM certificate should be put instead yourcert.crt and yourkey.key should be replaced with key files. If you have certificate with password, you should add password in the curl command after certificate's name yourcert.crt:password

// Sandbox:
curl -X GET "https://cpgw-sandbox.cooppank.ee/gateway/api/heartbeat" --cert yourcert.crt --key yourkey.key
 
// Live:
curl -X GET "https://cpgw.cooppank.ee/gateway/api/heartbeat" --cert yourcert.crt --key yourkey.key
 
// Sandbox - for service providers:
curl -X GET "https://cpgw-sandbox.cooppank.ee/gateway/api/heartbeat" --cert yourcert.crt --key yourkey.key -H "Client-Code: 012345678" -H "Client-Country: EE"
 
// Live - for service providers:
curl -X GET "https://cpgw.cooppank.ee/gateway/api/heartbeat" --cert yourcert.crt --key yourkey.key -H "Client-Code: 012345678" -H "Client-Country: EE"

Sample response

<HeartBeatResponse>
  <TimeStamp>2022-08-19T15:06:07.141</TimeStamp>
  <AuthorizedUser/>
  <UserRequest/>
</HeartBeatResponse>
GET [base-url]/heartbeat/mq

It's the same as GET /heartbeat, but the response message will be created in the queue and could be read with GET/messagest/next. Response includes additional user information. This service can be used for simulating the general messaging logic without more complex Account Information or Payments requests.

Sample response

<?xml version='1.0' encoding='UTF-8'?>
  <HeartBeatResponse>
    <TimeStamp>2022-08-22T13:22:00.007</TimeStamp>
    <AuthorizedUser>
      <Name>Test user</Name>
      <Code>12345678</Code>
    </AuthorizedUser>
    <UserRequest><Content>test</Content></UserRequest>
  </HeartBeatResponse>
POST [base-url]/heartbeat

This service can be used for testing the ASICE and BDOC requests.

Request must contain digitally signed request.xml file, saved in ASICE or BDOC. Service takes authenticated user info, extracts ASICE or BDOC signature data and request.xml content and creates response xml like shown below.

One can read the response via messaging service GET "https://cpgw-sandbox.cooppank.ee/gateway/api/messages/next".

Sample response

<?xml version='1.0' encoding='UTF-8'?>
  <HeartBeatResponse>
    <TimeStamp>2022-08-22T13:34:25.007</TimeStamp>
    <AuthorizedUser>
      <Name>Test user</Name>
      <Code>12345678</Code>
    </AuthorizedUser>
    <Signatures>
      <Signature>
        <Name>Coop Pank</Name>
        <Code>12345678</Code>
      </Signature>
    </Signatures>
    <UserRequest><xml></UserRequest>
  </HeartBeatResponse>

 

 

Request Account Report

Account Statement
POST [base-url]/account-statement

Account Statement is used when statement end-date is in the past and it is used to report booked transactions and balances.
With Account Statement one receive the list of transactions, both incoming and outgoing, also payments with added details. Request can be made for the given period for one Customer Account.
For this endpoint the max amount of requests per hour apply - max 10 requests in an hour per every client (not per account).

Account Balance
POST [base-url]/account-balance

Account Balance is used for current day statement and it reports intraday transactions and balances (actual and free balance for all the currencies used). Balances are provided real-time on the moment of generating the response. Request can be made for one Customer Account at once.
To request Payment limits info, one can use optional Prtry parameter. Both total and free limits for Daily and Monthly periods are received.
For this endpoint the max amount of requests per hour apply - max 10 requests in an hour per every client (not per account).

 

XML format (camt.060.001.06)

This description is related to the ISO 20022 Account Report Request camt.060.001.06 XML-based description, which will replace the proprietary electronic account reporting standards used by banks operating in Estonia. One can use it for both Account Statement and Account Balance requests.

The AccountReportingRequest message is sent by the account owner, either directly or through a forwarding agent, to one of its account servicing institutions. It is used to ask the account servicing institution to send a report on the account owner's account in a BankToCustomerAccountReport.
Some values apply for both services and some are specific to either Statements or Balances response only. 

Request's Content-Type has to be 'multipart/form-data' and it has to contain XML file in "request" position, with its type also defined as "text/xml".

Example how to create Account Statement Request with Java Apache HttpClient
String xml = "<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<Document xmlns="urn:iso:std:iso:20022:tech:xsd:camt.060.001.06">
    <AcctRptgReq>
        <GrpHdr>
            <MsgId>20230201171147610</MsgId>
            <CreDtTm>2023-01-02T17:11:47.610+02:00</CreDtTm>
        </GrpHdr>
        <RptgReq>
            <Id>20230201171147610</Id>
            <ReqdMsgNmId>camt.053.001.02</ReqdMsgNmId>
            <Acct>
                <Id>
                    <IBAN>EE214204200000000000</IBAN>
                </Id>
            </Acct>
            <AcctOwnr>
                <Pty/>
            </AcctOwnr>
            <RptgPrd>
                <FrToDt>
                    <FrDt>2023-01-01</FrDt>
                    <ToDt>2023-01-01</ToDt>
                </FrToDt>
                <Tp>ALLL</Tp>
            </RptgPrd>
        </RptgReq>
    </AcctRptgReq>
</Document>";
 
try (CloseableHttpClient client = HttpClients.createDefault()) {
    HttpPost request = new HttpPost(gatewayUri + "/account-statement");
    request.setEntity(MultipartEntityBuilder.create()
        .addBinaryBody("request", xml.getBytes(), ContentType.create("text/xml"), "request")
        .setLaxMode()
        .build());
 
    client.execute(request);
} catch (IOException ex) {
    ...
}
Message root
INDEXMESSAGE ELEMENTXML TAG
[1..1]MessageRoot<AcctRptgReq>

 

Group header
INDEXMULT.MESSAGE ELEMENTXML TAGDESCRIPTION
1.0[1..1]+GroupHeader<GrpHdr> 
1.1[1..1]++MessageIdentification<MsgId>Unique message identification, generated by Coop Pank.
1.2[1..1]++CreationDateTime<CreDtTm>The date and time (UTC+2) of account statement message creation at the bank 
2.0[1..1]+ReportingRequest<RptgReq> 
2.1[0..1]++Identification<Id>Unique identification of the account statement, provided by the bank
2.2[1..1]++RequestedMessageNameIdentification<ReqdMsgNmId>

Supported values:

'camt.053.001.02' BankToCustomerStatement - client request POST https://cpgw.cooppank.ee/gateway/api/account-statement

'camt.052.001.02' BankToCustomerAccountReport - client request POST https://cpgw.cooppank.ee/gateway/api/account-balance

2.3[1..1]++Account<Acct> 
2.3[1..1]+++Identification<Id> 
2.3[1..1]++++IBAN<IBAN>Account number, for what statement is generated 
2.4[1..1]++AccountOwner<AcctOwnr>Account owner information
2.4[1..1]+++Party<Pty>Values are ignored.
2.8[1..1]++ReportingPeriod<RptgPrd> 
2.9[1..1]+++FromToDate<FrToDt> 
2.9[1..1]++++FromDate<FrDt>Account statement from date, ISO date format. FromDate must be smaller than ToDate. For camt.052.001.06 value is ignored and only current day is returned.
2.9[1..1]++++ToDate<ToDt>Account statement to date, ISO date format. For camt.052.001.06 value is ignored and only current day is returned.
2.10[1..1]+++FromToTime<FrToTm>Not used.
2.10[1..1]++++FromTime<FrTm>Not used.
2.10[1..1]++++ToTime<ToTm>Not used.
2.13[1..1]+++Type<Tp>‘ALLL’
2.14[0..1]++Requested Balance Type<ReqdBalTp>Provides details on the requested balance reporting.
2.14[1..1]+++Code or Proprietary<CdOrPrtry> 
2.14[1..1]++++Code<Cd>Not used
2.14[1..1]++++Proprietary<Prtry>For Account Statement camt.053: 'DATE': return statement based on FromDate and ToDate only; FromTime and ToTime are ignored, 'DATETIME': return statement with FromTime and ToTime support.
 

 

 

Samples

 

Account Statement

 

This is sample request for the account statement for account EE214204200000000000.

Parameters used

  • The period: 31th of August 2022, time.
<?xml version="1.0" encoding="UTF-8"?>
<Document xmlns="urn:iso:std:iso:20022:tech:xsd:camt.060.001.06">
    <AcctRptgReq>
        <GrpHdr>
            <MsgId>MSGIDCOOPPANKTEST01</MsgId>
            <CreDtTm>2022-08-31T16:15:07.617</CreDtTm>
        </GrpHdr>
        <RptgReq>
            <ReqdMsgNmId>camt.053.001.02</ReqdMsgNmId>
            <Acct>
                <Id>
                    <IBAN>EE214204200000000000</IBAN>
                </Id>
            </Acct>
            <AcctOwnr>
                <Pty />
            </AcctOwnr>
            <RptgPrd>
                <FrToDt>
                    <FrDt>2022-08-31</FrDt>
                    <ToDt>2022-08-31</ToDt>
                </FrToDt>
                <Tp>ALLL</Tp>
            </RptgPrd>
            <ReqdBalTp>
                <CdOrPrtry>
                    <Prtry>DATE</Prtry>
                </CdOrPrtry>
            </ReqdBalTp>
        </RptgReq>
    </AcctRptgReq>
</Document>

 

Account Balance

This is sample request for the account statement for account EE214204200000000000

Parameters used

  • Balances are taken from current date, therefore it's not necessary to use Date parameters 
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<Document xmlns="urn:iso:std:iso:20022:tech:xsd:camt.060.001.06">
    <AcctRptgReq>
        <GrpHdr>
            <MsgId>MSGIDCOOPPANKTEST01</MsgId>
            <CreDtTm>2022-08-30T16:15:07.617</CreDtTm>
        </GrpHdr>
        <RptgReq>
            <ReqdMsgNmId>camt.053.001.02</ReqdMsgNmId>
            <Acct>
                <Id>
                    <IBAN>EE214204200000000000</IBAN>
                </Id>
            </Acct>
            <AcctOwnr>
                <Pty/>
            </AcctOwnr>
            <RptgPrd>
                <FrToDt>
                    <FrDt>2022-08-30</FrDt>
                    <ToDt>2022-08-30</ToDt>
                </FrToDt>
                <Tp>ALLL</Tp>
            </RptgPrd>
        </RptgReq>
    </AcctRptgReq>
</Document>

 

Error codes

ERROR CODEDESCRIPTION
errStatement_NoAccessCannot access the account.
errStatement_PeriodLongToo long period.
errStatement_PeriodInvalidFrom date cannot be later than to date.
errStatement_RequestInvalidRequest message fails xsd validation.

 

 

Response Account Balance

XML format (ISO 20022 Account Report Message camt.052.001.06)

The ISO 20022 Account Report Message camt.052.001.06 is used for current day balances. Two balances are returned: the actual booked balance without reservations and the actual available balance with reservations. If the current balance is 0 EUR, then it's returned so.

Rate limit - max amount of requests is 10 per hour for each client (not per account).

Header Message-Response-Type: ACCOUNT_BALANCE

 

Message structure

Group Header - mandatory, occurs once.
Report - mandatory and repetitive per currency. Includes one to many Balance blocks.

 

Message root
INDEXMESSAGE ELEMENTXML TAG
[1..1]MessageRoot<BkToCstmrAcctRpt>

 

Group header
INDEXMULT.MESSAGE ELEMENTXML TAGDESCRIPTION
1.0[1..1]+GroupHeader<GrpHdr> 
1.1[1..1]++MessageIdentification<MsgId>Unique message identifier generated by Coop Pank.
1.2[1..1]++CreationDateTime<CreDtTm>Date and time when the account statement message is created at Coop Pank.
1.3[0..1]++MessageRecipient<MsgRcpt>Not used.
1.4[0..1]++MessagePagination<MsgPgntn>Not used.

 

Report
INDEXMULT.MESSAGE ELEMENTXML TAGDESCRIPTION
2.0[1..n]+Report<Rpt>- repeated for each currency on account
- includes balances and transaction data
2.1[1..1]++Identification<Id>Unique identification of the account statement, provided by the bank (Coop Pank)
2.4[1..1]++CreationDateTime<CreDtTm>The date and time (UTC+2) of account statement message creation at the bank.
2.5[0..1]++FromToDate<FrToDt>Period for what statement is generated
2.5[1..1]+++FromDateTime<FrDtTm>Date and time when camt.052.001.06 was generated.
2.5[1..1]+++ToDateTime<ToDtTm>Date and time when camt.052.001.06 was generated.
2.10[1..1]++Account<Acct> 
2.10[1..1]+++Identification<Id> 
2.10[1..1]++++IBAN<IBAN>Account number, for what statement is generated
2.10[0..1]+++Currency<Ccy>Account currency, for what this statement block is generated. 
2.23[0..n]++Balance<Bal>Report has two balances: current booked balance and current available balance.
2.24[1..1]+++Type<Tp> 
2.25[1..1]++++CodeOrProprietary<CdOrPrtry> 
2.26[0..1]+++++Code<Cd>ITAV for current available balance;
ITBD for interim booked balance.
2.26[0..1]+++++Proprietary<Prtry>Not used.
2.34[1..1]+++Amount<Amt>Actual balance.
2.35[1..1]+++CreditDebitIndicator<CdtDbtInd>Codes are listed in Code Set: Credit and Debit Code.  
2.36[1..1]+++Date<Dt> 
2.36[1..1]++++Date<Dt>Date of the balance.
2.76[0..n]++Entry<Ntry>Entry data is not returned.

 

Sample

Sample account EE214204200000000000 has two balances in EUR (current available and current booked balance). 

<?xml version="1.0" encoding="UTF-8"?>
<Document xmlns="urn:iso:std:iso:20022:tech:xsd:camt.052.001.02" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="urn:iso:std:iso:20022:tech:xsd:camt.052.001.02 camt.052.001.02.xsd">
  <BkToCstmrAcctRpt>
    <GrpHdr>
      <MsgId>STMMSGID/20220922124310_892323</MsgId>
      <CreDtTm>2022-09-22T12:43:10.209+03:00</CreDtTm>
    </GrpHdr>
    <Rpt>
      <Id>EE214204200000000000EUR20220922</Id>
      <CreDtTm>2022-09-22T12:43:10.209+03:00</CreDtTm>
      <FrToDt>
        <FrDtTm>2022-09-22T12:43:10.209+03:00</FrDtTm>
        <ToDtTm>2022-09-22T12:43:10.209+03:00</ToDtTm>
      </FrToDt>
      <Acct>
        <Id>
          <IBAN>EE214204200000000000</IBAN>
        </Id>
        <Ccy>EUR</Ccy>
      </Acct>
      <Bal>
        <Tp>
          <CdOrPrtry>
            <Cd>ITBD</Cd>
          </CdOrPrtry>
        </Tp>
        <Amt Ccy="EUR">991946579.49</Amt>
        <CdtDbtInd>CRDT</CdtDbtInd>
        <Dt>
          <Dt>2022-09-22</Dt>
        </Dt>
      </Bal>
      <Bal>
        <Tp>
          <CdOrPrtry>
            <Cd>ITAV</Cd>
          </CdOrPrtry>
        </Tp>
        <Amt Ccy="EUR">991949579.49</Amt>
        <CdtDbtInd>CRDT</CdtDbtInd>
        <Dt>
          <Dt>2022-09-22</Dt>
        </Dt>
      </Bal>
    </Rpt>
  </BkToCstmrAcctRpt>
</Document>

 

 

Response Account Statement

XML format (ISO 20022 Account Statement Message camt.053.001.02)

CAMT.053.001.02 is used when statement end-date is in the past and it is used to report booked transactions and balances. Information about the opening balance, the closing balance, and the available balance with all booked transactions of a specified period is included in the message. 
It's possible to make a request up to 7 years and 5 days old data.

Header Message-Response-Type: ACCOUNT_STATEMENT

Message structure

Group Header – mandatory, presented once.  
Statement – mandatory and repetitive. It should be repeated for each account on which a statement is provided. 
Balance – mandatory and repetitive. Contains elements such as Opening Booked Balance and Closing Booked Balance.
Entry – included in the Statement block. Contains information related to an entry on the account.
Entry Details – included in the Entry block. Contains detailed information related to the entry.

Message root
INDEXMESSAGE ELEMENTXML TAG
[1..1]MessageRoot<BkToCstmrStmt>

 

Group header
INDEXMULT.MESSAGE ELEMENTXML TAGDESCRIPTION
1.0[1..1]+GroupHeader<GrpHdr> 
1.1[1..1]++MessageIdentification<MsgId>Unique message identification, generated by Coop Pank. Maximum length 35 characters.
1.2[1..1]++CreationDateTime<CreDtTm>The date and time (UTC+2) of account statement message creation at the bank.
1.3[0..1]++MessageRecipient<MsgRcpt>Not used.
1.4[0..1]++MessagePagination<MsgPgntn>Used if the camt-message needs to be divided into several parts. If pagination is not used, each account statement must be a complete account statement including all transactions and initial and final balances. Current pagination limit is 10k transactions.
1.4[0..1]+++PageNumber<PgNb>Sequence number of current paginated long account statement portion.
1.4[0..1]+++LastPageIndicator<LastPgInd>One of the following YesNoIndicator values is used:
Meaning When True= Yes
Meaning When False= No
 
Statement
INDEXMULT.ORMESSAGE ELEMENTXML TAGDESCRIPTION
2.0[1..n] +Statement<Stmt> 
2.1[1..1] ++Identification<Id>Unique identification of the account statement, provided by the bank . Identification is generated from the value of GrpHdr. MsgId and the currency for which this Statement block is generated.
2.2[0..1] ++ElectronicSequenceNumber<ElctrncSeqNb>Not used.
2.3[0..1] ++LegalSequenceNumber<LglSeqNb>Not used.
2.4[1..1] ++CreationDateTime<CreDtTm>The date and time (UTC+2) 
2.5[1..1] ++FromToDate<FrToDt>Period for what statement is generated
2.5[1..1] +++FromDateTime<FrDtTm>Start date and time of the reporting period. Time is always start of the day 00:00:00.000.
2.5[1..1] +++ToDateTime<ToDtTm>End date and time of the reporting period. Time is always end of the day 23:59:59.000.
2.10[1..1] ++Account<Acct> 
 [1..1] +++Identification<Id> 
 [1..1] ++++IBAN<IBAN>Account number, for what statement is generated.
 [0..1] +++Currency<Ccy>Account currency for which this statement block is generated.
 [0..1] +++Servicer<Svcr>Full information about Coop Pank.
 [1..1] ++++FinancialInstitutionIdentification<FinInstnId> 
 [0..1] +++++BIC<BIC>EKRDEE22
 [0..1] +++++Name<Nm>Coop Pank
 [0..1] +++++PostalAddress<PstlAdr> 
 [0..1] ++++++StreetName<StrtNm>Maakri
 [0..1] ++++++BuildingNumber<BldgNb>30
 [0..1] ++++++PostCode<PstCd>15014
 [0..1] ++++++TownName<TwnNm>Tallinn
 [0..1] ++++++CountrySubdivision<CtrySubDvsn>Harjumaa
 [0..1] ++++++Country<Ctry>EE
2.11[0..1] ++RelatedAccount<RltdAcct>Not used.
2.23[1..n] ++Balance<Bal> 
2.24[1..1] +++Type<Tp> 
2.25[1..1] ++++CodeOrProprietary<CdOrPrtry> 
2.26[1..1] +++++Code<Cd>Codes are listed in Code Set: Balance.
2.31[0..1] +++CreditLine<CdtLine>Not used.
2.34[1..1] +++Amount<Amt>Balance amount.
2.35[1..1] +++CreditDebitIndicator<CdtDbtInd>Codes are listed in Code Set: Credit and Debit Code.  
 [1..1] ++++Date<Dt>Balance date
2.43[1..1] ++TransactionsSummary<TxsSummry> 
2.44[0..1] +++TotalEntries<TtlNtries>Not used.
2.49[1..1] +++TotalCreditEntries<TtlCdtNtries> 
2.50[0..1] ++++NumberOfEntries<NbOfNtries>Number of credit entries in a given Statement block.
2.51[1..1] ++++Sum<Sum>Sum of all credit entries in a given statement block.
2.52[1..1] +++TotalDebitEntries<TtlDbtNtries> 
2.53[0..1] ++++NumberOfEntries<NbOfNtries>Number of debit ebtries in a given Statement block.
2.54[1..1] ++++Sum<Sum>Sum of all debit entries in a given Statement block.
2.76[0..n] ++Entry<Ntry> 
2.77[0..1] +++EntryReference<NtryRef>Not used.
2.78[1..1] +++Amount<Amt>Transaction amount (may be zero).
2.79[1..1] +++CreditDebitIndicator<CdtDbtInd>Codes are listed in Code Set: Credit and Debit Code.  
2.80[0..1] +++ReversalIndicator<RvslInd>True (1) if credit transaction is return of payment
2.81[1..1] +++Status<Sts>BOOK
2.82[1..1] +++BookingDate<BookgDt> 
 [1..1] ++++Date<Dt>Booking date.
2.83[0..1] +++ValueDate<ValDt>Not used.
 [1..1] ++++Date<Dt> 
2.84[1..1] +++AccountServicerReference<AcctSvcrRef>Unique payment ID assigned by the bank.
2.91[1..1] +++BankTransactionCode<BkTxCd> 
2.92[1..1] ++++Domain<Domn> 
2.93[1..1] +++++Code<Cd>Codes are listed in Code Set: Bank Transaction Codes.  
2.94[1..1] +++++Family<Fmly> 
2.95[1..1] ++++++Code<Cd>Codes are listed in Code Set: Bank Transaction Codes.
2.96[1..1] ++++++SubFamilyCode<SubFmlyCd>Codes are listed in Code Set: Bank Transaction Codes.
2.97[0..1] ++++Proprietary<Prtry> 
3.21[1..1] +++++Code<Cd>Payment scheme code - Code Set: Payment scheme.
2.101[0..1] +++AdditionalInformationIndicator<AddtlInfInd>Not used.
2.135[1..n] +++EntryDetails<NtryDtls> 
2.136[0..1] ++++Batch<Btch>Not used.
2.142[0..n] ++++TransactionDetails<TxDtls> 
2.143[1..1] +++++References<Refs> 
2.144[0..1] ++++++MessageIdentification<MsgId>Not used.
2.145[0..1] ++++++AccountServicerReference<AcctSvcrRef>Unique payment ID assigned by the bank.
2.146[0..1] ++++++PaymentInformationIdentification<PmtInfId>Unique identification assigned by a sending party. For outgoing payments reference to the original payment initiation message value PmtInf.PmtInfId.
2.147[0..1] ++++++InstructionIdentification<InstrId>Payment order number.
2.148[0..1] ++++++EndToEndIdentification<EndToEndId> 
2.149[0..1] ++++++TransactionIdentification<TxId>Not used.
2.199[0..1] +++++RelatedParties<RltdPties> 
2.200[0..1] ++++++InitiatingParty<InitgPty>Not used.
2.201[0..1] ++++++Remitter<Dbtr> 
 [0..1] +++++++Name<Nm>Remitter’s name.
 [0..1] ++++++++Country<Ctry>Remitter’s country ISO code.
 [0..7] ++++++++AddressLine<AdrLine>Remitter’s address.
 [0..1] +++++++Identification<Id> 
 [1..1]{Or++++++++OrganisationIdentification<OrgId> 
 [0..1] +++++++++BICOrBEI<BICOrBEI>Remitter’s BIC or BEI.
 [0..n] +++++++++Other<Othr> 
 [1..1] ++++++++++Identification<Id>Remitter’s identification.
 [1..1]Or}++++++++PrivateIdentification<PrvtId> 
 [0..1] +++++++++DateAndPlaceOfBirth<DtAndPlcOfBirth> 
 [1..1] ++++++++++BirthDate<BirthDt>Remitter’s birth date.
 [1..1] ++++++++++CityOfBirth<CityOfBirth>Remitter’s city of birth.
 [1..1] ++++++++++CountryOfBirth<CtryOfBirth>Remitter’s country of birth.
 [0..n] +++++++++Other<Othr> 
 [1..1] ++++++++++Identification<Id>Remitter’s identification.
 [0..1] ++++++++++SchemeName<SchmeNm> 
 [1..1] +++++++++++Code<Cd>List of supported values in Code Set: Private Person Identification.
2.202[0..1] ++++++RemitterAccount<DbtrAcct> 
 [1..1] +++++++Identification<Id> 
 [1..1]{Or++++++++IBAN<IBAN>Remitter’s IBAN.
 [1..1]Or}++++++++Other<Othr> 
 [1..1] +++++++++Identification<Id>Remitter’s bank account number which is not IBAN. 
2.203[0..1] ++++++UltimateRemitter<UltmtDbtr> 
 [0..1] +++++++Name<Nm>Ultimate remitter’s name.
 [0..1] +++++++Identification<Id> 
 [1..1]{Or++++++++OrganisationIdentification<OrgId> 
 [0..1] +++++++++BICOrBEI<BICOrBEI>Ultimate remitter’s BIC or BEI.
 [0..n] +++++++++Other<Othr> 
 [1..1] ++++++++++Identification<Id>Ultimate remitter’s identification.
 [1..1]Or}++++++++PrivateIdentification<PrvtId> 
 [0..1] +++++++++DateAndPlaceOfBirth<DtAndPlcOfBirth> 
 [1..1] ++++++++++BirthDate<BirthDt>Ultimate remitter’s birth date.
 [1..1] ++++++++++CityOfBirth<CityOfBirth>Ultimate remitter’s city of birth.
 [1..1] ++++++++++CountryOfBirth<CtryOfBirth>Ultimate remitter’s country of birth.
 [0..n] +++++++++Other<Othr> 
 [1..1] ++++++++++Identification<Id>Ultimate remitter’s identification.
 [0..1] ++++++++++SchemeName<SchmeNm> 
 [1..1] +++++++++++Code<Cd>List of supported values in Code Set: Private Person Identification.
2.204[0..1] ++++++Beneficiary<Cdtr> 
 [0..1] +++++++Name<Nm>Beneficiary’s name.
 [0..1] +++++++PostalAddress<PstlAdr> 
 [0..1] ++++++++Country<Ctry>Beneficiary’s country ISO code.
 [0..1] ++++++++AddressLine<AdrLine>Beneficiary’s address.
 [0..1] +++++++Identification<Id> 
 [1..1]{Or++++++++OrganisationIdentification<OrgId> 
 [0..1] +++++++++BICOrBEI<BICOrBEI>Beneficiary’s BIC or BEI.
 [0..n] +++++++++Other<Othr> 
 [1..1] ++++++++++Identification<Id>Beneficiary’s identification.
 [1..1]Or}++++++++PrivateIdentification<PrvtId> 
 [0..1] +++++++++DateAndPlaceOfBirth<DtAndPlcOfBirth> 
 [1..1] ++++++++++BirthDate<BirthDt>Beneficiary’s birth date.
 [1..1] ++++++++++CityOfBirth<CityOfBirth>Beneficiary’s city of birth.
 [1..1] ++++++++++CountryOfBirth<CtryOfBirth>Beneficiary’s country of birth.
 [0..n] +++++++++Other<Othr> 
 [1..1] ++++++++++Identification<Id>Beneficiary’s identification.
 [0..1] ++++++++++SchemeName<SchmeNm> 
 [1..1] +++++++++++Code<Cd>List of supported values in Code Set: Private Person Identification.
2.205[0..1] ++++++BeneficiaryAccount<CdtrAcct> 
 [1..1] +++++++Identification<Id> 
 [0..1]{Or++++++++IBAN<IBAN>Beneficiary’s IBAN.  
 [0..1]Or}++++++++Other<Othr> 
 [1..1] +++++++++Identification<Id>Beneficiary’s account number which is not IBAN.  
2.206[0..1] ++++++UltimateBeneficiary<UltmtCdtr> 
 [0..1] +++++++Name<Nm>Ultimate beneficiary’s name.
 [0..1] +++++++Identification<Id> 
 [1..1]{Or++++++++OrganisationIdentification<OrgId> 
 [0..1] +++++++++BICOrBEI<BICOrBEI>Ultimate beneficiary’s BIC or BEI.
 [0..n] +++++++++Other<Othr> 
 [1..1] ++++++++++Identification<Id>Ultimate beneficiary’s identification.
 [1..1]Or}++++++++PrivateIdentification<PrvtId> 
 [0..1] +++++++++DateAndPlaceOfBirth<DtAndPlcOfBirth> 
 [1..1] ++++++++++BirthDate<BirthDt>Ultimate beneficiary’s birth date.
 [1..1] ++++++++++CityOfBirth<CityOfBirth>Ultimate beneficiary’s city of birth.
 [1..1] ++++++++++CountryOfBirth<CtryOfBirth>Ultimate beneficiary’s country of birth.
 [0..n] +++++++++Other<Othr> 
 [1..1] ++++++++++Identification<Id>Ultimate beneficiary’s identification.
 [0..1] ++++++++++SchemeName<SchmeNm> 
 [1..1] +++++++++++Code<Cd>List of supported values in Code Set: Private Person Identification.
2.211[0..1] +++++RelatedAgents<RltdAgts> 
2.212[0..1] ++++++RemitterAgent<DbtrAgt> 
 [1..1] +++++++FinancialInstitutionIdentification<FinInstnId> 
 [0..1] ++++++++BIC<BIC>BIC of the remitter’s bank.
 [0..1] ++++++++Name<Nm>Name of the remitter’s bank.
2.213[0..1] ++++++BeneficiaryAgent<CdtrAgt> 
 [1..1] +++++++FinancialInstitutionIdentification<FinInstnId> 
 [0..1] ++++++++BIC<BIC>BIC of the beneficiary’s bank.
 [0..1] ++++++++Name<Nm>Name of the beneficiary’s bank.
2.214[0..1] ++++++IntermediaryAgent1<IntrmyAgt1>Not used.
2.215[0..1] ++++++IntermediaryAgent2<IntrmyAgt2>Not used.
2.216[0..1] ++++++IntermediaryAgent3<IntrmyAgt3> 
 [1..1] +++++++FinancialInstitutionIdentification<FinInstnId> 
 [0..1] ++++++++BIC<BIC>BIC of the beneficiary’s correspondent bank.
 [0..1] ++++++++Name<Nm>Name of the beneficiary’s correspondent bank.
2.224[0..1] +++++Purpose<Purp> 
2.225[1..1]{Or++++++Code<Cd>List of codes in Code Set: Purpose.
2.226[1..1]Or}++++++Proprietary<Prtry> 
2.227[0..10] +++++RelatedRemittanceInformation<RltdRmtInf>Not used.
2.234[0..1] +++++RemittanceInformation<RmtInf> 
2.235[0..n] ++++++Unstructured<Ustrd>Payment description.
2.236[0..n] ++++++Structured<Strd> 
2.256[0..n] +++++++BeneficiaryReferenceInformation<CdtrRefInf> 
2.257[0..1] ++++++++Type<Tp> 
2.258[1..1] +++++++++CodeOrProprietary<CdOrPrtry> 
2.259[1..1]{Or++++++++++Code<Cd>SCOR
2.260[1..1]Or}++++++++++Proprietary<Prtry> 
2.261[0..1] +++++++++Issuer<Issr> 
2.262[0..1] ++++++++Reference<Ref>Payment reference number.
2.293[0..1] +++++ReturnInformation<RtrInf>Return information.
2.304[0..1] ++++++Reason<Rsn> 
2.305[1..1]{Or+++++++Code<Cd>NARR if AdditionalInformation is filled.
2.306[1..1]Or}+++++++Proprietary<Prtry> 
2.307[0..n] ++++++AdditionalInformation<AddtlInf>Used with Reason/Code NARR. For returned payment reference to original payment message PAIN.001.001.03 PmtInfId value. Coop Pank doesn't use the payment scheme return codes, the human readable messages are returned instead.
Sample
<?xml version="1.0" encoding="UTF-8"?>
<Document xmlns="urn:iso:std:iso:20022:tech:xsd:camt.053.001.02" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="urn:iso:std:iso:20022:tech:xsd:camt.053.001.02 camt.053.001.02.xsd">
  <BkToCstmrStmt>
    <GrpHdr>
      <MsgId>MSGID_20220922113510_628688</MsgId>
      <CreDtTm>2022-09-22T11:35:10.231+03:00</CreDtTm>
      <MsgPgntn>
        <PgNb>1</PgNb>
        <LastPgInd>true</LastPgInd>
      </MsgPgntn>
    </GrpHdr>
<Stmt xmlns="urn:iso:std:iso:20022:tech:xsd:camt.053.001.02">
  <Id>EE214204200000000000EUR20220922</Id>
  <ElctrncSeqNb>1</ElctrncSeqNb>
  <CreDtTm>2022-09-22T11:35:10.231+03:00</CreDtTm>
  <FrToDt>
    <FrDtTm>2022-08-01T00:00:00.000+03:00</FrDtTm>
    <ToDtTm>2022-08-30T23:59:59.000+03:00</ToDtTm>
  </FrToDt>
  <Acct>
    <Id>
      <IBAN>EE214204200000000000</IBAN>
    </Id>
    <Ccy>EUR</Ccy>
    <Ownr>
      <Nm>TEST OÜ</Nm>
      <Id>
        <OrgId>
          <Othr>
            <Id>1111111</Id>
          </Othr>
        </OrgId>
      </Id>
    </Ownr>
    <Svcr>
      <FinInstnId>
        <BIC>EKRDEE22</BIC>
        <Nm>COOP PANK AS</Nm>
        <PstlAdr>
          <AdrTp>BIZZ</AdrTp>
          <StrtNm>Maakri</StrtNm>
          <BldgNb>30</BldgNb>
          <PstCd>15014</PstCd>
          <TwnNm>Tallinn</TwnNm>
          <CtrySubDvsn>Harjumaa</CtrySubDvsn>
          <Ctry>EE</Ctry>
        </PstlAdr>
      </FinInstnId>
    </Svcr>
  </Acct>
  <Bal>
    <Tp>
      <CdOrPrtry>
        <Cd>OPBD</Cd>
      </CdOrPrtry>
    </Tp>
    <Amt Ccy="EUR">993946639.49</Amt>
    <CdtDbtInd>CRDT</CdtDbtInd>
    <Dt>
      <Dt>2022-08-01</Dt>
    </Dt>
  </Bal>
  <Bal>
    <Tp>
      <CdOrPrtry>
        <Cd>CLBD</Cd>
      </CdOrPrtry>
    </Tp>
    <Amt Ccy="EUR">993946629.49</Amt>
    <CdtDbtInd>CRDT</CdtDbtInd>
    <Dt>
      <Dt>2022-08-30</Dt>
    </Dt>
  </Bal>
<TxsSummry xmlns="urn:iso:std:iso:20022:tech:xsd:camt.053.001.02">
  <TtlCdtNtries>
    <NbOfNtries>0</NbOfNtries>
    <Sum>0.00</Sum>
  </TtlCdtNtries>
  <TtlDbtNtries>
    <NbOfNtries>2</NbOfNtries>
    <Sum>10.00</Sum>
  </TtlDbtNtries>
</TxsSummry>
<Ntry xmlns="urn:iso:std:iso:20022:tech:xsd:camt.053.001.02">
  <NtryRef>1</NtryRef>
  <Amt Ccy="EUR">5.00</Amt>
  <CdtDbtInd>DBIT</CdtDbtInd>
  <Sts>BOOK</Sts>
  <BookgDt>
    <Dt>2022-08-26</Dt>
  </BookgDt>
  <ValDt>
    <Dt>2022-08-26</Dt>
  </ValDt>
  <AcctSvcrRef>717CC1F</AcctSvcrRef>
  <BkTxCd>
    <Domn>
      <Cd>PMNT</Cd>
      <Fmly>
        <Cd>ICDT</Cd>
        <SubFmlyCd>BOOK</SubFmlyCd>
      </Fmly>
    </Domn>
  </BkTxCd>
  <NtryDtls>
    <TxDtls>
      <Refs>
        <AcctSvcrRef>717CC1F</AcctSvcrRef>
        <InstrId>84</InstrId>
        <TxId>717CC1F</TxId>
      </Refs>
      <AmtDtls>
        <TxAmt>
          <Amt Ccy="EUR">5.00</Amt>
        </TxAmt>
      </AmtDtls>
      <RltdPties>
        <Dbtr>
          <Id>
            <OrgId>
              <Othr>
                <Id>123412</Id>
                <SchmeNm>
                  <Prtry>COID</Prtry>
                </SchmeNm>
              </Othr>
            </OrgId>
          </Id>
        </Dbtr>
        <Cdtr>
          <Nm>Mari Tamm</Nm>
          <Id>
            <PrvtId>
              <Othr>
                <Id>48603106511</Id>
              </Othr>
            </PrvtId>
          </Id>
        </Cdtr>
        <CdtrAcct>
          <Id>
            <IBAN>EE584204200000000013</IBAN>
          </Id>
        </CdtrAcct>
      </RltdPties>
      <RltdAgts>
        <CdtrAgt>
          <FinInstnId>
            <BIC>EKRDEE22</BIC>
            <Nm>COOP PANK</Nm>
          </FinInstnId>
        </CdtrAgt>
      </RltdAgts>
      <RmtInf>
        <Ustrd>testimiseks</Ustrd>
      </RmtInf>
    </TxDtls>
  </NtryDtls>
</Ntry>
<Ntry xmlns="urn:iso:std:iso:20022:tech:xsd:camt.053.001.02">
  <NtryRef>2</NtryRef>
  <Amt Ccy="EUR">5.00</Amt>
  <CdtDbtInd>DBIT</CdtDbtInd>
  <Sts>BOOK</Sts>
  <BookgDt>
    <Dt>2022-08-26</Dt>
  </BookgDt>
  <ValDt>
    <Dt>2022-08-26</Dt>
  </ValDt>
  <AcctSvcrRef>717CC26</AcctSvcrRef>
  <BkTxCd>
    <Domn>
      <Cd>PMNT</Cd>
      <Fmly>
        <Cd>ICDT</Cd>
        <SubFmlyCd>BOOK</SubFmlyCd>
      </Fmly>
    </Domn>
  </BkTxCd>
  <NtryDtls>
    <TxDtls>
      <Refs>
        <AcctSvcrRef>717CC26</AcctSvcrRef>
        <InstrId>85</InstrId>
        <TxId>717CC26</TxId>
      </Refs>
      <AmtDtls>
        <TxAmt>
          <Amt Ccy="EUR">5.00</Amt>
        </TxAmt>
      </AmtDtls>
      <RltdPties>
        <Dbtr>
          <Id>
            <OrgId>
              <Othr>
                <Id>123412</Id>
                <SchmeNm>
                  <Prtry>COID</Prtry>
                </SchmeNm>
              </Othr>
            </OrgId>
          </Id>
        </Dbtr>
        <Cdtr>
          <Nm>Mari Tamm</Nm>
          <Id>
            <PrvtId>
              <Othr>
                <Id>48603106511</Id>
              </Othr>
            </PrvtId>
          </Id>
        </Cdtr>
        <CdtrAcct>
          <Id>
            <IBAN>EE584204200000000013</IBAN>
          </Id>
        </CdtrAcct>
      </RltdPties>
      <RltdAgts>
        <CdtrAgt>
          <FinInstnId>
            <BIC>EKRDEE22</BIC>
            <Nm>COOP PANK</Nm>
          </FinInstnId>
        </CdtrAgt>
      </RltdAgts>
      <RmtInf>
        <Ustrd>testimiseks</Ustrd>
      </RmtInf>
    </TxDtls>
  </NtryDtls>
</Ntry>
</Stmt>
</BkToCstmrStmt>
</Document>

 

For long account statements containing larger number of transactions pagination can be used - one Account Statement response receives more than one response in the queue. Currently the pagination limit per message is 10 000 transactions. Total amount of transactions in any response is 100 000 - in 10 separate response messages. Layout of first message header:

<Document xmlns="urn:iso:std:iso:20022:tech:xsd:camt.053.001.02" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="urn:iso:std:iso:20022:tech:xsd:camt.053.001.02 camt.053.001.02.xsd">
  <BkToCstmrStmt>
    <GrpHdr>
      <MsgId>MSGID_20220922113510_628688</MsgId>
      <CreDtTm>2022-09-22T11:35:10.231+03:00</CreDtTm>
      <MsgPgntn>
        <PgNb>1</PgNb>
        <LastPgInd>false</LastPgInd>
      </MsgPgntn>
    </GrpHdr>    
     ...

Layout of second and final message header:

<Document xmlns="urn:iso:std:iso:20022:tech:xsd:camt.053.001.02" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="urn:iso:std:iso:20022:tech:xsd:camt.053.001.02 camt.053.001.02.xsd">
  <BkToCstmrStmt>
    <GrpHdr>
      <MsgId>MSGID_20220922113510_628688</MsgId>
      <CreDtTm>2022-09-22T11:35:10.231+03:00</CreDtTm>
      <MsgPgntn>
        <PgNb>2</PgNb>
        <LastPgInd>true</LastPgInd>
      </MsgPgntn>
    </GrpHdr>
     ...

 

Debit Credit Notification

XML format (ISO 20022 Bank To Customer Debit Credit Notification camt.054.001.02)

CAMT.054.001.02 Bank To Customer Debit Credit Notification is used to report single booked entry. The customer can recieve either debit or credit notifications or both, depending on the contract.
No balance information is included.

Header Message-Response-Type: CREDIT_DEBIT_NOTIFICATION

Message structure

Debit Credit Notification message does not include the Message-Request-Id HTTP header!

Group Header – mandatory, preseneted once.
Notificaton – required for every account and currency. Repetitive per account number and currency. One notification block can include many entries.
Entry – optional and repetitive. Contains information about single entry.

 

Elements

 

INDEXMULT.ORMESSAGE ELEMENTXML TAGDESCRIPTION
1.0[1..1] +GroupHeader<GrpHdr> 
1.1[1..1] ++MessageIdentification<MsgId>Unique message identification generated by Coop Pank.
1.2[1..1] ++CreationDateTime<CreDtTm>The date and time (UTC+2) of message creation at the bank.
2.0[1..n] +Notification<Ntfctn> 
2.1[1..1] ++Identification<Id>Unique identification of the notification provided by
the Coop Pank.
2.4[1..1] ++CreationDateTime<CreDtTm>The date and time (UTC+2).
2.10[1..1] ++Account<Acct> 
 [1..1] +++ Identification<Id> 
 [1..1] ++++IBAN<IBAN>Account number (IBAN), for what notification is generated. 
 [1..1] +++Currency<Ccy>Account currency, for what this notification block is
generated. 
 [0..1] +++Owner<Ownr>Account owner information.
 [1..1] ++++Name<Nm>Name of the account owner.
 [1..1] ++++Identification<Id>Legal customer registry code or private customer personal code.
 [1..1]{Or+++++OrganisationIdentification<OrgId> 
 [1..1] ++++++Other<Othr> 
 [1..1] +++++++Identification<Id>Organization’s legal registry code.
 [1..1]Or}+++++PrivateIdentification<PrvtId> 
 [1..1] ++++++Other<Othr> 
 [1..1] +++++++Identification<Id>Private customer's legal personal code.
 [1..1] +++Servicer<Svcr> 
 [1..1] ++++BIC<BIC>EKRDEE22
 [1..1] ++++Name<Nm>Coop Pank
2.56[0..n] ++Entry<Ntry>Only booked transactions are reported.
2.58[1..1] +++Amount<Amt Ccy="XXX></Amt>Transaction amount (may be zero).
2.59[1..1] +++CreditDebitIndicator<CdtDbtInd>Code Set: Credit and debit code. Zero amount is considered a credit amount.
2.60[0..1] +++ReversalIndicator<RvslInd>Used in case Entry is a reversal. If CdtDbtInd is ’CRDT’ and RvslInd is ’true’ the original entry was a debit.
2.61[1..1] +++Status<Sts>BOOK
2.62[1..1] +++BookingDate<BookgDt>Booking date
 [1..1] ++++Date<Dt>Transaction date
2.64[1..1] +++AccountServicerReference<AcctSvcrRef>Coop Pank's reference to identify the entry. 
2.71[1..1] +++BankTransactionCode<BkTxCd> 
2.72[1..1] ++++Domain<Domn> 
2.73[1..1] +++++Code<Cd>See the codes in Code Set: Bank Transaction Codes.
2.74[1..1] +++++Family<Fmly> 
2.75[1..1] ++++++Code<Cd>See the codes in Code Set: Bank Transaction Codes.
2.76[1..1] ++++++SubFamilyCode<SubFmlyCd>See the codes in Code Set: Bank Transaction Codes.
2.77[0..1] ++++Proprietary<Prtry>This is used only when payment is made via Banklink.
3.78[1..1] +++++Code<Cd>Payment scheme code - Code Set: Payment scheme.
2.115[1..n] +++EntryDetails<NtryDtls> 
2.122[1..n] ++++TransactionDetails<TxDtls>Used to provide information on the single transaction
2.123[1..1] +++++References<Refs> 
2.125[0..1] ++++++AccountServicerReference<AcctSvcrRef>Coop Pank's reference to identify the entry. Same as in field 2.64 
2.126[0..1] ++++++PaymentInformationIdentification<PmtInfId>Referencing the payment information id in the pain.001 (2.1 <PmntInfId>) 
2.127[0..1] ++++++InstructionIdentification<InstrId>Payment order number.
2.128[0..1] ++++++EndToEndIdentification<EndToEndId> 
2.136[1..1] +++++AmountDetails<AmtDtls> 
 [1..1] +++++++Amount<Amt Ccy="XXX></Amt>Transaction amount (may be zero).
2.179[0..1] +++++RelatedParties<RltdPties> 
2.181[0..1] ++++++Debtor<Dbtr>Reported in case of incoming payments.
 [0..1] +++++++Name<Nm>Remitter’s name.
 [0..1] +++++++PostalAddress<PstlAdr> 
 [0..1] ++++++++Country<Ctry>Remitter’s country ISO code.
 [0..7] ++++++++AddressLine<AdrLine>Remitter’s address.
 [0..1] +++++++Identification<Id> 
 [1..1]{Or++++++++OrganisationIdentification<OrgId> 
 [0..1]{{Or+++++++++BICOrBEI<BICOrBEI>Remitter’s BIC or BEI.
 [0..n]Or}}+++++++++Other<Othr> 
 [1..1] ++++++++++Identification<Id>Remitter’s identification.
 [0..1] ++++++++++Issuer<Issr> 
 [1..1]Or}++++++++PrivateIdentification<PrvtId>Personal code of the debtor.
 [0..1] +++++++++DateAndPlaceOfBirth<DtAndPlcOfBirth> 
 [1..1] ++++++++++BirthDate<BirthDt> 
 [1..1] ++++++++++CityOfBirth<CityOfBirth> 
 [1..1] ++++++++++CountryOfBirth<CtryOfBirth> 
 [0..n] +++++++++Other<Othr> 
 [1..1] ++++++++++Identification<Id>Remitter’s personal code.
 [0..1] ++++++++++SchemeName<SchmeNm> 
 [1..1] +++++++++++Code<Cd>See the supported values in Code Set: Private Person Identification.
2.182[0..1] ++++++DebtorAccount<DbtrAcct>Reported in case of incoming payments.
   +++++++Identification<Id> 
 [1..1]{Or++++++++IBAN<IBAN>Remitter’s IBAN for credit transaction.
 [1..1]Or}++++++++Other<Othr> 
 [1..1] +++++++++Identification<Id> 
2.183[0..1] ++++++UltimateDebtor<UltmtDbtr>In case of incoming payments reported if available. In case of outgoing payments referencing the ultimate debtor in pain.001
 [0..1] +++++++Name<Nm>Ultimate remitter’s name.
 [0..1] +++++++Identification<Id> 
 [0..7]{Or++++++++OrganisationIdentification<OrgId> 
 [0..1]{{Or+++++++++BICOrBEI<BICOrBEI>Ultimate remitter’s BIC or BEI.
 [1..1]Or}}+++++++++Other<Othr> 
 [0..1] ++++++++++Identification<Id>Ultimate remitter’s identification.
 [1..1]Or}++++++++PrivateIdentification<PrvtId> 
 [1..1] +++++++++DateAndPlaceOfBirth<DtAndPlcOfBirth> 
 [0..1] ++++++++++BirthDate<BirthDt>Ultimate remitter’s birth date.
 [1..1] ++++++++++CityOfBirth<CityOfBirth>Ultimate remitter’s city of birth.
 [0..1] ++++++++++CountryOfBirth<CtryOfBirth>Ultimate remitter’s country of birth.
 [1..1] +++++++++Other<Othr> 
 [1..1] ++++++++++Identification<Id>Ultimate remitter’s identification.
 [0..1] ++++++++++SchemeName<SchmeNm> 
 [1..1] +++++++++++Code<Cd>See the supported values in Code Set: Private Person Identification.
2.184[0..1] ++++++Creditor<Cdtr>Reported in case of outgoing payments as sent to the bank in pain.001 or in other payment instruction.
 [0..1] +++++++Name<Nm>Beneficiary’s name.
 [0..1] +++++++PostalAddress<PstlAdr> 
 [0..1] ++++++++Country<Ctry>Remitter’s country ISO code.
 [0..7] ++++++++AddressLine<AdrLine>Remitter’s address.
 [0..1] +++++++Identification<Id> 
 [0..7]{Or++++++++OrganisationIdentification<OrgId> 
 [0..1]{{Or+++++++++BICOrBEI<BICOrBEI>Beneficiary’s BIC or BEI.
 [1..1]Or}}+++++++++Other<Othr> 
 [0..1] ++++++++++Identification<Id>Beneficiary’s identification.
 [1..1]Or}++++++++PrivateIdentification<PrvtId> 
 [1..1] +++++++++DateAndPlaceOfBirth<DtAndPlcOfBirth> 
 [0..1] ++++++++++BirthDate<BirthDt>Beneficiary’s birth date.
 [1..1] ++++++++++CityOfBirth<CityOfBirth>Beneficiary’s city of birth.
 [0..1] ++++++++++CountryOfBirth<CtryOfBirth>Beneficiary’s country of birth.
 [1..1] +++++++++Other<Othr> 
 [1..1] ++++++++++Identification<Id>Beneficiary’s identification.
 [0..1] ++++++++++SchemeName<SchmeNm> 
 [1..1] +++++++++++Code<Cd>See the supported values in Code Set: Private Person Identification.
2.185  ++++++CreditorAccount<CdtrAcct>Reported in case of outgoing payments.
   +++++++Identification<Id> 
 [1..1]{Or++++++++IBAN<IBAN>Beneficiary’s IBAN for debit transaction.
 [1..1]Or}++++++++Other<Othr> 
 [1..1] +++++++++Identification<Id>Beneficiary’s account number which is not IBAN.  
2.186[0..1] ++++++UltimateCreditor<UltmtCdtr>In case of incoming payments reported if available. In case of outgoing payments referencing the ultimate creditor in pain.001 
 [0..1] +++++++Name<Nm>Ultimate beneficiary’s name.
 [0..1] +++++++Identification<Id> 
 [0..7]{Or++++++++OrganisationIdentification<OrgId> 
 [0..1]{{Or+++++++++BICOrBEI<BICOrBEI>Ultimate beneficiary’s BIC or BEI.
 [1..1]Or}}+++++++++Other<Othr> 
 [0..1] ++++++++++Identification<Id>Ultimate beneficiary’s identification.
 [1..1]Or}++++++++PrivateIdentification<PrvtId> 
 [1..1] +++++++++DateAndPlaceOfBirth<DtAndPlcOfBirth> 
 [0..1] ++++++++++BirthDate<BirthDt>Ultimate beneficiary’s birth date.
 [1..1] ++++++++++CityOfBirth<CityOfBirth>Ultimate beneficiary’s city of birth.
 [0..1] ++++++++++CountryOfBirth<CtryOfBirth>Ultimate beneficiary’s country of birth.
 [1..1] +++++++++Other<Othr> 
 [1..1] ++++++++++Identification<Id>Ultimate beneficiary’s identification.
 [0..1] ++++++++++SchemeName<SchmeNm> 
 [1..1] +++++++++++Code<Cd>See the supported values in Code Set: Private Person Identification
2.191  +++++RelatedAgents<RltdAgts> 
2.192  ++++++DebtorAgent<DbtrAgt>Reported in case of incoming payment and if BIC is used.
   +++++++FinancialInstitutionIdentification<FinInstnId> 
   ++++++++BIC<BIC>BIC of the remitter’s bank.
   ++++++++Name<Nm>Name of the remitter’s bank.
2.193  ++++++CreditorAgent<CdtrAgt>Reported in case of outgoing payment and if BIC is used.
   +++++++FinancialInstitutionIdentification<FinInstnId> 
   ++++++++BIC<BIC>BIC of the beneficiary’s bank.
   ++++++++Name<Nm>Name of the beneficiary’s bank.
2.204  +++++Purpose<Purp>In case of incoming payments reported if available. In case of outgoing payments referencing the purpose in pain.001 
2.205  ++++++Code<Cd>See the codes in Code Set: Purpose
2.206  ++++++Proprietary<Prtry> 
2.214  +++++RemittanceInformation<RmtInf>In case of incoming payments reported if available. In case of outgoing payments referencing the remittance information in pain.001 or other payment instruction.
2.215  ++++++Unstructured<Ustrd>Unstructured payment details.
2.216  ++++++Structured<Strd> 
2.236  +++++++CreditorReferenceInformation<CdtrRefInf> 
2.237  ++++++++Type<Tp> 
2.238  +++++++++CodeOrProprietary<CdOrPrtry> 
2.239  ++++++++++Code<Cd> 
2.240  ++++++++++Proprietary<Prtry> 
2.241  +++++++++Issuer<Issr> 
2.242  ++++++++Reference<Ref>Payment reference number.
2.273[0..1] +++++ReturnInformation<RtrInf>Return information.
2.284[0..1] ++++++Reason<Rsn> 
2.285[1..1]{Or+++++++Code<Cd>NARR if AdditionalInformation is filled.
2.286[1..1]Or}+++++++Proprietary<Prtry> 
2.287[0..n] ++++++AdditionalInformation<AddtlInf>Used with Reason/Code NARR. For returned payment reference to orignal payment message PAIN.001.001.03 PmtInfId value. Additional rows with format CD:NNNNNNNN refer to payment scheme specific return code

 

Sample of debit notification
<?xml version="1.0" encoding="UTF-8"?>
<Document xmlns="urn:iso:std:iso:20022:tech:xsd:camt.054.001.02" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="urn:iso:std:iso:20022:tech:xsd:camt.054.001.02 camt.054.001.02.xsd">
  <BkToCstmrDbtCdtNtfctn>
    <GrpHdr>
      <MsgId>MSGID_20220922111310_531549</MsgId>
      <CreDtTm>2022-09-22T11:13:10.825+03:00</CreDtTm>
    </GrpHdr>
    <Ntfctn>
      <Id>EE214204200000000000EUR20220922</Id>
      <ElctrncSeqNb>1</ElctrncSeqNb>
      <CreDtTm>2022-09-22T11:13:10.825+03:00</CreDtTm>
      <Acct>
        <Id>
          <IBAN>EE214204200000000000</IBAN>
        </Id>
        <Ccy>EUR</Ccy>
        <Ownr>
          <Nm>Testimiseks OÜ</Nm>
          <Id>
            <OrgId>
              <Othr>
                <Id>123412</Id>
              </Othr>
            </OrgId>
          </Id>
        </Ownr>
        <Svcr>
          <FinInstnId>
            <BIC>EKRDEE22</BIC>
            <Nm>COOP PANK AS</Nm>
            <PstlAdr>
              <AdrTp>BIZZ</AdrTp>
              <StrtNm>Maakri</StrtNm>
              <BldgNb>30</BldgNb>
              <PstCd>15014</PstCd>
              <TwnNm>Tallinn</TwnNm>
              <CtrySubDvsn>Harjumaa</CtrySubDvsn>
              <Ctry>EE</Ctry>
            </PstlAdr>
          </FinInstnId>
        </Svcr>
      </Acct>
      <TxsSummry>
        <TtlCdtNtries>
          <NbOfNtries>0</NbOfNtries>
          <Sum>0.00</Sum>
        </TtlCdtNtries>
        <TtlDbtNtries>
          <NbOfNtries>1</NbOfNtries>
          <Sum>25.00</Sum>
        </TtlDbtNtries>
      </TxsSummry>
      <Ntry>
        <NtryRef>1</NtryRef>
        <Amt Ccy="EUR">25.00</Amt>
        <CdtDbtInd>DBIT</CdtDbtInd>
        <Sts>BOOK</Sts>
        <BookgDt>
          <Dt>2022-09-22</Dt>
        </BookgDt>
        <ValDt>
          <Dt>2022-09-22</Dt>
        </ValDt>
        <AcctSvcrRef>71B2EA2</AcctSvcrRef>
        <BkTxCd>
          <Domn>
            <Cd>PMNT</Cd>
            <Fmly>
              <Cd>ICDT</Cd>
              <SubFmlyCd>BOOK</SubFmlyCd>
            </Fmly>
          </Domn>
        </BkTxCd>
        <NtryDtls>
          <TxDtls>
            <Refs>
              <AcctSvcrRef>71B2EA2</AcctSvcrRef>
              <InstrId>168</InstrId>
              <TxId>71B2EA2</TxId>
            </Refs>
            <AmtDtls>
              <TxAmt>
                <Amt Ccy="EUR">25.00</Amt>
              </TxAmt>
            </AmtDtls>
            <RltdPties>
              <Dbtr>
                <Id>
                  <OrgId>
                    <Othr>
                      <Id>123412</Id>
                      <SchmeNm>
                        <Prtry>COID</Prtry>
                      </SchmeNm>
                    </Othr>
                  </OrgId>
                </Id>
              </Dbtr>
              <Cdtr>
                <Nm>XXXXX OÜ</Nm>
                <Id>
                  <PrvtId>
                    <Othr>
                      <Id>16166605</Id>
                    </Othr>
                  </PrvtId>
                </Id>
              </Cdtr>
              <CdtrAcct>
                <Id>
                  <IBAN>EE584204200000000013</IBAN>
                </Id>
              </CdtrAcct>
            </RltdPties>
            <RltdAgts>
              <CdtrAgt>
                <FinInstnId>
                  <BIC>EKRDEE22</BIC>
                  <Nm>COOP PANK</Nm>
                </FinInstnId>
              </CdtrAgt>
            </RltdAgts>
            <RmtInf>
              <Ustrd>testimiseks</Ustrd>
            </RmtInf>
          </TxDtls>
        </NtryDtls>
      </Ntry>
    </Ntfctn>
  </BkToCstmrDbtCdtNtfctn>
</Document>

 

Sample of credit notification
<?xml version="1.0" encoding="UTF-8"?>
<Document xmlns="urn:iso:std:iso:20022:tech:xsd:camt.054.001.02" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="urn:iso:std:iso:20022:tech:xsd:camt.054.001.02 camt.054.001.02.xsd">
  <BkToCstmrDbtCdtNtfctn>
    <GrpHdr>
      <MsgId>MSGID_20220922111311_419562</MsgId>
      <CreDtTm>2022-09-22T11:13:11.254+03:00</CreDtTm>
    </GrpHdr>
    <Ntfctn>
      <Id>EE214204200000000000EUR20220922</Id>
      <ElctrncSeqNb>1</ElctrncSeqNb>
      <CreDtTm>2022-09-22T11:13:11.254+03:00</CreDtTm>
      <Acct>
        <Id>
          <IBAN>EE214204200000000000</IBAN>
        </Id>
        <Ccy>EUR</Ccy>
        <Ownr>
          <Nm>XXXX OÜ</Nm>
          <Id>
            <OrgId>
              <Othr>
                <Id>16166605</Id>
              </Othr>
            </OrgId>
          </Id>
        </Ownr>
        <Svcr>
          <FinInstnId>
            <BIC>EKRDEE22</BIC>
            <Nm>COOP PANK AS</Nm>
            <PstlAdr>
              <AdrTp>BIZZ</AdrTp>
              <StrtNm>Maakri</StrtNm>
              <BldgNb>30</BldgNb>
              <PstCd>15014</PstCd>
              <TwnNm>Tallinn</TwnNm>
              <CtrySubDvsn>Harjumaa</CtrySubDvsn>
              <Ctry>EE</Ctry>
            </PstlAdr>
          </FinInstnId>
        </Svcr>
      </Acct>
      <TxsSummry>
        <TtlCdtNtries>
          <NbOfNtries>1</NbOfNtries>
          <Sum>25.00</Sum>
        </TtlCdtNtries>
        <TtlDbtNtries>
          <NbOfNtries>0</NbOfNtries>
          <Sum>0.00</Sum>
        </TtlDbtNtries>
      </TxsSummry>
      <Ntry>
        <NtryRef>1</NtryRef>
        <Amt Ccy="EUR">25.00</Amt>
        <CdtDbtInd>CRDT</CdtDbtInd>
        <Sts>BOOK</Sts>
        <BookgDt>
          <Dt>2022-09-22</Dt>
        </BookgDt>
        <ValDt>
          <Dt>2022-09-22</Dt>
        </ValDt>
        <AcctSvcrRef>71B2EA2</AcctSvcrRef>
        <BkTxCd>
          <Domn>
            <Cd>PMNT</Cd>
            <Fmly>
              <Cd>RCDT</Cd>
              <SubFmlyCd>BOOK</SubFmlyCd>
            </Fmly>
          </Domn>
        </BkTxCd>
        <NtryDtls>
          <TxDtls>
            <Refs>
              <AcctSvcrRef>71B2EA2</AcctSvcrRef>
              <InstrId>168</InstrId>
              <TxId>71B2EA2</TxId>
            </Refs>
            <AmtDtls>
              <TxAmt>
                <Amt Ccy="EUR">25.00</Amt>
              </TxAmt>
            </AmtDtls>
            <RltdPties>
              <Dbtr>
                <Nm>Testimiseks OÜ</Nm>
                <Id>
                  <OrgId>
                    <Othr>
                      <Id>123412</Id>
                      <SchmeNm>
                        <Prtry>COID</Prtry>
                      </SchmeNm>
                    </Othr>
                  </OrgId>
                </Id>
              </Dbtr>
              <DbtrAcct>
                <Id>
                  <IBAN>EE954204200000000026</IBAN>
                </Id>
              </DbtrAcct>
            </RltdPties>
            <RltdAgts>
              <DbtrAgt>
                <FinInstnId>
                  <BIC>EKRDEE22</BIC>
                  <Nm>COOP PANK</Nm>
                </FinInstnId>
              </DbtrAgt>
            </RltdAgts>
            <RmtInf>
              <Ustrd>testimiseks</Ustrd>
            </RmtInf>
          </TxDtls>
        </NtryDtls>
      </Ntry>
    </Ntfctn>
  </BkToCstmrDbtCdtNtfctn>
</Document>

 

 

Payment Initiation

Service for executing payments.

Payment initiation Request

POST [base-url]/gateway/api/payment

Coop Pank uses the request message format: Customer to bank Payment Initiation (XML new type pain.001.001.09 and old type pain.001.001.03) and it covers SEPA, SEPA Instant, Internal and SWIFT Payments.
One payment initiation message may contain multiple single payments.

For the status of imported payments Coop Pank returns Payment Status Report (XML type pain.002.001.12). One payment may have one to many statuses.

Payment confirmation methods

Every payment should be confirmed by the customer, most of them by using Strong Customer Authentication (SCA). This requirement comes from the Payment Service Directive 2 (PSD2).

Gateway API currently supports the following two options and the client himself can choose which one to use.

Pending Payments

Format for payment files: XML. Payment files will be processed and debited from the account after confirmation, not instantly. Payments must be confirmed in the Internet bank or in mobile application under Pending payments section and can be signed and confirmed only there. Internet Bank daily and monthly limits apply. At first the signer's personal limit (A limit) is taken in account. If it's not enough, the shared limit (A+A limit) will be used.

header Content-Type: application/xml

Signed Payments in DigiDoc Container

Estonian standard for payment files are BDOC or ASIC-E container. Internet bank daily and monthly limits and signature rights apply. If more than one signature is necessary to sign the payment, all signatures must be included in the container. Limit usage is taken into account for every signer - the requested amount is subtracted from every signer's limit.

header Content-Type: application/vnd.etsi.asic-e+zip

XML file should be named "request.xml". This file should be put into the BDOC or ASIC-E container and added required signature(s). Signed container has to be put into the body of the message. Internet Bank daily and monthly limits apply. At first the signer's personal limit (A limit) is taken in account. If it's not enough, the shared limit (A+A limit) will be used. The same process will apply for all the signatures added to the container.

Payment types and scheme selection

Gateway API currently supports following payment schemes:

  • SEPA Instant (SCT Inst)
  • Internal
  • SEPA 
  • SWIFT

Only automatic payment scheme selection decisions can be done.

  • To other Coop Pank accounts - Bank internal payment
  • If payment currency is EUR and the receiving bank is a member of the RT1 or TIPS clearing and settlement system for Instant payments - payment is sent as SEPA Instant. 
  • If Instant payment cannot be processed for different reasons it is changed to SEPA.
  • For other EUR payments in the European Economic Area (EEA) - SEPA payment.
  • Other payments not in EUR or where beneficiary bank is not in the EEA - Swift payment.

Clearing times and limitations

PAYMENT TYPECURRENCYBENEFICIARY BANKCHARGES
European Payment (Instant, SEPA)EUREEASLEV
Cross Border Payment (Swift)EEA CurrencyEEASHAR
Cross Border Payment (Swift)Non EEA CurrencyEEASHAR
Cross Border Payment (Swift)EEA + Non EEA CurrencyNon EEASHAR, DEBT

More information could be found on Coop Pank's webpage under Payment section.

XML format (new pain.001.001.09 version)

Coop Pank is using custom version of pain.001.001.09.xsd

XML rules

Multiplicity (MULT.) informs how many times an element can or must be used, as defined by ISO standard.

  1. 1..1 Shows that element is mandatory and can be presented only once.
  2. 1..n Shows that element is mandatory and can be presented 1 to n times.
  3. 0..1 Shows that element is optional and can be presented only once.
  4. 0..n Shows that element is optional and can be presented 0 to n times. Note: True value of “n” represents unlimited number of occurrences.
Message structure

Group Header – mandatory, occurs once.
Payment Information – mandatory and repetitive. Contains information related to mostly the debit side of the payment.
Credit Transfer Transaction Information – mandatory and repetitive. Contains information related to the payment(s) included in the message.

Message root
INDEXMULT.ORMESSAGE ELEMENTXML TAGDESCRIPTION
 [1..1] +MessageRoot<Document><CstmrCdtTrfInitn> 
Group header
INDEXMULT.ORMESSAGE ELEMENTXML TAGDESCRIPTION
2.4.1[1..1] +GroupHeader<GrpHdr> 
6.1.12.5.1[1..1] ++MessageIdentification<MsgId>Originator’s unique identifier of the submitted file.
6.1.12.5.2[1..1] ++CreationDateTime<CreDtTm>Date and time at which the file was created.
6.1.12.5.4[1..1] ++NumberOfTransactions<NbOfTxs>Number of individual transactions contained in the file. If this number is not correct, the file upload will be cancelled.
6.1.12.5.5[1..1] ++ControlSum<CtrlSum>Total of all individual amounts included in the file, irrespective of currencies. If this number is not correct, the file upload will be cancelled.
6.1.12.5.6[1..1] ++InitiatingParty<InitgPty>Party initiating the payment to an agent. In the payment context, this can either be the debtor or a party that initiates the payment on behalf of the debtor or creditor.
6.1.14.1.1[0..1] +++Name<Nm>Initiating party name.
6.1.14.1.2[0..1] +++PostalAddress<PstlAdr>See the address structure and details here.
6.1.14.1.3[0..1] +++Identification<Id> 
6.1.14.2.1[1..1]{Or++++OrganisationIdentification<OrgId> 
6.1.13.1.1[0..1] +++++AnyBIC<AnyBIC>Initiating party BIC code.
6.1.13.1.2[0..1] +++++LEI<LEI>Legal entity identification.
6.1.13.1.3[0..n] +++++Other<Othr> 
6.1.14.2.2[1..1]Or}++++PrivateIdentification<PrvtId> 
6.1.17.1.1[0..1] +++++DateAndPlaceOfBirth<DtAndPlcOfBirth> 
6.1.17.1.1.1[1..1] ++++++BirthDate<BirthDt> 
6.1.17.1.1.2[0..1] ++++++ProvinceOfBirth<PrvcOfBirth> 
6.1.17.1.1.3[1..1] ++++++CityOfBirth<CityOfBirth> 
6.1.17.1.1.4[1..1] ++++++CountryOfBirth<CtryOfBirth> 
6.1.14.1.4[0..1] +++CountryOfResidence<CtryOfRes>Initiating party country of residence.
6.1.14.1.5[0..1] +++ContactDetails<CtctDtls> 
6.1.12.5.7[0..1] ++ForwardingAgent<FwdgAgt>Financial institution that receives the instruction from the initiating party and forwards it to the next agent in the payment chain for execution.
6.1.10.4.1[1..1] +++FinancialInstitutionIdentification<FinInstnId> 
6.1.10.2.1[0..1] ++++BICFI<BICFI>Forwarding agent BIC (Business identifier code) code.
6.1.10.2.3[0..1] ++++LEI<LEI>Legal entity identifier.
6.1.10.2.6[0..1] ++++Other<Othr>Unique identification of an agent.
6.1.10.2.4[0..1] ++++Name<Nm>Name by which an agent is known.
6.1.10.2.5[0..1] ++++PostalAddress<PstlAdr>Information that locates and identifies a specific address.
Payment information
INDEXMULT.ORMESSAGE ELEMENTXML TAGDESCRIPTION 
2.4.2[1..n] +PaymentInformation<PmtInf>  
6.1.15.4.1[1..1] ++PaymentInformationIdentification<PmtInfId>Unique identification to unambiguously identify the payment information group within the message. 
6.1.15.4.2[1..1] ++PaymentMethod<PmtMtd>Only the value TRF (credit transfer) is allowed here. If any other value is entered, it will be ignored. 
6.1.15.4.3[0..1] ++BatchBooking<BtchBookg>

 

should be valued "true" and Category Purpose Code [index 2.15] should be "SALA", "SSBE" or "PENS". If the Category Purpose Code is left blank, the payment description will display just Batch payment. If the code is filled then corresponding text is displayed according to the list Code Set: Category purpose.

In case of Bulk payment, the <BtchBookg> should be valued "false".

 
6.1.15.4.4[0..1] ++NumberOfTransactions<NbOfTxs>Populate with number of transactions in batch. If this number is not correct, the file upload will be cancelled. 
6.1.15.4.5[0..1] ++ControlSum<CtrlSum>Total of all individual amounts included in the batch. If this number is not correct, the file upload will be cancelled. 
6.1.15.4.6[0..1] ++PaymentTypeInformation<PmtTpInf>  
6.1.16.1.1[0..1] +++InstructionPriority<InstrPrty>  
6.1.16.1.2[0..n] +++ServiceLevel<SvcLvl>  
6.1.16.1.2.1[1..1] ++++Code<Cd>  
6.1.16.1.3[0..1] +++LocalInstrument<LclInstrm>  
6.1.16.1.3.1[1..1]{Or++++Code<Cd>Specifies the local instrument, as published in an external local instrument code list. 
6.1.16.1.3.2[1..1]Or}++++Proprietary<Prtry>Payment priority information is not used in Coop Pank. 
6.1.16.1.4[0..1] +++CategoryPurpose<CtgyPurp>  
6.1.16.1.4.1[1..1] ++++Code<Cd>See the supported values in Code Set: Category Purpose. 
6.1.15.4.7[1..1] ++Requested Execution Date<ReqdExctnDt>Date on which the remitter’s account is debited. 
6.1.7.1.1[1..1]{Or+++Date<Dt>Specified date. 
6.1.7.1.2[1..1]Or}+++DateTime<DtTm>RSpecified date and time. 
6.1.15.4.9[1..1] ++Debtor<Dbtr>Party from whose account the amount of payment is to be debited. If a different party’s information is entered, it will be ignored. 
6.1.14.1.1[0..1] +++Name<Nm>Debtor’s name. For indirect agent - the holder name (not the master account owner). Debtor name is mandatory if payment is initiated from indirect agent's existing accounts. 
6.1.14.1.2[0..1] +++PostalAddress<PstlAdr>See the address structure and details here. If payment is initiated with indirect agent's existing accounts, following rule applies: (Town Name and Country) or (Country and Address Line) are required. 
6.1.14.1.3[0..1] +++Identification<Id>  
6.1.14.2.1[1..1]{Or++++OrganisationIdentification<OrgId>  
6.1.13.1.1[0..1] +++++AnyBIC<AnyBIC>Debtor’s BIC code. 
6.1.13.1.2[0..1] +++++LEI<LEI>Legal entity identification. 
6.1.13.1.3[0..n] +++++Other<Othr>  
6.1.13.1.3.1[1..1] ++++++Identification<Id>Organisation’s identification code. 
6.1.13.1.3.2[0..1] ++++++SchemeName<SchmeNm>  
6.1.13.1.3.2.1[1..1]{{Or+++++++Code<Cd>See the supported values in Code Set: Organisation Identification. 
6.1.13.1.3.2.2[1..1]Or}}+++++++Proprietary<Prtry>  
6.1.14.2.2[1..1]Or}++++PrivateIdentification<PrvtId>  
6.1.17.1.1[0..1]Or}+++++DateAndPlaceOfBirth<DtAndPlcOfBirth>  
6.1.17.1.1.1[1..1] ++++++BirthDate<BirthDt>Debtor’s birth date. 
6.1.17.1.1.2[0..1] ++++++ProvinceOfBirth<PrvcOfBirth>  
6.1.17.1.1.3[1..1] ++++++CityOfBirth<CityOfBirth>  
6.1.17.1.1.4[1..1] ++++++CountryOfBirth<CtryOfBirth>  
6.1.17.1.2[1..n]Or}+++++Other<Othr>  
6.1.17.1.2.1[1..1] ++++++Identification<Id>Debtor’s identification code. 
6.1.17.1.2.2[0..1] ++++++SchemeName<SchmeNm>  
6.1.17.1.2.2.1[1..1]{Or+++++++Code<Cd>See the supported values in Code Set: Private Person Identification. 
6.1.17.1.2.2.2[1..1]{Or+++++++Proprietary<Prtry>  
6.1.17.1.2.3[0..1] ++++++Issuer<Issr>  
6.1.15.4.10[1..1] ++DebtorAccount<DbtrAcct>Debtor’s account. 
6.1.1.4.1[1..1] +++Identification<Id>  
6.1.2.1.1[1..1]{Or++++IBAN<IBAN>Debtor’s IBAN or Virtual IBAN. 
6.1.2.1.2[1..1]Or}++++Other<Othr>Debtor's non-IBAN account number. 
6.1.1.2.1[1..1] +++++Identification<Id>Account number. 
6.1.1.4.3[0..1] +++Currency<Ccy>Not required to be filled in. The payment will be made in the currency of the payment amount. If there are not enough funds available on the account, a relevant error message will appear. 
6.1.15.4.11[1..1] ++ DebtorAgent<DbtrAgt>Financial institution servicing an account for the debtor. 
6.1.10.4.1[1..1] +++FinancialInstitutionIdentification<FinInstnId>  
6.1.10.2.1[0..1] ++++BICFI<BICFI>If the BICFI is faulty or missing, it will be replaced with the correct code. 
6.1.10.2.3[0..1] ++++LEI<LEI>Legal entity identifier. 
6.1.10.2.6[0..1] ++++Other<Othr>  
6.1.15.4.14[0..1] ++UltimateDebtor<UltmtDbtr>Used for SEPA payments. Third party acting as the actual owner of the funds or initiating the payment. If ultimate remitter information is filled in at the Payment Information level, it will apply to all payments included in this block. Usage rule: Only to be used if different from the beneficiary. 
6.1.14.1.1[0..1] +++Name<Nm>Ultimate debtor’s name. 
6.1.14.1.2[0..1] +++PostalAddress<PstlAdr>Ultimate debtor's postal address. See the address structure and details here. 
6.1.14.1.3[0..1] +++Identification<Id>  
6.1.14.2.1 {Or++++OrganisationIdentification<OrgId>  
6.1.13.1.1[0..1] ++++++AnyBIC<AnyBIC>UltimateDebtor’s BIC code. 
6.1.13.1.2[0..1] +++++LEI<LEI>Legal entity identification. 
6.1.13.1.3[0..n] +++++Other<Othr>  
6.1.13.1.3.1[1..1] ++++++Identification<Id>Organisation’s identification code. 
6.1.13.1.3.2[0..1] ++++++SchemeName<SchmeNm>  
6.1.13.1.3.2.1[1..1]{{Or+++++++Code<Cd>See the supported values in Code Set: Organisation Identification. 
6.1.13.1.3.2.2[1..1]Or}}+++++++Proprietary<Prtry>  
6.1.14.2.2 Or}++++PrivateIdentification<PrvtId>  
6.1.17.1.1[0..1] +++++DateAndPlaceOfBirth<DtAndPlcOfBirth>  
6.1.17.1.1.1[1..1] ++++++BirthDate<BirthDt>Ultimate debtor’s birth date. 
6.1.17.1.1.2[0..1] ++++++ProvinceOfBirth<PrvcOfBirth>Ultimate debtor’s province of birth. 
6.1.17.1.1.3[1..1] ++++++CityOfBirth<CityOfBirth>Ultimate debtor’s city of birth. 
6.1.17.1.1.4[1..1] ++++++CountryOfBirth<CtryOfBirth>Ultimate debtor’s birth country (ISO code). 
6.1.17.1.2[1..n]Or}+++++Other<Othr>  
6.1.17.1.2.1[1..1] ++++++Identification<Id>Ultimate debtor’s identification code. 
6.1.17.1.2.2[0..1] ++++++SchemeName<SchmeNm>  
6.1.17.1.2.2.1[1..1]{Or+++++++Code<Cd>See the supported values in Code Set: Private Person Identification. 
6.1.17.1.2.2.2[1..1]Or}+++++++Proprietary<Prtry>  
6.1.17.1.2.3[0..1] ++++++Issuer<Issr>  
6.1.14.1.4[0..1] +++CountryOfResidence<CtryOfRes>Ultimate debtor’s country of residence. 
6.1.15.4.15[0..1] ++ChargesBearer<ChrgBr>See the supported values in Code Set: Charges Bearer. 
6.1.15.4.16[0..1] ++ChargesAccount<ChrgsAcct>Coop Pank does not support charge debiting from other than debtor’s account. 
6.1.1.4.1[1..1] +++Identification<Id>  
6.1.2.1.1[1..1]{Or++++IBAN<IBAN>  
6.1.2.1.2[1..1]Or}++++Other<Othr>  
6.1.1.2.1[1..1] +++++Identification<Id>  
6.1.1.4.3[0..1] +++Currency<Ccy>  
6.1.15.4.18[1..n] ++CreditTransferTransactionInformation<CdtTrfTxInf>This block contains a set of elements providing information on the payment(s) included in the message. 
6.1.15.6.1[1..1] +++PaymentIdentification<PmtId>  
6.1.11.2.1[0..1] ++++InstructionIdentification<InstrId>Unique identification, as assigned by an instructing party for an instructed party, to unambiguously identify the instruction. 
6.1.11.2.2[1..1] ++++EndToEndIdentification<EndToEndId>Unique identification assigned by the initiating party to unambiguously identify the transaction. 
6.1.11.2.3[0..1] ++++UETR<UETR>Universally unique identifier to provide an end-to-end reference of a payment transaction. Reference in UUIDv4 format. 
6.1.15.6.2[0..1] +++PaymentTypeInformation<PmtTpInf>Set of elements used to specify the type of payment. 
6.1.16.1.2[1..1] ++++ServiceLevel<SvcLvl>Agreement of rules according to which the payment must be processed. Pre-agreed customer-to-bank conditions apply. 
6.1.16.1.2.2[1..1] +++++Proprietary<Prtry>Specifies a pre-agreed service or level of service between the parties, as a proprietary code. Allowed values: INST, SEPA, FAST, ALL - equals as uploaded without interface type. Other values return validation error. 
6.1.16.1.3[0..1] ++++LocalInstrument<LclInstrm>  
6.1.16.1.3.1[1..1]{Or+++++Code<Cd>  
6.1.16.1.3.2[1..1]Or}+++++Proprietary<Prtry>Not used in Coop Pank. 
6.1.16.1.4[0..1] ++++CategoryPurpose<CtgyPurp>  
6.1.16.1.4.1[1..1] +++++Code<Cd>See the supported values in Code Set: Category Purpose. 
6.1.16.1.4.2[1..1] +++++Proprietary<Prtry>Not used in Coop Pank. 
6.1.15.6.3[1..1] +++Amount<Amt>  
6.1.3.1.1 {Or++++InstructedAmount<InstdAmt>Payment amount and the currency ordered by the initiating party. All currencies accepted by the bank for payment services are allowed. If there are not enough funds available on the account in a given currency, a relevant error message will appear. 
6.1.3.1.2 Or}++++EquivalentAmount<EqvtAmt>Not used. 
6.1.15.6.5[0..1] +++ChargeBearer<ChrgBr>See the supported values in Code Set: Charges Bearer. 
6.1.15.6.7[0..1] ++UltimateDebtor<UltmtDbtr>Used for SEPA payments. Third party acting as the actual owner of the funds or initiating the payment. If ultimate debtor information is filled in at the Credit Transfer Transaction Information level, it will apply only to the current payment. Usage rule: Only to be used if different from the debtor. 
6.1.14.1.1[0..1] +++Name<Nm>Ultimate debtor’s name. 
6.1.14.1.2[0..1] +++PostalAddress<PstlAdr>Ultimate debtor's postal address. See the address structure and details here. 
6.1.14.1.3[0..1] +++Identification<Id>  
6.1.14.2.1 {Or++++OrganisationIdentification<OrgId>  
6.1.13.1.1[0..1] ++++++AnyBIC<AnyBIC>Ultimate Debtor’s BIC code. 
6.1.13.1.2[0..1] +++++LEI<LEI>Legal entity identification. 
6.1.13.1.3[0..n] +++++Other<Othr>  
6.1.13.1.3.1[1..1] ++++++Identification<Id>Organisation’s identification code. 
6.1.13.1.3.2[0..1] ++++++SchemeName<SchmeNm>  
6.1.13.1.3.2.1[1..1]{{Or+++++++Code<Cd>See the supported values in Code Set: Organisation Identification. 
6.1.13.1.3.2.2[1..1]Or}}+++++++Proprietary<Prtry>  
6.1.14.2.2 Or}++++PrivateIdentification<PrvtId>  
6.1.17.1.1[0..1] +++++DateAndPlaceOfBirth<DtAndPlcOfBirth>  
6.1.17.1.1.1[1..1] ++++++BirthDate<BirthDt>Ultimate debtor’s birth date. 
6.1.17.1.1.2[0..1] ++++++ProvinceOfBirth<PrvcOfBirth>Ultimate debtor’s province of birth. 
6.1.17.1.1.3[1..1] ++++++CityOfBirth<CityOfBirth>Ultimate debtor’s city of birth. 
6.1.17.1.1.4[1..1] ++++++CountryOfBirth<CtryOfBirth>Ultimate debtor’s birth country (ISO code). 
6.1.17.1.2[1..n]Or}+++++Other<Othr>  
6.1.17.1.2.1[1..1] ++++++Identification<Id>Ultimate debtor’s identification code. 
6.1.17.1.2.2[0..1] ++++++SchemeName<SchmeNm>  
6.1.17.1.2.2.1[1..1]{Or+++++++Code<Cd>See the supported values in Code Set: Private Person Identification. 
6.1.17.1.2.2.2[1..1]Or}+++++++Proprietary<Prtry>  
6.1.17.1.2.3[0..1] ++++++Issuer<Issr>  
6.1.14.1.4[0..1] +++CountryOfResidence<CtryOfRes>Ultimate debtor’s country of residence. 
6.1.15.6.8[0..1] +++IntermediaryAgent1<IntrmyAgt1>Information about the creditor’s bank’s correspondent bank. Used for foreign payments. 
6.1.10.4.1[1..1] ++++FinancialInstitutionIdentification<FinInstnId>  
6.1.10.2.1[0..1] +++++BICFI<BICFI>Bank’s BIC code. 
6.1.10.2.3[0..1] +++++LEI<LEI>Legal entity identifier 
6.1.10.2.6[0..1] +++++Other<Othr>  
6.1.10.2.2[0..1] +++++ClearingSystemMemberIdentification<ClrSysMmbId>  
6.1.10.1.1[0..1] ++++++ClearingSystemIdentification<ClrSysId>  
6.1.23.1.1[1..1] +++++++Code<Cd>For the clearing system’s identification code see the External Code Sets spreadsheet on the ISO website. 
6.1.10.1.2[1..1] ++++++MemberIdentification<MmbId>Creditor’s bank identification in a clearing system. 
6.1.10.2.4[0..1] +++++Name<Nm>Creditor's bank name. Used when the BIC or the clearing system’s member identification is not known to the initiating party. 
6.1.10.2.5[0..1] +++++PostalAddress<PstlAdr>See the address structure and details here. 
6.1.15.6.9[0..1] +++IntermediaryAgent1Account<IntrmyAgt1Acct>Not used. 
6.1.15.6.14[0..1] +++CreditorAgent<CdtrAgt>  
6.1.10.4.1[1..1] ++++FinancialInstitutionIdentification<FinInstnId>  
6.1.10.2.1[0..1] +++++BICFI<BICFI>Creditor’s bank’s BIC. 
6.1.10.2.3[0..1] +++++LEI<LEI>Legal entity identifier 
6.1.10.2.6[0..1] +++++Other<Othr>  
6.1.10.2.2[0..1] +++++ClearingSystemMemberIdentification<ClrSysMmbId>  
6.1.10.1.1[0..1] ++++++ClearingSystemIdentification<ClrSysId>  
6.1.23.1.1[1..1] +++++++Code<Cd>For the clearing system’s identification code see the External Code Sets spreadsheet on the ISO website. 
6.1.10.1.2[1..1] ++++++MemberIdentification<MmbId>Creditor’s bank identification in a clearing system. 
6.1.10.2.4[0..1] +++++Name<Nm>Creditor's bank name. Used when the BIC or the clearing system’s member identification is not known to the initiating party. 
6.1.10.2.5[0..1] +++++PostalAddress<PstlAdr>See the address structure and details here. 
6.1.15.6.15[0..1] +++CreditorAgentAccount<CdtrAgtAcct>  
6.1.15.6.16[1..1] +++Creditor<Cdt>Creditor’s information. 
6.1.14.1.1[1..1] +++Name<Nm>Creditor’s name. 
6.1.14.1.2[0..1] +++PostalAddress<PstlAdr>Creditor’s address. See the address structure and details here. 
6.1.14.1.3[0..1] +++Identification<Id>Creditor’s identification. 
6.1.14.2.1 {Or++++OrganisationIdentification<OrgId>  
6.1.13.1.1[0..1] ++++++AnyBIC<AnyBIC>Creditor’s BIC code. 
6.1.13.1.2[0..1] ++++++LEI<LEI>Legal entity identification. 
6.1.13.1.3[0..n] ++++++Other<Othr>  
6.1.13.1.3.1[1..1] +++++++Identification<Id>Organisation’s identification code. 
6.1.13.1.3.2[0..1] +++++++SchemeName<SchmeNm>  
6.1.13.1.3.2.1[1..1]{{Or++++++++Code<Cd>See the supported values in Code Set: Organisation Identification. 
6.1.13.1.3.2.2[1..1]Or}}++++++++Proprietary<Prtry>  
6.1.14.2.2 Or}+++++PrivateIdentification<PrvtId>  
6.1.17.1.1[0..1] ++++++DateAndPlaceOfBirth<DtAndPlcOfBirth>  
6.1.17.1.1.1[1..1] +++++++BirthDate<BirthDt>Creditor’s birth date. 
6.1.17.1.1.2[0..1] +++++++ProvinceOfBirth<PrvcOfBirth>Creditor’s province of birth. 
6.1.17.1.1.3[1..1] +++++++CityOfBirth<CityOfBirth>Creditor’s city of birth. 
6.1.17.1.1.4[1..1] +++++++CountryOfBirth<CtryOfBirth>Creditor’s birth country (ISO code). 
6.1.17.1.2[1..n] ++++++Other<Othr>  
6.1.17.1.2.1[1..1] +++++++Identification<Id>Creditor’s identification code. 
6.1.17.1.2.2[0..1] +++++++SchemeName<SchmeNm>  
6.1.17.1.2.2.1[1..1]{Or++++++++Code<Cd>See the supported values in Code Set: Private Person Identification. 
6.1.17.1.2.2.2[1..1]Or}++++++++Proprietary<Prtry>  
6.1.14.1.4[0..1] ++++CountryOfResidence<CtryOfRes>Creditor’s country of residence. 
6.1.15.6.17[1..1] +++CreditorAccount<CdtrAcct>Creditor’s account. 
6.1.1.4.1[1..1] +++++++Identification<Id>  
6.1.2.1.1 {Or+++++IBAN/td><IBAN>Creditor’s IBAN. 
6.1.2.1.2 Or}+++++Other<Othr>  
6.1.1.2.1[1..1] ++++++Identification<Id>Creditor’s account number. 
6.1.1.2.2[0..1] ++++++SchemeName<SchmeNm>  
6.1.1.2.2.1[1..1] +++++++Code<Cd>Do not use. 
6.1.15.6.18[0..1] +++UltimateCreditor<UltmtCdtr>SEPA specific information. Ultimate creditor is the ultimate creditor of the payment. 
6.1.14.1.1[0..1] ++++Name<Nm>Ultimate creditor’s name. 
6.1.14.1.3[0..1] ++++Identification<Id>  
6.1.14.2.1 {Or+++++OrganisationIdentification<OrgId>  
6.1.13.1.1  ++++++AnyBIC<AnyBIC>Ultimate creditor’s BIC. 
6.1.13.1.2  ++++++LEI<LEI>Organisation LEI code. 
6.1.13.1.3  ++++++Other<Othr>Other identifier. 
6.1.13.1.3.1[1..1] +++++++Identification<Id>Ultimate creditor’s organization identification. 
6.1.13.1.3.2[0..1] +++++++SchemeName<SchmeNm>  
6.1.13.1.3.2.1[1..1] ++++++++Code<Cd>See the supported values in Code Set: Organisation Identification. 
6.1.13.1.3.2.2[1..1] ++++++++Proprietary<Prtry>  
6.1.14.2.2[1..1]Or}+++++PrivateIdentification<PrvtId>  
6.1.17.1.1[0..1] ++++++DateAndPlaceOfBirth<DtAndPlcOfBirth>  
6.1.17.1.1.1[1..1] +++++++BirthDate<BirthDt>Ultimate creditor’s birth date. 
6.1.17.1.1.2[0..1] +++++++ProvinceOfBirth<PrvcOfBirth>Ultimate creditor’s province of birth. 
6.1.17.1.1.3[1..1] +++++++CityOfBirth<CityOfBirth>Ultimate creditor’s city of birth. 
6.1.17.1.1.4[1..1] +++++++CountryOfBirth<CtryOfBirth>Ultimate creditor’s birth country (ISO code). 
6.1.17.1.2[1..n]Or}++++++Other<Othr>  
6.1.17.1.2.1[1..1] +++++++Identification<Id>Creditor’s identification code. 
6.1.17.1.2.2[0..1] +++++++SchemeName<SchmeNm>  
6.1.17.1.2.2.1[1..1]{Or++++++++Code<Cd>See the supported values in Code Set: Private Person Identification. 
6.1.15.6.21[0..1] +++Purpose<Purp>SEPA specific information. Reason for the payment. 
6.1.12.2.1[1..1] ++++Code<Cd>See the supported codes in Code Set: Purpose 
6.1.15.6.22[0..10] +++RegulatoryReporting<RgltryRptg>Do not use. 
6.1.16.6.25[0..1] +++RemittanceInformation<RmtInf>For the payments within Estonia, client can enter the payment description (unstructured) and the reference number (structured). For the payments outside Estonia, it is mandatory to provide one or the other. Otherwise the payment will be cancelled. Reference number (structured) must comply with Estonian reference standard. 
6.1.20.5.1[0..1] ++++Unstructured<Ustrd>Payment description is entered here. 
6.1.20.5.2[0..1] ++++Structured<Strd>  
6.1.20.1.3[0..1] +++++CreditorReferenceInformation<CdtrRefInf>  
6.1.9.1.1[0..1] ++++++Type<Tp>  
6.1.9.1.1.1[1..1] +++++++CodeOrProprietary<CdOrPrtry>  
6.1.9.1.1.1.1[1..1] ++++++++Code<Cd>Only the value SCOR is allowed here. If any other value is entered, it will be ignored. 
6.1.9.1.1.2[0..1] +++++++Issuer<Issr>  
6.1.9.1.2[0..1] ++++++Reference<Ref>Payment reference number is entered here. 

XML format(OLD pain.001.001.03 version)

XML format used by Coop Bank is a bit customized version of pain.001.001.03.xsd, still compliant with and has less restrictions than 1.4 version of the Estonian Banking Association implementation of pain.001.001.03. Coop Bank custom XSD is more restrictive that generic ISO 20022 XSD.
Every XML file valid according to Coop Bank custom XSD is also valid to generic pain.001.001.03.

Generic pain.001.001.03 message xml schema file is available at www.iso20022.org.

Request's Content-Type has to be 'multipart/form-data' and it has to contain XML file in "request" position, with its type also defined as "application/xml" or "application/vnd.etsi.asic-e+zip".

XML rules

Multiplicity (MULT.) Informs how many times an element can or must be used, as defined by ISO standard.

  1. 1..1 One occurrence (required)
  2. 1..n One or several occurrences (value for “n” represents total number of occurrences)
  3. 1..3 Minimum one occurrence must be used and maximum 3 occurrences can be used. Note: True value of “n” represents unlimited number of occurrences.
  4. 0..1 None or one occurrence to be used (optional)
  5. 0..n None or several occurrences can be used (value for “n” represents total number of occurrences). Note: True value of “n” represents unlimited number of occurrences.
Message structure

Group Header – mandatory, occurs once.
Payment Information – mandatory and repetitive. Contains information related to mostly the debit side of the payment.
Credit Transfer Transaction Information – mandatory and repetitive. Contains information related to the payment(s) included in the message.

 

Elements
INDEXMULT.ORMESSAGE ELEMENTXML TAGDESCRIPTION
1.0[1..1] +GroupHeader<GrpHdr> 
1.1[1..1] ++MessageIdentification<MsgId>Originator’s unique identifier of the submitted file.
1.2[1..1] ++CreationDateTime<CreDtTm> 
1.6[1..1] ++NumberOfTransactions<NbOfTxs>Number of individual transactions contained in the file. If this number is not correct, the file upload will be cancelled.
1.7[1..1] ++ControlSum<CtrlSum>Total of all individual amounts included in the file, irrespective of currencies. If this number is not correct, the file upload will be cancelled.
1.8[1..1] ++PaymentTypeInformation<PmtTpInf>Set of elements used to specify the type of payment.
1.8[1..1] +++ServiceLevel<SvcLvl>Agreement of rules according to which the payment must be processed. Pre-agreed customer-to-bank conditions apply.
1.8[1..1] ++++Prtry<Prtry>Do not use.
1.8[1..1] ++InitiatingParty<InitgPty>Party initiating the payment to an agent. In the payment context, this can either be the debtor or a party that initiates the payment on behalf of the debtor or creditor.
1.8[0..1] +++Name<Nm>Initiating party name.
1.8[0..1] +++PostalAddress<PstlAdr> 
1.8[0..1] ++++TownName<TwnNm>Initiating party address town.
1.8[0..1] ++++Country<Ctry>Initiating party address country ISO code.
1.8[0..1] +++Identification<Id> 
1.8 {Or++++OrganisationIdentification<OrgId> 
1.8 {{Or+++++BICOrBEI<BICOrBEI>Initiating party BIC code.
1.8 Or}}+++++Other<Othr> 
1.8[1..1] ++++++Identification<Id> 
1.8[0..1] ++++++SchemeName<SchmeNm> 
1.8[1..1] +++++++Code<Cd> 
1.8 Or}++++PrivateIdentification<PrvtId> 
1.8 {Or+++++DateAndPlaceOfBirth<DtAndPlcOfBirth> 
1.8[1..1] ++++++BirthDate<BirthDt> 
1.8[1..1] ++++++CityOfBirth<CityOfBirth> 
1.8[1..1] ++++++CountryOfBirth<CtryOfBirth> 
1.8 Or}+++++Other<Othr> 
1.8[1..1] ++++++Identification<Id> 
1.8[0..1] ++++++SchemeName<SchmeNm> 
1.8 {Or+++++++Code<Cd> 
1.8 Or}+++++++Proprietary<Prtry> 
1.8[0..1] +++CountryOfResidence<CtryOfRes>Initiating party country of residence
1.9[0..1] ++ForwardingAgent<FwdgAgt>Financial institution that receives the instruction from the initiating party and forwards it to the next agent in the payment chain for execution.
1.9[1..1] +++FinancialInstitutionIdentification<FinInstnId> 
1.9[0..1] ++++BIC<BIC>Forwarding agent BIC code.
1.9[0..1] ++++Name<Nm>Forwarding agent name.
1.9[0..1] ++++PostalAddress<PstlAdr> 
1.9[0..1] +++++TownName<TwnNm>Forwarding agent address town.
1.9[0..1] +++++Country<Ctry>Forwarding agent address country ISO code.

 

Payment information
INDEXMULT.ORMESSAGE ELEMENTXML TAGDESCRIPTION
2.0[1..n] +PaymentInformation<PmtInf> 
2.1[1..1] ++PaymentInformationIdentification<PmtInfId>Originator’s unique identifier of the batch of transactions
2.2[1..1] ++PaymentMethod<PmtMtd>Only the value TRF (credit transfer) is allowed here. If any other value is entered, it will be ignored.
2.3[0..1] ++BatchBooking<BtchBookg>

In case of Batch payments, the <BtchBookg> should be valued "true" and Category Purpose Code [index 2.15] should be "SALA", "SSBE" or "PENS". If the Category Purpose Code is left blank, the payment description will display just Batch payment. If the code is filled then corresponding text is displayed according to the list Code Set: Category purpose.

In case of Bulk payment, the <BtchBookg> should be valued "false".

2.4[1..1] ++NumberOfTransactions<NbOfTxs>Populate with number of transactions in batch. If this number is not correct, the file upload will be cancelled.
2.5[1..1] ++ControlSum<CtrlSum>Total of all individual amounts included in the batch. If this number is not correct, the file upload will be cancelled.
2.6[0..1] ++PaymentTypeInformation<PmtTpInf> 
2.7[0..1] +++InstructionPriority<InstrPrty> 
2.8[0..1] +++ServiceLevel<SvcLvl> 
2.9[1..1] ++++Code<Cd> 
2.11[0..1] +++LocalInstrument<LclInstrm> 
2.12 {Or++++Code<Cd>Specifies the local instrument, as published in an external local instrument code list.
2.13 Or}++++Proprietary<Prtry>Payment priority information is not used in Coop Pank.
2.14[0..1] +++CategoryPurpose<CtgyPurp> 
2.15[1..1] ++++Code<Cd>See the supported values in Code Set: Category Purpose.
2.17[1..1] ++Requested Execution Date<ReqdExctnDt>Date on which the remitter’s account is debited.
2.19[1..1] ++Remitter<Dbtr>Party from whose account the amount of payment is to be debited. If a different party’s information is entered, it will be ignored.
2.19[1..1] +++Name<Nm>Remitter’s name. For indirect agent - the holder name (not the master account owner). Debtor name is mandatory if payment is initiated from indirect agent's existing accounts.
2.19[0..1] +++PostalAddress<PstlAdr>If payment is initiated with indirect agent's existing accounts, following rule applies: (Town Name and Country) or (Country and Address Line) are required.
2.19[0..1] ++++TownName<TwnNm>See rule in PostalAddress.
2.19[0..1] ++++Country<Ctry>Remitter’s country ISO code. For agency banking account - the holder country. See rule in PostalAddress.
2.19[0..2] ++++AddressLine<AdrLine>Remitter’s address. For agency banking account - the holder address. See rule in PostalAddress.
2.19[0..1] +++Identification<Id> 
2.19 {Or++++OrganisationIdentification<OrgId> 
2.19 {{Or+++++BICOrBEI<BICOrBEI>Remitter’s BIC or BEI code.
2.19 Or}}+++++Other<Othr> 
2.19[1..1] ++++++Identification<Id>Organisation’s identification code.
2.19[0..1] ++++++SchemeName<SchmeNm> 
2.19[1..1] +++++++Code<Cd>See the supported values in Code Set: Organisation Identification.
2.19 Or}++++PrivateIdentification<PrvtId> 
2.19 {Or+++++DateAndPlaceOfBirth<DtAndPlcOfBirth> 
2.19[1..1] ++++++BirthDate<BirthDt>Remitter’s birth date.
2.19[1..1] ++++++CityOfBirth<CityOfBirth>Remitter’s city of birth.
2.19[1..1] ++++++CountryOfBirth<CtryOfBirth>Remitter’s birth country ISO code.
2.19 Or}+++++Other<Othr> 
2.19[1..1] ++++++Identification<Id>Remitter’s identification code.
2.19[0..1] ++++++SchemeName<SchmeNm> 
2.19[1..1] +++++++Code<Cd>See the supported values in Code Set: Private Person Identification.
2.20[1..1] ++RemitterAccount<DbtrAcct>Remitter’s account.  
2.20[1..1] +++Identification<Id> 
2.20{Or ++++IBAN<IBAN>Remitter’s IBAN or Virtual IBAN.
2.20{Or ++++Other<Othr>Remitter's non-IBAN account number.
2.20Or}} +++++Identification<Id>Account number.
2.20[0..1] +++Currency<Ccy>Not required to be filled in. The payment will be made in the currency of the payment amount. If there are not enough funds available on the account, a relevant error message will appear.
2.21[1..1] ++ RemitterAgent<DbtrAgt>Remitter’s bank information.
2.21[1..1] +++FinancialInstitutionIdentification<FinInstnId> 
2.21[1..1] ++++BIC<BIC>If the BIC is faulty or missing, it will be replaced with the correct code.
2.23[0..1] ++UltimateRemitter<UltmtDbtr>Used for SEPA payments. Third party acting as the actual owner of the funds or initiating the payment. If ultimate remitter information is filled in at the Payment Information level, it will apply to all payments included in this block. Usage rule: Only to be used if different from the beneficiary.
2.23[0..1] +++Name<Nm>Ultimate remitter’s name.
2.23[0..1] +++PostalAddress<PstlAdr>Ultimate debtor's postal address.  
2.23[0..1] ++++TownName<TwnNm>Ultimate debtor's postal address town.  
2.23[0..1] ++++Country<Ctry>Ultimate debtor's address country ISO code.  
2.23[0..2] ++++AddressLine<AdrLine>Ultimate debtor’s full postal address (street/road, number of house, town up to 140 characters).  
2.23[0..1] +++Identification<Id> 
2.23 {Or++++OrganisationIdentification<OrgId> 
2.23 {{Or+++++BICOrBEI<BICOrBEI>Ultimate remitter’s BIC or BEI code. 
2.23 Or}}+++++Other<Othr> 
2.23[1..1] ++++++Identification<Id>Organization’s identification code. 
2.23[0..1] ++++++SchemeName<SchmeNm> 
2.23[1..1] +++++++Code<Cd>See the supported values in Code Set: Organisation Identification.
2.23 Or}++++PrivateIdentification<PrvtId> 
2.23 {Or+++++DateAndPlaceOfBirth<DtAndPlcOfBirth> 
2.23[1..1] ++++++BirthDate<BirthDt>Ultimate remitter’s birth date.
2.23[0..1] ++++++ProvinceOfBirth<PrvcOfBirth>Ultimate remitter’s province of birth.
2.23[1..1] ++++++CityOfBirth<CityOfBirth>Ultimate remitter’s city of birth.
2.23[1..1] ++++++CountryOfBirth<CtryOfBirth>Ultimate remitter’s birth country ISO code.
2.23 Or}+++++Other<Othr> 
2.23[1..1] ++++++Identification<Id>Ultimate remitter’s identification code.
2.23[0..1] ++++++SchemeName<SchmeNm> 
2.23[1..1] +++++++Code<Cd>See the supported values in Code Set: Private Person Identification.
2.23[0..1] +++CountryOfResidence<CtryOfRes>Ultimate remitter’s country of residence.
2.24[0..1] ++ChargesBearer<ChrgBr>See the supported values in Code Set: Charges Bearer.
2.25[0..1] ++ChargesAccount<ChrgsAcct>Coop Bank does not support charge debiting from other than remitter’s account.
2.25[1..1] +++Identification<Id> 
2.25[1..1] ++++IBAN<IBAN> 
2.25[0..1] +++Currency<Ccy> 
2.27[1..n] ++CreditTransferTransactionInformation<CdtTrfTxInf>This block contains a set of elements providing information on the payment(s) included in the message.
2.28[1..1] +++PaymentIdentification<PmtId> 
2.29[0..1] ++++InstructionIdentification<InstrId>Unique identification, as assigned by an instructing party for an instructed party, to unambiguously identify the instruction.
2.30[1..1] ++++EndToEndIdentification<EndToEndId>Unique identification assigned by the initiating party to unambiguously identify the transaction.
1.8[1..1] +++PaymentTypeInformation<PmtTpInf>Set of elements used to specify the type of payment.
1.8[1..1] ++++ServiceLevel<SvcLvl>Agreement of rules according to which the payment must be processed. Pre-agreed customer-to-bank conditions apply.
1.8[1..1] +++++Prtry<Prtry>Specifies a pre-agreed service or level of service between the parties, as a proprietary code. Allowed values: INST, SEPA, FAST, ALL - equals as uploaded without interface type. Other values return validation error.
2.36[0..1] ++++LocalInstrument<LclInstrm> 
2.37 {Or+++++Code<Cd> 
2.38 Or}+++++Proprietary<Prtry>Payment priority information is not used in Coop Pank.
2.39[0..1] ++++CategoryPurpose<CtgyPurp> 
2.40[1..1] +++++Code<Cd>See the supported values in Code Set: Category Purpose.
2.42[1..1] +++Amount<Amt> 
2.43 {Or++++InstructedAmount<InstdAmt>Payment amount and the currency ordered by the initiating party. All currencies accepted by the bank for payment services are allowed. If there are not enough funds available on the account in a given currency, a relevant error message will appear.
2.44 Or}++++EquivalentAmount<EqvtAmt>Not used.
2.51[0..1] +++ChargeBearer<ChrgBr>See the supported values in Code Set: Charges Bearer.
2.70[0..1] +++UltimateRemitter<UltmtDbtr>Used for SEPA payments. Third party acting as the actual owner of the funds or initiating the payment. If ultimate remitter information is filled in at the Credit Transfer Transaction Information level, it will apply only to the current payment. Usage rule: Only to be used if different from the remitter.
2.70[0..1] ++++Name<Nm>Ultimate remitter’s name.  
2.70[0..1] ++++PostalAddress<PstlAdr>Ultimate debtor's postal address.  
2.70[0..1] +++++TwnNm<TwnNm>Ultimate debtor's postal address town.  
2.70[0..1] +++++Ctry<Ctry>Ultimate debtor's address country ISO code. 
2.70[0..2] +++++AdrLine<AdrLine>Ultimate debtor’s full postal address (street/road, number of house, town up to 140 characters).  
2.70[0..1] ++++Identification<Id> 
2.70 {Or+++++OrganisationIdentification<OrgId> 
2.70 {{Or++++++BICOrBEI<BICOrBEI>Ultimate remitter’s BIC or BEI code.  
2.70 Or}}++++++Other<Othr> 
2.70[1..1] +++++++Identification<Id>Organization’s identification code. 
2.70[0..1] +++++++SchemeName<SchmeNm> 
2.70[1..1] ++++++++Code<Cd>See the supported values in Code Set: Organisation Identification.
2.70 Or}+++++PrivateIdentification<PrvtId> 
2.70 {Or++++++DateAndPlaceOfBirth<DtAndPlcOfBirth> 
2.70[1..1] +++++++BirthDate<BirthDt>Ultimate remitter’s birth date.
2.70[0..1] +++++++ProvinceOfBirth<PrvcOfBirth> 
2.70[1..1] +++++++CityOfBirth<CityOfBirth>Ultimate remitter’s city of birth.
2.70[1..1] +++++++CountryOfBirth<CtryOfBirth>Ultimate remitter’s birth country ISO code.
2.70 Or}++++++Other<Othr> 
2.70[1..1] +++++++Identification<Id>Ultimate remitter’s identification code.
2.70[0..1] +++++++SchemeName<SchmeNm> 
2.70[1..1] ++++++++Code<Cd>See the supported values in Code Set: Private Person Identification
2.70[0..1] ++++CountryOfResidence<CtryOfRes>Ultimate remitter’s country of residence.
2.71[0..1] +++IntermediaryAgent1<IntrmyAgt1>Information about the beneficiary’s bank’s correspondent bank. Used for foreign payments.
2.71[1..1] ++++FinancialInstitutionIdentification<FinInstnId> 
2.71[0..1] +++++BIC<BIC>Bank’s BIC code.
2.71[0..1] +++++ClearingSystemMemberIdentification<ClrSysMmbId> 
2.71[0..1] ++++++ClearingSystemIdentification<ClrSysId> 
2.71[1..1] +++++++Code<Cd>For the clearing system’s identification code see the External Code Sets spreadsheet on the ISO website.
2.71[1..1] ++++++MemberIdentification<MmbId>Identification of the beneficiary's bank's correspondent bank in a clearing system.
2.71[0..1] +++++Name<Nm>Name of the beneficiary’s bank’s correspondent bank. Used when the BIC or the clearing system’s member identification is not known to the initiating party.
2.71[0..1] +++++PostalAddress<PstlAdr> 
2.71[0..1] ++++++Country<Ctry>Country ISO code of the beneficiary’s bank’s correspondent bank.
2.71[0..2] ++++++AddressLine<AdrLine>Country address of the beneficiary’s bank’s correspondent bank.
2.72[0..1] +++IntermediaryAgent1Account<IntrmyAgt1Acct>Not used.
2.72[1..1] ++++Identification<Id> 
2.72 {Or+++++IBAN<IBAN> 
2.72 Or}+++++Other<Othr> 
2.72[1..1] ++++++Identification<Id> 
2.77[0..1] +++BeneficiaryAgent<CdtrAgt>Beneficiary agent’s information is required for SWIFT payments.
2.77[1..1] ++++FinancialInstitutionIdentification<FinInstnId> 
2.77[0..1] +++++BIC<BIC>Beneficiary’s bank’s BIC.
2.77[0..1] +++++ClearingSystemMemberIdentification<ClrSysMmbId> 
2.77[0..1] ++++++ClearingSystemIdentification<ClrSysId> 
2.77[1..1] +++++++Code<Cd>For the clearing system’s identification code see the External Code Sets spreadsheet on the ISO website. 
2.77[1..1] ++++++MemberIdentification<MmbId>Beneficiary’s bank identification in a clearing system.  
2.77[0..1] +++++Name<Nm>Beneficiary's bank name. Usage rule: The name is limited to 70 characters in length. Used when the BIC or the clearing system’s member identification is not known to the initiating party.
2.77[0..1] +++++PostalAddress<PstlAdr> 
2.77[0..1] ++++++Country<Ctry>Beneficiary’s bank’s country ISO code.
2.77[0..2] ++++++AddressLine<AdrLine>Beneficiary’s bank’s address.
2.78[0..1] +++BeneficiaryAgentAccount<CdtrAgt>Do not use.
2.78[1..1] ++++Identification<Id> 
2.78 {Or+++++IBAN<IBAN> 
2.78 Or}+++++Other<Othr> 
2.78[1..1] ++++++Identification<Id>Do not use.
2.79[1..1] +++Beneficiary<Cdtr>Beneficiary’s information.
2.79[1..1] ++++Name<Nm>Beneficiary’s name.
2.79[0..1] ++++PostalAddress<PstlAdr>Beneficiary’s address.
2.79[0..1] +++++Country<Ctry> 
2.79[0..2] +++++AddressLine<AdrLine> 
2.79[0..1] ++++Identification<Id>Beneficiary’s identification.
2.79 {Or+++++OrganisationIdentification<OrgId> 
2.79 {{Or++++++BICOrBEI<BICOrBEI>Beneficiary’s BIC or BEI code.
2.79 Or}}++++++Other<Othr> 
2.79[1..1] +++++++Identification<Id>Organization’s identification code. 
2.79[0..1] +++++++SchemeName<SchmeNm> 
2.79 1..1++++++++Code<Cd>See the supported values in Code Set: Organisation Identification.
2.79 Or}+++++PrivateIdentification<PrvtId> 
2.79 {Or++++++DateAndPlaceOfBirth<DtAndPlcOfBirth> 
2.79[1..1] +++++++BirthDate<BirthDt>Beneficiary’s birth date.
2.79[1..1] +++++++CityOfBirth<CityOfBirth>Beneficiary’s city of birth.
2.79[1..1] +++++++CountryOfBirth<CtryOfBirth>Beneficiary’s birth country ISO code.
2.79 Or}++++++Other<Othr> 
2.79[1..1] +++++++Identification<Id>Beneficiary’s identification.
2.79[0..1] +++++++SchemeName<SchmeNm> 
2.79[1..1] ++++++++Code<Cd>See the supported values in Code Set: Private Person Identification.
2.80[1..1] +++BeneficiaryAccount<CdtrAcct>Beneficiary’s account.
2.80[1..1] ++++Identification<Id> 
2.80 {Or+++++IBAN<IBAN>Beneficiary’s IBAN. 
2.80 Or}+++++Other<Othr> 
2.80[1..1] ++++++Identification<Id>Beneficiary’s account number. 
2.80[0..1] ++++++SchemeName<SchmeNm> 
2.80[1..1] +++++++Code<Cd>Do not use.
2.81[0..1] +++UltimateBeneficiary<UltmtCdtr>SEPA specific information. Ultimate beneficiary is the ultimate beneficiary of the payment.
2.81[0..1] ++++Name<Nm>Ultimate beneficiary’s name.
2.81[0..1] ++++Identification<Id> 
2.81 {Or+++++OrganisationIdentification<OrgId> 
2.81 {{Or++++++BICOOrBEI<BICOrBEI>Ultimate beneficiary’s BIC or BEI.
2.81 Or}}++++++Other<Othr> 
2.81[1..1] +++++++Identification<Id>Ultimate beneficiary’s organization identification.
2.81[0..1] +++++++SchemeName<SchmeNm> 
2.81[1..1] ++++++++Code<Cd>See the supported values in Code Set: Organisation Identification.
2.81 Or}+++++PrivateIdentification<PrvtId> 
2.81 {Or++++++DateAndPlaceOfBirth<DtAndPlcOfBirth> 
2.81[1..1] +++++++BirthDate<BirthDt>Ultimate beneficiary’s birth date.
2.81[1..1] +++++++CityOfBirth<CityOfBirth>Ultimate beneficiary’s city of birth.
2.81[1..1] +++++++CountryOfBirth<CtryOfBirth>Ultimate beneficiary’s birth country ISO code.
2.81 Or}++++++Other<Othr> 
2.81[1..1] +++++++Identification<Id>Ultimate beneficiary’s identification.
2.81[0..1] +++++++SchemeName<SchmeNm> 
2.81[1..1] ++++++++Code<Cd>See the supported values in Code Set: Private Person Identification.
2.85[0..1] +++InstructionForDebtorAgent><InstrForDbtrAgtDo not use.
2.86[0..1] +++Purpose<Purp>SEPA specific information. Reason for the payment.
2.87[1..1] ++++Code<Cd>See the supported codes in Code Set: Purpose
2.89[0..10] +++RegulatoryReporting<RgltryRptg>Do not use.
2.89[0..1] ++++Authority<Authrty> 
2.89[0..1] +++++Country<Ctry> 
2.89[0..n] ++++Details<Dtls> 
2.89[0..1] +++++Type<Tp> 
2.89[0..1] +++++Country<Ctry> 
2.89[0..1] +++++Code<Cd> 
2.89[0..1] +++++Information<Inf>Do not use.
2.98[0..1] +++RemittanceInformation<RmtInf>For the payments within Estonia, client can enter the payment description (unstructured) and the reference number (structured). For the payments outside Estonia, it is mandatory to provide one or the other. Otherwise the payment will be cancelled. 
Reference number (structured) must comply with Estonian reference standard.
2.99[0..1] ++++Unstructured<Ustrd>Payment description is entered here.
2.100[0..1] ++++Structured<Strd> 
2.120[0..1] +++++BeneficiaryReferenceInformation<CdtrRefInf> 
2.121[0..1] ++++++Type<Tp> 
2.122[1..1] +++++++CodeOrProprietary<CdOrPrtry> 
2.123[1..1] ++++++++Code<Cd>Only the value SCOR is allowed here. If any other value is entered, it will be ignored.
2.125[0..1] +++++++Issuer<Issr> 
2.126[0..1] ++++++Reference<Ref>Payment reference number is entered here.

 

Samples

Samples of payments and related messages for typical use cases depending on payment schemes and other details.

CASENOTES AND SAMPLES
SEPA Instant paymentSEPA Instant payment from EE Coop Bank account to external EE account.
 Payment request
 Payment response
SEPA payment SEPA Instant payment from EE Coop Bank account to external EU account.
 Payment request
 Payment response
Internal paymentInternal payment from one Coop Bank account to another.
 Payment request
 Payment response
SWIFT payment (IBAN) - SwiftSWIFT payment to foreign account in IBAN format.
 Payment request
 Payment response
Bulk paymentMultiple payments in one file. 
 Payment request
 Payment response

Response

XML format (ISO 20022 Customer Payment Status Report pain.002.001.12)

After payment request the customer will receive the response message - ISO 20022 Customer Payment Status Report (pain.002.001.12). This message is sent to the client to inform about the status of a payment instruction sent via Gateway API with Payment Initiation (pain.001.001.03) message.

Customer Payment Status Report refers to the original Payment Initiation message and gives feedback about the status of the process - provides positive, negative and pending status updates to original payments.
There can be many Customer Payment Status Reports per one Payment Initiation message - typically if any of the transactions was not accepted right away for any reason.

Payment status codes and descriptions

Statuses are reported on group level for the whole payment instruction (GrpSts and PmtInfSts tags) and separately for each payment (TxSts tag).
Group level statuses are reported only in the first payment response message after the initial request.
Further responses (if any) shall not contain GrpSts and PmtInfSts tags - you must process the result of every payment entry separately.

Group level statuses (OrgnlGrpInfAndSts.GrpSts and OrgnlPmtInfAndSts.PmtInfSts):

  • RJCT – all payments in the forwarded XML file have been rejected.
  • PDNG - pending, payments are waiting for confirmation in Internet Bank.
  • PART – payment has been accepted, settlement is in process. Processing the payment is in the bank, it hasn't been debited from client account or sent to clearing system.
  • ACSP - all payments in the forwarded XML file are in statuses of "In progress" or "Debited", but not debited from the customer's account yet. 

Single payment statuses (OrgnlPmtInfAndSts.TxInfAndSts.TxSts):

  • PDNG - pending, payments are waiting for confirmation in Internet Bank.
  • RJCT – rejected. One payment out of the group has been rejected (final status).
  • ACSP – accepted, settlement in process. Payment is being processed by the bank, it has not been debited from client account nor sent to clearing system. At least one more status update must follow (either accept or reject).
  • ACSC – accepted, settlement completed and payment has been debited from client account.  
Pending payments need confirmation in Internet Bank

When payment receives PDNG status after ACSP status (payment is accepted by the customer) it means that the payment needs confirmation in Internet Bank.

Payment rejection due to account balance or limits

By default, all payments will be rejected right away when there is not enough free balance or payments limits to execute the payment.

Message structure

Group Header – mandatory, occurs once. Set of characteristics shared by all individual payments included in the status report message.
Original Group Information And Status – occurs once. Refers to original Payment Initiation Group Level information.
Transaction Information And Status – optional and repetitive. Includes information about the original payment and its status.

Elements
INDEXMULT.MESSAGE ELEMENTXML TAGDESCRIPTION
1.0[1..1]+GroupHeader<GrpHdr> 
1.1[1..1]++MessageIdentification<MsgId>Unique identification created by Coop Bank
1.2[1..1]++CreationDateTime<CreDtTm>Creation date and time.
1.3[0..1]++InitiatingParty<InitgPty> 
1.3[0..1]+++Identification<Id> 
1.3[0..1]++++OrganisationIdentification<OrgId> 
1.3[0..1]+++++BICOrBEI<BICOrBEI>EKRDEE22 (BIC of Coop Bank)
2.0[1..1]+OriginalGroupInformationAndStatus<OrgnlGrpInfAndSts> 
2.1[1..1]++OriginalMessageIdentification<OrgnlMsgId>Original pain.001.001.03 Group Level Message Id.
2.2[1..1]++OriginalMessageNameIdentification<OrgnlMsgNmId>Specifies the original message name identifier to which the message refers. Value ‘pain.001.001.03’ or ‘pain.001.001.09’.
2.6[0..1]++GroupStatus<GrpSts>Specifies the Group status of all payments in the original pain.001.001.03 message. Status codes explained above.
2.7[0..n]++StatusReasonInformation<StsRsnInf> 
2.9[0..1]+++Reason<Rsn> 
2.10[1..1]++++Code<Cd>If Group Status is RJCT, then filled with ‘NOOR’. In this case, Additional Information is also filled.
2.12[0..n]+++AdditionalInformation<AddtlInf>If Reason Code is filled with ‘NOOR’, error description is present here. See Group Level Errors.
3.0[0..n]+OriginalPaymentInformationAndStatus<OrgnlPmtInfAndSts> 
3.1[1..1]++OriginalPaymentInformationId<OrgnlPmtInfId>Original pain.001.001.03 Payment Information Id.
3.4[0..1]++PaymentInformationStatus<PmtInfSts>Specifies the Group status of one PmtInf block in the original pain.001.001.03 message. Status codes explained Status codes explained above.
3.15[0..n]++TransactionInformationAndStatus<TxInfAndSts> 
3.17[0..1]+++OriginalInstructionIdentification<OrgnlInstrId>Original payment order number.
3.18[0..1]+++OriginalEndToEndId<OrgnlEndToEndId>Not used.
3.19[0..1]+++TransactionStatus<TxSts>Payment status. Status codes explained above.
3.20[0..n]+++StatusReasonInformation<StsRsnInf> 
3.21[0..1]+++OriginalTransactionReference<OrgnlTxRef>Payment scheme information
3.21[1..1]++++PaymentTypeInformation<PmtTpInf> 
3.21[1..1]+++++ServiceLevel<SvcLvl> 
3.21[1..1]++++++Proprietary<Prtry>Payment scheme code - Code Set: Payment scheme.
3.22[0..1]++++Reason<Rsn> 
3.23[1..1]+++++Code<Cd>If Transaction Status is ACWC or RJCT, then ‘NOOR’.
3.25[0..n]++++AdditionalInformation<AddtlInf>Coop Pank doesn't use the payment scheme return codes, the human readable messages are returned instead.
3.30[0..1]+++AccountServicerReference<AcctSvcrRef>Unique payment ID assigned by the bank.
3.32[0..1]+++OriginalTransactionReference<OrgnlTxRef> 
3.34[0..1]++++Amount<Amt> 
3.35[1..1]+++++InstructedAmount<InstdAmt Ccy="AAA"> 
3.41[0..1]++++RequestedExecutionDate<ReqExctnDt>Execution date requested by client.
3.121[0..1]++++Debtor<Dbtr> 
3.121[0..1]+++++Name<Nm>Remitter’s name.
3.122[0..1]++++DebtorAccount<DbtrAcct> 
3.122[1..1]+++++Identification<Id> 
3.122{Or++++++IBAN<IBAN>Remitter’s IBAN
3.122{Or++++++Other<Othr>Remitter's non-IBAN account number 
3.122Or}}+++++++Identification<Id>Account number.
3.123[0..1]++++DebtorAgent<DbtrAgt> 
3.123[1..1]+++++FinancialInstitution Id<FinInstnId> 
3.123[1..1]++++++BIC<BIC>EKRDEE22 (BIC of Coop Bank)
3.125[0..1]++++CreditorAgent<CdtrAgt> 
3.125[1..1]+++++ FinancialInstitutionId<FinInstnId> 
3.125[1..1]++++++BIC<BIC>Beneficiary’s bank BIC.
3.127[0..1]++++Creditor<Cdtr> 
3.127[1..1]+++++Name<Nm>Beneficiary’s name.
3.128[0..1]++++CreditorAccount<CdtrAcct> 
3.128[1..1]+++++Identification<Id> 
3.128[0..1]++++++IBAN<IBAN>Beneficiary’s IBAN.  
3.128[0..1]++++++Other<Othr> 
3.128[1..1]+++++++Identification<Id>Beneficiary’s account number which is not IBAN.  

 

Error codes

Error codes are subject to change. The xml returns the correct error description.

 

Appendix

Address structure (PostalAddress)

INDEXMULT.ORMESSAGE ELEMENTXML TAGDESCRIPTION
6.1.18.1.2[0..1] Department<Dept> 
6.1.18.1.3 [0..1] SubDepartment<SubDept> 
6.1.18.1.4 [0..1] StreetName<StrtNm> 
6.1.18.1.5 [0..1] BuildingNumber<BldgNb> 
6.1.18.1.6 [0..1] BuildingName<BldgNm> 
6.1.18.1.7 [0..1] Floor<Flr> 
6.1.18.1.8 [0..1] PostBox<PstBx> 
6.1.18.1.9 [0..1] Room<Room> 
6.1.18.1.10 [0..1] PostCode<PstCd> 
6.1.18.1.11 [0..1] TownName<TwnNm>Name of a built-up area. See rule in PostalAddress.
6.1.18.1.12 [0..1] TownLocationName<TwnLctnNm> 
6.1.18.1.13 [0..1] DistrictName<DstrctNm> 
6.1.18.1.14 [0..1] CountrySubDivision<CtrySubDvsn> 
6.1.18.1.15 [0..1] Country<Ctry>Nation with its own government (ISO 3166, Alpha-2 code).
6.1.18.1.16 [0..1] AddressLine<AdrLine> 

 

Code Set: Balance

CODEDESCRIPTION
OPBDOpening booked balance
CLBDOpening booked balance

 

Code Set: Bank transaction codes

DOMAIN CODEFAMILY CODESUBFAMILY CODEDESCRIPTION
ACMTMDOPCHRGAccount Management Fee
ACMTMDOPINTRDebit Interest
ACMTMCOPINTRCredit Interest
ACMTNTAVNTAVAccount Management
FORXOTHROTHRForeign Exchange
LDASNTAVNTAVLoans, Deposits & Syndications
PMNTRCDTBOOKInternal Book Transfer
PMNTRCDTDMCTDomestic Credit Transfer
PMNTRCDTESCTSEPA Credit Transfer
PMNTRCDTXBCTCross-Border Credit Transfer
PMNTICDTBOOKInternal Book Transfer
PMNTICDTCHRGTransaction Fee
PMNTICDTDMCTDomestic Credit Transfer
PMNTICDTESCTSEPA Credit Transfer
PMNTICDTXBCTCross-Border Credit Transfer
PMNTCCRDCWDLCash Withdrawal
PMNTCCRDPOSDPoint-of-Sale (POS) Payment - Debit Card
PMNTCNTRCDPTCounter Transactions - Cash Deposit
PMNTCNTRFCDPForeign Currency Deposit
PMNTCNTRCWDLCash Withdrawal
PMNTCNTRFCWDForeign Currency Withdrawal

Code Set: Category purpose

CODEDESCRIPTION
CASHCash management.
CORTTrade settlement payment.
DIVIDividends payment.
GOVTGovernment payment.
HEDGHedging.
INTCIntra-company payment.
INTEInterest payment.
LOANTransfer of a loan to a borrower.
PENSPension payment.
SALASalary payment.
SECUSecurities payment.
SSBESocial security benefit payment.
SUPPSupplier payment.
TAXSTax payment.
TRADTrade finance transaction payment.
TREATreasury payment.
VATXVAT payment.
WHLDWithholding tax payment.
OTHROther payment.
EPAYPayment via online banking.
FCOLFee collection.

Code Set: Charges bearer

CODEDESCRIPTION
SLEVAllowed only for SEPA payments. Shared charges.
SHARShared charges.
DEBTRemitter pays charges.

Code Set: Credit and debit code

 

CODEDESCRIPTION
CRDTPositive amount or zero.
DBITNegative amount.

 

Code Set: Organisation identification

CODEDESCRIPTION
BANKUnique and unambiguous assignment made by a specific bank or similar financial institution to identify a relationship as defined between the bank and its client.
CBIDA unique identification number assigned by a central bank to identify an organisation.
CHIDA unique identification number assigned by a clearing house to identify an organisation.
COIDCountry authority given organisation identification (e.g., corporate registration number).
CUSTNumber assigned by an issuer to identify a customer. Number assigned by a party to identify a beneficiary or remitter relationship.
DUNSA unique identification number provided by Dun & Bradstreet to identify an organisation.
EMPLNumber assigned by a registration authority to an employer.
GS1GGlobal Location Number. A non-significant reference number used to identify legal entities, functional entities, or physical entities according to GS1 numbering scheme rules. The number is used to retrieve detailed information that is linked to it.
SRENThe SIREN number is a 9 digit code assigned by INSEE, the French National Institute for Statistics and Economic Studies, to identify an organisation in France.
SRETThe SIRET number is a 14 digit code assigned by INSEE, the French National Institute for Statistics and Economic Studies, to identify an organisation unit in France. It consists of the SIREN number, followed by a five digit classification number, to identify the local geographical unit of that entity.
TXIDNumber assigned by a tax authority to identify an organisation.

Code Set: Payment scheme

CODEDESCRIPTION
INSTSEPA Instant payment.
SEPASEPA payment.
SWIFTSWIFT payment.
TARGET2TARGET2 payment.
INTERNALCoop Pank internal payment.

Code Set: Payment scheme return codes

Coop Pank doesn't use the payment scheme return codes, the human readable messages are returned instead. 

Code Set: Payment scheme reject codes

Coop Pank doesn't use the payment scheme reject codes, the human readable messages are returned instead. 

Code Set: Payment priority

Coop Pank doesn't use priority codes.

Information about payment priority can be found at Coop Pank's webpage under section How quickly do Coop Pank payments move?

Code Set: Private person identification

CODEDESCRIPTION
CCPTNumber assigned by an authority to identify the passport number of a person.
CUSTNumber assigned by an issuer to identify a customer.
DRLCNumber assigned by an authority to identify a driver's license.
EMPLNumber assigned by a registration authority to an employee.
NIDNNumber assigned by an authority to identify the national identity number of a person.

Code Set: Purpose

CODEDESCRIPTION
ACCTAccount management.
CASHCash management.
COLLCollection payment.
INTCIntra-company payment.
LIMALiquidity management.
NETTNetting.
AGRTAgricultural payment.
BEXPBusiness expenses.
COMCCommercial payment.
CPYRCopyright.
LICFLicence fee.
GDDSPurchase and sale of goods.
SCVEPurchase and sale of services.
SUBSSubscription.
SUPPSupplier payment.
CHARCharity payment.
HLRPHousing loan repayment.
INSUInsurance premium.
INTEInterest.
LBRILabour insurance.
LIFILife insurance.
LOANLoan to borrower.
LOARLoan to lender.
PPTIProperty insurance.
ADVAAdvance payment.
CCRDCredit card payment.
DCRDDebit card payment.
GOVTGovernment payment.
MSVCMultiple service types.
NOWSNot otherwise specified.
OTHROther.
PADDPreauthorised debit.
RENTRent.
STDYStudy.
DERIDerivatives.
DIVDDividend.
FREXForeign exchange.
SAVGSavings.
SECUSecurities.
TREATreasury payment.
DNTSDental services.
HLTIHealth insurance.
HSPCHospital care.
LTCFLong-term care facility.
MDCSMedical services.
ALMYAlimony payment.
BONUBonus payment.
BECHChild benefit.
COMMCommission.
PENSPension payment.
SALASalary payment.
SSBESocial security benefit.
HSTXHousing tax.
INTXIncome tax.
TAXSTax payment.
VATXVAT payment.
AIRBAir transport.
BUSBBus transport.
FERBFerry transport.
RLWYRailway transport.
CBTVCable TV bill.
ELECElectricity bill.
ENRGEnergies.
GASBGas bill.
NWCHNetwork charge.
NWCMNetwork communication.
OTLCOther telecom related bill.
PHONTelephone bill.
WTERWater bill.
DEBTDeposit.
GDSVPurchase and Sale of Goods and Services
CDBLCredit Card Bill
INVSInvestment and Securities
ALLWAllowance
PAYRPayroll
UBILUtilities

 

Latest updates

Release dateRelease topic
04.01.2023Gateway documentation live release
21.04.2023Headers of the response updated in Getting back the responses - Get next message. Client_code and Client_country added
12.03.2024

Payment initiation descriptions updated for the upcoming payment message version changes (ISO20022 2019 version released in November 2023). Payment initiation format pain.001.001.03 remains in use as it is and new format pain.001.001.09 is added. There are no plans to close the old version in the near future. Summary of changes (pain.001.001.09)

  1. More detailed address fields (structured address format).
  2. Payment execution time now supports date and date+time.
  3. BicOrBei elements are replaced with AnyBIC.
  4. BIC field elements are replaced with BICFI.
  5. LEI code is now supported for identifying entities.
  6. UETR (Unique End-to-end Transaction Reference) field has been added.