FINS Core Banking Poller Process API - Implementation Template

(0 reviews)

home

This API implementation template is a component of MuleSoft Accelerators, which accelerate the implementation of essential integration use cases.

The solution includes pre-built APIs, connectors, and integration templates that help unlock business-critical data from external systems and guide you in adopting best practices synthesized from thousands of customer implementations. Use these assets as is or extend them to meet your company’s unique needs.


Overview

This integration template implements the CoreBanking Poller Process API specification. This implementation template can be configured to use the back-end as either Jack Henry SilverLake, Thought Machine or MariaDB implementation of Generic Core Banking System.

In addition to implementing the API specification, this implementation template provides the following functionality when the back-end is configured as MariaDB implementation of Generic Core Banking System:

  • Scheduled poller to publish updated Customer profiles only.
  • Scheduled poller to publish updated Financial Accounts only.
  • Scheduled poller to publish updated Account Transactions only.
  • Scheduled poller to publish updated Account Cards only.

Another scheduled poller is available to publish all Customer profiles along with their associated Accounts, Transactions, and Cards. This is intended for one-time use only and is disabled by default.

Getting started

bulb.png The Getting Started with MuleSoft Accelerators guide provides general information on getting started with the accelerator components. This includes instructions on setting up your local workstation for configuring and deploying the applications.

Once your workstation has been set up and the application template imported into Anypoint Studio, proceed with the Prerequisites section.

Prerequisites

This implementation template has the following dependencies:

Please review the use cases described on the MuleSoft Accelerator for Financial Services solution pages for more information about dependencies on other APIs and services.

Anypoint MQ destinations

The following Anypoint MQ destinations must be created and accessible for this API:

  1. fins-partyrole-update-exchange
  2. fins-account-update-exchange
  3. fins-transaction-update-exchange
  4. fins-card-update-exchange

The FINS Common Resources asset contains a Postman collection, which can be used to create the destinations and client application required for use by accelerator applications.

API dependencies

The following table lists all endpoints used by this API.

API nameEndpointAction
Accelerator MariaDB Global Party System APIget:/customersSearch a customer party role
Accelerator MariaDB Global Party System APIget:/partyRoles/{partyRoleId}/externalIds
Accelerator MariaDB Global Party System APIget:/partyRoles/{partyRoleId}Retrieve an existing party role
Accelerator MariaDB Global Financial Account System APIget:/accountsSearch accounts in Global Data
Accelerator MariaDB Global Financial Account System APIget:/accounts/{accountId}/externalIdsRetrieve externalIds of an existing account
FINS Core Banking Customers System APIget:/customersSearch for an existing customer
FINS Core Banking Customers System APIget:/customers/{customerId}Retrieve an existing customer
FINS Core Banking Accounts System APIget:/accountsSearch a customer party role
FINS Core Banking Accounts System APIget:/accounts/{accountId}Retrieve an existing account
FINS Core Banking Accounts System APIget:/transactionsSearch for existing transaction
FINS Core Banking Accounts System APIget:/cardsSearch for an existing cards

Deployment

Each Accelerator implementation template in Exchange includes Bash and Windows scripts for building and deploying the APIs to CloudHub. These scripts depend on repositories, global settings, deployment profiles, and associated properties configured in the Maven settings.xml file.

For additional details, please refer to the Application Deployment section of the Getting Started Guide.

Preparation

Ensure the Maven profile CloudHub-FINS-DEV has been properly configured in your settings.xml file. In particular, make sure the common properties for your environment have been provided (e.g., Anypoint Platform client ID and secret).

Required property overrides

At a minimum, the following properties must be customized for this application to reflect the target deployment environment.

Property NameDescription
api.autodiscoveryIDRequired if using API Manager to secure this API
anypoint-mq.server-urlAnypoint MQ Server Url
anypoint-mq.client-idAnypoint MQ Client Id
anypoint-mq.client-secretAnypoint MQ Client Secret
sys.core-banking.accounts.hostThe hostname of the Core Banking System. This is defaulted to use the Maria DB Implementation of FINS Core Banking Accounts System API and can be updated to use the Jack Henry SilverLake or the Thought Machine implementation
sys.core-banking.customers.hostThe hostname of the Core Banking System. This is defaulted to use the Maria DB Implementation of FINS Core Banking Customers System API and can be updated to use the Jack Henry SilverLake or the Thought Machine implementation
default-from-dateDefault date from which the data is synced from CoreBanking to other target systems
transactions-history-in-daysThe number of days past today for which the transactions of a financial account need to be synced when post:\pollers\accounts is invoked.

Testing

Use Advanced Rest Client or Postman to send a request over HTTPS. The template includes a Postman collection in the src/test/resources folder. Update the collection variable(s) after successful import.

Implementation notes

  1. poll-all scheduler has been disabled and it can be used for one time sync. This process do not detect changes made to accounts, transactions, and cards and should be disabled after initial sync.
  2. The poller process filters the updates to the customer profiles, accounts, transaction, and cards that were initiated by any of the System APIs and process the rest of updates by looking at the updatedBy field. In most cases the updatedBy field holds the app name of the system API. It has been introduced to avoid cyclic updates during the sync process with other systems. A property with value as a regular expression hasbeen introduced to match the names of System APIs involved in the sync process. The default value of the property matches all of the System APIs.
  3. The poll-customers, poll-accounts, poll-transactions, and poll-cards sync pollers are staggered at different intervals as the dependent objects needs to be synced before they are run.
  4. All the schedulers are disabled by default and can be enabled by using the relevant scheduler.state flag in the properties file.
  5. This API can be used to perform on demand sync of customers, accounts, transactions and cards from a configured Core Banking System. A configuration has been provided to retrieve transactions that are with in configured number of days. The default value set is 30.
  6. FINS Core Banking Customers System API, FINS SilverLake Customers System API, and FINS Thought Machine Customers System API use the same API specifications and one of the API implementations can be configured for this process API.
  7. FINS Core Banking Accounts System API, FINS SilverLake Accounts System API, and FINS Thought Machine Accounts System API use the same API specifications and one of the API implementations can be configured for this process API.

Current Limitations:
1. Poller process API picks all the accounts when poll-transactions and poll-cards pollers are triggered.
2. Pollers process API only process the first page of results returned by the search calls that are made to Core Banking Customers/Accounts System API's.
3. If Thought Machines is configured as Core Banking system, only customers, accounts, transactions can be synced on demand.

Additional resources


Reviews

TypeTemplate
OrganizationMuleSoft
Published by
MuleSoft Solutions
Published onNov 8, 2023
Asset overview

Asset versions for 1.7.x

Asset versions
VersionActions
1.7.6
1.7.4
1.7.3
1.7.2
1.7.1
1.7.0