Skip to main content

Release 3.27

JeraSoft presents a major release of JeraSoft Billing 3.27 featuring several logical and functional improvements. Please find a complete revision list below.

Major updates​

EU PEPPOL Invoices​

To keep up with industry demands, we have enabled the possibility to generate Invoices according to the EU PEPPOL specification (in XML format). Originally developed as an EU standard, PEPPOL allows companies to send electronic invoices and other business documents directly to the supplier's system and software.

To allow for the seamless integration, the following adjustments have been introduced:

  1. From now on, the Postal Address in Clients and Legal Entities should be specified in separate fields: Street Address, City, Country, Postal Code and US state (for the US). All these fields will be combined and displayed on the Invoice together.

  2. New fields related to EU invoicing have been added:

    • Endpoint ID: Seller's / Buyer's electronic address, to which the Invoice is delivered;
    • Endpoint Scheme: electronic address format according to the following list.
info

For more info on how to setup PEPPOL XML Invoices, please refer to the respective User Guide materials.

Packages & Subscriptions​

Incoming calls​

In this release, we have improved the tracking of paid incoming calls within a Package for customers. The scope of this improvement includes the following modifications:

  1. In Packages:

    • The Type field has been completely removed.
    • The Origin field has been added to the Limits section ("orig", "term", "both"). limits origin
  2. In Subscriptions:

    • The Origin field has been added to the Limits section. limits in subscription
  3. In Client Panel:

    • The Origin is visible in the Limits section respective to the limits.
Differences from the previous implementation

The previous implementation (through Vendor-type Packages) has been misleading in some scenarios and implemented in the way that it hasn't been covering the most required scenario end to end. That's why we provided added fluidity in current realization through having an "origin" for the Package limits, rather than having separate types of Packages.

If you currently have Vendor-type Packages, they will be archived and marked respectively during the update.

Invoicing​

Following this rework, we've synchronized the logic of statistics selection for the Invoices and xDRs attached to them.

  1. Outgoing Invoices include items that the customer is charged for, i.e., those with negative cost before Package application.
  2. Incoming Invoices include items that the vendor charges us, i.e., those with positive cost before Package application.
Differences from the previous implementation

Let's review a simple example: the customer has a call that was fully covered by the assigned Package:

  • in the previous implementation, this call would have been included only to the attached xDR file, but not the Invoice;
  • in the current implementation, this call will be included both to the Invoice (in the aggregated data that serves as the source for the "Stats" table) and the attached xDR file.

Fraud monitoring​

Active Sessions report​

Starting from JeraSoft Billing v3.27.0, we have enhanced the Active Sessions report to align with the unified system framework. This rework to a more standard form allows utilizing it in Reports Monitoring smoother, enabling proactive fraud detection and management. With this feature, you can:

  • Monitor for suspicious activities in real-time using filters by quantity and duration.
  • Automatically respond to potential fraud cases with actions such as notifications or traffic blocking.

Currently available report filters include:

  • Statistics block:
    • quantity
    • duration
  • Clients block:
    • orig / term company
    • orig / term owner user
    • orig / term client
    • orig / term account
  • Rates block:
    • orig / term code
    • orig / term code name

Active Sessions report

Differences from the previous implementation
  1. Possibility of the export (CSV or XLSX) has been removed. Given the real-time nature of active sessions, exporting for post-processing is not practical.
  2. Information previously provided in the "Info", "Originator", and "Terminator" columns have been split and migrated into respective separate columns. Existing Report Queries will be migrated to maintain compatibility with the updated format.
  3. The layout now mirrors other system reports like Summary and Orig-Term, ensuring consistency. The updated Group by options provide granular control, while output columns focus on aggregated data.

Minor updates​

CoreAPI​

Authorization​

The CoreAPI authorization has been aligned with industry-standard practices to simplify its usage:

  1. Added support for X-Api-Key HTTP header. This should be populated with the API Key of the respective account used to make API requests.
  2. Deprecated JWT-based authorization for machine-to-machine communication.

REST API​

CoreAPI is now available over REST in addition to an existing JSON-RPC 2.0 protocol.

Moreover, we are making more API methods publicly accessible, ensuring greater flexibility for developers. Explore our API documentation here.

The possibility to search for DIDs by Account ID has been added.

Subscriptions​

We've added the ability to override default package fees during assign of the subscription via CoreAPI or to update them later. Please check details for the "Override Package Fees" setting for clients.subscriptions.assign and clients.subscriptions.methods.

Accounts​

To control the security of the Client Accounts, we have added additional options into the System Settings:

  1. "Require password for accounts" – makes password a mandatory field for the Client Accounts.
  2. "Enforce strong passwords" – ensures passwords are at least 12 characters long and include a mix of uppercase and lowercase letters, digits, and special symbols.

Invoice Templates​

Packages​

