Specification for LHV CONNECT

Introduction

Welcome to LHV Connect API documentation and info page!

LHV Connect is a public API that our customers can use to integrate different banking services directly into their software. Using these services you can execute payments, query account balances or transaction history and perform many other tasks as part of your own software - without need to log into Internet Bank or use any other time consuming channels.
Technically LHV Connect is RESTful web service with requests and responses in XML format, with high availability and fast processing speeds.

Here you will find all the much needed information to get started with our API, including:

  • access and usage
  • environments
  • introduction to services and details

LHV Status Page - information and announcements about LHV services status and any interruptions.

Latest Updates

DATECHANGE
09.10.2020Added return initiation for UK Faster Payments scheme: Instruction for Debtor Agent in payment initiation (index 2.85) is used for referencing return payment.
Ignore non-IBAN account numbers for other regions than 'GB' in Agent Account Synchronization Request.
Added rule: debtor name in pain.001.001.03 index 2.19 is mandatory if payment is initiated from indirect agent's existing accounts.
Estonian Banking Association pain.001.001.03 XSD is replaced with custom XSD. See XML Format in payment initiation.
Added FPS reject code list in appendix, they appear in payment initiation response pain.002 Additional Info (index 3.25).
Added Non-IBAN account identification to payment initiation response pain.002 (index 3.122).
Added information: if not enough funds or daily/monthly limits, payments will be canceled immediately unless otherwise agreed. Payment initiation reject status 'No rights to remitter’s account.' moved to group level.
29.09.2020Now Virtual IBAN data can be modified with a valid reason. More info at Virtual IBAN Modify service.
14.09.2020We are changing the format of transaction reference in payment and account info messages. So far it has also included date information, but will be replaced with a random string of 32 characters. It impacts AcctSvcrRef tags in PAIN.002, CAMT.053 and CAMT.054 messages. Old format example: 202009081020678875-016192782. New format example: D9C8845A4BBAEA11910E00155DBDB777. Please make sure this change does not impact your integration. Change is planned for release on 2020.10.14 (in one month).
26.05.2020Added new optional parameters Filter-Response-Type for selecting messages by service type and Filter-Service-Provider for selecting messages for service provider. See more at messaging.
15.05.2020Added information about Indirect Scheme Access account management services. These are services for Indirect Account management for service providers with a valid Agency agreement. Updated payment initiation debtor account: added Othr.Id for non-IBAN accounts; added agency rule to Dbtr.PstlAdr and added TwnNm tag. Release planned in June 2020.
15.05.2020Added information about Contract Management Services. These services are meant for Service Providers Connect contract management - info services about existing contracts, creation and modification.
19.02.2020Added information about manual payment scheme selection.

Access and Basics

To start using LHV Connect services you need:

  • Valid customer agreement with LHV
  • Sign an additional Connect agreement
  • Connection certificates

The general approach and on-boarding steps, before you can start using the API in Live environment:

  • contact the LHV Connect support team at connect@lhv.ee or your client relationship manager
  • define the services you expect to use and consult our team when needed
  • support team prepares your dedicated Sandbox test environment. We expect it to be similar to your future setup in Live - the list of used services, account setup and other details.
  • support team sends you connection certificates for the test environment (not shared with live) and additional instructions
  • development and testing of your integrations can start!
  • when you are confident are ready to proceed to Live inform the support team and relationship manager
  • relationship manager prepares and signs the Connect agreement
  • support team sends you instruction for connection certificate generation (more details below)
  • Live usage can start!

Certificates

Following certificates are needed for using LHV Connect services:

  • Connection certificate - identifies and confirms on transport layer that messages were sent by customer's software to the Bank. LHV will generate this custom made certificate for the customer. It is an SSL Base64 PEM certificate that also requires a key. Certificate generation steps in live are following:
    • LHV sends the customer necessary instructions for generating the certificate request file (request.csr) and certificate key. Only customer itself is the owner of the key and responsible for storing it securely.
    • Customer sends the request file to Connect support team at connect@lhv.ee
    • Our support team sends back the actual certificate
  • Public root certificate for Connect.lhv.ee (DigiCert High Assurance EV Root CA), that ensures that client is connecting the the right service - root CA is available here. You can also check different formats here

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

Optional:

  • Signing certificate - some services offered via LHV Connect need a valid digital signature. Currently we support signing certificates based on non-reproducible physical devices and these are: Estonian digi-ID (ID-card), Estonian Mobiil-ID.

Environments

LHV Connect has Live environment and a dedicated test Sandbox environment. Similar to Live also Sandbox has separate connection certificates, payment accounts and all the same services available.

Live

Live base url is: https://connect.lhv.eu/

Sandbox

Sandbox test environment is our free to access testing environment. It 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://connect.prelive.lhv.eu/

Clients and connection schemes

There are two different connection schemes, how clients can connect and use Connect services:

Single clients

Client itself is the sole holder of the authentication certificate and connection software. Certificate provides access to one customer or legal entity only.

Service providers and end users using their services

Service provider scheme grants access to multiple customers or legal entities with a single connection certificate. It is meant typically 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 Connect
  • End user clients, who use CONNECT through service providers - not directly connected to Connect

Only service provider connection software is using Connect 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 (2 characters); issuing country of registration code)

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

Messaging

Client message container could be seen as an inbox. Client sends a request to the server and then polls the inbox for a response. If there are any messages in the inbox, by default the oldest unread message is returned. The whole cycle of one message consists of three stages: sending the request, retrieving the response and deleting the response.

Sending request

POST [base-url]/{service-url}

Sample: POST https://connect.lhv.eu/account-statement (the body should contain the actual request)

After successful posting of the request it returns a HTTP header Message-Request-Id, for example:
Message-Request-Id: REQe38a3875c8a94cc0bf48c558a8c9ee82

The Message-Request-Id HTTP header can be used to map any related response messages to the original request. Some request types might receive more than one response message - for example Payment Initiation.

Retrieving the response

GET [base-url]/messages/next
By default always the older unread (not deleted) message is returned. There are now also additional filter HTTP headers so select different messages as expected by the client:

  • Filter-Response-Type - add this optional header to select only specific service messages. This can be any value of Message-Response-Type header (ACCOUNT_STATEMENT, CREDIT_DEBIT_NOTIFICATION, PAYMENT etc.).
    With adding this parameter you could implement parallel threads to request payments responses and debit-credit notifications separately. For example if there are pending thousands notification messages in the queue you can still consume the payment response messages immediately.
  • Filter-Service-Provider - add this optional header to select service provider messages only. Values: 1/true (filter is on) or 0/false (filter is off). This can be used by service providers to select only their own company messages in the queue. By default when Client-Code is the service provider itself, it returns the messages of all customers.
    Has no effect when Client-Code is not service provider.

The response contains the following important headers:

  • 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: REQe38a3875c8a94cc0bf48c558a8c9ee82
  • Message-Response-Id (mandatory) - unique response id.
    Sample: Message-Response-Id: RES4ab8a01dd7ed4ed792f0605761ae532a
  • Message-Response-Type - type of the response depending on the request or purpose. For example ACCOUNT_STATEMENT (response message for Account Statement request).

When executing the request you can receive following HTTP responses:

  • 200 - there is a message waiting and there should be some content in the response XML
  • 204 - there are no new messages

Confirm the successful reading of the response

Confirm that reading the response was successful by deleting the message from your inbox. For this, use the response id.

DELETE [base-url]/messages/RES4ab8a01dd7ed4ed792f0605761ae532a

This step is important, because you can’t retrieve the next message until you confirm reading the previous message. After delete was successful, you can retrieve the next message.

NB! Unread messages older than 5 days are automatically scheduled for deletion.

Response Codes

CODEDESCRIPTION
503Service UnavailableTechnical error.
403ForbiddenAuthorization or authentication failure. Requested service is not stated in Connect agreement, Connect agreement is not valid or other failure.
500Internal Server ErrorTechnical error.
200OKGET request ok.
202AcceptedPOST request accepted.
429Too many requestsToo many requests in a given amount of time.

Error Handling

Service specific errors to Merchant Settlement Report Request and Account Statement Request are returned with following xml file.

List of error codes can be found at the service description.

INDEXMULT.MESSAGE ELEMENTXML TAGDESCRIPTION
1.0[1..1]Errors<Errors>
1.1[1..n]+Error<Error>
1.2[1..1]++ErrorCode<ErrorCode>For example, see list of Account Statement Request Error Codes.
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" standalone="yes"?>
<Errors>
    <Error>
        <ErrorCode>errStatement_PeriodInvalid</ErrorCode>
        <Description>From date cannot be later than to date.</Description>
        <Field>FrDt</Field>
    </Error>
    <Error>
        <ErrorCode>NotNull</ErrorCode>
        <Description>Name can't be null</Description>
        <Field>Name</Field>
    </Error>
</Errors>

General error codes

ERROR CODEMESSAGEDESCRIPTION
FORBIDDENCertificate has invalid SERIALNUMBER fieldIf authentication certificate SERIALNUMBER field is not a number
FORBIDDEN'Client-Code' request header value is not in numeric formatIf request header 'Client-Code' is not a number
FORBIDDENMissing 'Client-Country' request headerIf request header 'Client-Code' exists but 'Client-Country' header does not
FORBIDDEN'Client-Country' request header value is not in correct format. Length should be 2 characters (i.e. EE)If request header 'Client-Country' length is not 2 characters
FORBIDDENCan't authenticate. No 'Client-Code' header for service providerIf user is service provider or user is using service provider then 'Client-Code' and 'Client-Country' request headers are mandatory
FORBIDDENUser doesn't existIf user identification data was extracted from request but doesn't find such user from Connect system
FORBIDDENUser doesn't have valid contractIf user doesn't have valid contract in active status
FORBIDDENService provider doesn't have valid contractIf user service provider doesn't have valid contract in active status
FORBIDDENUser doesn't have valid certificate for authenticationIf user contract has no authentication certificate
FORBIDDENUser authentication certificate is different than expectedIf the certificate used for the authentication is different than the certificate indicated in the contract
FORBIDDENCan't create certificate, invalid inputIf user certificate in the contract is in the wrong format and is not readable
FORBIDDENUser authentication certificate is not yet validIf user certificate valid from date is in the future
FORBIDDENUser authentication certificate is expiredIf user certificate valid to date is in the past
FORBIDDENError reading certificate policyIf authentication certificate is issued by SK then it tries to read company policy from certificate and it doesnt find it
FORBIDDENCant read certificate issuer infoIf certificate has invalid issuer field or it doesn't exists
FORBIDDENCertificate file not foundIf SK certificate is used and system is trying to do OCSP request but issuer certificate is not found
FORBIDDENSK OCSP request failedIf SK certificate OCSP request failed for some reason (i.e connection failure)
FORBIDDENSK OCSP service doesn't respondIf SK certificate OCSP response is empty
FORBIDDENCertificate SK OCSP response is not validIf SK certificate OCSP respond that cerficate is not valid
FORBIDDENInvalid certificate subject common nameIf trying to read user identification from certificate common name field (CN) and it fails
FORBIDDENUser has not been granted the requested serviceIf service is not enabled in contract

FAQ and Tips

  • Does LHV Connect support multithreading?
    Short answer is no, but we are planning improvements here. You can actually submit requests from multiple client threads with your connection certificate, but you can read your responses with GET /messages/next service from one source at a time only. As the service only returns the oldest non-processed message from the queue until you execute the DELETE /messages/.. request.

  • How often can I request to read new messages?
    Every customer and its needs are different, but the most frequent mistake we have noticed is constantly polling with some fixed delay for new messages with GET /messages/next service. For example read a message every 10s one by one. Best practice is to loop through the bigger sets of transactions in batches. You can actually poll through the messages as fast as the interface responds and not lose the precious seconds. Once the current batch of transactions or any other messages pending is processed (HTTP response code 204 means there are no more messages) you can take a bit longer break and then try again. As a result you should get your messages as fast as possible (several per second) and at the same time avoid the constant polling on our interface.

    An example in pseudocode ...

    While (active_time==true) { // your business hours
        //loop until you get http result 204 = no content (no new messages)
        While (result != 204) {
            // read next message
            result = GET https://connect.lhv.eu/messages/next
            msgid = result.Message-Response-Id // get the HTTP header Message-Response-Id
    
            ProcessMessage(result) // whatever you do with the message
            DELETE https://connect.lhv.eu/messages/[msgid]
        }
        Sleep 10 min // adjust according to your actual needs
    }
    

Live Proving

Before going live with your API integrations we should first verify if everything is done according to our specification and good practices - to ensure that customers will get the best experience from the API.
This checklist is also useful when making any changes to your connection or any other activities that could have some impact.
If there are relevant issues with any of the topics mentioned below and it causes problems to our API we might be forced to not allow you to go Live or suspend your existing connection.

Polling and request frequency - You should execute API requests with reasonable frequency - as often as needed for your solution, but not overflow the API with requests that have no actual value. Typical issues:

  • constant polling of messages with GET /messages/next service
  • trying to use several threads at once and getting the same first message multiple times

Syntax and integrity - Please make sure that all requests contain relevant parameters in proper formats. Typical issues:

  • encoding issues
  • using incorrect or not existing account numbers in your requests
  • leading and trailing spaces or incorrect symbols in different parameters like names, addresses etc.

Account statements and periods - You should execute Account Statements for relevant time periods and frequency. You shouldn't request Account Statements for longer periods too often or when you have already requested the data that does not change anymore. Typical issues:

  • asking for full day or even several days statements when actually needing the latest transactions from last 10 minutes or other small period

Error processing - You should have adequate error processing in place. Make sure that your system is able to read the possible error codes and explanations and react on these. Typical issues:

  • not reading your HTTP response codes
  • not reading the payments service RJCT statuses and explanations

CONNECT Services

Following services are available in the Connect API.

ServiceDescription and purposeServicesFormats
Generic Services
Communication TestTesting the communication channel
and validity of the connection certificates.
GET [base-url]/heartbeat
POST [base-url]/heartbeat
rp: XML (HeartBeatResponse)
Get messagesGet next message from your inboxGET [base-url]/messages/nextrp: depends on message
AIS Services
Account StatementGetting an account statement or list
of transactions for a selected period
POST [base-url]/account-statementrq: XML camt.060.001.03
rp: XML camt.053.001.02
Account BalanceGetting account balancesPOST [base-url]/account-balancerq: XML camt.060.001.03
rp: XML camt.052.001.06
Automatic Account StatementAutomatically generated account statement
for a previous day
(only messages)rp: XML camt.053.001.02
Debit Credit NotificationNotification message about single
transactions on account
(only messages)rp: XML camt.054.001.02
PIS Services
Payment InitiationService for Payment initiation. Service is used to initiate return paymentsPOST [base-url]/paymentrq: XML pain.001.001.03
rp: XML pain.002.001.03
Virtual IBAN Services
Virtual IBAN OpenNew Virtual IBAN openingPOST [base-url]/viban/openrq: XML (VibanOpenRequest)
rp: XML (VibanOpenResponse)
Virtual IBAN BulkBulk opening nameless Virtual IBANsPOST [base-url]/viban/bulkrq: XML (VibanBulkRequest)
rp: XML (VibanBulkResponse)
Virtual IBAN ModifyAdd Virtual IBAN holder data to
nameless Virtual IBANs or modify existing one
POST [base-url]/viban/modifyrq: XML (VibanModifyRequest)
rp: XML (VibanModifyResponse)
Virtual IBAN InfoRequest Virtual IBAN dataPOST [base-url]/viban/inforq: XML (VibanInfoRequest)
rp: XML (VibanInfoResponse)
Virtual IBAN CloseClose a Virtual IBAN.POST [base-url]/viban/closerq: XML (VibanCloseRequest)
rp: XML (VibanCloseResponse)
Virtual IBAN Status NotificationNotification message about
Virtual IBAN status changes
(only messages)rp: XML (VibanStatusNotification)
Contract Management Services
Request New ContractInitiate new Service Provider
customer contract creation
POST [base-url]/contractsrq: JSON
rp: JSON
Get Contracts ListGet list and information about Service Provider
connected customers
GET [base-url]/contractsrq: NA
rp: JSON

Communication Test

Heartbeat service

GET [base-url]/heartbeat

Service for testing if system is up and connection certificate is configured correctly. Returns current system time.
For testing purposes we also recommend first using Curl, Postman or some other API testing tool. Sample Curl statements below - replace yourcert.crt and yourkey.key with your PEM certificate and key files:

// Sandbox:
curl -k -X GET "https://connect.prelive.lhv.eu/heartbeat" --cert yourcert.crt --key yourkey.key --cacert LHV_test_rootca2011.crt

// Live:
curl -k -X GET "https://connect.lhv.eu/heartbeat" --cert yourcert.crt --key yourkey.key --cacert DigiCertHighAssuranceEVRootCA.crt.pem

// Sandbox - for service providers:
curl -k -X GET "https://connect.prelive.lhv.eu/heartbeat" --cert yourcert.crt --key yourkey.key --cacert LHV_test_rootca2011.crt -H "Client-Code: 012345678" -H "Client-Country: GB"

// Live - for service providers:
curl -k -X GET "https://connect.lhv.eu/heartbeat" --cert yourcert.crt --key yourkey.key --cacert DigiCertHighAssuranceEVRootCA.crt.pem -H "Client-Code: 012345678" -H "Client-Country: GB"

Sample response

<HeartBeatResponse>
    <TimeStamp>2016-01-06T11:42:33.491</TimeStamp>
</HeartBeatResponse>

POST [base-url]/heartbeat

Service for testing your BDOC request.

Request should contain signed BDOC containing request.xml file. Service takes authenticated user info, extracts BDOC signature data and request.xml content and composes response xml like below.

