Data Model
The Account Aggregation entities and their respective roles are detailed in this section.
The Account Aggregation Microservices has multiple entities and each entity has a different role to play. The entity relationship diagram for Account Aggregation Microservice is shown below.
Open Banking Directory
|
Attribute |
Role |
Description |
|---|---|---|
|
bankId |
Primary Key |
Internal Bank ID which helps uniquely identify a bank in Open Banking Directory. |
|
bankCode |
Bank code which uniquely distinguishes a bank |
|
|
addressLine1 |
Address Line 1 of the bank |
|
|
addressLine2 |
Address Line 2 of the bank |
|
|
bankName |
Name of the bank |
|
|
commercialName |
Commercial Name of the bank |
|
|
countryCode |
Country code of the bank |
|
|
|
Email Address of the bank |
|
|
homeUrl |
URL of the bank’s website |
|
|
isActive |
Active Status of Open Banking Directory. |
|
|
loginUrl |
Login URL of the bank |
|
|
logoUrl |
Logo URL of the bank |
|
|
mode |
Mode |
|
|
phone |
Phone number of the bank |
|
|
provider |
Name of the provider |
|
|
providerStatus |
Status of the provider |
|
|
sandBoxUrl |
Sandbox URL of the bank |
|
|
timeZone |
Time Zone of the bank |
|
|
updatedTime |
Timestamp of when the record was updated |
|
|
supportedFetchScopes |
Scopes supported by the bank |
|
|
supportedAccountTypes |
Account Types supported by the bank |
|
|
supportedAccountNatures |
Account Natures support by the bank |
Customer Profile and Connection Manager
The Customer Profile Entity stores the Customer ID, Third Party ID , SecretKey, Status and other details that are required for each customer. It stores an Alternate ID as well, to avoid duplication.
|
Attribute |
Role |
Description |
|---|---|---|
|
partyId |
Primary Key |
Customer ID which uniquely identifies a customer |
|
alternateID |
Unique Alternate ID generated to eliminate possible duplication of ID in third party provider and is linked to tppCustomerID |
|
|
secretKey |
Secret Key given by the provider |
|
|
attempt |
Number of attempts to ensure the alternate ID generated is unique in Third Party Provider |
|
|
updateAt |
Timestamp of when the record was updated |
|
|
tppCustomerId |
Third Party Customer ID linked to our Customer Profile via alternateID/PartyID |
|
|
status |
Status of the Customer |
The Connection Manager Entity stores the connection details for the customer and for the banks he has provided access to.
|
Attribute |
Role |
Description |
|---|---|---|
|
partyId |
Primary Key |
Customer ID which uniquely identifies a customer, mapped to Customer Profile Table. |
|
bankCode |
Primary Key |
Bank code which uniquely distinguishes a bank |
|
secret |
Secret Key given by the provider |
|
|
accesstoken |
Access token given by the provider |
|
|
createdAt |
Timestamp of when the record was created |
|
|
tppCustomerId |
Third Party Customer ID linked to our Customer Profile via alternateID/PartyID |
|
|
status |
Status of the Connection |
|
|
providerConnectionStatus |
Status of the Connection maintained by the provider |
|
|
nextRefresh |
Time Stamp of when the connection can be next refreshed |
|
|
provider |
Name of the provider |
|
|
bankName |
Name of the bank |
|
|
countryCode |
Country code of the bank |
|
|
expiresAt |
Expiry Date of the connection |
Tracker and Integrity
The Context Entity is used to maintain the integrity and consistency as we have contexts coming in from many Microservices which are dependent on the Account Aggregation Microservice such as Holding and Arrangement Microservices.
|
Attribute |
Role |
Description |
|---|---|---|
|
operation |
Primary Key |
Internal Bank ID which helps uniquely identify a bank in Open Banking Directory. |
|
seqNumber |
Primary Key |
Sequence number of the UUID |
|
uuid |
Primary Key |
Uniquely Generated UUID |
|
bankCode |
Bank code which uniquely distinguishes a bank |
|
|
batch |
If the data is received as batches or not |
|
|
batchNo |
Number of the batch |
|
|
connectionId |
Connection ID of the customer for the bank |
|
|
contextDataMessage |
Data Message with Status |
|
|
datatype |
Data type of the context |
|
|
emittedTime |
Timestamp of when the context was emitted |
|
|
failed_count |
Number of failed data/operations |
|
|
last_batch |
If the batch is the last or not |
|
|
partyId |
Customer ID which uniquely identifies a customer. |
|
|
processed_count |
Number of processed data/operations |
|
|
received |
If data is received or not |
|
|
received_count |
Number of received data |
|
|
source |
Name of MS which emits the context |
|
|
tPPCustomerID |
Third Party Customer ID linked to our Customer Profile via alternateID/PartyID |
The Tracker, Account Tracker, Transaction Tracker Entities are used to ensure the data related to a customer, accounts, balances, transactions are transformed, streamed and stored correctly in the Holdings and Arrangement Microservices.
|
Attribute |
Role |
Description |
|---|---|---|
|
bankCode |
Primary Key |
Bank code which uniquely distinguishes a bank |
|
partyId |
Primary Key |
Customer ID which uniquely identifies a customer. |
|
accAllBatch |
If all batches of Account are received or not |
|
|
accProcessed |
No. of processed Account Data |
|
|
accReceived |
No. of received Account Data |
|
|
accountBatchReceived |
No. of batches of Account Data received |
|
|
accountIntegrityBatchReceived |
No. of batches of Account context Data received |
|
|
accountIntegrityLastBatch |
If last batch of Account Context are received or not |
|
|
accountLastBatchSeqNo |
Sequence number of last batch Account |
|
|
accwithTxnFlag |
To process transaction load for account or not |
|
|
balAllBatch |
If all batches of Balance are received or not |
|
|
balProcessed |
No. of processed Balance Data |
|
|
balReceived |
No. of received Balance Data |
|
|
balanceBatchReceived |
No. of batches of Balance Data received |
|
|
balanceIntegrityBatchReceived |
No. of batches of Balance context Data received |
|
|
balanceIntegrityLastBatch |
If last batch of Balance Context are received or not |
|
|
balanceLastBatchSeqNo |
Sequence number of last batch Balance |
|
|
correlationId |
Unique UUID that helps distinctively identify data, Links to Account Tracker as one to many relationship |
|
|
lastAccountIntegrityBatchSeqNo |
Last batch number of Account context |
|
|
lastBalanceIntegrityBatchSeqNo |
Last batch number of Balance context |
|
|
status |
Status of the tracker |
|
|
tppCustomerId |
Third Party Customer ID linked to our Customer Profile via alternateID/PartyID |
|
Attribute |
Role |
Description |
|---|---|---|
|
accountId |
Primary Key |
Account number of the customer |
|
accRefId |
Linked reference of the account |
|
|
connectionId |
Connection ID of the customer in a bank |
|
|
isAccount |
If Arrangement for the account is loaded |
|
|
isBalance |
If balance for the account is loaded |
|
|
status |
Status of Account |
|
|
transactionStatus |
Status of transactions of the account |
|
|
txnAllBatchReceived |
If all batch of transaction are received or not |
|
|
txnBatchProcessed |
No. of batches of transaction Data Processed |
|
|
txnFailed |
No. of failed Transaction Data load in holdings MS |
|
|
txnLastBatchRecieved |
If all batches of Transaction are received or not |
|
|
txnLastBatchSeqNo |
Sequence number of last batch of Transaction |
|
|
txnProcessed |
No. of processed Transaction Data |
|
|
txnReceived |
No. of Transaction Data received |
|
|
txnSuccess |
No. of successful Transaction Data load in holdings MS |
|
|
correlationId |
Foreign Key |
Unique UUID that helps distinctively identify data, Links to Tracker as many to one relationship |
|
Attribute |
Role |
Description |
|---|---|---|
|
correlationId |
Primary Key |
Unique UUID that helps distinctively identify data |
|
txnId |
ID of the transaction |
|
|
txnRefId |
Transaction Reference |
|
|
txnStatus |
Status of the transaction |
|
|
accountTrackerAccountId |
Foreign Key |
Linked many to one to Account Tracker, ID of the account to which the transaction belongs |
In this topic