Scope
Charge fees and loan installments according to the predefined priorities
Application of charges in realtime after account balance is sufficient
Identity the risk of customer’s inability to pay for the subscribed services and loans
Proactive communication with the customer via notifications
Formal communication with the customer according to the legal requirements
Collection management processes managed by an external system
Priorities for covering outstanding fees
Priorities for covering outstanding fees should the account have insufficient balance:
(a) subscription fees of the bank,
(b) penalties/charges for past due loans,
(c) penalties/charges for overdraft,
(d) past due loan,
(e) past due overdraft,
(f) interest (overdraft),
(g) current due for loan,
(h) current due for overdraft, and
(i) other subscriptions with other merchants (auto-debits)
Approach
Fee charging
Deducting fees from customers accounts is realized by a dedicated “debt-manager” supervisor smart contract implemented in TM Vault.
This smart contract will store all fees to be charged as requested by individual domain services and deduct the fees according to the defined business rules (priorities).
In case there is not sufficient account balance to charge a particular fee, the smart contract will deduct the fee in the future once there is sufficient account balance.
The smart contract will ensure no other transaction can deduct balance from the account in case there is an outstanding debt on that account.
Collection System (Loxon)
Responsible for management of the whole collection business processes covering early, soft and hard collections
Loan-related data for collection processes will be provided to Loxon from Loan Manager service
In order to identity the risk of customer’s inability to pay for the subscribed services and loans in the future, the Collection System has to retrieve the respective future dated transactions in advance from Fee & Debt Manager, Scheduled Transaction Manager, Product manager, Loan manager, and any other systems which charge fees to customers
BACKUP - deprecated approach
Fee & Debt Manager
Business domain services delegate charging of fees and loan installments to the Fee & Debt Manager so that it can centrally execute the transactions according to defined priorities
In case of insufficient account balance the Fee & Debt Manager persists the requested transactions in order to re-process them later
Fee & Debt Manager is subscribed to the Account Balance Changed events to enable subsequential processing once the account balance increases
Blocking of the account debits after defined period of time
If the charges cannot be executed for a defined period of time (e.g. 30 days) the follow up collection process is handed over to the External Collection System which provides means for a formal and manually controlled collection process
Collection System (Loxon)
Responsible for management of the whole collection business processes covering early, soft and hard collections
In order to identity the risk of customer’s inability to pay for the subscribed services and loans in the future, the Collection System has to retrieve the respective future dated transactions in advance from Fee & Debt Manager, Scheduled Transaction Manager, Product manager, Loan manager, and any other systems which charge fees to customers
Open Points
Open Point | Result |
---|---|
How to restrict debits from the account in TM Vault in case there are outstanding fees or installments | The Fee & Debt manager is listening on real-time balance changes, and immediately charges the outstanding fee. The risk of a race condition is small enough to accept the risk. |
Can Loxon be integrated with the Output Manager to sent notifications to customers? | Likely not. Fee & Debt manager will send the customer details to Loxon whenever a hard collection should happen. |
Waive fee | Dedicated API of Fee & Debt manager to waive a fee. |
Attachments:
~drawio~620d181df97d180071744bea~collections-blueprint.drawio.tmp (application/vnd.jgraph.mxfile)
~drawio~620d181df97d180071744bea~collections-blueprint.drawio.tmp (application/vnd.jgraph.mxfile)
~drawio~620d181df97d180071744bea~collections-blueprint.drawio.tmp (application/vnd.jgraph.mxfile)
~drawio~620d181df97d180071744bea~collections-blueprint.drawio.tmp (application/vnd.jgraph.mxfile)
~drawio~620d181df97d180071744bea~collections-blueprint.drawio.tmp (application/vnd.jgraph.mxfile)
~drawio~620d181df97d180071744bea~collections-blueprint.drawio.tmp (application/vnd.jgraph.mxfile)
~drawio~620d181df97d180071744bea~collections-blueprint.drawio.tmp (application/vnd.jgraph.mxfile)
~drawio~620d181df97d180071744bea~collections-blueprint.drawio.tmp (application/vnd.jgraph.mxfile)
~drawio~620d181df97d180071744bea~collections-blueprint.drawio.tmp (application/vnd.jgraph.mxfile)
~drawio~620d181df97d180071744bea~collections-blueprint.drawio.tmp (application/vnd.jgraph.mxfile)
~drawio~620d181df97d180071744bea~collections-blueprint.drawio.tmp (application/vnd.jgraph.mxfile)
~drawio~620d181df97d180071744bea~collections-blueprint.drawio.tmp (application/vnd.jgraph.mxfile)
~drawio~620d181df97d180071744bea~collections-blueprint.drawio.tmp (application/vnd.jgraph.mxfile)
~drawio~620d181df97d180071744bea~collections-blueprint.drawio.tmp (application/vnd.jgraph.mxfile)
~drawio~620d181df97d180071744bea~collections-blueprint.drawio.tmp (application/vnd.jgraph.mxfile)
~drawio~620d181df97d180071744bea~collections-blueprint.drawio.tmp (application/vnd.jgraph.mxfile)
~drawio~620d181df97d180071744bea~collections-blueprint.drawio.tmp (application/vnd.jgraph.mxfile)
~drawio~620d181df97d180071744bea~collections-blueprint.drawio.tmp (application/vnd.jgraph.mxfile)
~drawio~620d181df97d180071744bea~collections-blueprint.drawio.tmp (application/vnd.jgraph.mxfile)
~drawio~620d181df97d180071744bea~collections-blueprint.drawio.tmp (application/vnd.jgraph.mxfile)
~drawio~620d181df97d180071744bea~collections-blueprint.drawio.tmp (application/vnd.jgraph.mxfile)
~drawio~620d181df97d180071744bea~collections-blueprint.drawio.tmp (application/vnd.jgraph.mxfile)
~drawio~620d181df97d180071744bea~collections-blueprint.drawio.tmp (application/vnd.jgraph.mxfile)
collections-blueprint.drawio (application/vnd.jgraph.mxfile)
collections-blueprint.drawio.png (image/png)
~collections-blueprint.drawio.tmp (application/vnd.jgraph.mxfile)
collections-blueprint.drawio (application/vnd.jgraph.mxfile)
collections-blueprint.drawio.png (image/png)
~collections-blueprint.drawio.tmp (application/vnd.jgraph.mxfile)
~collections-blueprint.drawio.tmp (application/vnd.jgraph.mxfile)
~collections-blueprint.drawio.tmp (application/vnd.jgraph.mxfile)
~collections-blueprint.drawio.tmp (application/vnd.jgraph.mxfile)
~collections-blueprint.drawio.tmp (application/vnd.jgraph.mxfile)
~collections-blueprint.drawio.tmp (application/vnd.jgraph.mxfile)
~collections-blueprint.drawio.tmp (application/vnd.jgraph.mxfile)
~collections-blueprint.drawio.tmp (application/vnd.jgraph.mxfile)
collections-blueprint.drawio (application/vnd.jgraph.mxfile)
collections-blueprint.drawio.png (image/png)
~collections-blueprint.drawio.tmp (application/vnd.jgraph.mxfile)
~collections-blueprint.drawio.tmp (application/vnd.jgraph.mxfile)
~collections-blueprint.drawio.tmp (application/vnd.jgraph.mxfile)
~collections-blueprint.drawio.tmp (application/vnd.jgraph.mxfile)
~collections-blueprint.drawio.tmp (application/vnd.jgraph.mxfile)
~collections-blueprint.drawio.tmp (application/vnd.jgraph.mxfile)
~collections-blueprint.drawio.tmp (application/vnd.jgraph.mxfile)
~collections-blueprint.drawio.tmp (application/vnd.jgraph.mxfile)
collections-blueprint.drawio (application/vnd.jgraph.mxfile)
collections-blueprint.drawio.png (image/png)
collections-blueprint.drawio (application/vnd.jgraph.mxfile)
collections-blueprint.drawio.png (image/png)
collections-blueprint.drawio (application/vnd.jgraph.mxfile)
collections-blueprint.drawio.png (image/png)
~collections-blueprint.drawio.tmp (application/vnd.jgraph.mxfile)
~collections-blueprint.drawio.tmp (application/vnd.jgraph.mxfile)
collections-blueprint.drawio (application/vnd.jgraph.mxfile)
collections-blueprint.drawio.png (image/png)
~collections-blueprint.drawio.tmp (application/vnd.jgraph.mxfile)
~collections-blueprint.drawio.tmp (application/vnd.jgraph.mxfile)
~collections-blueprint.drawio.tmp (application/vnd.jgraph.mxfile)
~collections-blueprint.drawio.tmp (application/vnd.jgraph.mxfile)
~collections-blueprint.drawio.tmp (application/vnd.jgraph.mxfile)
~collections-blueprint.drawio.tmp (application/vnd.jgraph.mxfile)
~collections-blueprint.drawio.tmp (application/vnd.jgraph.mxfile)
~collections-blueprint.drawio.tmp (application/vnd.jgraph.mxfile)
collections-blueprint.drawio (application/vnd.jgraph.mxfile)
collections-blueprint.drawio.png (image/png)
~collections-blueprint.drawio.tmp (application/vnd.jgraph.mxfile)
~collections-blueprint.drawio.tmp (application/vnd.jgraph.mxfile)
collections-blueprint.drawio (application/vnd.jgraph.mxfile)
collections-blueprint.drawio.png (image/png)
~collections-blueprint.drawio.tmp (application/vnd.jgraph.mxfile)
~collections-blueprint.drawio.tmp (application/vnd.jgraph.mxfile)
~collections-blueprint.drawio.tmp (application/vnd.jgraph.mxfile)