Hosts / Host Technical Reference |
Electronic Banking Internet Communication Standard (EBICS) uses the HTTPs protocol as its transport mechanism to send files over the Internet.
VersaLex uses the PUT and GET action commands, both using HTTP POST, to transport the secure data to the remote banking server. All EBICS messages are encapsulated within XML packaging. In addition to SSL/TLS-level encryption, the package content is also encrypted. Within EBICS, there is strong usage of signatures, both hand-written and electronic.
EBICS has a client-server architecture, where the bank is the server and the bank's customer (company or individual) is the client. Within EBICS, the client uploads so-called orders to the server and the server processes the orders. Order direction is classified as either an upload order, where the customer is sending payload to the server (e.g., order type IZV - upload of a domestic payment) or a download order, where the bank is sending data to its customer (e.g., order type STA - download SWIFT daily accounts). Whether the order is an upload or download order, the transaction is always initiated from the client.
The EBICS specification classifies orders as bank-technical or system-related (organizational or ancillary transfers). Bank-technical orders transfer specific data between the customer and bank (e.g., payments, statements, etc.). System-related orders are used for administrative details such key management or for bank-customer contractual information exchange. The EBICS specification defines many different order types that encompass both bank-technical and system-related orders. With the exception of a few system-related orders, the VersaLex EBICS client is not required to know or understand the content of the orders; it will simply transport the information without parsing the content. With VersaLex, all supported bank-technical orders are transmitted through the GET or PUT action commands, and all supported system-related orders are transmitted through functions on the EBICS mailbox: EBICS tab. See EBICS Mailbox.
While the EBICS specification calls for many different order types that can accommodate specific requests, the FUL and FDL orders are defined by the specification to support general uploads (FUL) and downloads (FDL). See the EBICS specification at www.ebics.org for details on order types.
In the context of EBICS, a customer is defined as the organizational unit that concludes a contract with the bank, and a user is defined as a human or technical system that is assigned to a customer. Customers are often also referred to as partner, and users are often also referred to as subscriber. The customer/partner has a Partner ID to uniquely identify it, and the user/subscriber has a User ID. The customer-user combination is tied to a mailbox, and their associated IDs are specified on the EBICS mailbox: EBICS tab. See EBICS Mailbox. These IDs are sent with almost every initial request to the bank server.
The EBICS specification explains the concept of technical subscribers. When requests are sent from a technical subscriber, the optional <SystemID> element is defined. Technical subscribers do not exist in the context of the VersaLex EBICS client, therefore, the <SystemID> element will never be specified.
Initially, a contract is established between a bank and a customer. The contract includes details such as the orders the customer can issue, which accounts are accessible, and signing permission level.. All contractual details are outside of the EBICS specification and are therefore outside the scope of the VersaLex EBICS client. The management of these contractual details are maintained somewhere within the environment of the financial institution, and not within the VersaLex environment. Therefore, it is the responsibility of the financial institution to guard against unauthorized transactions. For example, if a certain VersaLex user is not authorized to issue a particular order, this transaction will ultimately be prevented when the bank server issues the appropriate return code (that is, EBICS_INVALID_USER_STATE) during the initialization phase of an order.
All order data tranmissions are file-based. The VersaLex EBICS client, by default, ensures that all upload requests specify an HTTP header Content-Type name parameter corresponding to the original file name within the VersaLex file system. Conversely, it is anticipated that the bank server will provide a Content-Type "name" parameter or a Content-Disposition "filename" parameter within the returned HTTP headers for all download requests. While this is anticipated, it is not required for download orders. See Inbound File Names.
According to the EBICS specification, there is a one (1) MB limit on the size of the payload (i.e., the data encapsulated within the <OrderData> element). After the payload has been compressed, encrypted, and base64-encoded, if larger than 1 MB, it must be segmented into multiple transaction steps. The EBICS specification defines optional checkpoint restart rules at the segment breaks. The VersaLex EBICS client supports the checkpoint restart capability for both uploads and downloads.
EBICS calls for multiple levels of signatures. Almost every message request and response carries a signature; this signature is wrapped within the <AuthSignature> element and it uses the XML Signature methodology. This is referred to as the identification and authentication signature, and it is required for almost every EBICS request and response. In addition to the identification and authentication signature, a so-called electronic signature (abbreviated as ES) can also be present on an EBICS upload request. This signature is embodied within the <UserSignatureData> element. The ES signs the payload and the identification and authentication signature signs overall EBICS packages.
The EBICS specification requires the <OrderAttribute> element on most EBICS requests. See the table below. To learn more, see the EBICS specification at www.ebics.org .
The <OrderAttribute> element is 5-character field. The setting for each character is as follows:
Position | Meaning | Permitted Values |
---|---|---|
Position | Meaning | Permitted Values |
1 | Type of data transmitted |
O = order data and ES U = ES only D = order data and transport ES (or no ES in the case of certain key management orders like HIA and INI) |
2 | Compression type | Z = ZIP compression |
3 | Encryption type for order data and/or ES |
N = no encryption H = hybrid encryption AES/RSA |
4 | Reserved | N = reserved setting |
5 | Reserved | N = reserved setting |
The EBICS specification defines the following codes for identification of the medium for storage of private keys.
Security Medium | Setting |
---|---|
Security Medium | Setting |
No specification | 0000 |
Diskette | 01dd |
Chipcard | 02dd |
Other removable storage medium | 03dd |
Non-removable storage medium | 04dd |
Note that "dd" represents any number combination that is configurable by the customer. This value is specified through the EBICS Host: EBICS tab. See EBICS Host.
Inbound files can be received via a GET command or via one of the ancillary orders executed through the EBICS mailbox: EBICS tab (using Execute Ancillary Order or Download Bank Keys). See EBICS Mailbox.
The general order of precedence is as follows:
Within the destination string of a GET command or within the Default File Name, source file macros (e.g., %sourcefile%) can be used to build the final destination name. When a macro is used, if the Content-Disposition "filename" or the Content-Type "name" is specified on the inbound response from the bank server, then it is used to resolve the macro. If both parameters are specified, then Content-Disposition takes precedence. Conversely, if neither parameter is specified, then the generic string, "receive.file", is used for the macro substitution.
After the inbound file name is determined, the following will determine its final name. These steps are different for files associated with a GET command and for files associated with an ancillary or key download.
If a file is associated with a GET command:
If a file is associated with an ancillary or key download:
The EBICS specification defines several provisions and order types associated with the exchange of public keys. Three sets of public-private keys are defined for EBICS application-level encryption and signing. They are:
According to the specification, key pairs 1 and 2 can be the same pair, but key pair 3 must be unique. The bank server will respond with appropriate error codes if this requirement is not met.
In addition to the keys used at the application-level, there is a public-private key pair for TLS-level encryption. The EBICS specification makes no restrictions as to whether or not this key pair may coincide with one of the application-level keys.
When a user is first created, the bank will classify the user as New. Prior to conducting transactions, the user must be classified as Ready. The Ready state means that the bank has all the information necessary for the user to start submission of orders, including bank's download keys. To achieve the Ready state, the bank requires the receipt of certain keys. Know the requirements of your banking partner in order to provide the necessary keys according to the prescribed methods.
The transfer of keys from the client to the server and from the server to the client is referred to as key exchange and is supported through the EBICS mailbox: EBICS tab. See EBICS Mailbox. Under EBICS, provisions have been made for key exchange through certain order types defined within the specification. The key exchange order types implemented through the VersaLex EBICS client are:
Upload:
Download:
The EBICS specification also calls for hardcopy "initialisation letters" through which a secondary submission of key information is passed. The VersaLex EBICS client also provides functions to produce these letters.
Order Type | Direction of Transfer | Text | Specification Status | Where Supported in VersaLex |
---|---|---|---|---|
FDL | D | Download file with any format | Optional |
Supported through the GET command. |
FUL | U | Upload file with any format | Optional |
Supported through the PUT command. |
HAA | D | Download retrievable order types | Optional |
Supported through the EBICS mailbox: EBICS tab. See EBICS Mailbox |
HAC | D | Download status information (XML Format) | Mandatory |
Supported through the EBICS mailbox: EBICS tab. See EBICS Mailbox |
HCA | U | Update signing and encryption keys | Mandatory |
Supported through the EBICS mailbox: EBICS tab. See EBICS Mailbox |
HCS | U | Update signing, encryption, and ES keys | Mandatory |
Supported through the EBICS mailbox: EBICS tab. See EBICS Mailbox |
HEV | D | Download supported versions | Mandatory |
Supported through the EBICS mailbox: EBICS tab. See EBICS Mailbox |
HIA | U | Upload signing and encryption keys | Mandatory |
Supported through the EBICS mailbox: EBICS tab. See EBICS Mailbox |
HKD | D | Download customer data for all users | Optional |
Supported through the EBICS mailbox: EBICS tab. See EBICS Mailbox |
HPB | D | Download signing and encryption keys | Mandatory |
Supported through the EBICS mailbox: EBICS tab. See EBICS Mailbox |
HPD | D | Download bank parameters | Mandatory |
Supported through the EBICS mailbox: EBICS tab. See EBICS Mailbox |
HSA | U | Upload subscriber keys for FTAM users | Optional | Not Planned [4] |
HTD | D | Download customer data for this specific user | Optional |
Supported through the EBICS mailbox: EBICS tab. See EBICS Mailbox |
HVD | D | Retrieve VEU state | Conditional | |
HVE | U | Add VEU state | Conditional | |
HVS | U | VEU cancellation | Conditional | |
HVT | D | Retrieve VEU cancellation details | Conditional | |
HVU | D | Download VEU overview | Conditional | |
HVZ | D | Download VEU overview with additional information | Conditional | |
H3K | U | Upload signing, encryption, and ES keys | Optional |
Supported through the EBICS mailbox: EBICS tab. See EBICS Mailbox |
INI | U | Upload ES key | Optional |
Supported through the EBICS mailbox: EBICS tab. See EBICS Mailbox |
PTK | D | Download status information (German version only) | Optional |
Supported through the EBICS mailbox: EBICS tab. See EBICS Mailbox |
PUB | U | Update ES Key | Optional |
Supported through the EBICS mailbox: EBICS tab. See EBICS Mailbox |
SPR | U | Suspend user | Optional |
Supported through the EBICS mailbox: EBICS tab. See EBICS Mailbox |
AEA, AIA, etc. [5] | U/D | Variable | Variable |
Upload commands supported through the PUT command . Download command supported through the GET command . See EBICS Command Reference |