Start Here
The Data Model
Clients: The top-level entity in your data model. Clients can be companies or organizations that are looking to offer financial services to their customers through your platform. A client can have multiple groups under it.
Groups: A grouping or categorization mechanism under a client. A client can have multiple groups which may represent different segments, business lines, or categories of services that they provide.
Products: Under each group, there are multiple products. Products represent the specific types of accounts or financial offerings available to customers. They have rules for Know Your Customer (KYC) procedures, transaction limits, fees, and other specific features or restrictions. Products define the service parameters and cost structures that are offered to customers. An account can be migrated from one product to another.
For example, a product might be a 'Basic Account' which has no monthly fee but higher transaction costs. Another product might be a 'Premium Account' which has a monthly fee but lower transaction costs.
Accounts: An account is a store of value that is associated with a particular product. A customer can have multiple accounts, each belonging to a different product. For example, a customer might have one Basic Account and one Premium Account, each with its own set of features and costs as defined by the product rules.
Customers: Customers are the end-users of the services. They belong to a client and can have multiple accounts. The accounts can be under different products, giving the customer access to the specific services and features defined by each product.
Cards: Each account can have multiple associated cards. These could be debit cards, credit cards, or other transactional instruments linked to the account. These cards might have user-set limits or other features that allow for customization by the customer.
User-set limits and fees: Each account or card can have specific limits or fees that are set by the user, adding an additional level of customization to the services. These limits can include daily transaction limits, withdrawal limits, or other controls that the customer can set as per their needs.
Transactions Each account has an associated set of transactions that have occurred over the lifetime of the account. Each transaction can have a fee associated with it if one was set at the time of the transaction.
This data model allows for a flexible and customizable architecture that can cater to a wide range of financial service needs, varying from basic to premium offerings, and can accommodate a wide range of client and customer preferences.
TODO: generate simplified diagram.
