BillMax is a flexible and extendable Business Support System (BSS) that out-of-the-box handles all billing, payment processing and customer management. BillMax may also be configured to manage Operations Support Systems (OSS) and data in a tightly coupled way so customer billing state and service delivery remain in sync. This ability is known as “provisioning”.

BillMax can instantiate, remove or alter customer services in the OSS. Its architecture is open-ended in the sense that nothing is assumed about the systems it provisions. Generally, if a provisioning API or non-interactive (program or script) is available for the system, BillMax can provision it.

Provisioning is accomplished by the following:
  1. The execution of a program known as a "hook" whenever a specific database table is updated. See Provisioning Executable.
  2. A program scheduled to read the database and update an OSS.

A hook may be executed immediately when a database table is updated or set to be run asynchronously.

Customer data, where provisioning is generally applicable, is stored in three tables: account, user and service. Changes to data in any of these tables can trigger provisioning if desired. However, most provisioning is done using data in the service table.

BillMax can provision many different systems or devices. Examples include: RADIUS, domains and email, scheduling, traffic shapers, monitoring, routers, APs, CPEs.

Provisioning errors may occur because the status or data in BillMax and the external system differ. For example, BillMax may think a Service is closed whereas the provisioned system thinks it is open. In such cases, any attempt to Open the service within BillMax will fail. When this occurs, using the Do Not Provision option on the Service can make the data synchronous.