Order submission entails the transmission of orders to the bank system from the EBICS Client. Orders are classified as Upload orders and Download orders based on whether an order is uploaded or downloaded by the bank system. Each order has to pass through different transaction phases during order processing.
- Order initialization
- Order processing
A user initiates an upload transaction with the bank by submitting an upload (FUL) order request. The EBICS Client Runtime component verifies the authorization level of the user and the number of required signatures to process the order. If the required criteria are met, then the order is processed and sent to the bank system. Else, the order is stored in the database and the Pending tasks page on EBICS Client dashboard interface is updated with the pending order details. When an EBICS Client user with pending orders (signing or submitting) logs in to the EBICS Client dashboard interface, the Pending tasks page opens prompting the user to sign or submit the order.
- Order Packaging Module for encryption, authentication signatures, authorization signatures, encoding, and compression is invoked.
- Order ID is generated.
- If the order data exceeds the specified 1-MB size, the order data is segmented. A transaction log is maintained to record the segmentation.
- XML module to construct the EBICS request is invoked.
- Activity logging for updating the order state is generated.
- Appropriate mailbox storage is invoked for storing the order data.
- Events are collected and logged in to the database during each activity.
- The order data is submitted to the bank system.
- The post processing response received from the bank is stored in the user’s download mailbox.
- Order initialization
- Order processing
A user initiates a download transaction with the bank by submitting a download (FDL) order request. The EBICS Client Runtime component verifies the authorization level of the user. If the required criteria are met, then the order is processed and sent to the bank system.
- The response received from the bank is stored in the download mail box for the user.
- Order Response Processor component is invoked to process the response.
- The Response Processor performs the following tasks:
- Invokes the Order Unpacking Module for decompression, decoding, and decryption.
- Invokes Order Concatenation if the response is segmented.
- Invokes Activity Logging for updating the order state.
- Collects and logs events in to the EBICS Client database during each activity.
After receiving the last segment of the order data from the bank, the client initiates the last phase, the acknowledgement request, to indicate that the data transfer is successful. If the bank receives a positive acknowledgement (receipt code=0) from the client, the bank moves the downloaded messages from the user download mailbox to the user archive mailbox. If the bank receives a negative acknowledgement from the client, the bank retains the downloaded messages in the user's download mailbox.
The order data is packaged according to the specified signing, compression, encryption, and encoding settings. For example, if the order type is FUL, the FULPackingHandler is invoked.
- An order ID is a four character alphanumeric ID.
- The first character is an alphabet. An EBICS Client user can specify the first character of the order ID.
- The second, third, and fourth characters of the order ID are alphanumeric in an ascending order (A-Z or 0-9).
Order Data Segmentation
As per EBICS specifications for data transfer, the size of a compressed file, encrypted, and encoded order data must be less than or equal to 1-MB. If the size exceeds 1 MB after compression, encryption and encoding, then the order data is segmented such that each segment does not exceed the fixed 1-MB size. The segments are then transmitted sequentially in a consecutive order in individual EBICS messages.
Order unpacking involves decoding, decryption, decompression, and verification of the order data. It also involves logging orders for which the security operations have failed and the reasons for failure.
The recipient system (server or client) executes the algorithmic computations in reverse order to recover the original order data. The data segments are sequentially appended, decoded, decrypted, and expanded to obtain the original order data.