PortaBilling sends notifications to admins, customers, and resellers via email or SMS. Each notification is triggered by a specific system event – for example, when a report is generated, or a route becomes unavailable.
Notification content is defined by templates. Templates are grouped into notification sets and assigned to a PortaBilling user.
Each template contains static text and placeholders for variables. When a notification is sent, PortaBilling replaces each placeholder with the actual value – for example, Dear <% $first_name ? $first_name : "User" %> becomes Dear John Doe.
Notification configuration
When assigning a notification set to a user, you can enable or disable individual notifications or entire categories within the set.
To create a notification set:
- Navigate to My Company > Notification sets and create a new set.
- Fill in the following details:
- Navigate to My company > Users, open a specific user, and go to Notifications.
- Select a notification set from the dropdown list to assign it to the user.
-
Select which categories or specific notification types to send via email or SMS by selecting or clearing the checkboxes.
- Click the name of a notification category, e.g., "Customer management," to view and edit the notification templates within the set.
If you modify a notification template within a set, the changes apply to all users who have that set assigned.
To modify template variables using Perl expressions, see Notification messages syntax.
Available user notifications
This table lists the user notifications available in PortaBilling, including the delivery method (email or SMS) and whether the notification is sent by default when no notification set is assigned.
Two-factor authentication
| Notification name | This notification states that | SMS | Sent by default | |
| The maximum number of two-factor authentication attempts exceeded | The maximum number of two-factor authentication attempts was exceeded. | + | + | |
| The user entered an invalid OTP | The user entered an invalid OTP. | + | + | |
| Two-factor authentication is configured | Two-factor authentication (2FA) has been configured for the user. | + | + | |
| Two-factor authentication is disabled | Two-factor authentication (2FA) has been disabled for the user. | + | + | |
| Two-factor authentication is reset | Two-factor authentication (2FA) key has been reset for the user, and during the next login attempt they will be asked to scan a QR code to add a new 2FA key. | + | + |
Inventories management
| Notification name | This notification states that | SMS | Sent by default | |
| CPE data upload | The customer premises equipment (CPE) data upload has failed. | + | ||
| DID numbers were uploaded | DID numbers have been uploaded. The message provides a list of successfully uploaded DID numbers and a list of DID numbers that were not uploaded due to an error. | + | ||
| SIM cards upload | The upload of SIM cards has been completed. The message contains a summary on the total SIM cards processed. | + | ||
| DID upload error | Some update operations failed during DID upload. The file, including data that was not properly imported, is attached to this message. | + | ||
| Measured metric data upload | The measured metric data upload has failed. | + |
Billing notifications
| Notification name | This notification states that | SMS | Sent by default | |
| Balance overdraft | The charged amount is greater than the account's balance. | + | + | + |
| Call unresolved | A call has been completed but not billed due to a missing provider connection match. | + | + | + |
| Failed to re-generate the invoice, no invoice number or customer ID | Invoice re-generation failed because the invoice number or customer ID was not identified. | + | ||
| Failed to re-generate invoice | The attempt to re-generate the invoice failed. | + | ||
| Forbidden destination | The forbidden destination/rate code has been matched for charging. | + | + | + |
| Incoherent call duration | There is a big difference between the call duration reported in the call connect/disconnect time and the Acct-Session-Time value. | + | + | + |
| Invoice re-generated successfully | The invoice was re-generated successfully. | + | ||
| List of the auto-approved invoices | This notification provides a list of invoices auto-approved by the system. | + | ||
| Auto-payment error | An error occurred during invoice auto-payment. Because of this, auto-payment functionality is frozen and must be manually unlocked. | + | + | |
| Invoice cannot be created because there are no corresponding xDRs | An invoice cannot be created because the corresponding xDRs were not found. | + | ||
| Recalculation of invoices was finished | Whether the recalculation of invoices was finished successfully, with warnings or with errors. This message includes a list of invoice IDs that were not recalculated. | + | ||
| List of the invoices under review | This notification provides a list of invoices that are under the administrator's review. | + | ||
| Missing account information | The session can't be billed due to an unknown account. | + | + | + |
| Missing account information (answered) | There is no information about the account ID provided for the incoming session. | + | + | + |
| Missing account information (fixed) | There is no information about the account ID provided for the session. | + | + | + |
| Missing tariff information | The rating entry for the session is missing. | + | + | + |
| Problem with NTP | The received accounting request contains timestamps that need to be fixed to correlate to the current time. | + | + | + |
| Profit monitor event detected | A call with too low profit (according to the configured limit) was detected. | + | + | + |
| Rejected attempt to authorize for simultaneous use | The account attempts to authorize a new session while another simultaneous usage has already locked all the available funds. | + | + | + |
| Rerating complete | The xDR re-rating procedure has been completed. The message includes a list of xDRs processed. | + | ||
| Session unresolved | The session has been completed but does not match any vendor connection; therefore, it has not been billed. | + | + | + |
| Suspicious event delay | The received request contains suspiciously delayed timestamps. | + | + | + |
| Suspiciously long call | Accounting for a suspiciously long call was received. | + | + | + |
| Unrecognized time format | The accounting request contains timestamps in an unrecognized time format. | + | + | + |
| Unrecognized time zone | The request contains an unrecognized time zone. | + | + | + |
Customer management
| Notification name | This notification states that | SMS | Sent by default | |
| Customer accounts closed | Some customer accounts have been closed. | + | ||
| Accounts generation error, cannot fetch customer name | The customer was deleted by another administrator during account batch generation. | + | ||
| Accounts generation error, cannot open file | A report file used during account generation cannot be opened. | + | ||
| Accounts generation error, cannot access directory | The directory used during account generation cannot be accessed due to permissions issues. | + | ||
| Accounts generation error, unknown customer | The account batch cannot be generated because this customer is not found in PortaBilling. It is possible that the customer was terminated after the account generation procedure was scheduled. | + | ||
| Accounts generation error, cannot create directory | The directory required for account generation does not exist and an attempt to create it failed. | + | ||
| Accounts generation error, cannot create a new batch | Batch generation failed. | + | ||
| Accounts generation error, batch exists | The batch name the administrator is trying to use already exists. | + | ||
| Accounts generation error, exceeded generation attempts | Batch generation failed due to an excessive number of generation attempts. | + | ||
| Accounts generation error, number of available account exceeded | The batch cannot be generated because the available DID numbers in the selected DID batch have been exceeded. | + | ||
| Accounts generation finished | The accounts have been successfully created. | + | ||
| Accounts generation error, cannot fetch product name | The wrong product was selected to generate the account batch. For example, when the batch was being generated, the product was deleted by another administrator. | + | ||
| Spending plan limit exceeded | A customer has outreached their spending limit. | + | + | |
| Accounts generation error, batch control number overflow | The account generation procedure failed due to a batch control number overflow. | + | ||
| Spending plan limit ratio exceeded | A customer has reached the warning threshold configured for their spending plan. | + | + |
Platform management
| Notification name | This notification states that | SMS | Sent by default | |
| Accounts without ZIP codes were found during tax calculations | Accounts without ZIP codes were found for a customer during tax calculations, and the customer's ZIP code was used for such accounts. | + | + | + |
| Adaptive routing penalty threshold reached | Call quality for a particular route is below the specified acceptable level. The route is penalized and removed from its usual position in the routing list. | + | + | |
| Adaptive routing warning threshold reached | Call quality for a particular route is below the specified warning threshold. | + | + | |
| Alarm replication error | A problem with the replication of the main database was detected. | + | + | |
| Alarm: the ZIP code is missing or invalid | A customer's ZIP code is missing or invalid; therefore, the invoice may contain an incorrect tax amount. | + | + | |
| Balance mismatch detected | A discrepancy between customer balance (an amount owed to the ITSP) and invoice amount due was detected. | + | + | |
| Exchange rate actualizing error | An error occurred while processing an exchange rate. | + | + | |
| General billing misconfigurations | An issue with billing configuration was detected. | + | + | + |
| Mismatch in the Destinations or Rates table | A rate code wasn't found in a tariff. | + | + | + |
| No currency exchange rate found | No exchange rates were found for converting a different currency to the base currency. | + | + | |
| No keyfile configured for the LinkPoint online processor | No keyfile for processing payments via the First data global gateway virtual terminal (formerly known as LinkPoint) was configured or the pass to the keyfile is incorrect. | + | + | |
| No partner configured for the PayflowPro online processor | The Merchant account partner name option required for processing payments via PayflowPro online processor was not configured. | + | + | |
| No remote IP authentication on your gateway | There is no remote IP authentication on the gateway because of an incorrect billing engine name. | + | + | + |
| No routes to destination | No routes to a specific destination were found in the routing plan. | + | + | + |
| No store name configured for LinkPoint online processor | The Store name option required for processing payments via the First data global gateway virtual terminal (formerly known as LinkPoint) was not configured in the porta-admin.conf file. | + | + | |
| No temporary directory for the LinkPoint online processor | No temporary directory for processing payments via the First data global gateway virtual terminal (formerly known as LinkPoint) was configured or the pass to this directory is incorrect. | + | ||
| No vendor configured for the PayflowPro online processor | The Merchant account vendor name option required for processing payments via PayflowPro online processor was not configured. | + | + | |
| No wrapper configured for the LinkPoint online processor | The LinkPoint wrapper (LPERL) used for processing payments via the First data global gateway virtual terminal (formerly known as LinkPoint) was not configured. | + | ||
| Not defined base currency for environment | No base currency was defined for the environment. | + | + | |
| Not defined or empty called station ID | The called station ID (DNIS) is not defined or is empty, and VoIP equipment configuration should be checked. | + | + | + |
| Online payment processor configured improperly | An online payment processor was not properly configured. | + | + | |
| Payment processing error | An error occurred during payment processing via the payment processor. | + | + | |
| Task rejected | A task from the TaskStack queue was rejected. | + | + | |
| Tax calculation errors | The tax calculation scheduled for a customer has failed. | + | + | |
| Taxation failed due to the missing ZIP code | The scheduled tax calculation failed due to the missing ZIP code. | + | + | + |
| The customer has accounts without a calls limit | Accounts without an outgoing calls limit were found during the scheduled tax calculations for the customer. | + | + | + |
| The taxes for the customer were calculated successfully, with non-critical errors | Taxes for a customer were calculated successfully but with non-critical errors that may require the admin's attention. | + | + | + |
| User error report | A user submitted a report about an unsuccessful call via the web interface. | + |
Fraud prevention
| Notification name | This notification states that | SMS | Sent by default | |
| Account screened | An account's status was changed to screened. The notification includes information about the reason for account screening. | + | + | |
| Suspicious destinations | The duration of calls to suspicious destinations reached a threshold defined in the fraud traffic profile. | + | ||
| Customer's account: fraudulent activity detected | The customer's account attempted to use the service from an unusual location. | + | ||
| Account quarantined | The account was quarantined because of suspicious activity. | + | + | |
| Session unauthorized location | The customer's account attempted to use the service from an unauthorized IP address. | + | + |
Service catalog management
| Notification name | This notification states that | SMS | Sent by default | |
| Product cloned successfully | The product was successfully cloned. | + | + | |
| Failed to clone product | An attempt to clone the product failed. | + | + | |
| Tariff cloned successfully | The tariff was successfully cloned. | + | + | |
| Failed to clone tariff | An attempt to clone the tariff failed. | + | + | |
| Destinations were uploaded | A destination upload has been completed and includes information on how many destinations were added, removed, or ignored. | + | ||
| Destinations upload failed | Some update operations failed during destination upload. The file, including data that was not properly imported, is attached to this message. | + | ||
| Destination group set was uploaded | A destination group set upload has been completed and includes information on how many prefixes were added, removed, or ignored. | + | ||
| Destination group set upload failed | Some update operations failed during a destination group set upload. The file, including data that was not properly imported, is attached to this message. | + | ||
| Tariff upload failed | Some update operations failed during tariff upload. The file including the data which has not been imported is attached to the message. | + | ||
| Tariff uploaded | A tariff has been successfully uploaded. The message includes a summary about the total rates processed. | + | ||
| Reapplying subscriptions for product | A product's subscription has been reapplied. The message includes the number of affected accounts. | + | ||
| Accounts generation error, invalid add-on products combination | The account batch generation failed because the provided add-on products combination cannot be used with the main product. | + |
Reports
| Notification name | This notification states that | SMS | Sent by default | |
| Custom report | This notification includes the results of custom report execution. | + | ||
| SAP reports summary | This notification includes the results of processed reports. | + | + |
Password recovery
| Notification name | This notification states that | SMS | Sent by default | |
| Web self-care password change | A user changes their password on the web self-care interface. This message contains the new password. | + | + | |
| Web password change link | The "Password recovery" feature on the web self-care interface has been used. The message contains the reset password link. | + |

