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.

Digital stamp of Coop Pank

It is possible to add the digital stamp of Coop Pank to the following messages:

  • Automatic Account Statement;
  • Account Statement;
  • Payment Status Report.

Digital stamp can be added to all contract types, the use of the digital stamp in services must be agreed upon in the Coop Pank Gateway contract.

A digital stamp is added to all messages, as agreed upon in the contract, except for error type of messages presented in XML format. Adding a digital stamp creates an ASICE container. Each XML file is placed in a separate digital container. This means that one digital container can contain one XML file.

File names are assigned to the digital container and the file inside as follows:

MessageName of the ASICE containerName of the file inside the ASICE container
Automatic Account Statementstatement.asicestatement.xml
Account Statementstatement.asicestatement.xml
Payment Status Reportresponse.asiceresponse.xml

Depending on whether the response is digitally stamped or not, Content_Type in Header of the response may vary accordingly. See more details: Messaging.

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.

SERVICE

DESCRIPTION AND PURPOSE

SERVICES

FORMATS

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).
  • Content-Type: application/vnd.etsi.asic-e+zip (digitally stamped XML file)
  • Content-Type: application/xml (XML file without digital stamp)

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.

Headers of the response:

  • Content-Type: application/vnd.etsi.asic-e+zip (digitally stamped XML file)
  • Content-Type: application/xml (XML file without digital stamp)
  • 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.

    INDEX

    MULT.

    MESSAGE ELEMENT

    XML TAG

    DESCRIPTION

    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]/gateway/api/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]/gateway/api/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]/gateway/api/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></xml>
      </UserRequest>
    </HeartBeatResponse>

    Request Account Report

    Account Statement

    POST [base-url]/gateway/api/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).

    For Account Statement and Automatic Account Statement message, it is possible to order the digital stamp of Coop Pank, see more details Digital stamp of Coop Pank.

    Account Balance

    POST [base-url]/gateway/api/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.052.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

    INDEX

    MESSAGE ELEMENT

    XML 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.
     

    Sample

    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.052.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 of Account Balance

    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>22092212431044624</MsgId>
          <CreDtTm>2022-09-22T12:43:10.209+03:00</CreDtTm>
        </GrpHdr>
        <Rpt>
          <Id>22092212431044624EUR</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

    INDEX

    MULT.

    OR

    MESSAGE ELEMENT

    XML TAG

    DESCRIPTION

    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 of Account Statement

    <?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>24090106573025982</MsgId>
          <CreDtTm>2024-09-01T06:57:30.475+03:00</CreDtTm>
          <MsgPgntn>
            <PgNb>1</PgNb>
            <LastPgInd>true</LastPgInd>
          </MsgPgntn>
        </GrpHdr>
        <Stmt>
          <Id>24090106573025982EUR</Id>
          <ElctrncSeqNb>1</ElctrncSeqNb>
          <CreDtTm>2024-09-01T06:57:30.475+03:00</CreDtTm>
          <FrToDt>
            <FrDtTm>2024-08-31T00:00:00.000+03:00</FrDtTm>
            <ToDtTm>2024-08-31T23: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>11111111</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">30000.00</Amt>
            <CdtDbtInd>CRDT</CdtDbtInd>
            <Dt>
              <Dt>2024-08-31</Dt>
            </Dt>
          </Bal>
          <Bal>
            <Tp>
              <CdOrPrtry>
                <Cd>CLBD</Cd>
              </CdOrPrtry>
            </Tp>
            <Amt Ccy="EUR">33515.00</Amt>
            <CdtDbtInd>CRDT</CdtDbtInd>
            <Dt>
              <Dt>2024-08-31</Dt>
            </Dt>
          </Bal>
          <TxsSummry>
            <TtlCdtNtries>
              <NbOfNtries>3</NbOfNtries>
              <Sum>3520.00</Sum>
            </TtlCdtNtries>
            <TtlDbtNtries>
              <NbOfNtries>1</NbOfNtries>
              <Sum>5.00</Sum>
            </TtlDbtNtries>
          </TxsSummry>
          <Ntry>
            <NtryRef>1</NtryRef>
            <Amt Ccy="EUR">3000.00</Amt>
            <CdtDbtInd>CRDT</CdtDbtInd>
            <Sts>BOOK</Sts>
            <BookgDt>
              <Dt>2024-08-31</Dt>
            </BookgDt>
            <ValDt>
              <Dt>2024-08-31</Dt>
            </ValDt>
            <AcctSvcrRef>1144C103-530879555</AcctSvcrRef>
            <BkTxCd>
              <Domn>
                <Cd>PMNT</Cd>
                <Fmly>
                  <Cd>RCDT</Cd>
                  <SubFmlyCd>BOOK</SubFmlyCd>
                </Fmly>
              </Domn>
            </BkTxCd>
            <NtryDtls>
              <TxDtls>
                <Refs>
                  <AcctSvcrRef>1144C103-530879555</AcctSvcrRef>
                  <InstrId>123</InstrId>
                  <TxId>1144C103</TxId>
                </Refs>
                <AmtDtls>
                  <TxAmt>
                    <Amt Ccy="EUR">3000.00</Amt>
                  </TxAmt>
                </AmtDtls>
                <RltdPties>
                  <Dbtr>
                    <Nm>MARI MAASIKAS</Nm>
                    <Id>
                      <PrvtId>
                        <Othr>
                          <Id>48603106511</Id>
                          <SchmeNm>
                            <Prtry>NIDN</Prtry>
                          </SchmeNm>
                        </Othr>
                      </PrvtId>
                    </Id>
                  </Dbtr>
                  <DbtrAcct>
                    <Id>
                      <IBAN>EE584204200000000011</IBAN>
                    </Id>
                  </DbtrAcct>
                </RltdPties>
                <RltdAgts>
                  <DbtrAgt>
                    <FinInstnId>
                      <BIC>EKRDEE22</BIC>
                      <Nm>Coop Pank AS</Nm>
                    </FinInstnId>
                  </DbtrAgt>
                </RltdAgts>
                <RmtInf>
                  <Ustrd>Laekumine testimiseks 1</Ustrd>
                  <Strd>
                    <CdtrRefInf>
                      <Ref>1234567891</Ref>
                    </CdtrRefInf>
                  </Strd>
                </RmtInf>
              </TxDtls>
            </NtryDtls>
          </Ntry>
          <Ntry>
            <NtryRef>2</NtryRef>
            <Amt Ccy="EUR">500.00</Amt>
            <CdtDbtInd>CRDT</CdtDbtInd>
            <Sts>BOOK</Sts>
            <BookgDt>
              <Dt>2024-08-31</Dt>
            </BookgDt>
            <ValDt>
              <Dt>2024-08-31</Dt>
            </ValDt>
            <AcctSvcrRef>1146660B-531051111</AcctSvcrRef>
            <BkTxCd>
              <Domn>
                <Cd>PMNT</Cd>
                <Fmly>
                  <Cd>RCDT</Cd>
                  <SubFmlyCd>BOOK</SubFmlyCd>
                </Fmly>
              </Domn>
            </BkTxCd>
            <NtryDtls>
              <TxDtls>
                <Refs>
                  <AcctSvcrRef>1146660B-531051111</AcctSvcrRef>
                  <InstrId>1234</InstrId>
                  <TxId>1146660B</TxId>
                </Refs>
                <AmtDtls>
                  <TxAmt>
                    <Amt Ccy="EUR">500.00</Amt>
                  </TxAmt>
                </AmtDtls>
                <RltdPties>
                  <Dbtr>
                    <Nm>JAAK-KRISTJAN JÕEORG</Nm>
                    <Id>
                      <PrvtId>
                        <Othr>
                          <Id>38001085718</Id>
                          <SchmeNm>
                            <Prtry>NIDN</Prtry>
                          </SchmeNm>
                        </Othr>
                      </PrvtId>
                    </Id>
                  </Dbtr>
                  <DbtrAcct>
                    <Id>
                      <IBAN>EE584204200000000012</IBAN>
                    </Id>
                  </DbtrAcct>
                </RltdPties>
                <RltdAgts>
                  <DbtrAgt>
                    <FinInstnId>
                      <BIC>EKRDEE22</BIC>
                      <Nm>Coop Pank AS</Nm>
                    </FinInstnId>
                  </DbtrAgt>
                </RltdAgts>
                <RmtInf>
                  <Ustrd>Laekumine testimiseks 2</Ustrd>
                  <Strd>
                    <CdtrRefInf>
                      <Ref>1234567892</Ref>
                    </CdtrRefInf>
                  </Strd>
                </RmtInf>
              </TxDtls>
            </NtryDtls>
          </Ntry>
          <Ntry>
            <NtryRef>3</NtryRef>
            <Amt Ccy="EUR">20.00</Amt>
            <CdtDbtInd>CRDT</CdtDbtInd>
            <Sts>BOOK</Sts>
            <BookgDt>
              <Dt>2024-08-31</Dt>
            </BookgDt>
            <ValDt>
              <Dt>2024-08-31</Dt>
            </ValDt>
            <AcctSvcrRef>11444A60-531054700</AcctSvcrRef>
            <BkTxCd>
              <Domn>
                <Cd>PMNT</Cd>
                <Fmly>
                  <Cd>RCDT</Cd>
                  <SubFmlyCd>BOOK</SubFmlyCd>
                </Fmly>
              </Domn>
            </BkTxCd>
            <NtryDtls>
              <TxDtls>
                <Refs>
                  <AcctSvcrRef>11444A60-5310547030</AcctSvcrRef>
                  <InstrId>12345</InstrId>
                  <TxId>11444A60</TxId>
                </Refs>
                <AmtDtls>
                  <TxAmt>
                    <Amt Ccy="EUR">20.00</Amt>
                  </TxAmt>
                </AmtDtls>
                <RltdPties>
                  <Dbtr>
                    <Nm>TESTIMISEKS AS</Nm>
                    <Id>
                      <PrvtId>
                        <Othr>
                          <Id>11111111</Id>
                          <SchmeNm>
                            <Prtry>NIDN</Prtry>
                          </SchmeNm>
                        </Othr>
                      </PrvtId>
                    </Id>
                  </Dbtr>
                  <DbtrAcct>
                    <Id>
                      <IBAN>EE584204200000000013</IBAN>
                    </Id>
                  </DbtrAcct>
                </RltdPties>
                <RltdAgts>
                  <DbtrAgt>
                    <FinInstnId>
                      <BIC>EKRDEE22</BIC>
                      <Nm>Coop Pank AS</Nm>
                    </FinInstnId>
                  </DbtrAgt>
                </RltdAgts>
                <RmtInf>
                  <Ustrd>Laekumine testimiseks 3</Ustrd>
                  <Strd>
                    <CdtrRefInf>
                      <Ref>1234567893</Ref>
                    </CdtrRefInf>
                  </Strd>
                </RmtInf>
              </TxDtls>
            </NtryDtls>
          </Ntry>
          <Ntry>
            <NtryRef>4</NtryRef>
            <Amt Ccy="EUR">5.00</Amt>
            <CdtDbtInd>DBIT</CdtDbtInd>
            <Sts>BOOK</Sts>
            <BookgDt>
              <Dt>2024-08-31</Dt>
            </BookgDt>
            <ValDt>
              <Dt>2024-08-31</Dt>
            </ValDt>
            <AcctSvcrRef>561C0D0</AcctSvcrRef>
            <BkTxCd>
              <Domn>
                <Cd>PMNT</Cd>
                <Fmly>
                  <Cd>ICDT</Cd>
                  <SubFmlyCd>BOOK</SubFmlyCd>
                </Fmly>
              </Domn>
            </BkTxCd>
            <NtryDtls>
              <TxDtls>
                <Refs>
                  <AcctSvcrRef>561C0D0</AcctSvcrRef>
                  <InstrId>123456</InstrId>
                  <TxId>561C0D0</TxId>
                </Refs>
                <AmtDtls>
                  <TxAmt>
                    <Amt Ccy="EUR">5.00</Amt>
                  </TxAmt>
                </AmtDtls>
                <RltdPties>
                  <Dbtr>
                    <Id>
                      <OrgId>
                        <Othr>
                          <Id>1111111</Id>
                          <SchmeNm>
                            <Prtry>COID</Prtry>
                          </SchmeNm>
                        </Othr>
                      </OrgId>
                    </Id>
                  </Dbtr>
                  <Cdtr>
                    <Nm>TEST OÜ</Nm>
                  </Cdtr>
                  <CdtrAcct>
                    <Id>
                      <IBAN>EE214204200000000000</IBAN>
                    </Id>
                  </CdtrAcct>
                </RltdPties>
                <RltdAgts>
                  <CdtrAgt>
                    <FinInstnId>
                      <BIC>EKRDEE22</BIC>
                      <Nm>Coop Pank AS</Nm>
                    </FinInstnId>
                  </CdtrAgt>
                </RltdAgts>
                <RmtInf>
                  <Ustrd>Makse testimiseks 1</Ustrd>
                  <Strd>
                    <CdtrRefInf>
                      <Ref>1234567894</Ref>
                    </CdtrRefInf>
                  </Strd>
                </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>24090106573025982</MsgId>
          <CreDtTm>2024-09-01T06:57:30.475+03:000</CreDtTm>
          <MsgPgntn>
            <PgNb>1</PgNb>
            <LastPgInd>false</LastPgInd>
          </MsgPgntn>
        </GrpHdr>
      </BkToCstmrStmt>
    </Document>

    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">
      <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>24090106573025982</MsgId>
            <CreDtTm>2024-09-01T06:57:30.475+03:00</CreDtTm>
            <MsgPgntn>
              <PgNb>2</PgNb>
              <LastPgInd>true</LastPgInd>
            </MsgPgntn>
          </GrpHdr>
        </BkToCstmrStmt>
      </Document>
    </Document>

    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>

    Sandbox

    Debit and/or Credit Notifications can be tested in Sandbox environment.

    Debit Notification in Sandbox

    Purpose

    Debit Notification message informs the account holder of the debit entry or transaction that has been applied to their account. Debit Notification message is sent as a response message to Payment Initiation Request. Debit Notification message in Sandbox environment is composed independently of other services (e.g. Account Statement, Account Balance etc.), meaning that Debit Notification's transactions are sample transactions that are not reflected in other types of messages.

    Description

    A Debit Notification example message will be returned as a response message to Payment Initiation Request. However, the availability of the notification depends on the specific services included in the Coop Pank Gateway contract.

    Dynamic Value Replacement

    When Debit Notification is generated, certain dynamic values within the message are replaced. These dynamic elements include:

    • <CreDtTm>: Located at <BkToCstmrDbtCdtNtfctn> → <GrpHdr> → <CreDtTm>. Created based on the date and time of message creation according to Tallinn time zone.
    • <CreDtTm>: Located at <BkToCstmrDbtCdtNtfctn> → <Ntfctn> → <CreDtTm>. Created based on the date and time of message creation according to Tallinn time zone.
    • <IBAN>: Located at <BkToCstmrDbtCdtNtfctn> → <Ntfctn> → <Acct> → <Id> → <IBAN>. Replaced based on the debtor account from the incoming Payment Initiation XML.
    • <Nm>: Located at <BkToCstmrDbtCdtNtfctn> → <Ntfctn> → <Acct> → <Ownr> → <Nm>. Replaced based on the debtor name from the incoming Payment Initiation XML.
    • <Amt>: Located at <BkToCstmrDbtCdtNtfctn> → <Ntfctn> → <Ntry> → <Amt>. Replaced based on the instructed transaction amount from the incoming Payment Initiation XML.
    • <Amt>: Located at <BkToCstmrDbtCdtNtfctn> → <Ntfctn> → <Ntry> → <NtryDtls> → <TxDtls> → <AmtDtls> → <InstdAmt> → <Amt>. Replaced based on the instructed transaction amount from the incoming Payment Initiation XML.
    • <Amt>: Located at <BkToCstmrDbtCdtNtfctn> → <Ntfctn> → <Ntry> → <NtryDtls> → <TxDtls> → <AmtDtls> → <TxAmt> → <Amt>. Replaced based on the instructed transaction amount from the incoming Payment Initiation XML.
    • <Dt>: Located at <BkToCstmrDbtCdtNtfctn> → <Ntfctn> → <Ntry> → <BookgDt> → <Dt>. Created based on the date of message creation according to Tallinn time zone.
    • <InstrId>: Located at <BkToCstmrDbtCdtNtfctn> → <Ntfctn> → <Ntry> → <NtryDtls> → <TxDtls> → <Refs> → <InstrId>. Replaced based on the instruction identification from the incoming Payment Initiation XML.
    • <Nm>: Located at <BkToCstmrDbtCdtNtfctn> → <Ntfctn> → <Ntry> → <NtryDtls> → <TxDtls> → <RltdPties> → <Cdtr> → <Nm>. Replaced based on the creditor name from the incoming Payment Initiation XML.
    • <IBAN>: Located at <BkToCstmrDbtCdtNtfctn> → <Ntfctn> → <Ntry> → <NtryDtls> → <TxDtls> → <RltdPties> → <CdtrAcct> → <Id> → <IBAN>. Replaced based on the creditor account from the incoming Payment Initiation XML.

    Notes

    • Debit Notification will be returned as a response message to Payment Initiation Request. However, the availability of the notification depends on the specific services included in the Coop Pank Gateway contract.
    • Debit Notification has following transaction code structure, independent of the payment type specified in the incoming Payment Initiation XML:
      • Domain Code: "PMT" (Payment)
      • Family Code: "ICDT" (Issued Credit Transfer)
      • Subfamily Code: "OTHR" (Other)
    • Debit Notification has certain dynamic values that are replaced in the message. Some of the values are replaced based on the incoming Payment Initiation XML.
    • In case there are multiple transactions in the Payment Initiation XML, dynamic values will be replaced based on the last transaction in the file.

    Credit Notification in Sandbox

    Purpose

    Credit Notification message informs the account holder of the incoming funds. For testing purposes in Sandbox, Credit Notification message is sent as a response message to Payment Initiation Request, so that it can be managed through Payment Initiation Request what type of Credit Notification message example is received. Credit Notification message in Sandbox environment is composed independently of other services (e.g. Account Statement, Account Balance etc.), meaning that Credit Notification's transactions are sample transactions that are not reflected in other types of messages. Credit Notification message examples in Sandbox:

    • Incoming intrabank payment;
    • Incoming Estonian payment (Swedbank);
    • Incoming European payment (from a Latvian bank);
    • Conversion transaction (incoming payment in SEK into an account in EUR);
    • Receipt of interest;
    • Cash deposit at branch;
    • Cash deposit at branch with service fee (the amount exceeds the free cash deposit limit);
    • Cash deposit at Coop store.

    Description

    A Credit Notification example message will be returned as a response message to Payment Initiation Request only if <Ustrd> element in the Payment Initiation XML contains one of the specified values. A specific example message is retrieved based on the value provided in the <Ustrd> element in the Payment Initiation XML, which is located within <CstmrCdtTrfInitn> (CustomerCreditTransferInitiation) section of the XML message structure, specifically under <PmtInf> (PaymentInformation) → <CdtTrfTxInf> (CreditTransferTransactionInformation) → <RmtInf> (RemittanceInformation).

    The <Ustrd> element should be set to one of the following values to receive corresponding Credit Notification example message:

    • "CAMT.054.CN.DEMO1" to receive an example message for incoming intrabank payment;
    • "CAMT.054.CN.DEMO2" to receive an example message for incoming Estonian payment (Swedbank);
    • "CAMT.054.CN.DEMO3" to receive an example message for incoming European payment (from a Latvian bank);
    • "CAMT.054.CN.DEMO4" to receive an example message for conversion transaction (incoming payment in SEK into an account in EUR);
    • "CAMT.054.CN.DEMO5" to receive an example message for receipt of interest;
    • "CAMT.054.CN.DEMO6" to receive an example message for cash deposit at branch;
    • "CAMT.054.CN.DEMO7" to receive an example message for cash deposit at branch with service fee (the amount exceeds the free cash deposit limit);
    • "CAMT.054.CN.DEMO8" to receive an example message for cash deposit at Coop store.

    Dynamic Value Replacement

    When Credit Notification is generated, certain dynamic values within the message are replaced. These dynamic elements include:

    • <MsgId>: Located at <BkToCstmrDbtCdtNtfctn> → <GrpHdr> → <MsgId>. Created based on the date and time of message creation according to Tallinn time zone.
    • <CreDtTm>: Located at <BkToCstmrDbtCdtNtfctn> → <GrpHdr> → <CreDtTm>. Created based on the date and time of message creation according to Tallinn time zone.
    • <CreDtTm>: Located at <BkToCstmrDbtCdtNtfctn> → <Ntfctn> → <CreDtTm>. Created based on the date and time of message creation according to Tallinn time zone.
    • <Id>: Located at <BkToCstmrDbtCdtNtfctn> → <Ntfctn> → <Id>. Created based on the date and time of message creation according to Tallinn time zone.
    • <IBAN>: Located at <BkToCstmrDbtCdtNtfctn> → <Ntfctn> → <Acct> → <Id> → <IBAN>. Replaced based on the debtor account from the incoming Payment Initiation XML.
    • <Nm>: Located at <BkToCstmrDbtCdtNtfctn> → <Ntfctn> → <Acct> → <Ownr> → <Nm>. Replaced based on the debtor name from the incoming Payment Initiation XML.
    • <Dt>: Located at <BkToCstmrDbtCdtNtfctn> → <Ntfctn> → <Ntry> → <BookgDt> → <Dt>. Created based on the date of message creation according to Tallinn time zone.
    • <Dt>: Located at <BkToCstmrDbtCdtNtfctn> → <Ntfctn> → <Ntry> → <ValDt> → <Dt>. Created based on the date of message creation according to Tallinn time zone.
    • <Ustrd>: Located at <BkToCstmrDbtCdtNtfctn> → <Ntfctn> → <Ntry> → <NtryDtls> → <TxDtls> → <RmtInf> → <Ustrd>. The date inside the <Ustrd> element in the Cash deposit at Coop store message example is created based on the date of message creation according to Tallinn time zone.

    Notes

    • Credit Notification will be returned in addition to Debit Notification. However, the availability of the notifications depends on the specific services included in the Coop Pank Gateway contract.
    • <Ustrd> element is not mandatory, but expected to receive Credit Notification.
    • There should be only one <Ustrd> element in the Payment Initiation XML. In case there are multiple transactions in the Payment Initiation XML, the last transaction in the file must have the <Ustrd> element with specific value.
    • Credit Notification will only be returned if the <Ustrd> value matches one of the previously defined values under Description section. For any other value Credit Notification will not be returned.
    • The response message will vary based on the input provided in <Ustrd> element, so please ensure values align with the expected outcomes in your system.
    • Credit Notification has certain dynamic values that are replaced in the message. Some of the values are replaced based on the incoming Payment Initiation XML.

    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.

    A legal entity can transfer payment files with the company's digital stamp (e-Seal). The bank only accepts qualified digital stamps issued by SK ID Solutions AS (SK) - FIPS and QSCD, in which the identity of the certificate user has been identified. The company is subject to daily and monthly limits for transferring payment files with a digital stamp within the Gateway product (limits are stated in Coop Pank Gateway contract). A legal entity that uses a company's digital stamp must have defined daily and monthly limits applicable to the company, against which payments transmitted with a digital stamp are checked. A legal entity can authorize another legal entity to make payments from its account using its own digital stamp - if interested in using this option, please inform your Business Client Manager.

    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

    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 Shows that element is mandatory and can be presented only once.
    • 1..n Shows that element is mandatory and can be presented 1 to n times.
    • 0..1 Shows that element is optional and can be presented only once.
    • 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 One occurrence (required)
    • 1..n One or several occurrences (value for “n” represents total number of occurrences)
    • 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.
    • 0..1 None or one occurrence to be used (optional)
    • 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.

    It is possible to order the Payment Status Report messages with the digital stamp of Coop Pank, see more details Digital stamp of Coop Pank.

    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.

    Sandbox

    Payment Initiation service along with Payment Status Report response message can be tested in Sandbox environment.

    Purpose

    Payment Initiation Request message is sent by a client to initiate payment process to which a Payment Status Report message is sent as a response. Payment Status Report message informs the account holder of the positive or negative status of an instruction (either single or file).

    Payment Status Report message examples in Sandbox:

    • Accepted Payment: Both group level payment status code (<OrgnlGrpInfAndSts> → <GrpSts> and <OrgnlPmtInfAndSts> → <PmtInfSts>), and single payment status code (<OrgnlPmtInfAndSts> → <TxInfAndSts> → <TxSts>), are "ACSP";
    • Rejected Payment: Both group level payment status code (<OrgnlGrpInfAndSts> → <GrpSts> and <OrgnlPmtInfAndSts> → <PmtInfSts>), and single payment status code (<OrgnlPmtInfAndSts> → <TxInfAndSts> → <TxSts>), are "RJCT". Rejection reasons and message examples:
      • Rejected Payment message due to insufficient daily or monthly transfer limits for payment files with a digital stamp within the Gateway product;
      • Rejected Payment message due to invalid account access - client does not have permission to access the specified account for the payment;
      • Rejected Payment message due to invalid service access - payment initiation service is not part of the client's contract for the specified account and is not authorised for use.

    Description

    In Sandbox, Payment Initiation Request must be valid according to the corresponding XSD in the Live environment. A Payment Status Report example message will be returned as a response message to Payment Initiation Request.

    Accepted Payment message example is returned by default, if there are no specific issues like account access problems, service restrictions or other stated problems. This means that the system will assume that the payment file is within allowed limits and meets all criteria.

    A legal entity that is using company’s digital stamp (e-Seal) for payment files can receive an example message of rejected payment file due to insufficient daily or monthly transfer limits for digital stamp. In the Sandbox environment, there is no real accounting of daily or monthly transfer limits and example message of exceeded limit can be returned based on predefined value in the Payment Initiation XML. An example message is retrieved based on the value provided in the <Ustrd> element in the Payment Initiation XML, which is located within <CstmrCdtTrfInitn> (CustomerCreditTransferInitiation) section of the XML message structure, specifically under <PmtInf> (PaymentInformation) → <CdtTrfTxInf> (CreditTransferTransactionInformation) → <RmtInf> (RemittanceInformation). The <Ustrd> element should be set to the following value to receive corresponding Payment Status Report example message:

    • "PAIN.002.LIMIT.DEMO1" to receive an example message of rejected payment file due to insufficient daily or monthly transfer limits for payment files with a digital stamp within the Gateway product.

    Dynamic Value Replacement

    When Payment Status Report is generated, certain dynamic values within the message are replaced. These dynamic elements include:

    • <MsgId>: Located at <CstmrPmtStsRpt> → <GrpHdr> → <MsgId>. Created based on the date and time of message creation according to Tallinn time zone.
    • <CreDtTm>: Located at <CstmrPmtStsRpt> → <GrpHdr> → <CreDtTm>. Created based on the date and time of message creation according to Tallinn time zone.
    • <OrgnlMsgId>: Located at <CstmrPmtStsRpt> → <OrgnlGrpInfAndSts> → <OrgnlMsgId>. Replaced based on the message identification from the incoming Payment Initiation XML.
    • <OrgnlMsgNmId>: Located at <CstmrPmtStsRpt> → <OrgnlGrpInfAndSts> → <OrgnlMsgNmId>. Replaced based on the message name identification from the incoming Payment Initiation XML.
    • <OrgnlPmtInfId>: Located at <CstmrPmtStsRpt> → <OrgnlPmtInfAndSts> → <OrgnlPmtInfId>. Replaced based on the payment information group identification from the incoming Payment Initiation XML.
    • <AddtlInf>: Located at <CstmrPmtStsRpt> → <OrgnlPmtInfAndSts> → <TxInfAndSts> → <StsRsnInf> → <AddtlInf> in Rejected Payment message. Created based on the rejection reason.
    • <OrgnlInstrId>: Located at <CstmrPmtStsRpt> → <OrgnlPmtInfAndSts> → <TxInfAndSts> → <OrgnlInstrId>. Replaced based on the instructed transaction identification from the incoming Payment Initiation XML.
    • <InstdAmt>: Located at <CstmrPmtStsRpt> → <OrgnlPmtInfAndSts> → <TxInfAndSts> → <OrgnlTxRef> → <Amt> → <InstdAmt>. Replaced based on the instructed transaction amount from the incoming Payment Initiation XML.
    • <Dt>: Located at <CstmrPmtStsRpt> → <OrgnlPmtInfAndSts> → <TxInfAndSts> → <OrgnlTxRef> → <ReqdExctnDt> → <Dt>. Replaced based on the required transaction execution date from the incoming Payment Initiation XML.
    • <Nm>: Located at <CstmrPmtStsRpt> → <OrgnlPmtInfAndSts> → <TxInfAndSts> → <OrgnlTxRef> → <Dbtr> → <Pty> → <Nm>. Replaced based on the debtor name from the incoming Payment Initiation XML.
    • <IBAN>: Located at <CstmrPmtStsRpt> → <OrgnlPmtInfAndSts> → <TxInfAndSts> → <OrgnlTxRef> → <DbtrAcct> → <Id> → <IBAN>. Replaced based on the debtor account from the incoming Payment Initiation XML.
    • <BICFI>: Located at <CstmrPmtStsRpt> → <OrgnlPmtInfAndSts> → <TxInfAndSts> → <OrgnlTxRef> → <CdtrAgt> → <FinInstnId> → <BICFI>. Replaced based on the creditor financial institution identification from the incoming Payment Initiation XML. If not specified in the incoming Payment Initiation XML, the default value is "EKRDEE22".
    • <Nm>: Located at <CstmrPmtStsRpt> → <OrgnlPmtInfAndSts> → <TxInfAndSts> → <OrgnlTxRef> → <Cdtr> → <Pty> → <Nm>. Replaced based on the creditor name from the incoming Payment Initiation XML.
    • <IBAN>: Located at <CstmrPmtStsRpt> → <OrgnlPmtInfAndSts> → <TxInfAndSts> → <OrgnlTxRef> → <CdtrAcct> → <Id> → <IBAN>. Replaced based on the creditor account from the incoming Payment Initiation XML.

    Notes

    • The default Payment Status Report example message is Accepted Payment.
    • Rejected Payment example message is returned if a limitation occurs (account problem, service restriction) or if the <Ustrd> value matches the previously defined value under Description section.
    • There should be only one <Ustrd> element in the Payment Initiation XML to receive Rejected Payment example message. In case there are multiple transactions in the Payment Initiation XML, the last transaction in the file must have the <Ustrd> element with specific value.
    • In case there are multiple transactions in the Payment Initiation XML, dynamic values will be replaced based on the last transaction in the file.
    • Payment Status Report has certain dynamic values that are replaced in the message. Some of the values are replaced based on the incoming Payment Initiation XML.
    • <Nm> element in the incoming Payment Initiation XML located at <CstmrCdtTrfInitn> → <PmtInf> → <CdtTrfTxInf> → <Cdtr> → <Nm>, is mandatory only in Sandbox environment to return creditor name in the Payment Status Report message.

    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.
    CLBDClosing 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 date

    Release 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.
    14.05.2024 New payment confirmation method added - A legal entity can transfer payment files with the company's digital stamp (e-Seal). 

    The bank only accepts qualified digital stamps issued by SK ID Solutions AS - FIPS and QSCD, in which the identity of the certificate user has been identified.
     
    02.09.2024

    From now on it is possible to add the digital stamp of Coop Pank to files transferred with the following services:

    1. automatic account statement;
    2. account balance;
    3. response messages to payments.

    Digital stamp can be added to all contract types, the use of the digital stamp in services must be agreed upon in the Coop Pank Gateway contract.

    05.09.2024

    Debit Credit Notification service enhanced in Sandbox environment - the service now includes the Credit Notification message examples. For more information, see Debit Credit Notification.

    23.09.2024

    Payment Initiation service enhanced in Sandbox environment - the service now includes the Payment Status Report message examples for rejected payments. For more information, see Payment Initiation.