Reservations

Reservation represents money blocked on user's money account – this money stays on the money account, but cannot be used by any user, process or for another reservation.

The purpose of reservations is to block a reasonable amount of money before a transaction happens, so there is lower risk of account with not enough money to settle transaction. If such a situation happens anyway, a debt is created.

When are Reservations created?

A reservation is created when Broker (Payment System) receives request from Vendor (e.g. Dispatcher Paragon) to block specified amount of money on specified account.

When do Reservations disappear?

Reservations disappear in the following 2 cases:

  • The transaction is settled
  • The transaction was not finished and reservation cancelled

In certain cases reservation is not cancelled by receiving settlement call. In such cases, administrator has following possibilities to unblock the reserved amount of money and make it available for other processes.

Manual reservation cancellation

In YSoft Payment System Administration web interface, administrator can go to Subjects -> open user's account and list through existing reservations. Clicking on Cancel button, reservation will be cancelled.

Automatic reservation cancellation

In YSoft Payment System Administration web interface, administrator can define value for Expiration of reservations as the maximum age of any reservation. When this age is exceeded, the reservation is cancelled automatically. Default value is 168 hours (7 days).

Overdrawn transactions

Defines the overdrawn option for print, copy or scan operations. Overdrawing of transactions can be set into the 3 overdrawing modes:

  • Deny overdrawing
  • Allow if enough credit on account
  • Allow and register debt if necessary

These settings can be set in the administration part of Payment System Administration interface -> Configure -> YSoft Payment System -> Overdrawn transactions.

Deny overdrawing

Transaction settlements higher than the total sum of reservations are not allowed.

Use case:

Situation: Customer account balance is 30 and minimum balance of the account is set to -15. Customer also doesn't have any registered debt or reservation.

  1. reservation is created for:
    1. 50 > FAIL, the reservation cannot be created (actual account balance - minimum account balance = 30 - (-15) = 45 => 50 > 45 => FAIL)
    2. 35 > OK, actual account balance is -5
  2. continue with reservation for 35
  3. settlement is settled for:
    1. 32 > OK
      1. the amount is subtracted from the reservation (35 - 32)
      2. the rest of the subtraction (3) is added to the actual account balance
      3. new account balance is -2
    2. 36 > FAIL - settlement is greater than the reservation (36 > 35)
    3. 53 > FAIL - settlement is greater than the reservation (53 > 35)

Allow if enough credit on account

Transaction settlements higher than the sum of reservations are allowed only in case the user's current balance minus minimum account balance is higher than current settlement.

Use case:

Prerequisites => Customer account balance is 30 and minimum balance of the account is set to -15. Customer also does not have any registered debt or reservation.

  1. reservation is created for:
    1. 50 > FAIL, the reservation cannot be created (actual account balance - minimum account balance = 30 - (-15) = 45 => 50 > 45 => FAIL)
    2. 35 > OK, actual account balance is -5
  2. continue with reservation for 35
  3. settlement is settled for:
    1. 32 > OK
      1. the amount is subtracted from the reservation (35 - 32)
      2. the rest of the subtraction (3) is added to the actual account balance
      3. new account balance is -2
    2. 36 > OK
      1. settlement is greater than the reservation and less than possible (reservation + actual account balance - minimum balance => 35 + (-5) - (-15) = 45 )  => 35 < 36 < 45
      2. settlement is possible to create
      3. new account balance => actual account balance + reservation - settlement = -5 + 35 - 36 = -6
    3. 53 > FAIL - settlement is greater than => reservation + actual account balance - minimum balance => 35 + (-5) - (-15) = 45 => 35 < 53 > 45

Allow and register debt if necessary

Transaction settlements are always allowed. Debt is registered in case the settlement is higher than user's current balance minus minimum account balance.

Use case:

Prerequisites => Customer account balance is 30 and minimum balance of the account is set to -15. Customer also does not have any registered debt or reservation.

  1. reservation is created for:
    1. 50 > FAIL, the reservation cannot be created (actual account balance - minimum account balance = 30 - (-15) = 45 => 50 > 45 => FAIL)
    2. 35 > OK, actual account balance is -5
  2. continue with reservation for 35
  3. settlement is settled for:
    1. 32 > OK
      1. the amount is subtracted from the reservation (35 - 32)
      2. the rest of the subtraction (3) is added to the actual account balance
      3. new account balance is -2
    2. 36 > OK
      1. settlement is greater than the reservation and less than possible balance (reservation + actual account balance - minimum balance => 35 + (-5) - (-15) = 45 ) => 35 < 36 < 45
      2. settlement is possible to create
      3. new account balance => actual account balance + reservation - settlement = -5 + 35 - 36 = -6
    3. 53 > OK- settlement is greater than => reservation + actual account balance - minimum balance => 35 + (-5) - (-15) = 45 => 35 < 53 > 45
      1. new debt is created => settlement - reservation = 53 - 35 = 18
      2. system automatically withdrew (actual account balance - minimum account balance) based on existing debt => (actual account balance - minimum account balance) = -5 - (-15) = 10
      3. debt is updated to - (debt - amount from step ii.) = 18 - 10 = 8

Debt tracking

When a transaction settlement is made for an amount higher than the amount of reservation and there is not enough money on the user's account to cover the settlement, a debt is registered to user. The amount registered as debt represents amount that was not able to be settled in other way - through settlement of reservation, remaining money on account or allowed minimal balance. The registered amount equals settlement amount - reservation amount.

  • Debt is partially settled anytime money is deposited to the account or made available on account.
  • The exception is in case Dispatcher Paragon Payment System is used in connection with external payment system, when Dispatcher Paragon Payment System does not hold actual user balance, but it works as a proxy for external payment system. Debt settlement in this case does not happen immediately, but in following interval: 5 seconds, 1 minute, 1 hour, 12 hours, 1 day, and then on daily basis. This is to prevent external payment system from denial of service.

In case there is a debt on the account, the account balance is typically 0 (or equal to minimal balance) and there is a debt record visible in the Dispatcher Paragon Payment System interface in the user's account overview.

Session timeout

For security reasons, Dispatcher Paragon Payment System will automatically log out users logged into Administration, Cash Desk or YSoft Wallet web after 30 minutes of inactivity or in other words no communication with server. User will see dialog "Your session is about to expire" 5 minutes before reaching this limit. This dialog includes two buttons:

  • "Reload page" button will effectively close this dialog, reset the counter, refresh the page and close all unsubmitted forms (e.g. new periodic recharge in Administration)
  • "Logout" button will log out current user. It has the same effect as automatic log out.

This means that if you leave unsubmitted form inactive for at least 25 minutes, you will lose filled information, because of timeout dialog, from which you cannot return to the form! Moving mouse or filling the form still counts as inactivity, unless it triggers communication with server.

Cash Desk session timeout with enabled Remember me

If the 'Remember me' functionality for Cash Desk is turned on then the session dialog also appears but it does not log out a user but instead of that a user's page is reloaded. 

Transaction timeout

Dispatcher Paragon Payment System has a default timeout of 5 seconds for all transaction based operations. Examples would be a transaction reservation or settlement request.

In case you experience occasional timeout error during execution of such transaction based operations, it is possible that your system infrastructure is not able to finish these operations within 5 seconds. Especially vulnerable are systems connected to an external payment provider.

As a workaround this limit can be changed in the environment-configuration.properties through option database.transactionTimeout. For more information see Advanced Configuration of Dispatcher Paragon Payment System section Connection Pool.