Service response can be retrieved via messaging service (GET https://connect.lhv.eu/messages/next).

Sample

<HeartBeatResponse>
    <TimeStamp>2016-01-06T11:42:25.709</TimeStamp>
    <AuthorizedUser>
        <Name>LHV Pank AS</Name>
        <Code>10539549</Code>
    </AuthorizedUser>
    <Signatures>
        <Signature>
            <Name>LHV Pank AS</Name>
            <Code>10539549</Code>
        </Signature>
    </Signatures>
    <UserRequest>Test</UserRequest>
</HeartBeatResponse>

Account Reports

Request Account Report

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

XML format (camt.060.001.03)

The ISO 20022 Account Report Request camt.060.001.03 standard is used.

Message root

INDEXMESSAGE ELEMENTXML TAG
[1..1]MessageRoot<AcctRptgReq>

Group header

INDEXMULT.MESSAGE ELEMENTXML TAGDESCRIPTION
1.0[1..1]+GroupHeader<GrpHdr>
1.1[1..1]++MessageIdentification<MsgId>Unique message identifier generated by requesting party.
1.2[1..1]++CreationDateTime<CreDtTm>
2.0[1..1]+ReportingRequest<RptgReq>
2.1[0..1]++Identification<Id>
2.2[1..1]++RequestedMessageNameIdentification<ReqdMsgNmId>Supported values: 'camt.053.001.02' BankToCustomerStatement - client request POST https://connect.lhv.eu/account-statement; 'camt.052.001.06' BankToCustomerAccountReport - client request POST https://connect.lhv.eu/account-balance
2.3[1..1]++Account<Acct>
2.3[1..1]+++Identification<Id>
2.3[1..1]++++IBAN<IBAN>IBAN number to which the report request refers. When using Virtual/Agency account services - only master account IBAN must be used here. Virtual/Agency account is only displayed in the account statement report.
2.4[1..1]++AccountOwner<AcctOwnr>
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 cannot be later 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>Value is ignored if ReqdBalTp block not added or if ReqdBalTp.CdOrPrtry.Cd.Prtry = DATE. Used when Prtry = DATETIME
2.10[1..1]+++FromTime<FrTm>ISO datetime, inclusive.
2.10[1..1]+++ToTime<ToTm>ISO datetime, exclusive.
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

Sample is requesting the account statement for account EE337700771001260958.

  • The period is 14th of November 2019 and exact time slot between 16:00 and 17:00 in GMT+3 time zone.
  • Use Prtry=DATETIME to query exact time slots or Prtry=DATE for the whole day.
<?xml version="1.0" encoding="UTF-8"?>
<Document xmlns="urn:iso:std:iso:20022:tech:xsd:camt.060.001.03">
	<AcctRptgReq>
		<GrpHdr>
			<MsgId>MSGIDLHVTEST01</MsgId>
			<CreDtTm>2019-11-14T16:15:07.617</CreDtTm>
		</GrpHdr>
		<RptgReq>
			<ReqdMsgNmId>camt.053.001.02</ReqdMsgNmId>
			<Acct>
				<Id>
					<IBAN>EE337700771001260958</IBAN>
				</Id>
			</Acct>
			<AcctOwnr>
				<Pty />
			</AcctOwnr>
			<RptgPrd>
				<FrToDt>
					<FrDt>2019-11-14</FrDt>
					<ToDt>2019-11-14</ToDt>
				</FrToDt>
				<FrToTm>
					<FrTm>16:00:00+02:00</FrTm>
					<ToTm>17:00:00+02:00</ToTm>
				</FrToTm>
				<Tp>ALLL</Tp>
			</RptgPrd>
			<ReqdBalTp>
				<CdOrPrtry>
					<Prtry>DATETIME</Prtry>
				</CdOrPrtry>
			</ReqdBalTp>
		</RptgReq>
	</AcctRptgReq>
</Document>

Error codes

ERROR CODEDESCRIPTION
errStatement_NoAccessNo access to the account.
errStatement_PeriodLongPeriod is too long.
errStatement_PeriodInvalidFrom date cannot be later than to date.
errStatement_RequestInvalidRequest message fails xsd validation.

Response Account Statement

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

The ISO 20022 Account Statement Message camt.053.001.02 standard is used to report account booked transactions and balances of a selected time period. The message includes information about the opening balance, the closing balance, and the available balance together with all booked transactions of a reporting period. The ISO 20022 format allows to include information that is not supported by LHV. That information is not provided by LHV.

Header Message-Response-Type: ACCOUNT_STATEMENT

Message structure

Group Header – mandatory, occurs once.
Statement – mandatory and repetitive per currency.
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 identifier generated by requesting party. Maximum length 35 characters.
1.2[1..1]++CreationDateTime<CreDtTm>Date and time (UTC+2) when the account statement message is created at LHV.
1.3[0..1]++MessageRecipient<MsgRcpt>Not used.
1.4[0..1]++MessagePagination<MsgPgntn>For long account statements containing larger number of transactions pagination can be used - one Account Statement response receives more then one response in the queue. Then this optional block is used. 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>Indicator if current account statement portion is the last one - true/false.

Statement

INDEXMULT.ORMESSAGE ELEMENTXML TAGDESCRIPTION
2.0[1..n]+Statement<Stmt>
2.1[1..1]++Identification<Id>Unique identification provided by LHV. 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>Date and time when the account statement is generated at LHV.
2.5[1..1]++FromToDate<FrToDt>
[1..1]+++FromDateTime<FrDtTm>Start date of the reporting period.
[1..1]+++ToDateTime<ToDtTm>End date of the reporting period.
2.10[1..1]++Account<Acct>
[1..1]+++Identification<Id>
[1..1]++++IBAN<IBAN>IBAN for which this statement block is generated.
[0..1]+++Currency<Ccy>Account currency for which this statement block is generated.
[0..1]+++Servicer<Svcr>Full information about LHV.
[1..1]++++FinancialInstitutionIdentification<FinInstnId>
[0..1]+++++BIC<BIC>LHVBEE22
[0..1]+++++Name<Nm>LHV Pank
[0..1]+++++PostalAddress<PstlAdr>
[0..1]++++++AddressType<AdrTp>BIZZ
[0..1]++++++StreetName<StrtNm>Tartu mnt
[0..1]++++++BuildingNumber<BldgNb>2
[0..1]++++++PostCode<PstCd>10145
[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>See the codes 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>See the codes in Code Set: Credit and Debit Code.
2.36[1..1]+++Date<Dt>
[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>See the codes 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>See the codes in Code Set: Bank Transaction Codes.
2.94[1..1]+++++Family<Fmly>
2.95[1..1]++++++Code<Cd>See the codes in Code Set: Bank Transaction Codes.
2.96[1..1]++++++SubFamilyCode<SubFmlyCd>See the codes 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>If account statement was requested for Virtual/Agency account master account this tag will be empty for debit transaction.
[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>See the supported values in Code Set: Private Person Identification.
2.202[0..1]++++++RemitterAccount<DbtrAcct>If account statement was requested for Virtual/Agency account master account, Virtual/Agency account account number is displayed here for debit transaction.
[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. For Faster Payments (incoming): UK sort code + account nr (14 characters)
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>See the 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>If account statement was requested for Virtual/Agency account master account this tag will be empty for credit transaction
[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>See the supported values in Code Set: Private Person Identification.
2.205[0..1]++++++BeneficiaryAccount<CdtrAcct>If account statement was requested for Virtual/Agency account master account, Virtual/Agency account account number is displayed here for credit transaction
[1..1]+++++++Identification<Id>
[0..1]{Or++++++++IBAN<IBAN>Beneficiary’s IBAN. UK Faster Payments (outgoing) - when also payment request contained IBAN.
[0..1]Or}++++++++Other<Othr>
[1..1]+++++++++Identification<Id>Beneficiary’s account number which is not IBAN. UK Faster Payments (outgoing) - when also payment request contained sort code + domestic account nr. For Faster Payments (incoming): UK sort code + account nr (14 characters)
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>See the 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>See the 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. Additional rows with format CD:NNNNNNNN refer to payment scheme specific return codes.

Sample

<?xml version="1.0" encoding="UTF-8"?>
<Document xmlns="urn:iso:std:iso:20022:tech:xsd:camt.053.001.02" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="urn:iso:std:iso:20022:tech:xsd:camt.053.001.02 camt.053.001.02.xsd">
    <BkToCstmrStmt>
        <GrpHdr>
            <MsgId>10001115</MsgId>
            <CreDtTm>2016-03-15T13:04:55</CreDtTm>
        </GrpHdr>
        <Stmt>
            <Id>10001115EUR</Id>
            <CreDtTm>2016-03-15T13:04:55</CreDtTm>
            <FrToDt>
                <FrDtTm>2016-03-10T00:00:00</FrDtTm>
                <ToDtTm>2016-03-15T13:04:55</ToDtTm>
            </FrToDt>
            <Acct>
                <Id>
                    <IBAN>EE457700771000676899</IBAN>
                </Id>
                <Ccy>EUR</Ccy>
                <Svcr>
                    <FinInstnId>
                        <BIC>LHVBEE20XXX</BIC>
                        <Nm>AS LHV Pank</Nm>
                        <PstlAdr>
                            <AdrTp>BIZZ</AdrTp>
                            <StrtNm>Tartu mnt.</StrtNm>
                            <BldgNb>2</BldgNb>
                            <PstCd>10145</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">4497512.65</Amt>
                <CdtDbtInd>CRDT</CdtDbtInd>
                <Dt>
                    <Dt>2016-03-10</Dt>
                </Dt>
            </Bal>
            <Bal>
                <Tp>
                    <CdOrPrtry>
                        <Cd>CLBD</Cd>
                    </CdOrPrtry>
                </Tp>
                <Amt Ccy="EUR">4497505.65</Amt>
                <CdtDbtInd>CRDT</CdtDbtInd>
                <Dt>
                    <Dt>2016-03-15</Dt>
                </Dt>
            </Bal>
            <TxsSummry>
                <TtlCdtNtries>
                    <NbOfNtries>0</NbOfNtries>
                    <Sum>0.00</Sum>
                </TtlCdtNtries>
                <TtlDbtNtries>
                    <NbOfNtries>2</NbOfNtries>
                    <Sum>2.00</Sum>
                </TtlDbtNtries>
            </TxsSummry>
            <Ntry>
                <Amt Ccy="EUR">1.00</Amt>
                <CdtDbtInd>DBIT</CdtDbtInd>
                <Sts>BOOK</Sts>
                <BookgDt>
                    <Dt>2016-03-10</Dt>
                </BookgDt>
                <AcctSvcrRef>D9C8845A4BBAEA11910E00155DBDB777</AcctSvcrRef>
                <BkTxCd>
                    <Domn>
                        <Cd>PMNT</Cd>
                        <Fmly>
                            <Cd>CCRD</Cd>
                            <SubFmlyCd>FEES</SubFmlyCd>
                        </Fmly>
                    </Domn>
                    <Prtry>
                        <Cd>INTERNAL</Cd>
                    </Prtry>
                </BkTxCd>
                <NtryDtls>
                    <TxDtls>
                        <Refs>
                            <AcctSvcrRef>D9C8845A4BBAEA11910E00155DBDB777</AcctSvcrRef>
                        </Refs>
                        <AmtDtls>
                            <InstdAmt>
                                <Amt Ccy="EUR">1.00</Amt>
                            </InstdAmt>
                            <TxAmt>
                                <Amt Ccy="EUR">1.00</Amt>
                            </TxAmt>
                        </AmtDtls>
                        <RltdPties>
                            <Dbtr></Dbtr>
                            <Cdtr></Cdtr>
                        </RltdPties>
                        <RltdAgts></RltdAgts>
                        <RmtInf>
                            <Ustrd>Card (..6748) monthly fee</Ustrd>
                        </RmtInf>
                    </TxDtls>
                </NtryDtls>
            </Ntry>
            <Ntry>
                <Amt Ccy="EUR">1.00</Amt>
                <CdtDbtInd>DBIT</CdtDbtInd>
                <Sts>BOOK</Sts>
                <BookgDt>
                    <Dt>2016-03-11</Dt>
                </BookgDt>
                <AcctSvcrRef>D9C8845A4BBAEA11910E00155DBDB779</AcctSvcrRef>
                <BkTxCd>
                    <Domn>
                        <Cd>PMNT</Cd>
                        <Fmly>
                            <Cd>ICDT</Cd>
                            <SubFmlyCd>OTHR</SubFmlyCd>
                        </Fmly>
                    </Domn>
                    <Prtry>
                        <Cd>INTERNAL</Cd>
                    </Prtry>
                </BkTxCd>
                <NtryDtls>
                    <TxDtls>
                        <Refs>
                            <AcctSvcrRef>D9C8845A4BBAEA11910E00155DBDB779</AcctSvcrRef>
                            <InstrId>94</InstrId>
                        </Refs>
                        <AmtDtls>
                            <InstdAmt>
                                <Amt Ccy="EUR">1.00</Amt>
                            </InstdAmt>
                            <TxAmt>
                                <Amt Ccy="EUR">1.00</Amt>
                            </TxAmt>
                        </AmtDtls>
                        <RltdPties>
                            <Dbtr>
                                <Nm>Silver Kullassepp</Nm>
                                <PstlAdr>
                                    <Ctry>EE</Ctry>
                                </PstlAdr>
                                <Id>
                                    <PrvtId>
                                        <Othr>
                                            <Id>48107090295</Id>
                                            <SchmeNm>
                                                <Cd>NIDN</Cd>
                                            </SchmeNm>
                                        </Othr>
                                    </PrvtId>
                                </Id>
                            </Dbtr>
                            <DbtrAcct>
                                <Id>
                                    <IBAN>EE457700771000676899</IBAN>
                                </Id>
                            </DbtrAcct>
                            <Cdtr>
                                <Nm>Test Client</Nm>
                            </Cdtr>
                            <CdtrAcct>
                                <Id>
                                    <IBAN>EE867700771000681884</IBAN>
                                </Id>
                            </CdtrAcct>
                        </RltdPties>
                        <RltdAgts>
                            <DbtrAgt>
                                <FinInstnId>
                                    <BIC>LHVBEE20XXX</BIC>
                                    <Nm>AS LHV Pank</Nm>
                                </FinInstnId>
                            </DbtrAgt>
                            <CdtrAgt>
                                <FinInstnId>
                                    <BIC>LHVBEE20XXX</BIC>
                                    <Nm>AS LHV Pank</Nm>
                                </FinInstnId>
                            </CdtrAgt>
                        </RltdAgts>
                        <RmtInf>
                            <Ustrd>EUR payment</Ustrd>
                        </RmtInf>
                    </TxDtls>
                </NtryDtls>
            </Ntry>
        </Stmt>
        <Stmt>
            <Id>10001115USD</Id>
            <CreDtTm>2016-03-15T13:04:55</CreDtTm>
            <FrToDt>
                <FrDtTm>2016-03-10T00:00:00</FrDtTm>
                <ToDtTm>2016-03-15T13:04:55</ToDtTm>
            </FrToDt>
            <Acct>
                <Id>
                    <IBAN>EE457700771000676899</IBAN>
                </Id>
                <Ccy>USD</Ccy>
                <Svcr>
                    <FinInstnId>
                        <BIC>LHVBEE20XXX</BIC>
                        <Nm>AS LHV Pank</Nm>
                        <PstlAdr>
                            <AdrTp>BIZZ</AdrTp>
                            <StrtNm>Tartu mnt.</StrtNm>
                            <BldgNb>2</BldgNb>
                            <PstCd>10145</PstCd>
                            <TwnNm>Tallinn</TwnNm>
                            <CtrySubDvsn>Harjumaa</CtrySubDvsn>
                            <Ctry>EE</Ctry>
                        </PstlAdr>
                    </FinInstnId>
                </Svcr>
            </Acct>
            <Bal>
                <Tp>
                    <CdOrPrtry>
                        <Cd>OPBD</Cd>
                    </CdOrPrtry>
                </Tp>
                <Amt Ccy="USD">1216.13</Amt>
                <CdtDbtInd>CRDT</CdtDbtInd>
                <Dt>
                    <Dt>2016-03-10</Dt>
                </Dt>
            </Bal>
            <Bal>
                <Tp>
                    <CdOrPrtry>
                        <Cd>CLBD</Cd>
                    </CdOrPrtry>
                </Tp>
                <Amt Ccy="USD">1215.13</Amt>
                <CdtDbtInd>CRDT</CdtDbtInd>
                <Dt>
                    <Dt>2016-03-15</Dt>
                </Dt>
            </Bal>
            <TxsSummry>
                <TtlCdtNtries>
                    <NbOfNtries>0</NbOfNtries>
                    <Sum>0.00</Sum>
                </TtlCdtNtries>
                <TtlDbtNtries>
                    <NbOfNtries>1</NbOfNtries>
                    <Sum>1.00</Sum>
                </TtlDbtNtries>
            </TxsSummry>
            <Ntry>
                <Amt Ccy="USD">1.00</Amt>
                <CdtDbtInd>DBIT</CdtDbtInd>
                <Sts>BOOK</Sts>
                <BookgDt>
                    <Dt>2016-03-15</Dt>
                </BookgDt>
                <AcctSvcrRef>D9C8845A4BBAEA11910E00155DBDB781</AcctSvcrRef>
                <BkTxCd>
                    <Domn>
                        <Cd>PMNT</Cd>
                        <Fmly>
                            <Cd>ICDT</Cd>
                            <SubFmlyCd>OTHR</SubFmlyCd>
                        </Fmly>
                    </Domn>
                    <Prtry>
                        <Cd>SWIFT</Cd>
                    </Prtry>
                </BkTxCd>
                <NtryDtls>
                    <TxDtls>
                        <Refs>
                            <AcctSvcrRef>D9C8845A4BBAEA11910E00155DBDB781</AcctSvcrRef>
                            <InstrId>17793</InstrId>
                        </Refs>
                        <AmtDtls>
                            <InstdAmt>
                                <Amt Ccy="USD">1.00</Amt>
                            </InstdAmt>
                            <TxAmt>
                                <Amt Ccy="USD">1.00</Amt>
                            </TxAmt>
                        </AmtDtls>
                        <RltdPties>
                            <Dbtr>
                                <Nm>Silver Kullassepp</Nm>
                                <PstlAdr>
                                    <Ctry>EE</Ctry>
                                    <AdrLine>Tartu mnt, Tallinn, 11111</AdrLine>
                                </PstlAdr>
                            </Dbtr>
                            <DbtrAcct>
                                <Id>
                                    <IBAN>EE457700771000676899</IBAN>
                                </Id>
                            </DbtrAcct>
                            <Cdtr>
                                <Nm>John Smith</Nm>
                            </Cdtr>
                            <CdtrAcct>
                                <Id>
                                    <Othr>
                                        <Id>440532013000</Id>
                                    </Othr>
                                </Id>
                            </CdtrAcct>
                        </RltdPties>
                        <RltdAgts>
                            <DbtrAgt>
                                <FinInstnId>
                                    <BIC>LHVBEE20XXX</BIC>
                                    <Nm>AS LHV Pank</Nm>
                                </FinInstnId>
                            </DbtrAgt>
                            <CdtrAgt>
                                <FinInstnId>
                                    <BIC>DEUTDEBBXXY</BIC>
                                </FinInstnId>
                            </CdtrAgt>
                        </RltdAgts>
                        <RmtInf>
                            <Ustrd>USD payment</Ustrd>
                        </RmtInf>
                    </TxDtls>
                </NtryDtls>
            </Ntry>
        </Stmt>
    </BkToCstmrStmt>
</Document>

For long account statements containing larger number of transactions pagination can be used - one Account Statement response receives more then one response in the queue.

First response message header part:

<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>12397887</MsgId>
      <CreDtTm>2020-03-30T21:00:03</CreDtTm>
      <MsgPgntn>
        <PgNb>1</PgNb>
        <LastPgInd>false</LastPgInd>
      </MsgPgntn>
    </GrpHdr>
    ...

Second and final response message header part:

<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>12397888</MsgId>
      <CreDtTm>2020-03-30T21:00:03</CreDtTm>
      <MsgPgntn>
        <PgNb>2</PgNb>
        <LastPgInd>true</LastPgInd>
      </MsgPgntn>
    </GrpHdr>
    ...

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 to report current account balance. The report returns two balances: current booked balance (without reservations) and current available balance (with reservations). If client has no balance in any currency, then 0 EUR balance is returned.

Header Message-Response-Type: ACCOUNT_BALANCE

Message structure

Group Header - mandatory, occurs once.
Report - mandatory and repetitive per currency. Includes zero to many Balance blocks. Report does not include detailed entry data.

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 LHV.
1.2[1..1]++CreationDateTime<CreDtTm>Date and time (UTC+2) when the account statement message is created at LHV.
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>Report block is generated per every account and currency.
2.1[1..1]++Identification<Id>Unique identification generated by LHV.
2.4[1..1]++CreationDateTime<CreDtTm>Creation date and time.
2.5[0..1]++FromToDate<FrToDt>Period for what this report is generated.
2.5[1..1]+++FromDateTime<FrDtTm>From date and time in camt.060.001.02 request.
2.5[1..1]+++ToDateTime<ToDtTm>To date and time in camt.060.001.02 request.
2.10[1..1]++Account<Acct>
2.10[1..1]+++Identification<Id>
2.10[1..1]++++IBAN<IBAN>Account number for what this report is generated.
2.10[0..1]+++Currency<Ccy>Currency of this report block.
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[1..1]+++++Code<Cd>'ITAV' for current available balance; 'ITBD' for interim booked balance.
2.34[1..1]+++Amount<Amt>Balance amount.
2.35[1..1]+++CreditDebitIndicator<CdtDbtInd>See the codes in Code Set: Credit and Debit Code.
2.36[1..1]+++Date<Dt>
2.36[1..1]++++Date<Dt>Date of the balance.
2.76[0..n]++Entry<Ntry>Entry data is not returned.

Sample

Sample account EE337700771001260958 has balances in EUR, GBP and USD.

<Document xmlns="urn:iso:std:iso:20022:tech:xsd:camt.052.001.06">
	<BkToCstmrAcctRpt>
		<GrpHdr>
			<MsgId>10942452</MsgId>
			<CreDtTm>2019-11-14T16:27:24.775</CreDtTm>
		</GrpHdr>
		<Rpt>
			<Id>10942452EUR</Id>
			<CreDtTm>2019-11-14T16:27:24.775</CreDtTm>
			<FrToDt>
				<FrDtTm>2019-11-14T16:27:24.775</FrDtTm>
				<ToDtTm>2019-11-14T16:27:24.775</ToDtTm>
			</FrToDt>
			<Acct>
				<Id>
					<IBAN>EE337700771001260958</IBAN>
				</Id>
				<Ccy>EUR</Ccy>
			</Acct>
			<Bal>
				<Tp>
					<CdOrPrtry>
						<Cd>ITBD</Cd>
					</CdOrPrtry>
				</Tp>
				<Amt Ccy="EUR">7712.03</Amt>
				<CdtDbtInd>CRDT</CdtDbtInd>
				<Dt>
					<Dt>2019-11-14</Dt>
				</Dt>
			</Bal>
			<Bal>
				<Tp>
					<CdOrPrtry>
						<Cd>ITAV</Cd>
					</CdOrPrtry>
				</Tp>
				<Amt Ccy="EUR">7599.53</Amt>
				<CdtDbtInd>CRDT</CdtDbtInd>
				<Dt>
					<Dt>2019-11-14</Dt>
				</Dt>
			</Bal>
		</Rpt>
		<Rpt>
			<Id>10942452GBP</Id>
			<CreDtTm>2019-11-14T16:27:24.775</CreDtTm>
			<FrToDt>
				<FrDtTm>2019-11-14T16:27:24.775</FrDtTm>
				<ToDtTm>2019-11-14T16:27:24.775</ToDtTm>
			</FrToDt>
			<Acct>
				<Id>
					<IBAN>EE337700771001260958</IBAN>
				</Id>
				<Ccy>GBP</Ccy>
			</Acct>
			<Bal>
				<Tp>
					<CdOrPrtry>
						<Cd>ITBD</Cd>
					</CdOrPrtry>
				</Tp>
				<Amt Ccy="GBP">1000.00</Amt>
				<CdtDbtInd>CRDT</CdtDbtInd>
				<Dt>
					<Dt>2019-11-14</Dt>
				</Dt>
			</Bal>
			<Bal>
				<Tp>
					<CdOrPrtry>
						<Cd>ITAV</Cd>
					</CdOrPrtry>
				</Tp>
				<Amt Ccy="GBP">1000.00</Amt>
				<CdtDbtInd>CRDT</CdtDbtInd>
				<Dt>
					<Dt>2019-11-14</Dt>
				</Dt>
			</Bal>
		</Rpt>
		<Rpt>
			<Id>10942452USD</Id>
			<CreDtTm>2019-11-14T16:27:24.775</CreDtTm>
			<FrToDt>
				<FrDtTm>2019-11-14T16:27:24.775</FrDtTm>
				<ToDtTm>2019-11-14T16:27:24.775</ToDtTm>
			</FrToDt>
			<Acct>
				<Id>
					<IBAN>EE337700771001260958</IBAN>
				</Id>
				<Ccy>USD</Ccy>
			</Acct>
			<Bal>
				<Tp>
					<CdOrPrtry>
						<Cd>ITBD</Cd>
					</CdOrPrtry>
				</Tp>
				<Amt Ccy="USD">1751.20</Amt>
				<CdtDbtInd>CRDT</CdtDbtInd>
				<Dt>
					<Dt>2019-11-14</Dt>
				</Dt>
			</Bal>
			<Bal>
				<Tp>
					<CdOrPrtry>
						<Cd>ITAV</Cd>
					</CdOrPrtry>
				</Tp>
				<Amt Ccy="USD">1751.20</Amt>
				<CdtDbtInd>CRDT</CdtDbtInd>
				<Dt>
					<Dt>2019-11-14</Dt>
				</Dt>
			</Bal>
		</Rpt>
	</BkToCstmrAcctRpt>
</Document>

Debit Credit Notification

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

The ISO 20022 Bank To Customer Debit Credit Notification camt.054.001.02 standard is used to report customer of payments on the account. Both credit and debit transactions are included.
The message does not include balance information.

Header Message-Response-Type: CREDIT_DEBIT_NOTIFICATION

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

Message structure

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

Message root

MULT.MESSAGE ELEMENTXML TAG
[1..1]MessageRoot<BkToCstmrDbtCdtNtfctn>

Group header

INDEXMULT.ORMESSAGE ELEMENTXML TAGDESCRIPTION
1.0[1..1]+GroupHeader<GrpHdr>
1.1[1..1]++MessageIdentification<MsgId>Unique message identifier generated by LHV.
1.2[1..1]++CreationDateTime<CreDtTm>Date and time (UTC+2) when the notification message is created at LHV.
2.0[1..n]+Notification<Ntfctn>
2.1[1..1]++Identification<Id>Unique notification identifier generated by LHV.
2.4[1..1]++CreationDateTime<CreDtTm>Date and time (UTC+2) when the notification is created at LHV.
2.10[1..1]++Account<Acct>
[1..1]+++ Identification<Id>
[1..1]++++IBAN<IBAN>IBAN for which this notification block is generated. When using Virtual/Agency account services - the master account IBAN is used here, and Virtual/Agency account in debitor and creditor blocks.
[1..1]+++Currency<Ccy>Currency for which this notification block is generated.
[0..1]+++Owner<Ownr>Account owner information.
[1..1]++++Name<Nm>Account owner name.
[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>Legal customer registry code.
[1..1]Or}+++++PrivateIdentification<PrvtId>
[1..1]++++++Other<Othr>
[1..1]+++++++Identification<Id>Private customer personal code.
[1..1]+++Servicer<Svcr>
[1..1]++++BIC<BIC>LHVBEE22.
[1..1]++++Name<Nm>LHV Pank.
2.56[0..n]++Entry<Ntry>Transaction level entry.
2.58[1..1]+++Amount<AmtCcy="AAA">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>True (1) if credit transaction is return of payment
2.61[1..1]+++Status<Sts>BOOK.
2.62[1..1]+++BookingDate<BookgDt>
[1..1]++++Date<Dt>Transaction date.
2.64[1..1]+++AccountServicerReference<AcctSvcrRef>Unique payment ID assigned by the bank.
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>
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>
2.123[1..1]+++++References<Refs>
2.125[0..1]++++++AccountServicerReference<AcctSvcrRef>Unique payment ID assigned by the bank.
2.126[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.127[0..1]++++++InstructionIdentification<InstrId>Payment order number.
2.128[0..1]++++++EndToEndIdentification<EndToEndId>
2.136[1..1]+++++AmountDetails<AmtDtls>
[1..1]++++++InstructedAmount<InstdAmt>
[1..1]+++++++Amount<AmtCcy="AAA">Transaction amount (may be zero).
2.179[0..1]+++++RelatedParties<RltdPties>
2.181[0..1]++++++Debtor<Dbtr>Block is included for: credit transactions; debit transactions for Virtual/Agency account master account
[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>
[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>Block is included for: credit transactions; debit transactions for Virtual/Agency account master account
+++++++Identification<Id>
[1..1]{Or++++++++IBAN<IBAN>Remitter’s IBAN for credit transaction and Virtual/Agency account for debit transactions.
[1..1]Or}++++++++Other<Othr>
[1..1]+++++++++Identification<Id>Remitter’s bank account number which is not IBAN. For Faster Payments (incoming): UK sort code + account nr (14 characters)
2.183[0..1]++++++UltimateDebtor<UltmtDbtr>
[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>Ultlimate 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>Block is included for: debit transactions; credit transactions for Virtual/Agency account master account
[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>Block is included for: debit transactions; credit transactions for Virtual/Agency account master account
+++++++Identification<Id>
[1..1]{Or++++++++IBAN<IBAN>Beneficiary’s IBAN for debit transaction and Virtual/Agency account for credit transactions. UK Faster Payments - used when also payment request contained IBAN.
[1..1]Or}++++++++Other<Othr>
[1..1]+++++++++Identification<Id>Beneficiary’s account number which is not IBAN. UK Faster Payments (outgoing) - when also payment request contained sort code + domestic account nr. For Faster Payments (incoming): UK sort code + account nr (14 characters)
2.186[0..1]++++++UltimateCreditor<UltmtCdtr>
[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>
+++++++FinancialInstitutionIdentification<FinInstnId>
++++++++BIC<BIC>BIC of the remitter’s bank.
++++++++Name<Nm>Name of the remitter’s bank.
2.193++++++CreditorAgent<CdtrAgt>
+++++++FinancialInstitutionIdentification<FinInstnId>
++++++++BIC<BIC>BIC of the beneficiary’s bank.
++++++++Name<Nm>Name of the beneficiary’s bank.
2.204+++++Purpose<Purp>
2.205++++++Code<Cd>See the codes in Code Set: Purpose.
2.206++++++Proprietary<Prtry>
2.214+++++RemittanceInformation<RmtInf>
2.215++++++Unstructured<Ustrd>Payment description.
2.216++++++Structured<Strd>
2.236+++++++CreditorReferenceInformation<CdtrRefInf>
2.237++++++++Type<Tp>
2.238+++++++++CodeOrProprietary<CdOrPrtry>
2.239++++++++++Code<Cd>SCOR
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 codes.

Sample

This sample matches the sample payment under Payment Initiation - from customer "LHV Connect Demo 1" to customer "LHV Connect Demo 2".
It is the outgoing payment from "LHV Connect Demo 1" account EE337700771001260958.

<Document xmlns="urn:iso:std:iso:20022:tech:xsd:camt.054.001.02">
	<BkToCstmrDbtCdtNtfctn>
		<GrpHdr>
			<MsgId>10942444</MsgId>
			<CreDtTm>2019-11-14T16:01:40.074</CreDtTm>
		</GrpHdr>
		<Ntfctn>
			<Id>10942444EUR</Id>
			<CreDtTm>2019-11-14T16:01:40.074</CreDtTm>
			<Acct>
				<Id>
					<IBAN>EE337700771001260958</IBAN>
				</Id>
				<Ccy>EUR</Ccy>
				<Ownr>
					<Nm>LHV Connect Demo 1</Nm>
					<Id>
						<OrgId>
							<Othr>
								<Id>96811884</Id>
							</Othr>
						</OrgId>
					</Id>
				</Ownr>
				<Svcr>
					<FinInstnId>
						<BIC>LHVBEE22</BIC>
						<Nm>AS LHV Pank</Nm>
					</FinInstnId>
				</Svcr>
			</Acct>
			<Ntry>
				<Amt Ccy="EUR">2.50</Amt>
				<CdtDbtInd>DBIT</CdtDbtInd>
				<Sts>BOOK</Sts>
				<BookgDt>
					<Dt>2019-11-14</Dt>
				</BookgDt>
				<AcctSvcrRef>D9C8845A4BBAEA11910E00155DBDB781</AcctSvcrRef>
				<BkTxCd>
					<Domn>
						<Cd>PMNT</Cd>
						<Fmly>
							<Cd>ICDT</Cd>
							<SubFmlyCd>OTHR</SubFmlyCd>
						</Fmly>
					</Domn>
                    <Prtry>
                        <Cd>INTERNAL</Cd>
                    </Prtry>
				</BkTxCd>
				<NtryDtls>
					<TxDtls>
						<Refs>
							<AcctSvcrRef>D9C8845A4BBAEA11910E00155DBDB781</AcctSvcrRef>
							<InstrId>INSTRIDLHVTEST01A</InstrId>
							<EndToEndId>ENDTOENDIDLHVTEST01A</EndToEndId>
						</Refs>
						<AmtDtls>
							<InstdAmt>
								<Amt Ccy="EUR">2.50</Amt>
							</InstdAmt>
							<TxAmt>
								<Amt Ccy="EUR">2.50</Amt>
							</TxAmt>
						</AmtDtls>
						<RltdPties>
							<Cdtr>
								<Nm>LHV Connect Demo 2</Nm>
							</Cdtr>
							<CdtrAcct>
								<Id>
									<IBAN>EE267700771001260987</IBAN>
								</Id>
							</CdtrAcct>
						</RltdPties>
						<RltdAgts>
							<DbtrAgt>
								<FinInstnId>
									<BIC>LHVBEE20</BIC>
									<Nm>AS LHV Pank</Nm>
								</FinInstnId>
							</DbtrAgt>
							<CdtrAgt>
								<FinInstnId>
									<BIC>LHVBEE20</BIC>
									<Nm>AS LHV Pank</Nm>
								</FinInstnId>
							</CdtrAgt>
						</RltdAgts>
						<RmtInf>
							<Ustrd>Payment Description LHVTEST01A</Ustrd>
							<Strd>
								<CdtrRefInf>
									<Tp>
										<CdOrPrtry>
											<Cd>SCOR</Cd>
										</CdOrPrtry>
									</Tp>
									<Ref>700170939</Ref>
								</CdtrRefInf>
							</Strd>
						</RmtInf>
					</TxDtls>
				</NtryDtls>
			</Ntry>
		</Ntfctn>
	</BkToCstmrDbtCdtNtfctn>
</Document>

Payment Initiation

Service for executing payments.

Payment initiation Request

POST [base-url]/payment

Request message format is Customer to bank Payment Initiation (XML type pain.001.001.03) that covers SEPA, SEPA Instant, UK Faster Payments and other payments schemes and types available at LHV Pank.

One payment initiation message may contain up to 1500 single payments.

Payment Status Report (pain.002.001.03) is returned to inform about the status of imported payments. More than one status may be returned for one payment.

Authentication methods

There are different authentication methods to send payments via Connect:

Pending Payments

Payment files are sent by plain XML. Payments are not processed immediately. All sent payments are seen at Internet bank under Pending payments and can be signed and confirmed only there. Only after confirmation the payments are processed and debited from the account. Internet Bank daily and monthly limits and acceptance rate is applied.

header Content-Type: application/xml

Signed Payments in DigiDoc Container

Payment files are sent in BDOC container. Internet bank daily and monthly limits and acceptance rate is applied. If payment requires more than one signature, all signatures must be included in the BDOC container and limit usage is taken into account for the last signer.

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

XML message has to be signed and the created BDOC has to be put into the body of the message. Whoever signed the document has to have adequate limits and rights for the execution of the payment. XML file needs to be named as "request.xml".

Direct Processing

Payment files are sent by plain XML and processed without additional user actions or confirmations. This option is suitable for Payment Service Providers. Separate daily and monthly limits for Connect payments are followed. Virtual/Agency account payments are possible only using this option. Also additional contract appendix must be signed to use this possibility and additional security measures are agreed with the customer.

header Content-Type: application/xml

Payment types and scheme selection

Following payment schemes are supported for payments initiated through LHV Connect:

  • Estonian Accounts - SEPA Instant (SCT Inst), SEPA or SWIFT.
  • UK Accounts - Faster Payments, Intra-Bank payment (payments to other LHV Bank accounts including EE).

Payment scheme selection decisions can be done automatically (the default option) or submitted in the XML instructions.

Automatic payment scheme selection

Estonian accounts:

  • To other LHV accounts (both EE and UK) - Bank internal payment
  • If payment currency is EUR and the receiving bank is a member of the RT1 clearing and settlement system for Instant payments - payment is sent as SEPA Instant. List of participants can be found here.
  • If Instant payment cannot be processed for different reasons it is changed to SEPA. First you will receive payment initiation response with status ACWC and description "Payment processed as SEPA" intag. Then additional response about the actual SEPA payment.
  • For other EUR payments in the EAA (European Economic Area) - SEPA payment.
  • Other payments not in EUR or where beneficiary bank is not in the EEA - Swift payment.
  • If customer initial wish was to process payment as Instant/SEPA and it is not possible, then payment is processed as SWIFT (with priority high and fee type SHA).

UK Accounts:

  • To other LHV accounts (both EE and UK) - Bank internal payment
  • If payment currency is GBP and the receiving bank is a member of the Faster Payments Service clearing and settlement system - it is sent using Faster Payments. The upper limit of payment amount is 250000 GBP.
    There are different methods to submit the beneficiary account as IBAN or UK domestic account nr with sort code. Examples added below.
  • For Intra-Bank payment also other currencies are available, beneficiary account must belong to LHV UK or Estonian branch.

Manual payment scheme selection

Manual selection of payment scheme is done using optional tags in the XML structure - PmtInf.PmtTpInf.SvcLvl.Prtry for group level or CdtTrfTxInf.PmtTpInf.SvcLvl.Prtry for every payment individually.
Only if these tags are added system tries to use the provided scheme. If not added then it will work as before – best scheme is selected automatically. Possible values are:

  • INST – SEPA Instant / SCT
  • SEPA - SEPA Payment
  • FAST - UK Faster Payment / FPS
  • ALL - automatic selection, the same outcome as not providing the tag at all. Can also be used to select SWIFT payments.

Sample:

<PmtInf> //Group setting
    ...
    <PmtTpInf>
        <SvcLvl>
            <Prtry>SEPA</Prtry>
        </SvcLvl>
    </PmtTpInf>
    ...
    <CdtTrfTxInf>
        ...
        <PmtTpInf> //Single payment setting
            <SvcLvl>
                <Prtry>ALL</Prtry>
            </SvcLvl>
        </PmtTpInf>

Additional notes:

  • If any Prtry value is not valid, the whole file is rejected.
  • CdtTrfTxInf.PmtTpInf block setting takes priority over PmtInf.PmtTpInf if both are added
  • All payments are still processed as Bank Internal Payments when possible (both accounts are in LHV Bank - EE and UK both included)
  • If Bank Internal Payment cannot be used and also selected scheme cannot be used it will be rejected – every payment separately
  • If payment is initiated, but there is insufficient daily or monthly limit, or insufficient funds available, it is canceled immediately unless otherwise agreed with LHV

Clearing times and limitations

See also: https://www.lhv.ee/en/payments and Payments_Instructions_and_Time_Limits-EN.pdf

Payment typeCurrencyBeneficiary bankChargesPriority
European Payment (Instant, SEPA)EUREEASLEVEXPR
Cross Border Payment (Swift)EEA CurrencyEEASHARHIGH, EXPR
Cross Border Payment (Swift)Non EEA CurrencyEEASHARNORM, HIGH, EXPR
Cross Border Payment (Swift)EEA + Non EEA CurrencyNon EEASHAR, DEBTNORM, HIGH, EXPR

XML format

LHV is currently using custom version of pain.001.001.03.xsd, which is compliant with and has less restrictions than 1.4 version of the Estonian Banking Association implementation of pain.001.001.03. See more at XML B2C & C2B communication messages. LHV custom XSD is more restrictive that generic ISO 20022 XSD.
Any XML file valid according to LHV 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.

XML rules

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

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

Message structure

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

Message root

MULT.MESSAGE ELEMENTXML TAG
[1..1]+MessageRoot<CstmrCdtTrfInitn>

Group header

INDEXMULT.ORMESSAGE ELEMENTXML TAGLHV REQUIREMENT
1.0[1..1]+GroupHeader<GrpHdr>
1.1[1..1]++MessageIdentification<MsgId>
1.2[1..1]++CreationDateTime<CreDtTm>
1.6[1..1]++NumberOfTransactions<NbOfTxs>Number of payments in all Payment Information blocks included in this message. If this number is not correct, the file upload will be cancelled.
1.7[1..1]++ControlSum<CtrlSum>Control sum of all individual amounts for all Payment Information blocks included in this message, 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>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.
1.8[1..1]++InitiatingParty<InitgPty>LHV does not support credit transfers on behalf of the remitter. Information in this block will be ignored.
1.8[0..1]+++Name<Nm>
1.8[0..1]+++Identification<Id>
1.8{Or++++OrganisationIdentification<OrgId>
1.8{{Or+++++BICOrBEI<BICOrBEI>
1.8Or}}+++++Other<Othr>
1.8[1..1]++++++Identification<Id>
1.8[0..1]++++++SchemeName<SchmeNm>
1.8[1..1]+++++++Code<Cd>
1.8Or}++++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.8Or}+++++Other<Othr>
1.8[1..1]++++++Identification<Id>
1.8[0..1]++++++SchemeName<SchmeNm>
1.8[1..1]+++++++Code<Cd>

Payment information

INDEXMULT.ORMESSAGE ELEMENTXML TAGLHV REQUIREMENT
2.0[1..n]+PaymentInformation<PmtInf>
2.1[1..1]++PaymentInformationIdentification<PmtInfId>Uniquely identifies the payment information group within this message.
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>Not used.
2.4[1..1]++NumberOfTransactions<NbOfTxs>Number of payment included in the current Payment Information block. If this number is not correct, the file upload will be cancelled.
2.5[1..1]++ControlSum<CtrlSum>Control sum of all individual amounts in the current Payment Information block, irrespective of currencies. 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>
2.13Or}++++Proprietary<Prtry>Payment priority information. The value here applies to all payments included in the current Payment Information block. See the supported values in Code Set: Payment Priority.
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 Virtual IBAN or 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 Virtual IBAN or agency banking account - the holder country. See rule in PostalAddress.
2.19[0..2]++++AddressLine<AdrLine>Remitter’s address. For Virtual IBAN or agency banking account - the holder address. See rule in PostalAddress.
2.19[0..1]+++Identification<Id>For Virtual IBAN - do not use
2.19{Or++++OrganisationIdentification<OrgId>
2.19{{Or+++++BICOrBEI<BICOrBEI>Remitter’s BIC or BEI code.
2.19Or}}+++++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.19Or}++++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.19Or}+++++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. Can be client account where payment amount is debited, Virtual IBAN, or Indirect Agency account (both LHV and client generated accounts).
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 (for example, UK 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 LHV BIC is faulty or missing, it will be replaced with the correct code.
2.23[0..1]++UltimateRemitter<UltmtDbtr>SEPA specific information. Ultimate party that owes an amount of money to the (ultimate) beneficiary. 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]+++Identification<Id>
2.23{Or++++OrganisationIdentification<OrgId>
2.23{{Or+++++BICOrBEI<BICOrBEI>Ultimate remitter’s BIC or BEI code.
2.23Or}}+++++Other<Othr>
2.23[1..1]++++++Identification<Id>Organisation’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.23Or}++++PrivateIdentification<PrvtId>
2.23{Or+++++DateAndPlaceOfBirth<DtAndPlcOfBirth>
2.23[1..1]++++++BirthDate<BirthDt>Ultimate remitter’s birth date.
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.23Or}+++++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.24[0..1]++ChargesBearer<ChrgBr>See the supported values in Code Set: Charges Bearer.
2.25[0..1]++ChargesAccount<ChrgsAcct>LHV 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 unumbiguously 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.38Or}+++++Proprietary<Prtry>Payment priority information. The value here applies to the payment included in the current Credit Transfer Transaction Information block. See the supported values in Code Set: Payment Priority.
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.44Or}++++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>SEPA specific information. Ultimate party that owes an amount of money to the (ultimate) beneficiary. 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 beneficiary.
2.70[0..1]++++Name<Nm>Ultimate remitter’s name.
2.70[0..1]++++Identification<Id>
2.70{Or+++++OrganisationIdentification<OrgId>
2.70{{Or++++++BICOrBEI<BICOrBEI>Ultimate remitter’s BIC or BEI code.
2.70Or}}++++++Other<Othr>
2.70[1..1]+++++++Identification<Id>Organisation’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.70Or}+++++PrivateIdentification<PrvtId>
2.70{Or++++++DateAndPlaceOfBirth<DtAndPlcOfBirth>
2.70[1..1]+++++++BirthDate<BirthDt>Ultimate remitter’s birth date.
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.70Or}++++++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.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.72Or}+++++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. Use GBDSC when using UK sort code and domestic account nr separately.
2.77[1..1]++++++MemberIdentification<MmbId>Beneficiary’s bank identification in a clearing system. Use UK sort code when using UK sort code and domestic account nr separately. For RUB payments to Russia, the BIK code is entered here.
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>Beneficiary’s bank account at its correspondent bank. Usage rule: Used only for RUB payments.
2.78[1..1]++++Identification<Id>
2.78{Or+++++IBAN<IBAN>
2.78Or}+++++Other<Othr>
2.78[1..1]++++++Identification<Id>For RUB payments to Russia, the beneficiary’s bank's correspondent account with the Russian central bank is entered here.
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.79Or}}++++++Other<Othr>
2.79[1..1]+++++++Identification<Id>Organisation’s identification code. For RUB payments to Russia, INN and KPP codes are entered here.
2.79[0..1]+++++++SchemeName<SchmeNm>
2.791..1++++++++Code<Cd>See the supported values in Code Set: Organisation Identification.
2.79Or}+++++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.79Or}++++++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. Omit for Faster Payments when using UK domestic account nr.
2.80Or}+++++Other<Othr>
2.80[1..1]++++++Identification<Id>Beneficiary’s account number. Use for domestic UK account nr - separate from sort code (8 char) or concatenated (14 char)
2.80[0..1]++++++SchemeName<SchmeNm>
2.80[1..1]+++++++Code<Cd>Use BBAN when using concatenated UK domestic accountr nr (14 characters), omit when using UK account nr and UK sort code separately.
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.81Or}}++++++Other<Othr>
2.81[1..1]+++++++Identification<Id>Ultimate beneficiary’s organisation identification.
2.81[0..1]+++++++SchemeName<SchmeNm>
2.81[1..1]++++++++Code<Cd>See the supported values in Code Set: Organisation Identification.
2.81Or}+++++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.81Or}++++++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><InstrForDbtrAgtUsed for referencing return payment for FPS. Format: 'RTRN:00000002:2020051555543467-43545656768' where RTRN is code for return; 00000002 is Faster Payment Return Code; 2020051555543467-43545656768 is Account Servicer Reference of original incoming payment to be returned.
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>Information about the declaration of payments. Usage rules: 1.Information required by the Russian central bank: For RUB payments to Russia, the VO code and in some cases the KBK code are entered here.
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>Specification of the balance of payment code 900. For RUB payments to Russia, the VO and KBK codes are entered here.
2.98[0..1]+++RemittanceInformation<RmtInf>Used to enter the payment description (unstructured) and the reference number (structured). It is mandatory to provide one or the other. If both structured and unstructured information is filled in, the beneficiary reference under the structured information will be lifted to the unstructured information tag in accordance with the EACT standard for unstructured remittance information formatting rules. If the remittance information will, as a result, be longer than 140 characters, the bank will deliver only the first 140 characters of the remittance information. Reference number (structured) must comply with Estonian reference standard or Creditor reference
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. Mandatory for FPS - text value up to 18 symbols long.