To make management of the Invoice Template variables related to Package period smoother, we have introduced the following changes:

  • The previous {period_start_dt} and {period_stop_dt} Invoice Template variables (from the Packages table) were replaced by a new universal one – {period_dt}.
  • The {period_dt} variable will be filled with:
    • <package activation date> – for Activation Fees,
    • <period start date> – <period end date> – for Subscription Fees.

Balances​

To align our approach in displaying balances in the Invoices with industry expectations, we have introduced some adjustments:

  1. Variables renaming/replacing:
    • balance_previous was renamed to balance_opening,
    • balance_current was renamed to balance_closing,
    • balance_final was replaced with balance_closing,
    • to_pay_gross was replaced with to_pay.
  2. Logic of display is similar to Balance Report:
    • if a customer overpaid, the balance is shown as a negative value,
    • if a customer owes something, it is shown as a positive value.
tip

In the existing Invoice Templates, the variables were renamed and replaced accordingly.

The to_pay variable considers how much there is to be paid, taking into account possible overpayment. If there is an overpayment on the balance, the amount "to pay" will be displayed as zero.

Images upload​

It is now possible to add your own images to the Invoice Templates:

Images in Invoices

Invoices​

We've improved clarity in the Invoices by omitting zero-line items. Here is how the Transactions are distributed:

  • charges for Packages with positive fees go to Outgoing Invoices,
  • charges for Packages with negative fees go to Incoming Invoices,
  • charges for Packages with zero fees do not go to Invoices.

Subscription Currency​

As of v3.27.0, the currency of a Subscription should match the currency of an associated Client. This requirement ensures consistent results and prevents discrepancies in billing and reporting.

Reports in the "comparison" mode​

The overall filtering in the comparison reports has been improved. The aggregative filters (i.e., "Cost" and "Volume") are applied only to the main interval statistics that allows to correctly display the comparison interval data even if it doesn't fit the filtering.

If for the previous period the statistics is completely absent, it will be presented with empty values (zeroes for quantity-related and "N/A" for quality-related fields).

Such display allows for relative comparison between periods if the relative output columns are selected.

Rates​

Import​

The number of rows allowed to be skipped during import process has been increased to 150.

Rate Tags​

To optimize system usage for the cases with lots of Tags on Rates, we've returned the Tag field to the Rates settings. Now, there is an ability to assign Tags on both Rates and Rate Tables.

tip

In terms of Tags on Rates, everything is back to how it was before 3.25: tags on rates will work the same as they did before - that is, they will be used during routing, you can search for them in rates/list, use them in rates generator, etc.

But in addition to this, there are also tags on rate tables. They are also used during routing and are selected depending on the tags on the call.

The routing flow will be as follows: First, an RT is selected from the plates on the account that matches the tags. If none match, the default one with a dog is selected. Then, rates that match the tags are selected from this plate. If they do not match, they are selected with dogs.

Tax providers​

Suretax​

To simplify Invoice generation process for Suretax, we are removing the unused Services mode (processing taxes for each xDR separately) leaving just the Safe Harbor mode.

Mail Manager​

We have improved processing for the "Recipient address rejected" errors received from mail servers. In case of multiple emails for recipients, if only one of them is faulty or cannot be reached, the mail itself will not cause an error.

Cluster​

To maintain full redundancy, the capacity processing has been adjusted for the cases when the Master node is down. If this happens, the Slave node will process all calls skipping the capacity check.

Other updates​

Software updates​

The database management system has been upgraded to PostgreSQL 17. As part of your update to the newest JeraSoft Billing version, our engineers will fully take care of this migration.

Within v3.27.0, we have finalized the migration to Debian 12 (Bookworm), which was introduced as a supported platform in v3.26. As part of this transition, CentOS 7 is no longer supported.

info

Please contact our support department to update your JeraSoft Billing. We will help you migrate as smooth as possible.

CoreAPI Docs​

The Integrations → CoreAPI Docs module has been removed from the UI. The documentation has been moved to docs.jerasoft.net.

Deprecations​

Rate Tables​

CoreAPI​

List of deprecated methods and fields:

  1. In clients.create, clients.update, accounts.create and accounts.update:

    • orig_rate_tables_id
    • term_rate_tables_id
  2. In rates.search:

    • tag
    • services_id
    • policy
  3. In rates.exports.query (search argument):

    • tag
    • services_id
    • policy

Additive Policy​

The "additive" Policy will be completely removed as redundant in future versions.

Number length​

The "Number Length" parameter in Rates settings will be completely removed in future versions. Please utilize the Traffic Processing rules for the purpose of billing control for various lengths of dialed numbers.

Import​

The deprecated rates.imports.save_import_template method has been completely removed and is no longer supported.

Traffic Processing​

To prevent issues with customers' traffic schemes, the "Set Service" option was completely removed from Traffic Processing Rules.

CoreAPI​

JWT-authorization​

The JWT-based authorization for machine-to-machine communication has been deprecated in CoreAPI in the favour of more industry-common X-Api-Key HTTP header.

Dry run​

The dry run mode has been removed – the __check meta argument is not supported anymore.