Service Descriptions
B2C
Account Service
Description
Account service is used to perform account related operations that happen in any banking/wallet app or interface including and not limited to
- View Balance a. Account Balance b. Ledger Balance
- View Transactions with filters
- View Transaction Details
- View/Update KYC associated with a particular account entity This account is different than user “user account/profile” login. KYC process is generally per account entity wherein say a bank account will require a National ID but an another account entity like a wallet may require National ID and Passport as KYC which both fall under same users
Technology
It will have providers registered to it. Each provider will be generally a parser which will map the response and request from our client touch-points to what external banking and account systems understand and vice versa. Provider will come with its own set of configurations and rules.
Database will have KYC related steps via its KYC sub module
For eg:
Our API will have a certain response structure which we want it to be uniform across and irrespective of what accounts are we showing.
Bank 1 may give us balance under the key name of balance while Bank 2 would give us under the key name of account_balance
Cards Service
Description
Card service is used to configure and control card related things like
- Card Block
- Set PIN
- Domestic Usage and Limits • POS • ATM • Online • Tap and Pay
- International Usage and Limits • POS • ATM • Online • Tap and Pay
Technology
It will have providers registered to it. Each provider will be generally a parser which will map the response and request from our client touch-points to what external card management systems and schemes understand and vice versa. Provider will come with its own set of configurations and rules.
Database will have cards via masking/tokens and user mappings only. All other controls will only be setter and getter to external systems and we won’t store that data
For eg:
Our API will have a certain response structure which we want it to be uniform across and irrespective of what accounts are we showing.
Bank 1 may give us balance under the key name of balance while Bank 2 would give us under the key name of account_balance
Transfer Service
Description
Transfer service is used to perform transfer of money from a source account to a destination account with different combinations
- Local Transfer a. Same bank transfer b. Another bank transfer c. Bank to wallet transfer d. Wallet to bank transfer
- International Transfer a. Bank to bank transfer b. Bank to wallet transfer c. Bank to card transfer d. Wallet to card transfer e. Wallet to bak transfer
Technology
It will have providers registered to it. Each provider will be generally a parser which will map the response and request from our client touch-points to what external remittance partners understand and vice versa. Provider will come with its own set of configurations and rules
Database will store contacts and their accounts mapping to populate to the user. Since different accounts have different fields, a document data type column is required for the same. Although its not a broader set of unstructured data that we have to use Cassandra or similar database, we can use Postgres JSON data type for the same.
On the user front we will show them masked numbers of accounts like xxxx-8451
Orders placed through transfer service will go through Orders Service for future reference and status tracking
Bill and Utility Plus Service
Description
Bill and Utility Plus service includes below services in home as well as work country
- Bill and Utility Payments a. Recharge b. TV c. Fees d. and similar more as supported by partners
- Insurance a. Vehicle Insurance b. Medical Insurance c. Life Insurance
Technology
It will have providers registered to it. Each provider will be generally a parser which will map the response and request from our client touch-points to what external insurance partners understand and vice versa. Provider will come with its own set of configurations and rules Orders placed through the service will go through Orders Service for future reference and status tracking For eg: A recharge service in some countries would come with recharge code to be punched in dialer to recharge vs direct recharge happening in some countries. An insurance order would have options to download policy document, initiate claim, check benefits.
Order Service
Description
Order Service is a records service cataloging all orders with their current status and details. There will be different type of orders and in that sense details inside will change. Few of the examples are
- Bill Payment and Utility Orders Details would be having recharge code, transaction id, payment methods, what plan purchased
- Insurance Details would have an action button of making claims, benefits summary, action to download policy document
- Remittance Details would have status of the remittance, amount details along with breakup of charges and forex exchange rate The question arises why would we require a remittance order as transfer will happen from the account itself and we can check if deduction happened. But we will need to status of remittance which will unavailable from transaction and its details itself. Also in case of failure how the banking works is that there will be two transactions one of debit and another of credit as reverse.
Technology
Order Service will fetch order list via pagination and common details from various types as described above
Database will be combination of relational database Postgres wherein we will store payment gateway transaction_id, order_id, status, timestamps and unstructured JSON data as per types above.
Master Service
Description
Master Service is a static and CMS service which will give you below
- Countries
- States
- Cities
- Currencies
- Languages
- Onboardings
- Sliders
- Settings
Technology
Database will be Postgres
B2B
Master Service
Description
Master Service is a static and CMS service which will give you below
- Countries
- States
- Cities
- Currencies
- Languages
- Package
- Services
- Employees
- Companies
Technology
Database will be Postgres and a GraphQL layer on top of it
Order Service
Description
Order Service is a records service cataloging all orders with their current status and details.
- Services Services ordered by employers and recruiters
- Employees Employees in that order
- Status Status of individual services and order as a whole
- Ticket Tickets of services which will have conversations and attachments
- Quotation Quotations generated for an order
Technology
Order Service will fetch order list via pagination
Database will be Postgres wherein we will store payment gateway transaction_id, order_id, status, services, packages, timestamps
Workflow Service
Description
Workflow Service is an event driven service which performs a set of tasks when a certain event occurs
For eg: When an order is created attach all services to it. When payment gets cleared for that order after accepting a quotation then create tickets of all services individually and notify relevant subscribers/stakeholders
Technology
We will use Temporal to define workflows
Common and Miscellaneous
Auth Service
Description
Auth Service to have following features:
- Username
- OTP based
- Password based
- MFA
- Tenant or Application to create separation between different systems
- Session based
- Token based
- OAuth and SSO
- Secure
Technology
Using out of box IDP provider like Fusion Auth, Ory, Casdoor and Casbin combo
Payment Service
Description
Payment service will be used as a payment processor of every kind. Having said that there are multiple forms for this
- Payment Gateways a. Thawani b. Stripe
- Internal Accounts (Not for B2B) a. Bank Account b. Wallet
Technology
It will have providers registered to it. Each provider will be generally a parser which will map the response and request from our client touch-points to what external insurance partners understand and vice versa. Provider will come with its own set of configurations and rules
Database will be relational database Postgres wherein we will store payment gateway transaction_id, order_reference_id, status, timestamps
A webhook will be configured to propagate transaction status from payment service to order service and further down to notification service
Notification Service
Description
Notification Service is a service that handles all communications to the subscribers through below channels and is used for both transactional and marketing purpose
- SMS
- App
Technology
We will use Novu to handle opur notifications. Its opensource and already has lots of providers attached to it for each of above channels like Twilio, Clicksend, Amazon SES etc.
Logging Service
Description
Logging is an important aspect for any solution.
Technology
We will use ELK stack for our logging and storing of logs
Monitoring Service
Description
Monitoring Service is will help us in observability and alerting
Technology
We will use Prometheus with Grafana