Skip to end of metadata
Go to start of metadata
In this article

JeraSoft presents a major release of JeraSoft Billing v3.19.0 with more improvements for better performance. Please find a complete revision list below.

Major Updates

Payment Gateways

In order to improve consistency, all Payment Gateways settings were moved to a Client Portal configuration.

Following settings are now available within the customer-params.json file with the following names:

Setting Name





Array of available amounts for top up in the list to select.

[1, 5, 10, 25]

[5, 20, 50, 100]


Currency ID (as per your system configuration) for the payments received from the specific Payment Gateway. Required.




Currency code of the Payment Gateway to charge payments in (declared by the gateway itself).




Payment Account’s ID as per your system configuration.

1 ("General" Payment Account)



Configurations for Authorize.Net related to the automatic charge of the customers were moved into Resellers configurations.

Screenshot: Autocharge Settings in Reseller


We've added an option to the system to define who pays PayPal fees for transactions. It can be set in the customer-params.default.json file:

Setting Name




Defines who pay fees for PayPal transactions.

Available options:

  • "provider" (in this case, you as the provider will pay your clients' fees. I.e., when a client refills balance for 1 USD, the balance will actually be refilled for 1 USD regardless of the needed commissions);
  • "client" (e.g. when a client refills his balance for 5 USD, he receives 4.56 USD into the billing system).



Stashing future rates

From now on, when adding new rates, you will have the ability to stash prices for the same destinations in the future. We’ve added the new option 'Stash Future Rates' to the rates creation form, both for regular and special rates. This option allows stashing the rates for the same destinations existing in the future. The 'Stash Future Rates' option by default is set to 'preserve' for regular and additive rates, and 'stash' for special rates (see screenshots below).

Apart from that, an option for forcing notification after adding a new rate was introduced to the rates creation form. The 'Force Notification' option by default is set to 'hold' for regular and additive rates, and 'force' for special rates.

Screenshot: New options in Rates creation form

Screenshot: New options in Special Rates creation form

Rate Notification

In the previous versions, forced Rate Notification was affected by the defined rate changes notification period from Configuration→Settings and the Agreement. From now on, they will be sent immediately after forcing (see screenshot).

Screenshot: The Notify Now button in Client's settings

The regular automated Rate Notification process will work as follows:

  • after adding new special rate, a client will be notified after delay configured in Configuration→Settings disregarding Agreement assigned to Rate Table.
  • after changes in regular rates (not derived from special rates), a client will be notified according to the Agreement and after the delay specified in Configuration→Settings.


We've added an ability to set a single Tax for all rates regardless of the tag present on them. Now you can simply add a Tax Value to a Tax Profile without a tag specified (not even default '@'), and apply it for multiple rates with different tags. Additionally, these taxes can be applied when creating charges for packages and manual charges alongside the rates marked with the '@' tag.

Screenshot: Adding a Tax Value with no Tag



The CoreAPI function coreapi.clients_packages.close is DEPRECATED and will be removed completely in version 3.20.0. Instead, you can use the coreapi.clients_packages.terminate function.

Strictness Enforcement

To prevent ambiguous situations and potential problems during upgrades and migrations, the general behavior of CoreAPI was changed. Previously, if an unknown parameter arrived at the input of the method, it was ignored. Now the system will return an error and will not execute the requested method.

Minor Updates



In the newest version, we've implemented the restriction for Code Rules creation in the rates import form to better import management. From now on, there is an ability to create only one rule per one code (including '*' for 'all codes').

Rate Generator

We’ve fixed the way sources (either terminators, terminators' Rate Tables, or terminators' tags) are selected for the Rate Generator rules. They are now bound to the Rate Generator owner (Reseller), and you can assign only the sources created under the respective Reseller for a particular generation rule.

(warning)   Attention

Rate Generation does not work with rates with Src Codes indicated.

Client Panel

To make it more convenient to configure columns output and filtration in Detailed and Summary reports of the Client Panel, we added the ability to select various columns as in the admin panel itself. For this, two new config parameters were introduced: modules.reportXdrs.columns (to replace the previously existing modules.reportXdrs.additionalColumns parameter) and modules.reportSummary.columns.

Other Updates

Visual improvements

Special Rates

We've added a shortcut for Special Rates to the Rate Tables section view. Now there's an ability to access special rates for the respective Rate Table with just one click.

Screenshot: Special Rates shortcut

  • No labels