Samples

Typical EUR payment - including two payments in single file:

  • Remitter (debitor) is "LHV Connect Demo" with account EE337700771001260958
  • Beneficiaries (creditor) are "LHV Connect Demo 2" with account EE337700771001260958 and "Incorrect Customer" with account EE427700771001260990
  • Multiple payments from the same account can have oneblock for creditor details and different/blocks for debitor details.
  • The sample under payment initiation response description is related to current sample.
<?xml version="1.0" encoding="UTF-8"?>
<Document xmlns="urn:iso:std:iso:20022:tech:xsd:pain.001.001.03" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="urn:iso:std:iso:20022:tech:xsd:pain.001.001.03 pain.001.001.03.xsd">
	<CstmrCdtTrfInitn>
		<GrpHdr>
			<MsgId>MSGIDLHVTEST01-1</MsgId>
			<CreDtTm>2019-11-14T14:30:04.482</CreDtTm>
			<NbOfTxs>2</NbOfTxs>
			<CtrlSum>7.50</CtrlSum>
			<InitgPty>
				<Nm>LHV Connect Demo</Nm>
			</InitgPty>
		</GrpHdr>
		<PmtInf>
			<PmtInfId>PMTINFIDLHVTEST01</PmtInfId>
			<PmtMtd>TRF</PmtMtd>
			<BtchBookg>false</BtchBookg>
			<NbOfTxs>2</NbOfTxs>
			<CtrlSum>7.50</CtrlSum>
			<ReqdExctnDt>2019-11-14</ReqdExctnDt>
			<Dbtr>
				<Nm>LHV Connect Demo</Nm>
			</Dbtr>
			<DbtrAcct>
				<Id>
					<IBAN>EE337700771001260958</IBAN>
				</Id>
			</DbtrAcct>
			<DbtrAgt>
				<FinInstnId>
					<BIC>LHVBEE22XXX</BIC>
				</FinInstnId>
			</DbtrAgt>
			<ChrgBr>SHAR</ChrgBr>
			<CdtTrfTxInf>
				<PmtId>
					<InstrId>INSTRIDLHVTEST01A</InstrId>
					<EndToEndId>ENDTOENDIDLHVTEST01A</EndToEndId>
				</PmtId>
				<PmtTpInf>
					<LclInstrm>
						<Prtry>EXPR</Prtry>
					</LclInstrm>
				</PmtTpInf>		
				<Amt>
					<InstdAmt Ccy="EUR">2.50</InstdAmt>
				</Amt>
				<ChrgBr>SHAR</ChrgBr>
				<CdtrAgt>
					<FinInstnId>
						<BIC>LHVBEE22XXX</BIC>
					</FinInstnId>
				</CdtrAgt>		
				<Cdtr>
					<Nm>LHV Connect Demo 2</Nm>
				</Cdtr>
				<CdtrAcct>
					<Id>
						<IBAN>EE267700771001260987</IBAN>
					</Id>
				</CdtrAcct>
				<RmtInf>
					<Ustrd>Payment Description LHVTEST01A</Ustrd>
					<Strd>
						<CdtrRefInf>
							<Tp>
								<CdOrPrtry>
									<Cd>SCOR</Cd>
								</CdOrPrtry>
							</Tp>
							<Ref>700170939</Ref>
						</CdtrRefInf>
					</Strd>
				</RmtInf>
			</CdtTrfTxInf>
			<CdtTrfTxInf>
				<PmtId>
					<InstrId>INSTRIDLHVTEST01B</InstrId>
					<EndToEndId>ENDTOENDIDLHVTEST01B</EndToEndId>
				</PmtId>
				<PmtTpInf>
					<LclInstrm>
						<Prtry>EXPR</Prtry>
					</LclInstrm>
				</PmtTpInf>		
				<Amt>
					<InstdAmt Ccy="EUR">5.00</InstdAmt>
				</Amt>
				<ChrgBr>SHAR</ChrgBr>
				<CdtrAgt>
					<FinInstnId>
						<BIC>LHVBEE22XXX</BIC>
					</FinInstnId>
				</CdtrAgt>		
				<Cdtr>
					<Nm>Incorrect Customer</Nm>
				</Cdtr>
				<CdtrAcct>
					<Id>
						<IBAN>EE427700771001260990</IBAN>
					</Id>
				</CdtrAcct>
				<RmtInf>
					<Ustrd>Payment Description LHVTEST01B</Ustrd>
				</RmtInf>
			</CdtTrfTxInf>	  
		</PmtInf>
	</CstmrCdtTrfInitn>
