The Dworkin framework supports two types of user accounts inside the system:
- customer account
- business (or merchant) account
Customer accounts contain common user related information such as first name, last name, home addresses, country, etc. Mobile phone number (MSISDN) serves as primary key for customer account:
Customer API deals with customers and their payment accounts on behalf of merchant account.
Merchant account represents main business unit inside the Dworkin API and contains the following data:
The Dworkin API methods are connected to merchant account therefore each API method invocation requires provision of account ID and SHA-256 message digest based on request parameters and merchant account secret key.
API connection to merchant accounts allows to create chains of separate merchant business units inside the whole system based on Dworkin Framework installation. The Dworkin Wallet is just an example of building lightweight JS wallet application around Customer API for one particular test merchant account.
Payment account inside the Dworkin Framework is represented by Card entity:
There are 2 types of card accounts enabled for customer:
- Virtual/Plastic VISA/Mastercard card
- Dworkin Wallet
Both types of card accounts can be simultaneously stored inside customer accounts and use cross financial methods of Customer API. Each card entity connected to customer account through many-to-one link field customerId, therefore allowing customers to have multiple payment accounts inside the system.
The Dworkin API does not store any card payment information. All VISA/Mastercard card holder data is stored in external Card Processing system and connected to Dworkin only using token field stored in each Card entity.
Each business account inside system has a wallet card account which allows to restrict and limit all merchant API operations from business perspective. Besides that each merchant account has associated customer account which enable all customer wallet operations for each particular merchant.