Integration With Core Banking
The Online and Mobile Banking solution has an integration with the Core Banking solution developed by FintechOS. Two types of data are taken from Core Banking and used in this solution: customer data and accounts data.
Customer Synchronization
The customer data synchronization is triggered from the back-office portal, when a back-office employee searches for the customer. By clicking the Search button, the endpoint FTOS_IB_CoreBanking_getCustomers is called. It gets the list of the customer that match the search criteria. If the system parameter FTOS_IB_isEnabledCustomerSyncAPI is set on true, this endpoint calls the function syncCustomerList from the FTOS_IB_System server library to start the customer data synchronization with Core banking. In case the system paramter FTOS_IB_IntegrationMock is set on false, then the system calls the syncCustomerListCustom function from FTOS_IB_System.Custom server library.
The server script library FTOS_IB_CB_API contains all functions used in relation with the customer functionalities from Core Banking and a function (e.g. searchCustomers) with the given endpoint parameters. The function retrieves from the Account entity the customers that match the filters entered by the back-office employee. The following attributes are returned for all the identified customers:
-
AccountId: Account.AccountId,
-
TypeId: Account.TypeId,
-
FirstName: Account.FirstName,
-
LastName: Account.LastName,
-
MiddleName : null,
-
Name: Account.Name,
-
PIN: Account.PIN,
-
AccountCountryCode: FTOS_CMB_Country.Code,
-
MobilePhone: Account.MobilePhone,
-
CustomerCorebankingId: Account.CustomerNo,
-
CommercialRegistration: Account.CommercialRegistration,
-
Email: Account.Email
In case no customer isfound using the given filters, a specific error message is returned.
The function syncCustomerListCustom gets the system parameter value for FTOS_IB_CoreBankingSource with two values: FTOS/CUSTOM. In case the parameter value is FTOS, the system calls the endpoint described above to get customer data from Core Banking. Otherwise, it retrieves data from a third-party core banking. The data retrieved from The FintechOS Core Banking maps to the Online and Mobile Banking data model.
Account Syncronization
The accounts data synchronization is triggered from:
- Total Balance Widget from Online and Mobile Banking Application
- Edit Client form used on back-office portal
From both places, the endpoint FTOS_IB_SyncBankAccounts is called. In case there is no other sync on the accounts (no other user triggered a sync), then the function syncBankAccountList from library FTOS_IB_Accounts is called. In case the system paramter FTOS_IB_IntegrationMock is set on false, then the system calls the function syncBankAccountCustom from FTOS_IB_Accounts.Custom server library.
The syncBankAccountCustom function calls the server script function getAccountList with the parameter customerCoreBankingID, then it gets the system parameter value for FTOS_IB_CoreBankingSource with two values: FTOS/CUSTOM. In the case parameter is set on FTOS, it call the endpoint FTOS_IB_GetActiveCustomerContracts with the parameter customerCoreBankingId that returns all the active and closed contracts (current accounts, term deposits, loans etc.) that the customer has in the Core Banking system. Otherwise, the customer accounts data is taken from a third-party Core Banking.
The data retrieved from the FintechOS Core Banking maps to the Online and Mobile Banking data model.
The system parameter FTOS_IB_SyncOnlyExistingBankingProducts is set to false.
In the function upsertBankAccountList from the script library FTOS_IB_Accounts, before the do the update of the accounts retrieved from the FintechOS Core Banking, get the system parameter value from FTOS_IB_SyncOnlyExistingBankingProducts. In case the value is set on true, all the retrieve accounts from FintechOS Core Banking for which the system does not have the product definition in Banking Products entities.
After the accounts are inserted into FTOS_IB_Account, the existing trigger FTOS_IB_UserXBankAccount_After_Insert is executed. In order to accommodate also the aliases for the new accounts retrieved from the FintechOS Core Banking, based on the productType value, the alias is composed as:
- Category Name + Currency Code for productType = Loans
- Category Name + Currency Code + Tenor + “Months for productType = Deposits / Saving
- SubCategory Name + Currency Code for productType = Bank Accounts with Subcategory value
- Category Name + Currency Code for productType = Bank Accounts and no Subcategory value
The endpoint FTOS_IB_GetActiveCustomerContracts has the input parameter : DisplayOnlyActiveContracts - boolean (true / false). In case this parameter is set on true, the endpoint FTOS_IB_GetActiveCustomerContracts returns only FintechOS Core Banking Contracts with Status Active. Otherwise it returns both active and closed contracts (with bussinessStatus = ContractActive and ContractClosed)
In order to be able to display in the end user widget, the account mapped to the rights categories, there is the dictionary FTOS_IB_BankAccountCategory.
All the existing scripts where we’re currently using the sys parameters for bank accounts category will be changed in order to read the data from the new entity:
SL: FTOS_IB_GetAllCurrentUserAdminData
SS: FTOS_IB_FO_GetAccountsList
SS: FTOS_IB_BankAccountCategory