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)
~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)