</Document>

UK Faster Payments - with beneficiary account as IBAN:

...
<CdtrAcct>
    <Id>
        <IBAN>GB29LHVB60161331921111</IBAN>
    </Id>
</CdtrAcct>
...

UK Faster Payments - with beneficiary account as UK sort code and domestic account number concatenated (CdtrAcct.Id.Othr.Id - 14 char):

...
<CdtrAcct>
    <Id>
        <Othr>
            <Id>12345612345678</Id>
            <SchmeNm>
                <Cd>BBAN</Cd>
            </SchmeNm>
        </Othr>
     </Id>
</CdtrAcct>
...

UK Faster Payments - with beneficiary account as UK Sort Code and domestic account number as separate values (CdtrAgt.FinInstnId.ClrSysMmbId.MmbId - 6 char + CdtrAcct.Id.Othr.Id - 8 char):

...
<CdtrAgt>
    <FinInstnId>
        <ClrSysMmbId>
            <ClrSysId>
                <Cd>GBDSC</Cd>
            </ClrSysId>
            <MmbId>123456</MmbId>
        </ClrSysMmbId>
    </FinInstnId>
</CdtrAgt>
...
<CdtrAcct>
    <Id>
        <Othr>
            <Id>12345678</Id>
        </Othr>
    </Id>
</CdtrAcct>
...

UK Faster Payments reference information - adding reference is mandatory:

        <RmtInf>
          <Ustrd>payment description 123</Ustrd>
          <Strd>
            <CdtrRefInf>
              <Ref>Payment reference</Ref>
            </CdtrRefInf>
          </Strd>
        </RmtInf>

Response

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

The ISO 20022 Customer Payment Status Report (pain.002.001.03) message is sent to the client to inform about the status of a payment instruction sent via LHV Connect with Payment Initiation (pain.001.001.03) message.

Header Message-Response-Type: PAYMENT

Customer Payment Status Report refers to the original Payment Initiation message and 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.

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 payments 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 original pain.001.001.03 Payment Information block have been rejected.
  • PDNG - pending, payments are waiting for confirmation in Internet Bank.
  • PART – if some of the payments in original pain.001.001.03 Payment Information block have reached one of the accepted statuses (ACSC, ACSP, ACWC), but some also rejected, then status is partially accepted.
  • ACSP - all payments in original pain.001.001.03 have reached at least one of the accepted statuses (ACSC, ACSP, ACWC), but not debited yet
  • ACSC - all payments in original pain.001.001.03 are debited from client’s account.

Single payment statuses (OrgnlPmtInfAndSts.TxInfAndSts.TxSts):

  • RJCT – payment has been rejected (final status).
  • PDNG - pending. Payment is waiting for confirmation in Internet Bank.
  • 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).
  • ACWC – accepted with change. Payment is being processed by the bank, it is not debited from client account. LHV has changed something about this payment. The reason for change is given in(3.25) tag. The changes are minor and do not harm the client’s intention. At least one more status is sent about this payment (either accept or reject).
  • ACSC – accepted, settlement completed and payment has been debited from client account. ACSC is typically the final status. In rare occasions it can be followed by RJCT - then already debited payment is credited back to the payment account.

By default all payments will be rejected right away when there is not enough funds or payments limits left. Only on special agreement with the customer system will continue to try executing such payments:

  • Every day all payments sent 00:00 - 18:00 (Estonian time) and partially accepted will be rejected 18:00+5 minutes (if conditions are not met by this time).
  • All payments sent 18:00 – 00:00 (Estonian time) and partially accepted will be rejected 5 minutes after sending.

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.

Message root

MULT.MESSAGE ELEMENTXML TAG
[1..1]MessageRoot<CstmrPmtStsRpt>

Group header

