Session Based Transfer

Session Based Transfer

Session-based transfer is a feature that allows creating reservations in a wallet when there's not enough balance to cover fees. Currently, it's only applicable to closed-loop digital wallet transfers and fee transactions. Tenants can activate this feature on their account by enabling the 'enabledSessionBasedTransfer' property to 'true'. It's important to note that this feature only works if the sessionId for the previous fee transfer matches the session for the new fee transfer.

Here's an example to illustrate how it works:

Let's say, on January 1st, a wallet has a current balance of 50R with an available balance of 50R. The monthly fee is set at 100R, which is charged on the 1st of each month. If session-based transfer is enabled, it will deduct 50R from the wallet and create a session-based reservation worth 50R. Assuming the customer doesn't top up the wallet throughout the month, on February 1st, the monthly fee will be charged again. Since there's no balance in the wallet and a previous fee of 50R is still owed, plus the new month's fee of 100R, a reservation of 50R (from the previous month) plus 100R (for the current month) totaling 150RAN is created in the customer's wallet. If the customer tops up with 300RAN on the 5th of February, they can only use 150R as the pending reservation for the monthly fee is 150R. It's crucial to ensure that both transfers for January 1st and February 1st must have the same sessionId and bestEffort is true"