![]() |
BillMax Billing Solutions 877.245.5629 sales@billmax.com |
A BillMax Account represents the entity to which a bill is sent and from which payment is expected.
Example 1. Account Examples
A company made up of many employees
A professional organization
A family
An individual
The Account record contains information used in invoicing: contact information, invoice methods, payment methods, and credit card information.
Accounts may contain one or more users.
![]() |
Bill presentment limitations |
|---|---|
Bill presentment is to the Account. BillMax does not support bill presentment to subordinate entities payable by a master entity. |
A mechanism for limiting update capability to a single Authorized BillMax User for the account table, user table and service table records associated with a specific Account.
The payment method of an Account.
The person is who is administratively responsible for the BillMax operations of a Virtual Company. The nightly reports and other information from BillMax are sent to the Administrative Contact Email.
![]() |
Tip |
|---|---|
Make the Admin Email an alias that expands to several people. |
The process of creating an Allocation
See Also Allocation.
An Allocation is the associate of a debit with a credit within a Account's financial data. The following allocations are allowed:
One or more Payments may be allocated to one or more Sales, Deposit Charges, Deposit Refunds or Refunds
One or more Store Credits may be allocated to one or more Sales.
When a Void occurs, a reversal of the original association(s) is created.
The response(s) generated by the Customer Interface Daemon upon the successful registration by a new customer. The response is a template file that is processed by the Customer Interface Daemon before passing it to the registration agent (browser, CD software, etc.)
See Allocation.
A mechanism for locking the payhist table for an Account while Allocations are being created.
A person who is allowed to access to the Staff Interface.
A record indicating the beginning balance for an Account. May represent money owed or credit, but not both.
The billing contact information of a Virtual Company will be used to stamp the return address of any email communication sent to accounts by BillMax. The nightly reports and other information from BillMax are copied to the Billing Contact Email.
An indication of the status of a BillMax entity. The actual value of the status is contextual. States exist for Accounts, Users, Services, Service Definitions and Calltracks.
A record of the interaction between a customer and a Customer Service Representative. Used when dealing with customer issues.
The process of changing the Service Definition of a Service.
Constraints are used to validate data on data input. BillMax processes constraints whose specifications are based on UNIX regular expressions. Multiple regular expressions can be ANDed together by separating them with &&. If defined in this way the data entered will have to match both regular expressions.
Example 3. ^([a-z][-a-z0-9_.]{2,7})$&&^(.*[-a-z_.].*)$
Matches 3 to 8 characters with these limitations: the string cannot start with a number, and it must contain only lowercase letters, numeric digits (except in the first place), and "_" "." or "-" (underscore, dot (period), or hyphen). Commonly used for the LOGIN (user identifier) field of dialup-type service definitions.
Documenting regular expression syntax is beyond the scope of this manual. The O'Reilly book entitled UNIX Regular Expressions. In addition there are many web sites that document how to create regular expressions.
![]() |
Warning |
|---|---|
Constraints are only effective when data is entered through BillMax processes. Constraints are not honored when entering data directly into the database. |
System daemon to execute scheduled commands.
The customer web interface to BillMax. To be used by customers of the company operating BillMax.
Custom SQL is SQL that is written and executed by a Authorized BillMax User. The SQL may also be stored in the customsql table for future use.
A program that is, in general, always executing waiting for input or waiting to perform actions at scheduled times.
A record in datacall table storing information about a dialup session.
Data, usually provided by the customer, that may be used to determine which POP the customer will be using.
A predefined length of time for service delivery. Specified in durations list. May be either months or days.
Current date plus Virtual Company's Prebilldays.
Electronic Funds Processing is a general term that refers to collecting monies or refunding monies through BillMax processing. This may include but is not limited to:
Charging credit cards
Debiting bank accounts using E-Check
Debiting bank accounts using ACH
Within this document, using the word "automated" with Electronic Payment Processing refers to processing that BillMax may do (usually nightly) to automatically collect funds using Electronic Payment Processing.
Every Account has six different financial totals associated with it. These financial totals are:
Cash - The sum of unAllocated payments made with legal tender.
Store Credit - The sum of unAllocated Store Credit.
Purchases - The sum of un-paid purchases.
Deposits - The sum of un-paid Deposit Charges.
Balance - The Account's overall balance. The sum of unAllocated Store Credits and Payments, and unpaid purchases and Deposit Charges.
Balance - The Account's past due balance. The sum of unpaid purchases and Deposit Charges that are overdue.
The following are the financial transactions supported in BillMax:
A Sale represents a sale to a customer and a purchase by a customer. Sales may be classified as:
One time. One time sales may be further classified as:
Setup
Usage
Other - Sales entered through the Staff Interface (which may be classified as a Usage sale) and Sales with no startdate and enddate defined.
Recurring - Sales that are generated by BillMax using closeofday.
Sales may or may not have a time component as specified in payhist.startdate and payhist.enddate. Recurring Sales always have a time component.
Required fields for a well formed Sale consists of the following:
payhist.bankacct is 0.
payhist.ucash is 0.
payhist.ucredit is 0.
payhist.cdeposit is 0.
payhist.deposit is 0.
payhist.ntaxable is less than or equal to 0.
payhist.taxable is less than or equal to 0.
payhist.tax is less than or equal to 0.
payhist.ntaxable + payhist.taxable + payhist.tax must equal the negative of payhist.purchases.
payhist.startdate is less than or equal to payhist.enddate.
payhist.entdate should not be 0000-00-00.
payhist.taxregion is a valid value of salestax.number.
payhist.customerof is a valid value of config.number.
payhist.account is a valid value of account.number.
The receipt of legal tender from a Account in the form of cash, credit card charge, check …
Required fields for a well formed Payment consists of the following:
payhist.bankacct is greater than 0.
payhist.ucash is equal to negative payhist.bankacct.
payhist.ucredit is 0;
payhist.cdeposit is 0;
payhist.deposit is 0;
payhist.ntaxable is 0.
payhist.taxable is 0.
payhist.tax is 0.
payhist.entdate should not be 0000-00-00.
payhist.customerof is a valid value of config.number.
payhist.account is a valid value of account.number.
Store Credit is credit that may be issued to a Account for use in paying the Account's outstanding balance.
Example 4. Reasons to issue Store Credits
A Referral Credit.
Credit for a service outage.
Credit for unused service.
Some key features of Store Credits are:
Store Credits may not be Allocated to Deposit Charges
Store Credits may not be Allocated to Refunds
Store Credits may be automatically generated through the Changetoprocess
Store Credits may be classified as:
One time. One time Store Credits may be further classified as:
Setup
Usage
Other - Store Credits entered through the Staff Interface (which may be classified as a Usage Store Credit) and Store Credits with no startdate and enddate defined.
Recurring - Store Credits that are generated by BillMax using closeofday.
Store Credits may or may not have a time component as specified in payhist.startdate and payhist.enddate. Recurring Store Credits always have a time component.
Required fields for a well formed Store Credit consists of the following:
payhist.bankacct is 0.
payhist.ucash is 0.
payhist.ucredit is 0.
payhist.cdeposit is 0.
payhist.deposit is 0.
payhist.ntaxable is greater than or equal to 0.
payhist.taxable is greater than or equal to 0.
payhist.tax is less greater or equal to 0.
payhist.ntaxable + payhist.taxable + payhist.tax must equal the negative of payhist.purchases.
payhist.startdate is less than or equal to payhist.enddate.
payhist.taxregion is a valid value of salestax.number.
payhist.customerof is a valid value of config.number.
payhist.account is a valid value of account.number.
The return of legal tender to a Account in the form of cash, credit card charge, check …
Required fields for a well formed Refund consists of the following:
payhist.bankacct is less than 0.
payhist.ucash is equal to negative payhist.bankacct.
payhist.ucredit is 0;
payhist.cdeposit is 0;
payhist.deposit is 0;
payhist.ntaxable is 0.
payhist.taxable is 0.
payhist.tax is 0.
payhist.entdate should not be 0000-00-00.
payhist.customerof is a valid value of config.number.
payhist.account is a valid value of account.number.
If payhist.depno is non-zero, it must be a valid value of payhist.number for a Deposit Refund.
![]() |
Warning |
|---|---|
A Refund is the recording of a physical refund given to a customer. The entry in BillMax of a Refund does not trigger any type of refunding process. |
A Deposit Charge is billed and collected for future consideration. It may be collected as a surety for equipment return or as a surety for payment against future services. It does not show up in the Apply. Please keep in mind the difference between a charge for a deposit, and a payment to satisfy that charge. In this discussion, a Deposit Charge refers to the charge for a deposit.
Example 5. Reasons to have a Deposit Charge
For use when distributing equipment (e.g. cable modem) for a service and expecting that cable modem to be returned at the end of the service.
For future service.
Some key features of Deposit Charges are:
Deposit Charges may not be paid for by Store Credit This is make sure cash is returned to the Account when necessary, not Store Credit
To make cash available for a Refund or for a Sale from a Deposit Charge, a Deposit Refund must be issued.
A Deposit Refund may not be created for a Deposit Charge unless the Deposit Charge has had Payments Allocated to it paying the Deposit Charge completely.
If a Account does not fulfill the terms to receive the Deposit Refund, the the Deposit Charge must be converted to a Sale. This may be accomplished by Voiding the original Deposit Charge and creating an appropriate Sale
Required fields for a well formed Refund consists of the following:
payhist.bankacct is 0.
payhist.ucash is 0.
payhist.ucredit is 0;
payhist.cdeposit is greater than 0.
payhist.deposit is equal to negative payhist.cdeposit.
payhist.ntaxable is 0.
payhist.taxable is 0.
payhist.entdate should not be 0000-00-00.
payhist.tax is 0.
payhist.customerof is a valid value of config.number.
payhist.account is a valid value of account.number.
payhist.depno is a valid value of payhist.number for a Deposit Charge.
A Deposit Refund signifies that the conditions that required a Deposit Charge no longer exist.
![]() |
Warning |
|---|---|
A Deposit Refund may not be Voided. If a Deposit Refund needs to be reversed, this may be done by creating by a new Deposit Charge. |
Required fields for a well formed Refund consists of the following:
payhist.bankacct is 0.
payhist.ucash is 0.
payhist.ucredit is 0;
payhist.cdeposit is less than 0.
payhist.deposit is equal to negative payhist.cdeposit.
payhist.ntaxable is 0.
payhist.taxable is 0.
payhist.tax is 0.
payhist.entdate should not be 0000-00-00.
payhist.customerof is a valid value of config.number.
payhist.account is a valid value of account.number.
A Void is the reversal of the following type of transactions:
There is no way to delete the Void of a Deposit Refund To "undo" the transaction, a new offsetting Deposit Charge must be created.
Configuration information stored in globalconf table that is applicable to the entire BillMax installation.
A future date through which Overdue Processing will not take place for a specific Account. After the date, the Account will be subject to Overdue Processing.
A BillMax BillMax Hook is one of several programs that is executed (if it exists and is executable) when a record in certain database tables change. The nomenclature of a BillMax Hook is styled tablename_hook. The current list of BillMax Hooks is
account_hook
user_hook
service_hook
payhist_hook
All BillMax Hooks are run out of /usr/local/billmax/local. All data passed to the BillMax Hooks are through environment variables. The environment variables available depend on the BillMax Hook being run. For a particular hook, the values in the database record before the database record is updated are in the environment with variable names of the style "OLD_fieldname". The values in the database record after the database record is updated are in the environment with variable names of the style "NEW_fieldname". Related records that are in "parent" tables are in the environment with variable names of the style "tablename_fieldname". As an example, the execution of the service_hook contain the following environment variable groups: OLD_*, NEW_*, SERVDEF_*, CONFIG_*, ACCOUNT_*, USER_*.
The next date that the amount will be billed for a Service.
If invday equals the day of month of the Effective Date, then an account is considered for statement processing.
In BillMax, this is defined as the amount of service to be delivered computed using the values of payhist.startdate and payhist.entdate of Sales.
A set of related items stored in the lists table.
The definition of a List. This include the name, Constraints on list values, access Permissions, etc.
A single entry of a List.
Used by the Customer Interface to format messages to the customer.
Billing that is based on RADIUS data entered into datacall table.
Sales that span more than one month are divided into monthly intervals call monthlysales.
Samples stored of the form name=value. A comma delimited list of samples may be stored.
The value for a sample may be a decimal representation.
The Navigation Bar, often referred to as "navbar".
A Note is text stored in the BillMax database that is associated with a table entry. Notes may be associated with any table in principle but are currently associated with only the Account table and the Calltrack table.
Notes on an Account briefly sum up events having to do with billing or change of account status. BillMax generates notes when certain events occur to an account (see BillMax-generated notes below). You can also manually enter a note. If you do not specify a priority, the note is priority 0. Notes appear grouped by priority. All priority 5 notes appear, sorted by date (newest at the top), then all priority 4, and so on.
BillMax-generated notes. BillMax automatically creates an accounting notes whenever certain things happen to an account or one of its users or services.
An entry in the notice table that is generated by closeofday. These entries may included in the nightly log.
The following is a description of the billing steps that an Account goes through when an Account becomes overdue.
Account exclusions to overdue processing
Accounts that have been marked as immune to overdue processing.
Accounts that have a grace date. When the day after the grace date is reached, the grace date is reset and overdue processing steps occur for the Account
Accounts that have an overdue balance that is less that the Virtual Company overduemin value.
Overdue processing items
Late fees - Late fees (if any specified for a Virtual Company) are billed every invday when an Account is overdue. If the Account state is Closed State, then the assessment of late fees is dependent on the lateclosed parameter of the Virtual Company
Conditions under which overdue notices are sent to an account
Account past due balance that is overdue by Virtual Company overduenotice days is greater than the Virtual Company overduemin value.
Account state is Open State.
Virtual Company overduemin value is greater than 0.
Virtual Company overduenotice value is greater than 0.
Virtual Company odinterval value greater than 0.
The number of late notices previously sent meets the criteria set forth by the Virtual Company odmax value.
It is time to send a late notice based on the criteria set forth by the Virtual Company odinterval value.
Conditions under which overdue accounts are suspended
Account past due balance that is overdue by Virtual Company overduenotice days is greater than the Virtual Company overduemin value.
Account state is Open State.
Virtual Company overduemin value is greater than 0.
Virtual Company overduesusp value is greater than 0.
An entry in the payhist table representing financial activity by an Account.
Used when interpreting Sales and Store Credits. This is the ending date for which the Sale or Store Credit is effective.
Used when interpreting Sales and Store Credits. This is the starting date for which the Sale or Store Credit is effective.
The type of the financial transaction stored in the payhist table.
BillMax Payment Methods and their meanings
Cash/Check - The Account pays bills using either cash or checks.
Credit - The Account pays bills using a credit card.
Credit Once, Then Cash/Check - The Account initially pays their bill using a credit card. If the credit card charge is successful, then the payment method for the Account is changed to Cash/Check. In addition, the Account terms are changed to the Virtual Company terms for Cash/Check.
E-Cash - The Account pays bills using electronic checks through an electronic check processor.
EFT - A placeholder. May be used to denote Accounts that pay their bills using wire transfers or direct deposits.
Permissions in BillMax are used to grant or deny access to data (viewing and/or modifying) and to processing (one time charge of a credit card, enter a payment, etc.)
Table 1. BillMax Default Permission Meanings
| Name | Programming Constant | Description |
|---|---|---|
| Name | Programming Constant | Description |
| Basic Read | AUTH_READ | Usually given to new tech support/data entry employees. Allows them to view accounts, users, services, calltrack tickets, and some reports (datacall, calltrack). Nothing can be modified, and nothing can be added. |
| Basic Write | AUTH_WRITE | Usually given to established employees who understand the basic operation of BillMax and how to correctly enter data. Allows them to add or make changes to most of the non-financial fields on the account, user, and service pages, add or modify calltrack tickets, add or modify timetrack entries, and run most of the non-financial reports. |
| Accounting Read | AUTH_BILLING_READ | Given to those employees who require access to the financial reports. |
| Accounting Write | AUTH_BILLING_WRITE | Given to the billing personnel who need to be able to post payments and one-time charges, void transactions, give store credit, post refunds, override pricing, and open suspended accounts/users/services. |
| System Admin | AUTH_ADMIN | Given to generally a small handful of employees who need to add access to the system or add/modify service definitions, usage-based pricing plans, sales tax regions, pop regions, and BillMax system configuration in general. Best if it can be reduced to a single employee, most likely the system administrator. |
Permissions for access through the staff interface are specified in the CGI action file. These include permissions to display a form and to press a button. Permissions for processing are embedded in the BillMax binaries.
![]() |
Note |
|---|---|
Permissions are NOT cumulative. If a BillMax staff userid has System Admin privileges, it does not mean the userid has Basic Read privileges. For the userid to have both, both permissions must be granted. |
Data that is specific to a POP such as DNS server, mail server, etc.
A Point of Presence. When a Service is assigned a POP, it is expected that the Service will be accessing services delivered by the POP. A company may have many POPs. POPs are usually defined on a geographic basis, although this is not necessary.
An entry in the popregions list for a specific POP.
A renewable service will be pre-billed this many days before it expires. Statements will be sent to customers this many days before their Invday also.
A block of time specified for each Virtual Company that is used to bill a different rate for service usage during that time. This is not used by Usage Based Billing
The billing for a Service may include a prorated charge. This proration is computed from the date the Service starts to the next date that coincides with the Account's Invday. Proration is calculated based on the number of days in the month in which the Service starts.
To Provision is the process by which access to a Service is enabled or disabled.
Example 7. Ideas for provisioning
Allowing access to a mail server.
Adding a name and address to a database of labels.
A record in the payhist table where payhist.type is 0. This represents a purchase by a customer or a sale to a customer.
Recurring billing is charging a customer for a Service or product at set intervals.
Example 8. Ideas for recurring billing
Billing monthly for access to a mail server
Billing yearly for a monthly magazine
The database that contains the tables of detail data from various reports.
The reporttables table that contains information about memorized reports.
A resource is a mechanism used to delineate different namespaces. Each Service has its own set of resources. If the resources of two Services share a common resource, then they belong to the same namespace. Resources are used for the following:
When a Service is created or updated. Checking is done to make sure that the value for the d01 field (the username for the Service) does not already exist for a Service that shares the namespace of the submitted Service. Checking is done against Services that do not have their state set to Closed State
If using a terminal server for ISP billing, each terminal service may be associated with one or more resources. This enables BillMax to accurately assign terminal server data to a Service in the correct namespace.
Resources may be used for the following:
Assisting in Provisioning.
Controlling which types of Services are available during a Changeto.
How resources work. Resources are bits stored in the database together as a single four byte integer, giving you 32 possible resources. These bits are attached to service definitions to describe which namespace are used by the service definitions. This is done on the Service Definition page with a multi-select box listing all defined resources. The resource scheme becomes important when adding a Service. Assume the following:
The proposed d01 field for the new Service is equal to an existing value for service.d01.
The resource value for the proposed Service AND'd with the value of service.resources for existing Service is non-zero.
If these three conditions are true, then there is a namespace conflict. Depending on Service Definition settings, adding the new Service may be denied.
A geographical area which is identified by a tax id in which one sales tax rate is assessed.
A BillMax Account represents the entity to which a bill is sent and from which payment is expected.
Example 9. Account Examples
A company made up of many employees
A professional organization
A family
An individual
The Account record contains information used in invoicing: contact information, invoice methods, payment methods, and credit card information.
Accounts may contain one or more Users.
![]() |
Bill presentment limitations |
|---|---|
Bill presentment is to the Account. BillMax does not support bill presentment to different entities payable by a single entity. |
Used by the Customer Interface. Used to specify to which Service Definitions a Service may be changed by a customer using the Customer Interface.
A BillMax Service represents the services that you provide for which customers are billed and pay at regular intervals.
Default data for a Service record comes from a Service Definition and certain values may be overridden by a CSR. The Service record also contains the information necessary to interact with the appropriate provisioning system.
The process of changing the association of a Service from one Service Definition to another Service Definition
The staff web interface to BillMax. To be used by personnel of the company operating BillMax.
A file that is may be emailed, faxed or printed to the customer that contains
Used in Usage Based Billing.
A record in the payhist table of which the value for payhist.type is 5. It is created automatically whenever closeofday determines that a Statement should
A Service is synchronized if, when upon creation, the day of the Invoice Date was forced to be the same as the Account Invday and a prorated amount was billed if necessary. Whether or not a Service is synchronized is determined the synchronized setting in the associated Service Definition
The tabledefaults table. Used by the Customer Interface to specify different registration parameters. See Chapter 5, Configuring the BillMax Customer Interface.
The methods by which a customer pays. Example are cash, check, credit card type, etc.
One billing cycle for a Service.
A piece of equipment that a customer access for service, usually a dialup service.
Used in Usage Based Billing. The pricing level for a Usage Based Computation Result.
When interpreting a Tierplan with Tiers, this is the total amount to be billed if the statistics equal exactly the "Up To" amount for the Tier. Represents the pricing based on marginal increases in pricing.
Used in Usage Based Billing. A tier plan specifies what measurements and what computations will be used to calculate a Usage Based Computation Result. Depending on the pricing scheme used, a tier plan may contain zero or more Tiers.
Timetrack may be used to track employee time in BillMax. This may be used to generate payroll data for the payroll system. It also may be used to track consulting time that you then charge an Account.
The single value result of the specified mathematical computations on the applicable statistics.
Billing that is based on statistics. How pricing is applied to the statistics is specified by a Tierplan.
A BillMax User is a mostly used as a data placeholder. A User may belong to only one Account and may utilize one or more Services.
The User record may contain security information used by the Customer Interface.
A collection of associated Accounts that are managed with similar business rules and have similar defaults for new Accounts.
A Sale or Store Credit that has been Voided before payhist.startdate.