Optional Technical Configurations

This page contains technical details for certain parts of the solution to help users understand how it works and what more can be configured to fit your business requirements.

Homepage

For Online and Mobile Banking Application in FTOS_IB_UserXBankAccount_After_Insert the alias is updated because there are several places to insert the record in FTOS_IB_UserXBankAccount. When a new record is created in FTOS_IB_UserXBankAccount the sustem gets the data from FTOS_IB_BankAccount, FTOS_BP_BankingProduct, FTOS_BP_Category, FTOS_BP_SubCategory and FTOS_CMB_Currency based on FTOS_IB_UserXBankAccountid in order to create aliases and update it. After the user clicks the Save button a server script for update runs.

Depending on the type of product, the system creates aliases based on the following rules:

Payments

For the payments that include foreign exchange (foreign exchange between own customer accounts or when the payer account currency is different than the payment currency), after the selection of the payment schema (auto select by the system or manually by the user) the information related to the equivalent of the payment amount in the payer account currency is calculated based on the FTOS_CMB_FxRates and displayed in Total debited amount and FX rate. Total debited amount is calculated based on the Equivalent amount in payer account currency + Fee.

The Payment Currency field from the Make a Payment page is returned by calling the Accounts_AcquireAccountSummaryData API.

For Initializing a Local Currency Instant Payment and for Initializing a SEPA Instant EUR Payment conditions must be met for one for the message below to be displayed. A code is received from the entity FTOS_IB_InstantPymtErrorCodes that is mapped to each of the messages below:

  • Please ensure sufficient funds for the payment execution no later than: {<FTOS_IB_PymtTypes>Cut Off time OR <Currency>Currenct Cut Off (depending on the type of payment)} on {<FTOS_IB_Payment>executionDate}

    It is indicated to access the application on the {<FTOS_IB_Payment>executionDate} to verify the status of the payment by accessing the Order List menu

    After the available amount is checked in Core Banking and if is lower than the payment amount, according to settlement type, the following messages are displayed:

    • For SAME settlement type: Not enough available funds in your account. The payment will be processed when funds will be available but no later than {Cut Off time OR Currency Cut Off } on {Execution Date}. Please ensure the sufficient funds to the ordering account
    • For TOM or SPOT settlement types: Not enough available funds in your account. The payment will be processed when funds will be available but no later than End Of Day {Execution Date}. Please ensure the sufficient funds to the ordering account
  • Not enough available funds in your account. The payment will be processed when funds will be available but no later than End of Day {<FTOS_IB_Payment>executionDate}

    Please ensure the sufficient funds to the ordering account

  • Not enough available funds in your account. The payment will be processed when funds will be available but no later than {<FTOS_IB_PymtTypes>Cut Off time OR <Currency>Currenct Cut Off (depending on the type of payment)} on {<FTOS_IB_Payment>executionDate}

    Please ensure the sufficient funds to the ordering account

  • Your payment has been registered successfully.

If a second authorization is required, the following message is added to one of the messages above: The payment has been posted in the Order List for the joint authorized Approver to sign.

Bulk Payments

After authorization, for the process to be complete, two steps were implemented:

  • Sending Authorized bulk payments to Core Banking via two APIs (Create and Aquire):
  • Implement a job server FTOS_IB_BulkPaymentsListJobs that will check all the bulk instructions that have the business status Authorized:
    • runs every 5 min
    • calls server automation script using the customer flow FTOS_IB_BulkPaymentsList
    • runs the job for all bulk payments with status Not Rejected and with coreBankingMassId not null and coreBankingValidationId not null.

    • retrieves the updated business status according to the mapping of the statuses in the API (Sent, Successful, Rejected Core)
    • after one day in status registered the bulk file is considered Rejected.

Calculating the Cross Currency for Foreign Exchange

From APIs, the system receives only LCY - FCY currency pairs. The system calculates the rates as explained below.

Here is an example for a transfer from EUR account with the exchange currency being USD and the national currency, i.e., local currency as BGN:

For customers selling EUR, i.e., the bank buying EUR: The system takes the rate BuyNonCash for EUR/BGN.

For customers buying USD, i.e., the bank selling USD: The system takes the rate SellNonCash for USD/BGN.

The system divides both exchange rate BuyNonCash for EUR/SellNonCash for USD. The result is the cross rate for this transfer in EUR from USD account.

Here is an example for a transfer from USD account with the exchange currency being EUR and the national currency, i.e., local currency as BGN:

For customer selling USD, i.e., the bank buying USD: The system takes the rate BuyNonCash for USD.

For customers buying EUR, i.e., the bank selling EUR: The system takes the rate SellNonCash for EUR.

The system divides both exchange rate ByuNonCash for USD/SellNonCash for EUR andthe result is the cross rate for this transfer.

Email and SMS Generation

Email

There are several email generated throughout the solution:

SMS

There are several SMSes generated throughout the process:

The Innovation Studio is able to send texts using the FtosSmsNotificationService channel provider. To configure it open the web.config file in a text editor and add a new entry in the <configSections> node:

Copy
<add key="FtosNotificationServiceUrl" value="service Url”/>

 

Additionally, insert the subscription key:

Copy
<add key="FtosNotificationServiceSubscriptionKey" value="my-subscription-key-value"/>
 

After these steps, these SMSes are send using the server-side function server.messaging.sendSMS used in the scripts and FTOS_DFP_GenerateOTP. For details, see the Server SDK Reference Guide.

The OTP from the SMS is validated by the server script FTOS_DFP_ValidateOTP_IB. It determines if the code is correct or not, if it has expired and calls the system parameter OTPWaitSecondsAfter3Failures that has the value 60.

Job Server Service

When the activities are done from Creating a Campaign, a service for the job server is executed:

In the file FTOS.JobServer.Service.exe.config in tagul appSettings the script below exists:

Copy
<add key="InternetBankingUrl" value="https://example.com" />
<add key="InternetBankingActionName" value="FTOS_IB_InsertInMailbox_IN_Messages" />
<add key="InternetBankingUser" value="api.caller.campaign" />
<add key="InternetBankingPassword" value="" />

Then, in the file services.config, there is the script:

Copy
<service>
<name>FTOS.MKT.InternetBankingMailboxPushService</name>
<type>class</type>
<method />
<class>FTOS.MessageComposer.ScheduledServices.InternetBankingMailboxPushService</class>
<assembly>FTOS.MessageComposer.ScheduledServices</assembly>
</service>

In the file schedule.config, there are the configurations:

Copy
<trigger>
<name>FTOS.InternetBankingMailboxPushService</name>
<!--<calendar>holyday1</calendar>-->
<startTime>02.11.2017 11:00</startTime>
<endTime>03.11.2080 11:02</endTime>
<!--<poolTime>10</poolTime>-->
<repeatCount>-1</repeatCount>
<rescheduleAfterRun>false</rescheduleAfterRun>
<async>true</async>
<expression>0/15 * * * * ?</expression>
<services>
<service>FTOS.MKT.InternetBankingMailboxPushService</service>
</services>
</trigger>

Signing Payments

The following details are sent as payment details parameters to the Operation Authorization:

  • <FTOS_IB_Payment>PaymentAmount
  • <FTOS_IB_Payment>BeneficiaryAccount
  • a timestamp, the moment at which the authorization page named Teams & Conditions is reached.

When this page is reached, the following things happen:

  1. the method is called (with the above parameters for details)
  2. the OTP code is sent (using Operation Authorization)
  3. the Teams & Conditions page is displayed.

The system parameter sets the number of times the user can retry to insert the code.