INDEXMULT.MESSAGE ELEMENTXML TAGLHV REQUIREMENT
1.0[1..1]+GroupHeader<GrpHdr>
1.1[1..1]++MessageIdentification<MsgId>Unique message id created by LHV.
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>LHV’s BIC.
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>Value ‘pain.001.001.03’.
2.6[0..1]++GroupStatus<GrpSts>Specifies the status of a group of payments in original pain.001.001.03 message. Group Status is returned in only the first pain.002.001.03 Status Report. Possible values: RJCT – all payments in original pain.001.001.03 are rejected. In this case, there is not Original Payment Information And Status and Transaction Information And Status level. PART – if any of the payments in original pain.001.001.03 has not reached accepted status (ACSP, ACSC, ACWC), then group status is partially accepted. ACSP – if all payments in original pain.001.001.03 are in accepted statuses (ACSP, ACSC, ACWC), then group status is accepted and settlement in process. ACSC – if all payments in original pain.001.001.03 are debited from client’s account, then group status is accepted and settlement completed.
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 ‘NARR’. In this case, Additional Information is also filled.
2.12[0..n]+++AdditionalInformation<AddtlInf>If Reason Code is filled with ‘NARR’, 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 Payment Information status of original pain.001.001.03 message. Payment Information Status is returned in only the first pain.002.001.03 Status Report. Possible values: RJCT – all payments in original pain.001.001.03 Payment Information block are rejected. PART – if any of the payments in original pain.001.001.03 Payment Information block has not reached accepted status (ACSP, ACSC, ACWC), then status is partially accepted. PDNG - payments in original pain.001.001.03 Payment Information block are waiting for confirmation via Internet Bank. ACSP – if all payments in original pain.001.001.03 Payment Information block are in accepted statuses (ACSP, ACSC, ACWC), then status is accepted and settlement in process. ACSC – if all payments in original pain.001.001.03 Payment Information block are debited from client’s account, then status is accepted and settlement completed.
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. Possible values: PDNG - pending. ACSP – accepted, settlement in process. ACWC – accepted with change. ACSC – accepted, settlement completed. Payment has been debited from client account. RJCT – payment has been rejected.
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 ‘NARR’.
3.25[0..n]++++AdditionalInformation<AddtlInf>If Reason Code is ‘NARR’, then description or scheme reject code is given here. For Transaction Status ‘ACWC’, see Reason for Change; for Transaction Status ‘RJCT’, see Transaction Level Errors. For payment scheme error codes see Code Set: Payment Scheme Reject Codes.
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 or Virtual IBAN.
3.122{Or++++++Other<Othr>Remitter's non-IBAN account number (for example, UK 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>LHV’s BIC.
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. UK Faster Payments - used when also payment request contained IBAN.
3.128[0..1]++++++Other<Othr>
3.128[1..1]+++++++Identification<Id>Beneficiary’s account number which is not IBAN. UK Faster Payments - used when also payment request contained sort code + domestic account nr.

Error codes

Group level errors

GROUP STATUSADDITIONAL INFORMATIONDESCRIPTION
RJCTDuplicate message.Message with this id already exists.
RJCTDuplicate message.Duplicate payment information block in file.
RJCTUploading file failed. Faulty number of payments in file header.Invalid Number Of Transactions in Header Level.
RJCTUploading file failed. Faulty control sum in file header.Invalid Control Sum in Header Level.
RJCTUploading file failed. Faulty number of payments in Payment Information block.Invalid Number Of Transactions in referenced Payment Information block.
RJCTUploading file failed. Faulty control sum in Payment Information block.Invalid Control Sum in referenced Payment Information block.
RJCTUploading file failed. Faulty sender account [IBAN].At least one IBAN or Virtual IBAN does not exist. First bad number encountered is added to error message.
RJCTCorrupted payment file: [validation error description]XML file doesn’t pass XSD validation. Reference to invalid value is given if possible.
RJCTNo rights to remitter’s account.

Transaction level errors

TRANSACTION STATUSADDITIONAL INFORMATIONDESCRIPTION
RJCTDuplicate payment
RJCTAccount temporarily closed
RJCTAccount closed
RJCTBeneficiary account is closed
RJCTReason not given
RJCTTechnical problem. Try again
RJCTInvalid beneficiary address or name
RJCTIncorrect account number
RJCTAccount number is not correct
RJCTInvalid account number or sort code
RJCTBeneficiary address is missing/not correct
RJCTInvalid beneficiary name
RJCTMissing or invalid reference
RJCTProblem with amount. Contact bank
RJCTInstant payment forbidden, try European payment
RJCTPayment declined, try European payment
RJCTPayment declined
RJCTPayment declined. Regulatory reasons. Try European payment
RJCTReference number is invalid or returned for no reason, try European payment
RJCTOther reason
RJCTReference number invalid.
RJCTCross-border payments from this account are prohibited.
RJCTInvalid beneficiary’s name.
RJCTBeneficiary's Correspondent BIC not valid.
RJCTInvalid client account number / account not found.
RJCTPayments from one Trader account to another are not allowed.
RJCTTrader account. Not allowed currency.
RJCTDescription or reference number must be entered.
RJCTDebtor's organisation identification code is faulty.
RJCTBeneficiary's Bank BIC not valid.
RJCTCreditor's organisation identification code is faulty.
RJCTBeneficiary's account number not valid.
RJCTCreditor's private person identification code is faulty.
RJCTInsufficient daily limit available.
RJCTInvalid currency.
RJCTPayment to the same account.
RJCTPayment to receiver account not allowed.
RJCTUltimate debtor's organisation identification code is faulty.
RJCTUltimate debtor's private person identification code is faulty.
RJCTInsufficient monthly limit available.
RJCTCorrespondent Bank BIC not valid.
RJCTAccount and BIC country codes not matching.
RJCTAccount and BIC country codes not matching. Check the account number of the recipient and the BIC number of the recipient bank.
RJCTDebtor's private person identification code is faulty.
RJCTInsufficient funds available.
RJCTSignature weight is less than 100%.
RJCTBeneficiary account number is incorrect. IBAN is mandatory.
RJCTInvalid payment order no.
RJCTOther reason.
RJCTPayment description is too long. Please use maximumcharacters.
RJCTPlease use Latin characters only.
RJCTThis BIC does not conform to the format. Enter the name and address of the beneficiary’s bank. Insert the beneficiary’s bank code (such as ABA or Fedwire) before the name of the beneficiary’s bank.
RJCTUploading file failed. Faulty sender account.
RJCTTechnical problem. Try again
RJCTRequested by customer
RJCTPayment declined. Regulatory reasons
RJCTIncorrect beneficiary´s bank data
RJCTUploading file failed. Unparsable value in Instruction for Debtor Agent [InstrForDbtrAgt]
RJCTRUB payment codes missing (INN, VO, KPP)
RJCTDebtor's account not active.Virtual IBAN exists, but is not active
RJCTInvalid debtor's nameVirtual IBAN holder name does not match with payment order (PmtInf.Dbtr.Nm) or debtor name missing if payment is from indirect agent's existing account.

Sample

  • Current sample is related to the sample under payment initiation description
  • There are two payments - first one (InstrId = INSTRIDLHVTEST101A) was successful with status ACSC and the second one (InstrId = INSTRIDLHVTEST101B) failed with status RJCT
  • As only part of the payments were successful the group statusis PART
<Document xmlns="urn:iso:std:iso:20022:tech:xsd:pain.002.001.03">
	<CstmrPmtStsRpt>
		<GrpHdr>
			<MsgId>10942445</MsgId>
			<CreDtTm>2019-11-14T16:01:40.102+02:00</CreDtTm>
			<InitgPty>
				<Id>
					<OrgId>
						<BICOrBEI>LHVBEE20XXX</BICOrBEI>
					</OrgId>
				</Id>
			</InitgPty>
		</GrpHdr>
		<OrgnlGrpInfAndSts>
			<OrgnlMsgId>MSGIDLHVTEST01-1</OrgnlMsgId>
			<OrgnlMsgNmId>pain.001.001.03</OrgnlMsgNmId>
			<GrpSts>PART</GrpSts>
		</OrgnlGrpInfAndSts>
		<OrgnlPmtInfAndSts>
			<OrgnlPmtInfId>PMTINFIDLHVTEST01</OrgnlPmtInfId>
			<PmtInfSts>PART</PmtInfSts>
			<TxInfAndSts>
				<OrgnlInstrId>INSTRIDLHVTEST01A</OrgnlInstrId>
				<TxSts>ACSC</TxSts>
				<AcctSvcrRef>D9C8845A4BBAEA11910E00155DBDB781</AcctSvcrRef>
				<OrgnlTxRef>
					<Amt>
						<InstdAmt Ccy="EUR">2.50</InstdAmt>
					</Amt>
					<ReqdExctnDt>2019-11-14</ReqdExctnDt>
					<PmtTpInf>
						<SvcLvl>
							<Prtry>INTERNAL</Prtry>
						</SvcLvl>
					</PmtTpInf>
					<Dbtr>
						<Nm>LHV Connect Demo 1</Nm>
					</Dbtr>
					<DbtrAcct>
						<Id>
							<IBAN>EE337700771001260958</IBAN>
						</Id>
					</DbtrAcct>
					<DbtrAgt>
						<FinInstnId>
							<BIC>LHVBEE20</BIC>
						</FinInstnId>
					</DbtrAgt>
					<CdtrAgt>
						<FinInstnId>
							<BIC>LHVBEE22</BIC>
						</FinInstnId>
					</CdtrAgt>
					<Cdtr>
						<Nm>LHV Connect Demo 2</Nm>
					</Cdtr>
					<CdtrAcct>
						<Id>
							<IBAN>EE267700771001260987</IBAN>
						</Id>
					</CdtrAcct>
				</OrgnlTxRef>
			</TxInfAndSts>
			<TxInfAndSts>
				<OrgnlInstrId>INSTRIDLHVTEST01B</OrgnlInstrId>
				<TxSts>RJCT</TxSts>
				<StsRsnInf>
					<Rsn>
						<Cd>NARR</Cd>
					</Rsn>
					<AddtlInf>Vigane saaja nimi.</AddtlInf>
				</StsRsnInf>
				<OrgnlTxRef>
					<Amt>
						<InstdAmt Ccy="EUR">5.00</InstdAmt>
					</Amt>
					<ReqdExctnDt>2019-11-14</ReqdExctnDt>
					<Dbtr>
						<Nm>LHV Connect Demo 1</Nm>
					</Dbtr>
					<DbtrAcct>
						<Id>
							<IBAN>EE337700771001260958</IBAN>
						</Id>
					</DbtrAcct>
					<DbtrAgt>
						<FinInstnId>
							<BIC>LHVBEE20</BIC>
						</FinInstnId>
					</DbtrAgt>
					<CdtrAgt>
						<FinInstnId>
							<BIC>LHVBEE22</BIC>
						</FinInstnId>
					</CdtrAgt>
					<Cdtr>
						<Nm>Incorrect Customer</Nm>
					</Cdtr>
					<CdtrAcct>
						<Id>
							<IBAN>EE427700771001260990</IBAN>
						</Id>
					</CdtrAcct>
				</OrgnlTxRef>
			</TxInfAndSts>
		</OrgnlPmtInfAndSts>
	</CstmrPmtStsRpt>
</Document>

Virtual IBAN Services

Virtual IBAN Open

POST [base-url]/viban/open

Service is used to request new Virtual IBAN opening. Only one Virtual IBAN can be opened with one service request.
It is mandatory to fill in minimal data set about Virtual IBAN owner and request message structure is slightly different for private and legal persons.
After receiving the request, background check is done by LHV for Virtual IBAN owner (the check is done in less than a second).

  • If check is OK, then Virtual IBAN is activated at once.
  • If check is not OK, then Virtual IBAN will remain in status ON_HOLD until decision about Virtual IBAN opening is made. CONNECT customer will be informed about the decision (status ACTIVE or REJECTED) via service Status notification.

Request

Message structure
MULT.MESSAGE ELEMENTXML TAGDescription
[1..1]+MessageRoot<VibanOpenRequest>
[1..1]++MasterAccount<MasterAccount>Master account IBAN (must belong to PSP).
[1..1]++User<User>
[0..1]+++Person<Person>Element of choice, used if Virtual IBAN owner is private person.
[1..1]++++Name<Name>First and last name of private person.
[1..1]++++BirthDate<BirthDate>Birth date of private person (YYYY-MM-DD).
[0..1]++++BirthCountry<BirthCountry>Country of birth of private person (ISO 3166-1 alpha-2).
[1..1]++++Residency<Residency>Country of residence of private person (ISO 3166-1 alpha-2).
[0..1]++++DocumentNumber<DocumentNumber>Document number of private person.
[0..1]+++Company<Company>Element of choice, used if Virtual IBAN owner is legal person.
[1..1]++++Name<Name>Name of company.
[1..1]++++CountryOfOrigin<CountryOfOrigin>Country of origin of legal person (ISO 3166-1 alpha-2).
[1..1]++++TaxResidency<TaxResidency>Tax residency of legal person (ISO 3166-1 alpha-2).
[1..1]++++RegistrationNumber<RegistrationNumber>Registration number of legal person.
[1..1]++++Representative<Representative>
[1..1]+++++Name<Name>First and last name of representative.
[1..1]+++++BirthDate<BirthDate>Birth date of representative, YYYY-MM-DD.
[1..1]+++++Residency<Residency>Country of residence of representative (ISO 3166-1 alpha-2).
[1..1]+++Address<Address>
[1..1]++++Country<Country>Address country (ISO 3166-1 alpha-2).
[1..1]++++StreetNo<StreetNo>Street address.
[1..1]++++CityCounty<CityCounty>City, county.
Sample
Private person
<?xml version="1.0" encoding="UTF-8"?>
<VibanOpenRequest>
  <MasterAccount>EE837700771001625166</MasterAccount>
  <User>
    <Person>
      <Name>Donald Duck</Name>
      <BirthDate>1908-11-29</BirthDate>
      <BirthCountry>DE</BirthCountry>
      <Residency>DE</Residency>
      <DocumentNumber>A942819</DocumentNumber>
    </Person>
    <Address>
      <Country>EE</Country>
      <StreetNo>Majaka 47-10</StreetNo>
      <CityCounty>Xiao, Neverland</CityCounty>
    </Address>
  </User>
</VibanOpenRequest>
Legal person
<?xml version="1.0" encoding="UTF-8"?>
<VibanOpenRequest>
  <MasterAccount>EE837700771001625166</MasterAccount>
  <User>
    <Company>
      <Name>UK Ltd Version 2.0</Name>
      <CountryOfOrigin>GB</CountryOfOrigin>
      <TaxResidency>GB</TaxResidency>
      <RegistrationNumber>1849203</RegistrationNumber>
      <Representative>
        <Name>Harry Potter</Name>
        <BirthDate>2001-01-01</BirthDate>
        <Residency>GB</Residency>
      </Representative>
    </Company>
    <Address>
      <Country>GB</Country>
      <StreetNo>Waterloo Bridge 13</StreetNo>
      <CityCounty>London, Cold</CityCounty>
    </Address>
  </User>
</VibanOpenRequest>

Response

Header Message-Response-Type: VIBAN_OPEN

Message structure
MULT.MESSAGE ELEMENTXML TAGDescription
[1..1]+MessageRoot<VibanOpenResponse>
[1..1]++MasterAccount<MasterAccount>
[1..1]++VirtualIBAN<VirtualIBAN>Virtual IBAN that was generated.
[1..1]++User<User>
[0..1]+++Person<Person>Element of choice, used if Virtual IBAN owner is private person.
[1..1]++++Name<Name>First and last name of private person.
[1..1]++++BirthDate<BirthDate>Birth date of private person (YYYY-MM-DD).
[0..1]++++BirthCountry<BirthCountry>Country of birth of private person (ISO 3166-1 alpha-2).
[1..1]++++Residency<Residency>Country of residence of private person (ISO 3166-1 alpha-2).
[0..1]++++DocumentNumber<DocumentNumber>Document number of private person.
[0..1]+++Company<Company>Element of choice, used if Virtual IBAN owner is legal person.
[1..1]++++Name<Name>Name of company.
[1..1]++++CountryOfOrigin<CountryOfOrigin>Country of origin of legal person (ISO 3166-1 alpha-2).
[1..1]++++TaxResidency<TaxResidency>Tax residency of legal person (ISO 3166-1 alpha-2).
[1..1]++++RegistrationNumber<RegistrationNumber>Registration number of legal person.
[1..1]++++Representative<Representative>
[1..1]+++++Name<Name>First and last name of representative.
[1..1]+++++BirthDate<BirthDate>Birth date of representative, YYYY-MM-DD.
[1..1]+++++Residency<Residency>Country of residence of representative (ISO 3166-1 alpha-2).
[1..1]+++Address<Address>
[1..1]++++Country<Country>Address country (ISO 3166-1 alpha-2).
[1..1]++++StreetNo<StreetNo>Street address.
[1..1]++++CityCounty<CityCounty>City, county.
[1..1]++Status<Status>Status of Virtual IBAN: 'ACTIVE' or 'ON_HOLD'.
Sample
Private person
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<VibanOpenResponse>
    <MasterAccount>EE837700771001625166</MasterAccount>
    <VirtualIBAN>EE867777000202527783</VirtualIBAN>
    <User>
        <Person>
          <Name>Donald Duck</Name>
          <BirthDate>1908-11-29</BirthDate>
          <BirthCountry>DE</BirthCountry>
          <Residency>DE</Residency>
          <DocumentNumber>A942819</DocumentNumber>
        </Person>
        <Address>
            <Country>EE</Country>
            <StreetNo>Majaka 47-10</StreetNo>
            <CityCounty>Xiao, Neverland</CityCounty>
        </Address>
    </User>
    <Status>ACTIVE</Status>
</VibanOpenResponse>
Legal person
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<VibanOpenResponse>
    <MasterAccount>EE837700771001625166</MasterAccount>
    <VirtualIBAN>EE497777000202527770</VirtualIBAN>
    <User>
        <Company>
            <Name>UK Ltd Version 2.0</Name>
            <CountryOfOrigin>GB</CountryOfOrigin>
            <TaxResidency>GB</TaxResidency>
            <RegistrationNumber>1849203</RegistrationNumber>
            <Representative>
                <Name>Harry Potter</Name>
                <BirthDate>2001-01-01</BirthDate>
                <Residency>GB</Residency>
            </Representative>
        </Company>
        <Address>
            <Country>GB</Country>
            <StreetNo>Waterloo Bridge 13</StreetNo>
            <CityCounty>London, Cold</CityCounty>
        </Address>
    </User>
    <Status>ACTIVE</Status>
</VibanOpenResponse>

Virtual IBAN Bulk

POST [base-url]/viban/bulk

Service is used for bulk opening nameless Virtual IBANs. Up to 1000 virtual IBANs can be opened with one request.

Nameless virtual IBANs remain in "PENDING" status and can not be used for making payments until Virtual IBAN owner's personal details are added via service Virtual IBAN Modify.

Request

Message structure
MULT.MESSAGE ELEMENTXML TAGDescription
[1..1]+MessageRoot<VibanBulkRequest>
[1..1]++MasterAccount<MasterAccount>Master account IBAN (must belong to PSP).
[1..1]++Amount<Amount>Amount of Virtual IBANs to be generated. Must be in range of 1 - 1000.
Sample
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<VibanBulkRequest>
  <MasterAccount>EE737700771001625166</MasterAccount>
  <Amount>2</Amount>
</VibanBulkRequest>

Response

Header Message-Response-Type: VIBAN_BULK

Message structure
MULT.MESSAGE ELEMENTXML TAGDescription
[1..1]+MessageRoot<VibanBulkResponse>
[1..1]++MasterAccount<MasterAccount>Master account IBAN (must belong to PSP).
[1..1]++VirtualIBANList<VirtualIBANList>
[1..n]++VirtualIBAN<VirtualIBAN>Virtual IBAN that was generated.
Sample
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<VibanBulkResponse>
    <MasterAccount>EE737700771001625166</MasterAccount>
    <VirtualIBANList>
        <VirtualIBAN>EE717777000200014007</VirtualIBAN>
        <VirtualIBAN>EE507777000200014094</VirtualIBAN>
    </VirtualIBANList>
</VibanBulkResponse>

Virtual IBAN Modify

POST [base-url]/viban/modify
Service is used to:

  • add Virtual IBAN holder data to nameless Virtual IBANs allocated with Virtual IBAN Bulk service
  • modify existing Virtual IBAN data

Only one Virtual IBAN can be modified with one service request. It is mandatory to fill in minimal data set about Virtual IBAN owner and request message structure is slightly different for private and legal persons. After receiving the request, background check is done by LHV for Virtual IBAN owner.
If check is OK, then Virtual IBAN is activated at once.
If check is not OK, then Virtual IBAN will remain in status "ON_HOLD" until decision about Virtual IBAN opening is made. CONNECT customer will be informed about the decision via service Status notification.

Rules when changing the data of already activated Virtual IBAN:

  • Virtual IBAN must never be allocated to a different entity. Valid reasons are:

    - Name change - marriage for private persons or company name change for corporates etc.

    - Changes to address

    - Any other case where corrections are needed, but the assigned customer stays the same
  • You must provide the reason for change in the ModifyReason tag
  • Any modifiactions will trigger re-screening of the Virtual IBAN

Request

Message structure
MULT.MESSAGE ELEMENTXML TAGDescription
[1..1]+MessageRoot<VibanModifyRequest>
[1..1]++MasterAccount<MasterAccount>Master account IBAN (must belong to PSP).
[1..1]++VirtualIBAN<VirtualIBAN>Virtual IBAN (must be nameless Virtual IBAN in PENDING status).
[1..1]++User<User>
[0..1]+++Person<Person>Element of choice, used if Virtual IBAN owner is private person.
[1..1]++++Name<Name>First and last name of private person.
[1..1]++++BirthDate<BirthDate>Birth date of private person (YYYY-MM-DD).
[0..1]++++BirthCountry<BirthCountry>Country of birth of private person (ISO 3166-1 alpha-2).
[1..1]++++Residency<Residency>Country of residence of private person (ISO 3166-1 alpha-2).
[0..1]++++DocumentNumber<DocumentNumber>Document number of private person.
[0..1]+++Company<Company>Element of choice, used if Virtual IBAN owner is legal person.
[1..1]++++Name<Name>Name of company.
[1..1]++++CountryOfOrigin<CountryOfOrigin>Country of origin of legal person (ISO 3166-1 alpha-2).
[1..1]++++TaxResidency<TaxResidency>Tax residency of legal person (ISO 3166-1 alpha-2).
[1..1]++++RegistrationNumber<RegistrationNumber>Registration number of legal person.
[1..1]++++Representative<Representative>
[1..1]+++++Name<Name>First and last name of representative.
[1..1]+++++BirthDate<BirthDate>Birth date of representative, YYYY-MM-DD.
[1..1]+++++Residency<Residency>Country of residence of representative (ISO 3166-1 alpha-2).
[1..1]+++Address<Address>
[1..1]++++Country<Country>Address country (ISO 3166-1 alpha-2).
[1..1]++++StreetNo<StreetNo>Street address.
[1..1]++++CityCounty<CityCounty>City, county.
[0..1]++ModifyReason<ModifyReason>Reason for modification.
Sample
Private person
<?xml version="1.0" encoding="UTF-8"?>
<VibanModifyRequest>
  <MasterAccount>EE837700771001625166</MasterAccount>
  <VirtualIBAN>EE717777000200014007</VirtualIBAN>
  <User>
    <Person>
      <Name>Donald Mouse</Name>
      <BirthDate>1908-11-29</BirthDate>
      <BirthCountry>DE</BirthCountry>
      <Residency>DE</Residency>
      <DocumentNumber>A942819</DocumentNumber>
    </Person>
    <Address>
      <Country>EE</Country>
      <StreetNo>Majaka 47-10</StreetNo>
      <CityCounty>Xiao, Neverland</CityCounty>
    </Address>
  </User>
  <ModifyReason>Name legally changed to Donald Mouse</ModifyReason>
</VibanModifyRequest>
Legal person
<?xml version="1.0" encoding="UTF-8"?>
<VibanModifyRequest>
  <MasterAccount>EE837700771001625166</MasterAccount>
  <VirtualIBAN>EE717777000200014007</VirtualIBAN>
  <User>
    <Company>
      <Name>UK Ltd Version 2.0</Name>
      <CountryOfOrigin>GB</CountryOfOrigin>
      <TaxResidency>GB</TaxResidency>
      <RegistrationNumber>1849203</RegistrationNumber>
      <Representative>
        <Name>John Connor</Name>
        <BirthDate>2010-01-01</BirthDate>
        <Residency>GB</Residency>
      </Representative>
    </Company>
    <Address>
      <Country>GB</Country>
      <StreetNo>Waterloo Bridge 13</StreetNo>
      <CityCounty>London, Cold</CityCounty>
    </Address>
  </User>
  <ModifyReason>New company representative</ModifyReason>
</VibanModifyRequest>

Response

Header Message-Response-Type: VIBAN_MODIFY

Message structure
MULT.MESSAGE ELEMENTXML TAGDescription
[1..1]+MessageRoot<VibanModifyResponse>
[1..1]++VirtualIBAN<VirtualIBAN>
[1..1]++User<User>
[0..1]+++Person<Person>Element of choice, used if Virtual IBAN owner is private person.
[1..1]++++Name<Name>First and last name of private person.
[1..1]++++BirthDate<BirthDate>Birth date of private person (YYYY-MM-DD).
[0..1]++++BirthCountry<BirthCountry>Country of birth of private person (ISO 3166-1 alpha-2).
[1..1]++++Residency<Residency>Country of residence of private person (ISO 3166-1 alpha-2).
[0..1]++++DocumentNumber<DocumentNumber>Document number of private person.
[0..1]+++Company<Company>Element of choice, used if Virtual IBAN owner is legal person.
[1..1]++++Name<Name>Name of company.
[1..1]++++CountryOfOrigin<CountryOfOrigin>Country of origin of legal person (ISO 3166-1 alpha-2).
[1..1]++++TaxResidency<TaxResidency>Tax residency of legal person (ISO 3166-1 alpha-2).
[1..1]++++RegistrationNumber<RegistrationNumber>Registration number of legal person.
[1..1]++++Representative<Representative>
[1..1]+++++Name<Name>First and last name of representative.
[1..1]+++++BirthDate<BirthDate>Birth date of representative, YYYY-MM-DD.
[1..1]+++++Residency<Residency>Country of residence of representative (ISO 3166-1 alpha-2).
[1..1]+++Address<Address>
[1..1]++++Country<Country>Address country (ISO 3166-1 alpha-2).
[1..1]++++StreetNo<StreetNo>Street address.
[1..1]++++CityCounty<CityCounty>City, county.
[1..1]++Status<Status>Status of Virtual IBAN: 'ACTIVE' or 'ON_HOLD'.
Sample
Private person
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<VibanModifyResponse>
  <VirtualIBAN>EE717777000200014007</VirtualIBAN>
    <User>
        <Person>
          <Name>Donald Duck</Name>
          <BirthDate>1908-11-29</BirthDate>
          <BirthCountry>DE</BirthCountry>
          <Residency>DE</Residency>
          <DocumentNumber>A942819</DocumentNumber>
        </Person>
        <Address>
            <Country>EE</Country>
            <StreetNo>Majaka 47-10</StreetNo>
            <CityCounty>Xiao, Neverland</CityCounty>
        </Address>
    </User>
  <Status>ACTIVE</Status>
</VibanModifyResponse>
Legal person
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<VibanModifyResponse>
  <VirtualIBAN>EE717777000200014007</VirtualIBAN>
    <User>
        <Company>
            <Name>UK Ltd Version 2.0</Name>
            <CountryOfOrigin>GB</CountryOfOrigin>
            <TaxResidency>GB</TaxResidency>
            <RegistrationNumber>1849203</RegistrationNumber>
            <Representative>
                <Name>Harry Potter</Name>
                <BirthDate>2001-01-01</BirthDate>
                <Residency>GB</Residency>
            </Representative>
        </Company>
        <Address>
            <Country>GB</Country>
            <StreetNo>Waterloo Bridge 13</StreetNo>
            <CityCounty>London, Cold</CityCounty>
        </Address>
    </User>
  <Status>ACTIVE</Status>
</VibanModifyResponse>

Virtual IBAN Info

POST [base-url]/viban/info

Service is used to request Virtual IBAN data.
Response message structure is slightly different for private and legal persons.

Request

Message structure
MULT.MESSAGE ELEMENTXML TAGDescription
[1..1]+MessageRoot<VibanInfoRequest>
[1..1]++MasterAccount<MasterAccount>Master account IBAN (must belong to PSP).
[1..1]++VirtualIBAN<VirtualIBAN>Virtual IBAN (must be issued under MasterAccount specified).
Sample
<?xml version="1.0" encoding="UTF-8"?>
<VibanInfoRequest>
  <MasterAccount>EE837700771001625166</MasterAccount>
  <VirtualIBAN>EE717777000200014007</VirtualIBAN>
</VibanInfoRequest>

Response

Header Message-Response-Type: VIBAN_INFO

Message structure
MULT.MESSAGE ELEMENTXML TAGDescription
[1..1]+MessageRoot<VibanInfoResponse>
[1..1]++VirtualIBAN<VirtualIBAN>
[1..1]++User<User>
[0..1]+++Person<Person>Element of choice, used if Virtual IBAN owner is private person.
[1..1]++++Name<Name>First and last name of private person.
[1..1]++++BirthDate<BirthDate>Birth date of private person (YYYY-MM-DD).
[0..1]++++BirthCountry<BirthCountry>Country of birth of private person (ISO 3166-1 alpha-2).
[1..1]++++Residency<Residency>Country of residence of private person (ISO 3166-1 alpha-2).
[0..1]++++DocumentNumber<DocumentNumber>Document number of private person.
[0..1]+++Company<Company>Element of choice, used if Virtual IBAN owner is legal person.
[1..1]++++Name<Name>Name of company.
[1..1]++++CountryOfOrigin<CountryOfOrigin>Country of origin of legal person (ISO 3166-1 alpha-2).
[1..1]++++TaxResidency<TaxResidency>Tax residency of legal person (ISO 3166-1 alpha-2).
[1..1]++++RegistrationNumber<RegistrationNumber>Registration number of legal person.
[1..1]++++Representative<Representative>
[1..1]+++++Name<Name>First and last name of representative.
[1..1]+++++BirthDate<BirthDate>Birth date of representative, YYYY-MM-DD.
[1..1]+++++Residency<Residency>Country of residence of representative (ISO 3166-1 alpha-2).
[1..1]+++Address<Address>
[1..1]++++Country<Country>Address country (ISO 3166-1 alpha-2).
[1..1]++++StreetNo<StreetNo>Street address.
[1..1]++++CityCounty<CityCounty>City, county.
[1..1]++Status<Status>Status of Virtual IBAN: 'ACTIVE', 'ON_HOLD', 'PENDING', 'REJECTED', 'BLOCKED' or 'CLOSED'.
[0..1]++DateActivated<DateActivated>Optional. Added if Virtual IBAN has been in activated.
[0..1]++DateClosed<DateClosed>Optional. Added if Virtual IBAN has beel closed.
Sample
Private person
<?xml version="1.0" encoding="UTF-8"?>
<VibanInfoResponse>
  <VirtualIBAN>EE717777000200014007</VirtualIBAN>
  <User>
  	<Person>
  	  <Name>Donald Duck</Name>
  	  <BirthDate>1908-11-29</BirthDate>
  	  <BirthCountry>DE</BirthCountry>
  	  <Residency>DE</Residency>
  	  <DocumentNumber>A942819</DocumentNumber>
  	</Person>
  	<Address>
  		<Country>EE</Country>
  		<StreetNo>Majaka 47-10</StreetNo>
  		<CityCounty>Xiao, Neverland</CityCounty>
  	</Address>
  </User>
  <Status>ACTIVE</Status>
  <!--Optional:-->
  <DateActivated>2018-01-01+02:00</DateActivated>
  <!--Optional:-->
  <DateClosed>2018-05-22+03:00</DateClosed>
</VibanInfoResponse>
Legal person
<?xml version="1.0" encoding="UTF-8"?>
<VibanInfoResponse>
  <VirtualIBAN>EE717777000200014007</VirtualIBAN>
  <User>
  	<Company>
  		<Name>UK Ltd Version 2.0</Name>
  		<CountryOfOrigin>GB</CountryOfOrigin>
  		<TaxResidency>GB</TaxResidency>
  		<RegistrationNumber>1849203</RegistrationNumber>
  		<Representative>
  			<Name>Harry Potter</Name>
  			<BirthDate>2001-01-01</BirthDate>
  			<Residency>GB</Residency>
  		</Representative>
  	</Company>
  	<Address>
  		<Country>GB</Country>
  		<StreetNo>Waterloo Bridge 13</StreetNo>
  		<CityCounty>London, Cold</CityCounty>
  	</Address>
  </User>
  <Status>ACTIVE</Status>
  <!--Optional:-->
  <DateActivated>2018-01-01+02:00</DateActivated>
  <!--Optional:-->
  <DateClosed>2018-05-22+03:00</DateClosed>
</VibanInfoResponse>

Virtual IBAN Close

POST [base-url]/viban/close

Service is used to close a Virtual IBAN.
Once Virtual IBAN is closed, it cannot be activated again.

Request

Message structure
MULT.MESSAGE ELEMENTXML TAGDescription
[1..1]+MessageRoot<VibanCloseRequest>
[1..1]++MasterAccount<MasterAccount>Master account IBAN (must belong to PSP).
[1..1]++VirtualIBAN<VirtualIBAN>Virtual IBAN (must be issued under MasterAccount specified).
Sample
<?xml version="1.0" encoding="UTF-8"?>
<VibanCloseRequest>
  <MasterAccount>EE837700771001625166</MasterAccount>
  <VirtualIBAN>EE717777000200014007</VirtualIBAN>
</VibanCloseRequest>

Response

Header Message-Response-Type: VIBAN_CLOSE

Message structure
MULT.MESSAGE ELEMENTXML TAGDescription
[1..1]+MessageRoot<VibanCloseResponse>
[1..1]++VirtualIBAN<VirtualIBAN>
[1..1]++Status<Status>'CLOSED'
[1..1]++DateClosed<DateClosed>Date and time of closing.
Sample
<?xml version="1.0" encoding="UTF-8"?>
<VibanCloseResponse>
  <VirtualIBAN>EE717777000200014007</VirtualIBAN>
  <Status>CLOSED</Status>
  <DateClosed>2018-05-22+03:00</DateClosed>
</VibanCloseResponse>

Virtual IBAN Status Notification

Service is used to send information to CONNECT customers about Virtual IBAN status changes. Notification messages are created for status changes not initiated directly by user - for example when account with screening match is activated (status changes from ON_HOLD to ACTIVE).

Header Message-Response-Type: VIBAN_STATUS_NOTIFICATION

XSD

Message structure
MULT.MESSAGE ELEMENTXML TAGDescription
[1..1]+MessageRoot<VibanStatusNotification>
[1..1]++MasterAccount<MasterAccount>Master account IBAN (must belong to PSP).
[1..1]++VirtualIBAN<VirtualIBAN>Virtual IBAN (must be issued under MasterAccount specified).
[1..1]++User<User>
[0..1]+++Person<Person>Element of choice, used if Virtual IBAN owner is private person.
[1..1]++++Name<Name>First and last name of private person.
[1..1]++++BirthDate<BirthDate>Birth date of private person (YYYY-MM-DD).
[0..1]++++BirthCountry<BirthCountry>Country of birth of private person (ISO 3166-1 alpha-2).
[1..1]++++Residency<Residency>Country of residence of private person (ISO 3166-1 alpha-2).
[0..1]++++DocumentNumber<DocumentNumber>Document number of private person.
[0..1]+++Company<Company>Element of choice, used if Virtual IBAN owner is legal person.
[1..1]++++Name<Name>Name of company.
[1..1]++++CountryOfOrigin<CountryOfOrigin>Country of origin of legal person (ISO 3166-1 alpha-2).
[1..1]++++TaxResidency<TaxResidency>Tax residency of legal person (ISO 3166-1 alpha-2).
[1..1]++++RegistrationNumber<RegistrationNumber>Registration number of legal person.
[1..1]++++Representative<Representative>
[1..1]+++++Name<Name>First and last name of representative.
[1..1]+++++BirthDate<BirthDate>Birth date of representative, YYYY-MM-DD.
[1..1]+++++Residency<Residency>Country of residence of representative (ISO 3166-1 alpha-2).
[1..1]+++Address<Address>
[1..1]++++Country<Country>Address country (ISO 3166-1 alpha-2).
[1..1]++++StreetNo<StreetNo>Street address.
[1..1]++++CityCounty<CityCounty>City, county.
[1..1]++Status<Status>Status of Virtual IBAN: 'ACTIVE', 'ON_HOLD', 'PENDING', 'REJECTED', 'BLOCKED' or 'CLOSED'.
[0..1]++DateActivated<DateActivated>Optional. Added if Virtual IBAN has been in activated.
[0..1]++DateClosed<DateClosed>Optional. Added if Virtual IBAN has beel closed.
Sample
Private person
<?xml version="1.0" encoding="UTF-8"?>
<VibanStatusNotification>
  <MasterAccount>EE837700771001625166</MasterAccount>
  <VirtualIBAN>EE717777000200014007</VirtualIBAN>
  <User>
  	<Person>
  	  <Name>Donald Duck</Name>
  	  <BirthDate>1908-11-29</BirthDate>
  	  <BirthCountry>DE</BirthCountry>
  	  <Residency>DE</Residency>
  	  <DocumentNumber>A942819</DocumentNumber>
  	</Person>
  	<Address>
  		<Country>EE</Country>
  		<StreetNo>Majaka 47-10</StreetNo>
  		<CityCounty>Xiao, Neverland</CityCounty>
  	</Address>
  </User>
  <Status>ACTIVE</Status>
  <!--Optional:-->
  <DateActivated>2018-01-01+02:00</DateActivated>
  <!--Optional:-->
  <DateClosed>2018-05-22+03:00</DateClosed>
</VibanStatusNotification>
Legal person
<?xml version="1.0" encoding="UTF-8"?>
<VibanStatusNotification>
  <MasterAccount>EE837700771001625166</MasterAccount>
  <VirtualIBAN>EE717777000200014007</VirtualIBAN>
  <User>
  	<Company>
  		<Name>UK Ltd Version 2.0</Name>
  		<CountryOfOrigin>GB</CountryOfOrigin>
  		<TaxResidency>GB</TaxResidency>
  		<RegistrationNumber>1849203</RegistrationNumber>
  		<Representative>
  			<Name>Harry Potter</Name>
  			<BirthDate>2001-01-01</BirthDate>
  			<Residency>GB</Residency>
  		</Representative>
  	</Company>
  	<Address>
  		<Country>GB</Country>
  		<StreetNo>Waterloo Bridge 13</StreetNo>
  		<CityCounty>London, Cold</CityCounty>
  	</Address>
  </User>
  <Status>ACTIVE</Status>
  <!--Optional:-->
  <DateActivated>2018-01-01+02:00</DateActivated>
  <!--Optional:-->
  <DateClosed>2018-05-22+03:00</DateClosed>
</VibanStatusNotification>

Indirect Scheme Access

Services for Indirect Scheme Access Account management for service providers with a valid Agency agreement.
Currently we offer this service for FPS (Faster Payments scheme) and UK accounts.

Agency Account Synchronization

POST [base-url]/agent/account/synchronize

Service is used for synchronizing third party service provider's existing account numbers with LHV.
Request supports multiple accounts in bulk.

  • Request may contain up to 1000 accounts (Accounts.Account blocks)
  • For valid requests, accounts are activated immediately by LHV.
  • For any invalid entry in request, entire bulk is rejected and relevant error code is returned.
  • Service provider must have a valid agency agreement.

Request

Message structure
MULT.MESSAGE ELEMENTXML TAGDescription
[1..1]+MessageRoot<AgentAccountSyncRequest>
[1..1]++Accounts<Accounts>
[1..1]+++Region<Region>'GB' region expected.
[0..1]+++AccountNo<AccountNo>For 'GB' region UK sort code + account no (14 characters). AccountNo or IBAN or both can exist. AccountNo's for other regions than 'GB' are ignored.
[0..1]+++Iban<Iban>IBAN country code must match value in Region. Either AccountNo or IBAN or both can exist.

Sample

Synchronization request for UK account numbers
<?xml version="1.0" encoding="UTF-8"?>
<AgentAccountSyncRequest>
    <Accounts>
        <Account>
            <Region>GB</Region>
            <AccountNo>12345612345678</AccountNo>
        </Account>
        <Account>
            <Region>GB</Region>
            <AccountNo>12345612345679</AccountNo>
        </Account>
    </Accounts>
</AgentAccountSyncRequest>

Response

Header Message-Response-Type: AGENT_ACCOUNT_SYNC

Message structure
MESSAGE ELEMENTXML TAGDescription
+MessageRoot<AgentAccountSyncResponse>
++Accounts<Accounts>
+++Account<Account>
+++Region<Region>
+++AccountNo<AccountNo>Filled if existed in request.
+++Iban<Iban>Filled if existed in request.
+++Status<Status><ACTIVE>

Sample

Synchronization response for UK account numbers
<?xml version="1.0" encoding="UTF-8"?>
 <AgentAccountSyncRequest>
     <Accounts>
         <Account>
             <Region>GB</Region>
             <AccountNo>12345612345678</AccountNo>
             <Status>ACTIVE</Status>
         </Account>
         <Account>
             <Region>GB</Region>
             <AccountNo>12345612345679</AccountNo>
             <Status>ACTIVE</Status>
         </Account>
     </Accounts>
 </AgentAccountSyncRequest>

Error response sample

<?xml version='1.0' encoding='UTF-8'?>
<Errors>
    <Error>
        <ErrorCode>MASTER_ACCOUNT_NOT_FOUND</ErrorCode>
        <Description>Master account not found.</Description>
        <Field>account[1].AccountNo, account[1].Iban</Field>
    </Error>
</Errors>
Error codes

Error codes are subject to change.

ERROR CODEDESCRIPTION
​INVALID_REGIONInvalid Region.
INVALID_ACCOUNT_NO_OR_IBANAccount number invalid.
ACCOUNT_NO_AND_IBAN_MISMATCHAccountNo and AccountNoIban mismatch.
INVALID_IBANInvalid IBAN.
DUPLICATE_ACCOUNTDuplicate account.
ACCOUNT_EXISTSAccount already exists.
MASTER_ACCOUNT_NOT_FOUNDMaster account not found.
TECHNICAL_ERRORTechnical error.
INVALID_REQUESTInvalid request.

Agency Account Open

POST [base-url]/agent/account/open

Service is used for opening accounts for third party service providers at LHV.
One account can be opened with one request. After receiving the request, background check is done by LHV for third party's account owner (the check is done in less than a second).

  • If check is OK, account is activated.
  • If check is not OK, the account remains in status ON_HOLD until decision about the account opening is made. Status update (ACTIVE or REJECTED) is sent to CONNECT customers via Agent Account Status Notification.
  • Service provider must have a valid agency agreement.

Request

Message structure
MULT.MESSAGE ELEMENTXML TAGDescription
[1..1]+MessageRoot<AccountOpenRequest>
[1..1]++MasterAccount<MasterAccount>Master account IBAN (must belong to PSP).
[1..1]++User<User>
[0..1]+++Person<Person>Element of choice, used if account owner is a private person.
[1..1]++++Name<Name>First and last name of a private person.
[1..1]++++BirthDate<BirthDate>Birth date of a private person (YYYY-MM-DD).
[0..1]++++BirthCountry<BirthCountry>Country of birth of a private person (ISO 3166-1 alpha-2).
[1..1]++++Residency<Residency>Country of residence of a private person (ISO 3166-1 alpha-2).
[0..1]++++DocumentNumber<DocumentNumber>Document number of a private person.
[0..1]+++Company<Company>Element of choice, used if account owner is a legal person.
[1..1]++++Name<Name>Name of a company.
[1..1]++++CountryOfOrigin<CountryOfOrigin>Country of origin of a legal person (ISO 3166-1 alpha-2).
[1..1]++++TaxResidency<TaxResidency>Tax residency of a legal person (ISO 3166-1 alpha-2).
[1..1]++++RegistrationNumber<RegistrationNumber>Registration number of a legal person.
[1..1]++++Representative<Representative>
[1..1]+++++Name<Name>First and last name of a representative.
[1..1]+++++BirthDate<BirthDate>Birth date of a representative, YYYY-MM-DD.
[1..1]+++++Residency<Residency>Country of residence of a representative (ISO 3166-1 alpha-2).
[1..1]+++Address<Address>
[1..1]++++Country<Country>Address country (ISO 3166-1 alpha-2).
[1..1]++++StreetNo<StreetNo>Street address.
[1..1]++++CityCounty<CityCounty>City, county.

Sample

Agency account open request for private person
<?xml version="1.0" encoding="UTF-8"?>
<AccountOpenRequest>
  <MasterAccount>GB27LHVB04030000003349</MasterAccount>
  <User>
    <Person>
      <Name>Donald Duck</Name>
      <BirthDate>1908-11-29</BirthDate>
      <BirthCountry>DE</BirthCountry>
      <Residency>DE</Residency>
      <DocumentNumber>A942819</DocumentNumber>
    </Person>
    <Address>
      <Country>EE</Country>
      <StreetNo>Majaka 47-10</StreetNo>
      <CityCounty>Xiao, Neverland</CityCounty>
    </Address>
  </User>
</AccountOpenRequest>
Agency account open request for legal person
<?xml version="1.0" encoding="UTF-8"?>
<AccountOpenRequest>
  <MasterAccount>GB27LHVB04030000003349</MasterAccount>
  <User>
    <Company>
      <Name>UK Ltd Version 2.0</Name>
      <CountryOfOrigin>GB</CountryOfOrigin>
      <TaxResidency>GB</TaxResidency>
      <RegistrationNumber>1849203</RegistrationNumber>
      <Representative>
        <Name>Harry Potter</Name>
        <BirthDate>2001-01-01</BirthDate>
        <Residency>GB</Residency>
      </Representative>
    </Company>
    <Address>
      <Country>GB</Country>
      <StreetNo>Waterloo Bridge 13</StreetNo>
      <CityCounty>London, Cold</CityCounty>
    </Address>
  </User>
</AccountOpenRequest>

Response

Header Message-Response-Type: AGENT_ACCOUNT_OPEN

Message structure
MULT.MESSAGE ELEMENTXML TAGDescription
[1..1]+MessageRoot<AccountOpenResponse>
[1..1]++MasterAccount<MasterAccount>
[0..1]++IBAN<IBAN>IBAN that was generated.
[0..1]++AccountNo<AccountNo>Account that was generated. For 'GB' region UK sort code + account no (14 characters) is returned.
[1..1]++User<User>
[0..1]+++Person<Person>Element of choice, used if account owner is a private person.
[1..1]++++Name<Name>First and last name of a private person.
[1..1]++++BirthDate<BirthDate>Birth date of a private person (YYYY-MM-DD).
[0..1]++++BirthCountry<BirthCountry>Country of birth of a private person (ISO 3166-1 alpha-2).
[1..1]++++Residency<Residency>Country of residence of a private person (ISO 3166-1 alpha-2).
[0..1]++++DocumentNumber<DocumentNumber>Document number of a private person.
[0..1]+++Company<Company>Element of choice, used if account owner is a legal person.
[1..1]++++Name<Name>Name of company.
[1..1]++++CountryOfOrigin<CountryOfOrigin>Country of origin of a legal person (ISO 3166-1 alpha-2).
[1..1]++++TaxResidency<TaxResidency>Tax residency of a legal person (ISO 3166-1 alpha-2).
[1..1]++++RegistrationNumber<RegistrationNumber>Registration number of a legal person.
[1..1]++++Representative<Representative>
[1..1]+++++Name<Name>First and last name of a representative.
[1..1]+++++BirthDate<BirthDate>Birth date of a representative, YYYY-MM-DD.
[1..1]+++++Residency<Residency>Country of residence of a representative (ISO 3166-1 alpha-2).
[1..1]+++Address<Address>
[1..1]++++Country<Country>Address country (ISO 3166-1 alpha-2).
[1..1]++++StreetNo<StreetNo>Street address.
[1..1]++++CityCounty<CityCounty>City, county.
[1..1]++Status<Status>Status of the account: 'ACTIVE' or 'ON_HOLD'.
Agency account open response for private person
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<AccountOpenResponse>
    <MasterAccount>GB27LHVB04030000003349</MasterAccount>
    <IBAN>GB70LHVB04030400003512</IBAN>
    <AccountNo>04030400003512</AccountNo>
    <User>
        <Person>
          <Name>Donald Duck</Name>
          <BirthDate>1908-11-29</BirthDate>
          <BirthCountry>DE</BirthCountry>
          <Residency>DE</Residency>
          <DocumentNumber>A942819</DocumentNumber>
        </Person>
        <Address>
            <Country>EE</Country>
            <StreetNo>Majaka 47-10</StreetNo>
            <CityCounty>Xiao, Neverland</CityCounty>
        </Address>
    </User>
    <Status>ACTIVE</Status>
</AccountOpenResponse>
Agent account open response for legal person
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<AccountOpenResponse>
    <MasterAccount>GB27LHVB04030000003349</MasterAccount>
    <IBAN>GB70LHVB04030400003512</IBAN>
    <AccountNo>04030400003512</AccountNo>
    <User>
        <Company>
            <Name>UK Ltd Version 2.0</Name>
            <CountryOfOrigin>GB</CountryOfOrigin>
            <TaxResidency>GB</TaxResidency>
            <RegistrationNumber>1849203</RegistrationNumber>
            <Representative>
                <Name>Harry Potter</Name>
                <BirthDate>2001-01-01</BirthDate>
                <Residency>GB</Residency>
            </Representative>
        </Company>
        <Address>
            <Country>GB</Country>
            <StreetNo>Waterloo Bridge 13</StreetNo>
            <CityCounty>London, Cold</CityCounty>
        </Address>
    </User>
    <Status>ON_HOLD</Status>
</AccountOpenResponse>
Error codes

Error codes are a subject to change.

ERROR CODEDESCRIPTION
MASTER_ACCOUNT_AGREEMENT_MISSINGActive master account agreement missing.
INVALID_REQUESTInvalid request. XSD validation fail.
TECHNICAL_ERRORTechnical error.
INVALID_ACCOUNTInvalid account.
FORBIDDENUnauthorized master account.
INVALID_BIRTH_DATEInvalid birth date.
INVALID_RESIDENT_COUNTRYInvalid residence country.
INVALID_BIRTH_COUNTRYInvalid birth country.
INVALID_COUNTRY_OF_ORIGINInvalid country of origin.
INVALID_TAX_RESIDENCYInvalid tax residency.
INVALID_COUNTRYInvalid country.

Agency Account Status Notification

Service is used to update service providers about agent account status changes. Notification messages are created for status changes not initiated directly by user - for example when account with screening match is activated (status changes from ON_HOLD to ACTIVE).

Header Message-Response-Type: AGENT_ACCOUNT_STATUS_NOTIFICATION

Message

Message structure
MULT.MESSAGE ELEMENTXML TAGDescription
[1..1]+MessageRoot<AgentAccountStatusNotification>
[1..1]++MasterAccount<MasterAccount>Master account IBAN (must belong toservice provider).
[0..1]++IBAN<IBAN>IBAN (issued under MasterAccount specified).
[0..1]++AccountNo<AccountNo>Account number (issued under MasterAccount specified).
[1..1]++User<User>
[0..1]+++Person<Person>Element of choice, used if agent account owner is a private person.
[1..1]++++Name<Name>First and last name of a private person.
[1..1]++++BirthDate<BirthDate>Birth date of a private person (YYYY-MM-DD).
[1..1]++++BirthCountry<BirthCountry>Country of birth of a private person (ISO 3166-1 alpha-2).
[1..1]++++Residency<Residency>Country of residence of a private person (ISO 3166-1 alpha-2).
[1..1]++++DocumentNumber<DocumentNumber>Document number of a private person.
[0..1]+++Company<Company>Element of choice, used if agent account owner is a legal person.
[1..1]++++Name<Name>Name of a company.
[1..1]++++CountryOfOrigin<CountryOfOrigin>Country of origin of a legal person (ISO 3166-1 alpha-2).
[1..1]++++TaxResidency<TaxResidency>Tax residency of a legal person (ISO 3166-1 alpha-2).
[1..1]++++RegistrationNumber<RegistrationNumber>Registration number of a legal person.
[1..1]++++Representative<Representative>
[1..1]+++++Name<Name>First and last name of a representative.
[1..1]+++++BirthDate<BirthDate>Birth date of a representative, YYYY-MM-DD.
[1..1]+++++Residency<Residency>Country of residence of a representative (ISO 3166-1 alpha-2).
[1..1]+++Address<Address>
[1..1]++++Country<Country>Address country (ISO 3166-1 alpha-2).
[1..1]++++StreetNo<StreetNo>Street address.
[1..1]++++CityCounty<CityCounty>City, county.
[1..1]++Status<Status>Status of the account: 'ACTIVE', 'ON_HOLD', 'PENDING', (used in rare cases when account check fails for technical reasons), 'REJECTED', 'CLOSED', 'BLOCKED'.
[0..1]++DateActivated<DateActivated>Optional. Added if account has been in activated.
[0..1]++DateClosed<DateClosed>Optional. Added if account has been closed.
Sample
Agency account status notification for private person
<?xml version="1.0" encoding="UTF-8"?>
<AgentAccountStatusNotification>
  <MasterAccount>GB27LHVB04030000003349</MasterAccount>
  <IBAN>GB70LHVB04030400003512</IBAN>
  <AccountNo>04030400003512</AccountNo>
  <User>
  	<Person>
  	  <Name>Donald Duck</Name>
  	  <BirthDate>1908-11-29</BirthDate>
  	  <BirthCountry>DE</BirthCountry>
  	  <Residency>DE</Residency>
  	  <DocumentNumber>A942819</DocumentNumber>
  	</Person>
  	<Address>
  		<Country>EE</Country>
  		<StreetNo>Majaka 47-10</StreetNo>
  		<CityCounty>Xiao, Neverland</CityCounty>
  	</Address>
  </User>
  <Status>ACTIVE</Status>
  <!--Optional:-->
  <DateActivated>2018-01-01+02:00</DateActivated>
  <!--Optional:-->
  <DateClosed>2018-05-22+03:00</DateClosed>
</AgentAccountStatusNotification>
Legal person
<?xml version="1.0" encoding="UTF-8"?>
<AgentAccountStatusNotification>
  <MasterAccount>GB27LHVB04030000003349</MasterAccount>
  <IBAN>GB70LHVB04030400003512</IBAN>
  <AccountNo>04030400003512</AccountNo>
  <User>
  	<Company>
  		<Name>UK Ltd Version 2.0</Name>
  		<CountryOfOrigin>GB</CountryOfOrigin>
  		<TaxResidency>GB</TaxResidency>
  		<RegistrationNumber>1849203</RegistrationNumber>
  		<Representative>
  			<Name>Harry Potter</Name>
  			<BirthDate>2001-01-01</BirthDate>
  			<Residency>GB</Residency>
  		</Representative>
  	</Company>
  	<Address>
  		<Country>GB</Country>
  		<StreetNo>Waterloo Bridge 13</StreetNo>
  		<CityCounty>London, Cold</CityCounty>
  	</Address>
  </User>
  <Status>ACTIVE</Status>
  <!--Optional:-->
  <DateActivated>2018-01-01+02:00</DateActivated>
  <!--Optional:-->
  <DateClosed>2018-05-22+03:00</DateClosed>  
</AgentAccountStatusNotification>

Merchant Payment Report

Request Merchant Payment Report

POST [base-url]/merchant-report

Request message

MULT.MESSAGE ELEMENTXML TAGDESCRIPTION
[1..1]+MerchantReportRequest<MerchantReportRequest>
[1..1]++Type<Type>CAMT_SETTLEMENT – settlement report CAMT_TRANSACTION – transaction report
[1..1]++PeriodStart<PeriodStart>Maximum period is 35 days by date when transaction was settled or made.
[1..1]++PeriodEnd<PeriodEnd>

Sample

<MerchantReportRequest>
    <Type>CAMT_SETTLEMENT</Type>
    <PeriodStart>2015-12-22</PeriodStart>
    <PeriodEnd>2015-12-22</PeriodEnd>
</MerchantReportRequest>

Response Merchant Payment Report

Message description

Message is used to get an overview about customer (merchant) card payments during the specified period.

Header Message-Response-Type: ACQ_REPORT

Message structure

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

Message root

INDEXMESSAGE ELEMENTXML TAG
[1..1]MessageRoot<BkToCstmrDbtCdtNtfctn>

Group header

INDEXMULT.ORMESSAGE ELEMENTXML TAGDESCRIPTION
1.0[1..1]+GroupHeader<GrpHdr>
1.1[1..1]++MessageIdentification<MsgId>Unique message identifier generated by LHV.
1.2[1..1]++CreationDateTime<CreDtTm>Date and time (UTC+2) when the message is created at LHV.
2.0[1..n]+Notification<Ntfctn>
2.1[1..1]++Identification<Id>Unique identifier generated by LHV.
2.4[1..1]++CreationDateTime<CreDtTm>Date and time (UTC+2) when the message is created at LHV.
2.10[1..1]++Account<Acct>
[1..1]+++ Identification<Id>
[1..1]++++IBAN<IBAN>IBAN for which this notification block is generated.
[1..1]+++Currency<Ccy>Currency for which this notification block is generated.
2.23[0..1]++TransactionSummary<TxsSummry>
2.29[1..1]+++TotalCreditEntries<TtlCdtNtries>
2.30[1..1]++++NumberOfEntries<NbOfNtries>
2.31[1..1]++++Sum<Sum>
2.32[1..1]+++TotalDebitEntries<TtlDbtNtries>
2.33[1..1]++++NumberOfEntries<NbOfNtries>
2.34[1..1]++++Sum<Sum>
2.56[0..n]++Entry<Ntry>Transaction level entry.
2.57[0..1]+++EntryReference<NtryRef>Unique transaction reference.
2.58[1..1]+++Amount<AmtCcy="AAA">Transaction amount (may be zero).
2.59[1..1]+++CreditDebitIndicator<CdtDbtInd>Zero amount is considered a credit amount.
2.61[1..1]+++Status<Sts>BOOK.
2.62[1..1]+++BookingDate<BookgDt>
[1..1]++++Date<Dt>Transaction date.
2.63[0..1]+++ValueDate<ValDt>
[1..1]++++Date<Dt>Transaction settlement date.
2.64[1..1]+++AccountServicerReference<AcctSvcrRef>Unique transaction reference. Same as 2.57 +++EntryReference.
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>
2.78[1..1]+++++Code<Cd>POS terminal id.
2.115[1..n]+++EntryDetails<NtryDtls>
2.122[1..n]++++TransactionDetails<TxDtls>
2.123[1..1]+++++References<Refs>
2.125[0..1]++++++AccountServicerReference<AcctSvcrRef>Only present if EveryPay Card transaction Order reference is defined or POS-terminal transaction field DE47 subfield 95 is filled with reference, else NULL.
2.131[0..1]++++++ChequeNumber<ChqNb>STAN.
2.133[0..1]++++++Proprietary<Prtry>
2.134[1..1]+++++++Type<Tp>PAN. 7-12 positions are masked.
2.135[1..1]+++++++Reference<Ref>Merchant branch ID (MID).
2.136[1..1]+++++AmountDetails<AmtDtls>
[1..1]++++++TransactionAmount<TxAmt>
2.141[1..1]+++++++Amount<AmtCcy="AAA">Transaction amount (may be zero).
2.152[0..n]++++++Charges<Chrgs>
2.154[1..1]+++++++Amount<Amt>Transaction fee amount.
2.179[0..1]+++++RelatedParties<RltdPties>
2.181[0..1]++++++Debtor<Dbtr>If CreditDebitIndicator=DBIT, then Debtor block is filled.
[0..1]+++++++Name<Nm>Remitter’s name.
2.182[0..1]++++++DebtorAccount<DbtrAcct>
+++++++Identification<Id>
[1..1]{Or++++++++IBAN<IBAN>Remitter’s account number.
[1..1]Or}++++++++Other<Othr>
[1..1]+++++++++Identification<Id>Remitter’s account number which is not IBAN.
2.184[0..1]++++++Creditor<Cdtr>If CreditDebitIndicator=CRDT, then Creditor block is filled.
[0..1]+++++++Name<Nm>Beneficiary’s name.
2.185++++++CreditorAccount<CdtrAcct>
+++++++Identification<Id>
[1..1]{Or++++++++IBAN<IBAN>Beneficiary’s IBAN.
[1..1]Or}++++++++Other<Othr>
[1..1]+++++++++Identification<Id>Beneficiary’s account number which is not IBAN.
2.191+++++RelatedAgents<RltdAgts>
2.192++++++DebtorAgent<DbtrAgt>
+++++++FinancialInstitutionIdentification<FinInstnId>
++++++++Name<Nm>Financial institution identifier.
2.214+++++RemittanceInformation<RmtInf>
2.215++++++Unstructured<Ustrd>Merchant branch name and location where transaction was made.

Sample

<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<Document xmlns="urn:iso:std:iso:20022:tech:xsd:camt.054.001.02">
    <BkToCstmrDbtCdtNtfctn>
        <GrpHdr>
            <MsgId>625402016031520160315</MsgId>
            <CreDtTm>2016-03-15T17:17:56</CreDtTm>
        </GrpHdr>
        <Ntfctn>
            <Id>625402016031520160315EUR</Id>
            <CreDtTm>2016-03-15T17:17:56</CreDtTm>
            <FrToDt>
                <FrDtTm>2016-03-15T00:00:00.000</FrDtTm>
                <ToDtTm>2016-03-15T00:00:00.000</ToDtTm>
            </FrToDt>
            <Acct>
                <Id>
                    <IBAN>EE777700771000845879</IBAN>
                </Id>
                <Ccy>EUR</Ccy>
            </Acct>
            <TxsSummry>
                <TtlCdtNtries>
                    <NbOfNtries>1</NbOfNtries>
                    <Sum>84.26</Sum>
                </TtlCdtNtries>
                <TtlDbtNtries>
                    <NbOfNtries>0</NbOfNtries>
                    <Sum>0.00</Sum>
                </TtlDbtNtries>
            </TxsSummry>
            <Ntry>
                <NtryRef>4904</NtryRef>
                <Amt Ccy="EUR">83.030000</Amt>
                <CdtDbtInd>CRDT</CdtDbtInd>
                <Sts>BOOK</Sts>
                <BookgDt>
                    <Dt>2016-01-15</Dt>
                </BookgDt>
                <ValDt>
                    <Dt>2016-03-15</Dt>
                </ValDt>
                <AcctSvcrRef>4904</AcctSvcrRef>
                <BkTxCd>
                    <Domn>
                        <Cd>PMNT</Cd>
                        <Fmly>
                            <Cd>MCDR</Cd>
                            <SubFmlyCd>POSP</SubFmlyCd>
                        </Fmly>
                    </Domn>
                    <Prtry>
                        <Cd>87654321 001</Cd>
                    </Prtry>
                </BkTxCd>
                <NtryDtls>
                    <TxDtls>
                        <Refs>
                            <AcctSvcrRef>4904</AcctSvcrRef>
                            <ChqNb>12345</ChqNb>
                            <Prtry>
                                <Tp>532610******3339</Tp>
                                <Ref>1234567</Ref>
                            </Prtry>
                        </Refs>
                        <AmtDtls>
                            <TxAmt>
                                <Amt Ccy="EUR">84.26</Amt>
                            </TxAmt>
                        </AmtDtls>
                        <Chrgs>
                            <Amt Ccy="EUR">1.230000</Amt>
                        </Chrgs>
                        <RltdPties>
                            <Dbtr>
                                <Nm>Legal Merchant</Nm>
                            </Dbtr>
                            <DbtrAcct>
                                <Id>
                                    <IBAN>EE777700771000845879</IBAN>
                                </Id>
                            </DbtrAcct>
                            <Cdtr>
                                <Nm>Legal Merchant</Nm>
                            </Cdtr>
                            <CdtrAcct>
                                <Id>
                                    <IBAN>EE777700771000845879</IBAN>
                                </Id>
                            </CdtrAcct>
                        </RltdPties>
                        <RltdAgts>
                            <DbtrAgt>
                                <FinInstnId>
                                    <Nm>689MC</Nm>
                                </FinInstnId>
                            </DbtrAgt>
                        </RltdAgts>
                        <RmtInf>
                            <Ustrd>www.abcdef.com \Tallinn \10116 ESTEST</Ustrd>
                        </RmtInf>
                    </TxDtls>
                </NtryDtls>
            </Ntry>
        </Ntfctn>
    </BkToCstmrDbtCdtNtfctn>
</Document>

Error codes

ERROR CODEDESCRIPTION
errMerchantReport_TechnicalErrorUnexpected error while composing merchant report response
errMerchantReport_InvalidInputInvalid request xml, can't read it
errMerchantReport_NotNullMaynot be null. Right format yyyy-MM-dd
errMerchantReport_NotNullMaynot be null
errMerchantReport_NotEmptyMaynot be empty
errMerchantReport_1Wrong report type
errMerchantReport_2Period can't be longer than 35 days
errMerchantReport_3No such user code in ACQ
errMerchantReport_4Error creating merchant report
errMerchantReport_7User not authorized for this report request, no IBAN found for merchant
errMerchantReport_9Period start can't be after end

Contract Management Services

These services are meant for Service Providers Connect contract management - info services about existing contracts, creation and modification.

Request New Contract

POST [base-url]/contracts

Initiate new Service Provider customer contract creation - service provider can use it to create a new pending contract for it's customer:

  • request must contain customers registry code and country
  • pending contract is created on LHV side. Services list is taken automatically from active service provider contract configuration.
  • response returns the pending contract data and BDOC digital container that customer representative can sign. Also e-mail is sent automatically to the representative with the same BDOC container in attachment and instructions for further actions.
    Service providers can use the BDOC container data in the HTTP response to provide the container file also in their interface.
  • contract activation is currently done by LHV Client Services
  • contract status and activation can be monitored using the "Get contracts list" service

PS! Fully automated contract activation is currently in development.

Request

Mandatory headers:

  • Client-Code - [service provider registry code]
  • Client-Country - [service provider registry country]

Body in JSON format:

FieldTypeComment
companyCodeStringRegistry code of Service Providers client
companyCodeIssuerStringRegistry code issuer country of Service Providers client
Sample
{
    "companyCode": "12345678",
    "companyCodeIssuer": "EE"
}

Response

Response is in JSON format and returned immediately in HTTP response body - not in the message queue:

FieldTypeComment
companyCodeStringRegistry code of Service Providers client
companyCodeIssuerStringRegistry code issuer country of Service Providers client
contractStatusStringContract status - pending/failed
contractIdStringContract unique id
contractContainerStringBDOC container data in BASE64
Sample
{
    "companyCode": "79536821",
    "companyCodeIssuer": "EE",
    "contractStatus": "pending",
    "contractId": "9adaf57a-a036-462f-9e08-dd201bf36e67",
    "contractContainer": "UEsDBAoAAAgAAJ2IY1CKIfl..."
}

Get Contracts List

GET [base-url]/contracts

Get list and information about Service Provider connected customers, their contracts and enabled services. Both active and pending (waiting for activation) contracts are listed.

Request

Mandatory headers:

  • Client-Code - [service provider registry code]
  • Client-Country - [service provider registry country]

Response

Response is in JSON format and returned immediately in HTTP response body - not in the message queue.

PositionFieldTypeComment
1customersArray
1.1companyCodeStringCompany registry code
1.2companyCodeIssuerStringCompany registry country
1.3nameStringCompany name
1.4contractsArray
1.4.1idStringContract id
1.4.2statusStringContract status - active/pending
1.4.3startDateStringContract start date
1.4.4servicesArrayList of services of the contract
1.4.4.1automaticAccountStatementArrayList of IBAN's where automatic account statements are enabled
1.4.4.2creditDebitNotificationArrayList of IBAN's where credit debit notifications are enabled
Sample

Sample contains 3 different contracts:

  • pending contract for customer "LHV Connect Demo 2"
  • active contract for customer "LHV Connect Demo 2"
  • active contract for customer "LHV Connect Demo 3"
{
    "customers": [
        {
            "companyCode": "80368926",
            "companyCodeIssuer": "EE",
            "name": "LHV Connect Demo 2",
            "contracts": [
                {
                    "id": "ba0d12e8-fd31-4c9f-84ba-801638d25063",
                    "status": "PENDING",
                    "services": [
                        {
                            "name": "ACCOUNT_STATEMENT"
                        },
                        {
                            "name": "CREDIT_DEBIT_NOTIFICATION",
                            "ibans": [
                                "EE267700771001260987",
                                "EE427700771001260990"
                            ]
                        },
                        {
                            "name": "ACCOUNT_BALANCE"
                        },
                        {
                            "name": "PAYMENTS_WITHOUT_SIGNATURE"
                        },
                        {
                            "name": "HEARTBEAT"
                        }
                    ]
                },
                {
                    "id": "0ceb02c9-e455-42b0-9d45-2ba5fd3b8f41",
                    "status": "ACTIVE",
                    "startDate": "2020-02-17",
                    "services": [
                        {
                            "name": "AUTOMATIC_ACCOUNT_STATEMENT",
                            "ibans": [
                                "EE427700771001260990",
                                "EE267700771001260987"
                            ]
                        },
                        {
                            "name": "ACCOUNT_STATEMENT"
                        },
                        {
                            "name": "CREDIT_DEBIT_NOTIFICATION",
                            "ibans": [
                                "EE267700771001260987",
                                "EE427700771001260990"
                            ]
                        },
                        {
                            "name": "ACCOUNT_BALANCE"
                        },
                        {
                            "name": "PAYMENTS_WITHOUT_SIGNATURE"
                        },
                        {
                            "name": "HEARTBEAT"
                        }
                    ]
                }
            ]
        },
        {
            "companyCode": "79536821",
            "companyCodeIssuer": "EE",
            "name": "LHV Connect Demo 3",
            "contracts": [
                {
                    "id": "f89e82f6-f8c6-4d08-8091-51340f0b4661",
                    "status": "ACTIVE",
                    "startDate": "2020-02-28",
                    "services": [
                        {
                            "name": "ACCOUNT_STATEMENT"
                        },
                        {
                            "name": "CREDIT_DEBIT_NOTIFICATION",
                            "ibans": [
                                "EE687700771001283511",
                                "EE087700771001283524",
                                "EE527700771001283993"
                            ]
                        },
                        {
                            "name": "ACCOUNT_BALANCE"
                        },
                        {
                            "name": "PAYMENTS_WITHOUT_SIGNATURE"
                        },
                        {
                            "name": "HEARTBEAT"
                        }
                    ]
                }
            ]
        }
    ]
}

Appendix

Code Set: Balance

CODEDESCRIPTION
OPBDOpening booked balance.
CLBDClosing booked balance.

Code Set: Credit and debit code

CODEDESCRIPTION
CRDTPositive amount or zero.
DBITNegative amount.

Code Set: Payment scheme

CODEDESCRIPTION
INSTSEPA Instant payment.
SEPASEPA payment.
SWIFTSWIFT payment.
TARGET2TARGET2 payment.
FASTUK Faster payment.
BACSBACS payment.
INTERNALLHV internal payment.
GROUPLHV internal payment between branches (EE, UK).
TRADERTrader payment.

Code Set: Payment scheme return codes

CODEDESCRIPTION
FAST - Faster Payments
00000001Beneficiary sort code/account number unknown
00000002Beneficiary account closed
00000003Beneficiary account stopped
00000004Beneficiary deceased
00000005Account cannot be identified without data in reference field
00000006Beneficiary account name does not match beneficiary account number
00000007Return requested by sender of original payment
00000008Account is not in currency quoted (Not supported when using FPS Indirect via Starling)
00000009Beneficiary not expecting funds/instructed return
00000010Terms and conditions of account do not permit crediting of these funds
00000011Sending institution action required
00000012Account Transferred
00000013Payment cannot be applied because of Beneficiary sensitivities – e.g. possible bankruptcy
00000014Reason not given

Code Set: Payment scheme reject codes

CODEDESCRIPTION
FAST - Faster Payments
1100For business reasons only
1114Beneficiary Sort Code/account number unknown
1160Beneficiary account closed
1161Beneficiary account stopped
1162Beneficiary account name does not match beneficiary account number
1163Account cannot be identified without data in Reference Information field
1164Reference Information is incorrect
1165Account is not in currency quoted
1166Account transferred
1167Beneficiary deceased
1168Sending FPS Institution action required
1169Payment cannot be applied because of Beneficiary sensitivities – e.g. possible bankruptcy
1170Terms and Conditions of Account do not permit crediting of these funds
1171Beneficiary account name not present
1172Funds not available
1173Sending Agency Sort Code/account number unknown
1174Sending Agency account closed
1175Sending Agency account stopped
1176Receiving Agency Sort Code/account number unknown
1177Receiving Agency account closed
1178Receiving Agency account topped
1179Sending Agency account transferred
1180Receiving Agency/responding Third Party Beneficiary account transferred
1181Duplicate FPID - with one exception, the Central Infrastructure passes all Participant rejection codes, including those reserved for future use, to the Sending Financial Institution. The one exception is rejection code 1181, Duplicate FPID for Standing Orders, which the Central Infrastructure processes and does not pass back to the Sending Financial Institution. This exception will be extended to other Payment Types, however is not scheduled at this time.
1909System Malfunction: must only be used if Direct Receiver can receive the payment but because of system failure cannot send a qualified response and process it later.
1930Syntax error; use syntax error field 044 to indicate the first field in error. May be used to indicate that the format of the field is incorrect or that a field is missing.
1182-1199Unallocated – available for later use

Code Set: Bank transaction codes

DOMAIN CODEFAMILY CODESUBFAMILY CODEDESCRIPTION
ACMTMDOPFEESPortfolio safekeeping fee
ACMTMDOPTAXEVAT
DERVOTHROTHRGain/loss prior open future positions
FORXMDOPFEESCurrency exchange fee
FORXOTHROTHRCurrency exchange
LDASFTDPINTRTerm deposit interest
LDASFTDPOTHRTerm deposit
LDASMDOPFEESFees related to loan agreement
LDASMDOPTAXEIncome tax on received interest
LDASNTDPINTRInterest payment
LDASNTLNINTRInterest payment
LDASNTLNPPAYCapital payment
LDASOTHROTHROther payments related to loan or rebalance
PMNTCCRDCAJTCard account rebalance
PMNTCCRDCWDLATM withdrawal
PMNTCCRDCDPTATM deposit
PMNTCCRDFEESFees related cards and card payments
PMNTCCRDINTRCredit card interest
PMNTCCRDPOSCPayment between current and limit account
PMNTCCRDPOSDCard payment
PMNTCNTRCWDLCash withdrawal
PMNTCNTRCDPTCash deposit
PMNTDRFTSTLRReservation
PMNTICDTFEESMoney transfer fee
PMNTICDTOTHRIssued payment
PMNTRCDTOTHRReceived payment
PMNTMCOPINTRAccrued interest
PMNTMCRDCHRGACQ merchant chargeback fee
PMNTMCRDCOMEACQ merchant revenue fee
PMNTMCRDCOMTACQ merchant service fee
PMNTMCRDDAJTACQ merchant revenue debit
PMNTMCRDPOSPACQ merchant revenue
PMNTMDOPFEESPayment fee
PMNTOTHROTHROther transaction
SECUCORPFEESCorporate action fee
SECUCORPOTHRCorporate action
SECUCUSTDVCADividends
SECUMDOPTAXEIncome tax withheld
SECUOTHROTHRTrader rebalance
SECUSETTFEESSecurities commission fee
SECUSETTTRADSecurities buy-sell

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

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: Private person identification

CODEDESCRIPTION
ARNUNumber assigned by a social security agency to identify a non-resident person.
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.
SOSENumber assigned by an authority to identify the social security number of a person.
TXIDNumber assigned by a tax authority to identify a person.

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 priority

CODEDESCRIPTION
NORMNormal payment.
HIGHUrgent payment.
EXPRExtra urgent payment.

If payment priority is not provided or faulty, default values will be used. For additional information see Payment processing time limits and settlements.

Code Set: Charges bearer

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

If not provided or faulty, default values will be used. For additional information see Payment processing time limits and settlements.