Bill Run Configuration
Summary
Bill runs execute billing for multiple accounts in either a manual 'one-off' fashion or using a recurring automated approach. Bill runs are connected to bill groups in order to bill accounts under bill groups.
Bill runs determine if billing should occur by evaluating user-package next bill dates. Executing a bill run does not mean accounts will be billed, it means accounts will be checked to see if billing should occur based on their user-package next bill dates. Bill runs are typically automated and run once per day, however the accounts that bill runs touch are only billed when their user-package next bill dates falls within the billing period you have set on the bill run.
Requirements
Bill groups and invoices must be configured before a bill run can be setup.
For bill runs to execute the EngageIP Billing Service needs to be running and if the bill run is configured to email invoices then the EngageIP Event Service must also be running. For more information EngageIP Services see the EngageIP Windows Services Overview article.
Overview Of Bill Process
Bill Run Logic
Start billing
Close any open credit notes
Close previous open invoices (this is based on 'Invoice Close Type' specified in the Setup -> Bill Group settings)
Add charges (bill packages)
Open new invoice
Associate new charges to that invoice
Close the invoice
Apply payments if applicable (payments issued so that they are viewable on that invoice)
Render invoice (create the XML data copy)
Deliver invoice (email, hardcopy, etc.)
Example Bill Run Flow
The written process below follows the same flow as the above diagram with more process details.
Get any users/accounts that have a user-package next bill date that falls in the current bill run bill date range and group them by their parent accounts (ViewBillProcess SQL View)
Note: the order in which customer accounts are billed is first ordered by Owner, then by customer name. So owner Acme will start before owner Anvil, and user Bob will bill before user Carol under the OwnerWalk through each day in the bill range for each parent separately (e.g. 2/1/2018 - 3/1/2018)
Step 1
Find any parent/child accounts that have a package with 'Next Bill Date' the same as the walk through date
Bill the parent or children all at once
Step 2
If a bill day is encountered and usage billing is enabled, bill all the accounts (parent and children) for usage
Continue to loop through days of the month looking for users with a Bill Date that has been reached (set invoice status to CLOSED)
Process credit cards or PAP (payments can be issued to a closed invoice if the 'Render' process has not been run yet on those invoices) For detail on HOW cards are processed or if they are processed on canceled accounts for example, please see this article: Payment Processing Using iBiz
Render invoices (this stamps a processed date on the invoice and locks it down from any further payments being issued to it)
Deliver invoices
Finish the bill run and wait for the next bill run start date
Note: A billing only bill run can be run one day to bill recurring packages and as long as the invoice is not rendered (the 'Run Render Invoice' check box is unchecked). Credit cards can be processed the next day and have them reflected (issued to) closed invoices. Once this is done you can run the render part of the bill run, it will render and cause the invoice to officially be closed where no more new payments or transactions can be added to it.
Note: Bill runs are sequential. If you have multiple bill runs on the same owner or many owners, the system will still only start one bill run overall and process that through to the end before starting the next. So if one bill run takes a long time, the starting time of another bill run may be pushed back.
Bill Date Synchronization
The Bill day of the User/Account you are viewing in EngageIP is listed on the left sidebar as shown above. If you add a package to an Account the user-package Next Bill Date will be synchronized automatically to the Account Bill Day (this can be seen in the Packages list on the Account shown on the Overview and Packages pages). EngageIP will prorate by default when adding a user-package to an account, but there are options to control how prorating and package bill date synchronization function. These options are listed below.
Sync Disable Package Component: disables the package from syncing to the Account's Bill Day. When the sync disabled User-Package is created it will be configured to billed based on the Effective Date of the User-Package. E.g. if you add a monthly billed package to a user on May 10th it will bill for the first month on May 10th and continue to bill for the package on the 10th of subsequent months
Additional Billing Item Component : allows you to add a one-time or recurring charge tied to a package but the charge is billed based on it's own specified bill date, not the package bill date
Sync Disable System Wide : allows you to disable bill date synchronization entirely so that packages can be billed on different days, or enable a mixed synchronization + prorating approach
During an initial bill run, the system will catch users within the Bill Run date range (as specified on Bill Run under the Setup page). If a customer is billed, the system will synchronize all of their services regardless of the NextBillDate and prorate them all accordingly to the Bill Day.
Changing a Customers Bill Day
Note: as of EngageIP 8.6.0 an account's bill day will fall in sync with the bill day of the account's Invoicer (i.e. the account that the invoice is sent to). The bill day will be read-only if an account is not configured as its own invoicer. For more information on Invoicers see the Account Invoicer Configuration article
To edit the bill day of a customer:
Load the customer account and click the linked bill day number on the left sidebar (in this example "9")
In the bill cycle edit page that loads enter the day of the month you wish to bill the account on going forward
Click Save to commit the bill date change
Managing the Bill Day Using Bill Group Settings
If you want to manage bill day by bill group, you can set the bill day on the bill group that the customer is in and all NEW customers added to the bill group will be setup with that bill day.
Question: If an account's bill day is 5 and the bill group is set to 10, what happens when billing runs for that bill group?
Answer: When the account's bill group runs and that account's next bill date is within the bill run date range, that account will be billed according to the 5th of the month. Other accounts in the bill group who are set to a bill day of 10 will be billed according to the 10th of the month.
Bill Run Configuration
Billing runs every 24 hours starting on the specified date and time and recurring at that time (typically overnight). To configure bill runs follow the steps below:
Click on Setup
Click Bill Runs
If an existing bill run has been configured you can click on it's name to edit it. To configure a new bill run click the Add button. Bill run fields are shown and explained below (required fields are in red)
Name - a descriptive name of your bill run (for example, "Monthly Bill Run")
Enabled - this is an ON / OFF switch for the bill run. This can be used for example if you have multiple bill runs for different periods and you want to leave the settings intact per bill run, and create a new bill run for a different schedule
Start billing at this date / time - this is the date and time that you want the Bill Run to run. The time value set here is the time at which billing will run daily going forward if you leave the Bill Run enabled. If you set the time to 6am for example then billing will run at 6am each day (i.e. after a Bill Run is completed this value will be incremented by 24 hours). If you need to perform a one-off/manual Bill Run you would enable the setting 'Disable Billing After Bill Run' so that the Bill Run only runs once. If you need a Bill Run to run immediately, set this field to a time in the past and the Bill Run should fire within a minute if it is not busy with other jobs/tasks
Bill Customers between - the starting date of the billing range that determines which user-packages are billed. E.g. if an account's user-package 'next bill date' is May 5th you would need to set this field to a date on or before May 5th in order to bill that user-package. This date and the 'And' date will auto-increment to a daily interval after a bill run completes. The auto-incremented value will fall in sync with the 'Start Billing at this date / time' value, meaning once a bill run completes this 'Bill Customers between' field will be set to one day before the 'Start Billing at this date/time' value and the 'And' field described below will be in sync with the 'Bill Customers between' value (i.e. the billing range will be a single day going forward)
And - this is the effective end day for the billing range. Customers within this range will be billed. For advance billing add the number of advance bill days to this range to control who will be advance billed. NOTE: If you are delivering invoices, the invoice date has to fall within this date range as well otherwise billing will not look at it or consider it for delivery or other options as selected
Billing/Bill Packages:
Billing (EngageIP 8.5.27.1 and earlier) - this will calculate and add transactions to user accounts. Usage will be billed based on existing usage next bill dates where available, unless the 'Usage Billing Type' User Component is present on an account. If you need to bill usage for accounts that have the Usage Billing Type Component present then also enable the 'Bill Usage Only' check box in addition to this 'Billing' check box. The order of events that occur when this item is executed is:
Close open credit notes
Render credit notes
Bill user packages and services
Closes invoices (rendering is another bill run option)
Bill Packages (EngageIP 8.6.0+) - this will only execute billing for package related charges (one-time, recurring), will not bill usage. As of EngageIP 8.6.0 usage is handled by a new bill run option called 'Bill Usage' which is explained below
Credit Card - indicates that credit card processing during the bill run should be performed. Payments by credit card will either be disbursed automatically or not depending on your configuration under 'Payment Types' on the setup page. Credit cards are processed only on active status accounts that have a balance.
Note: for EngageIP 8.5.27.0+ the Auto Pay setting must be configured on accounts for payment processing to occur (found under Tools > Auto Pay). If Auto Pay is not enabled then the Account is configured for manual billing and the bill run will not attempt to process paymentsCapture Pre Auths - if enabled this option will check for outstanding payment-authorizations and capture the invoice balance against the latest authorization (there should only be one valid authorization). Credit Card Token is the only payment method that supports this feature at present, so the bill run option "Run Credit Card Token" must be enabled for this option function
Run Credit Card Token - if checked a token will be sent to the credit card payment gateway to collect payment/charge the user. You should only use this option if your credit card gateway uses tokens
Note: for EngageIP 8.5.27.0+ the Auto Pay setting must be configured on accounts for payment processing to occur (found under Tools > Auto Pay). If Auto Pay is not enabled then the Account is configured for manual billing and the bill run will not attempt to process paymentsRun E Check Token - if checked a token will be sent to the E Check payment gateway to collect payment/charge the user. Note: only use this option if your E Check gateway uses tokens
Note: for EngageIP 8.5.27.0+ the Auto Pay setting must be configured on accounts for payment processing to occur (found under Tools > Auto Pay). If Auto Pay is not enabled then the Account is configured for manual billing and the bill run will not attempt to process paymentsACH/PAP - if checked, ACH/PAP accounts will be processed during the bill run. Checking this will export transactions to a file and process of automated processing is available or drop the file for reconciliation at a later date
Note: for EngageIP 8.5.27.0+ the Auto Pay setting must be configured on accounts for payment processing to occur (found under Tools > Auto Pay). If Auto Pay is not enabled then the Account is configured for manual billing and the bill run will not attempt to process paymentsRun Render Invoice - if checked, invoices will be rendered and closed during the bill run. What this means is that the next time you go to load the invoice (if you have not run the ‘run render invoice’ option) it will take a short while to render the first time. This ensures that the invoice has the most up to date data in the rendered form.
Run Delivery - this enables billing to deliver based on the settings in the bill groups (i.e. Email, Email & Hardcopy, Hardcopy, or None). This also is the process which executes on the EXPORT option on bill groups, whether to HTML or PDF on the hard drive
Run Payment Terms - this executes the credit rating functionality and any payment terms associated with it. This was previously executed using the 'bill run' process but is now broken out so that it can be run manually
Run Payment Retry Terms - this executes any Custom Action Payment Retry Terms that have been setup under Credit Ratings. See the Payment Retry Terms article for more information. If Custom Retry Terms have not been defined or this ' Run Payment Retry Terms' option is unchecked then payment retries will be executed using the default EngageIP system configuration (by default retries are attempted when a Bill Runs is executed with the 'Credit Card' option selected).
Bill Usage Only/Bill Usage:
Bill Usage Only (EngageIP 8.5.27.1 and earlier) - this option allows you to perform a bill run but not bill packages, this option simply allows you to bill usage on accounts that have the 'Usage Billing Type' User Component configured. Invoices will remain open when billing for usage only
Bill Usage (EngageIP 8.6.0+) - this option bills usage only and observes the 'Usage Next Bill Date' found on the 'Usage Billing Frequency' user component to determine when usage transactions should be generated
Use For Posting Date - this option allows you to tell the bill run to set the posting date within a certain specified period. If not selected, EngageIP will set the posting date to be the date the transaction was added. Taking into account the below setting and if this is checked, the system will take the month you select, the year you select, and put that together with the users bill day to determine the posting date it will use on the transactions
Posting Date Month - select the month for the posting date to be entered within
Posting Date Year - select the year for the posting date to be entered within
Close Invoice On Cancelled Customers - this option will automatically close any open invoices that are on cancelled customers. This ensures any final invoices are sent out. Generally this option should be enabled to manage historical data and keep accounts clean. This option will also look for active customers with credits that are not attached to invoices, create an invoice for that customer, attach the credit so it's not left unattached to an invoice and then close that invoice
Disable Billing After Bill Run - if you would like billing to run once and turn itself off (so it doesn't run every 24 hours) you can check this box. When checked, billing will run at the scheduled time and then the 'Enabled' box at the top of the config screen will be unchecked and billing will not start again until you check that enabled box again
Bill Run Collection Type - introduced in 8.5.27.0 this setting allows you to define how payments are collected. Options described below:
Note: none of the options below will trigger payment processing on an account if the account has automatic payment disabled (Tools > Auto Pay > 'Auto Pay' unchecked)Due Date - processes payments for closed invoices that are due. The 'Payment Day' setting specified on Accounts is ignored if this option is set, payments due will be processed when the bill run executes. This setting was previously called 'Only Collect Money On Due Invoices' prior to EngageIP 8.5.27.0
Payment Day - this option indicates that the 'Payment Day' configured on Accounts should be used to determine if payment processing should occur. E.g. if an Account's Payment Day is the 5th and the bill run executes on the 5th of the month then payment will be collected. This setting collects payment based on the invoice due date, the same behavior as the 'Due Date' setting above. If you are using this setting and you do not execute a bill run on a daily schedule you should create two bill runs, a 'Payment Processing bill run' (to run daily) and a standard (invoicing) bill run which you run when desired. The payment processing bill run should enable the payment methods that are used on accounts (i.e. some or all of the following settings: Credit Card, Run E Check Token, Run Credit Card Token, ACH/PAP). The standard bill run should handle the non-payment processing tasks, e.g. 'billing' should be enabled along with all other events you wish to occur on the account bill day such as invoice rendering and delivery
User Balance - this option will collect payment equal to the balance on the account. The 'Payment Day' setting specified on accounts is ignored if this option is set, payment processing for the user balance amount will occur when the bill run executes
Start Email Message (new in EngageIP 8.6.0) - If selected a notification email will be sent to the contact type you specify on the branded owner user when the bill run starts. See the Email Messages Configuration article for more information
End Email Message (new in EngageIP 8.6.0) - If selected a notification email will be sent to the contact type you specify on the branded owner user when the bill run finishes. See the Email Messages Configuration article for more information
Bill Day - this option allows you to set a specific bill day to look for during billing on accounts (as stamped on individual accounts) and it will only bill that ‘bill day’ even though the bill run range is larger. Example: A bill run range of Nov 1 to Nov 20 and a bill day set to 2 will only bill Accounts where the account bill day is 2. The bill run will include all of the user packages which have a next bill date in the range of Nov 1st thru Nov 20th on those accounts with a bill day of 2.
Bill Run Configuration Walk-Through
Set the Name which is a descriptive reference to the Bill Run
Check the appropriate items to run during the Bill Run
Set the date and time range for which you would like to run billing. This is the date range between which regular customers will be billed if you enable the billing service. In the example depicted above, customers who have a next bill date between and including August 1st to September 1st will be billed
Note: f you are using advance billing, remember that it will add the number of advance bill days to those dates and billed customer who fall within that new range. I.e. if you are advance billing 20 days, and your date range is 8/1 to 9/1 (as in the picture), the system will logically add 20 days to each date in the range and bill customers with nextbilldates that fall within that new range. In this case again, with a 20 day advance billing set, EngageIP will catch customers who fall within the range of 8/21 to 9/21 (EngageIP Billing added 20 days to the date range)Make sure that the service 'EngageIP Billing Service' is running as well as the 'EngageIP Event Service' if the Bill Run is configured to deliver (email) invoices. The root owner in EngageIP will display a Configuration link in the top right corner, this link allows you to determine what Services are running
If the configuration Status indicates the Services are not running, you will need to login to the EngageIP Web/App server and enable the Services
In order to advance bill customers if billing is not running on a scheduled basis, you will need to set the Bill Run date to or previous to the expected advance bill date. For example, if a customer is to be advance billed 31 days and today's date is November 1st, you would need to set the bill run date to or previous to October 1st in order to 'catch' the advance billing customer who is to be advance billed for November 1st.
Billing Rules
If any account in a hierarchy of accounts is billed (parent or child) all of the accounts will bill, assuming there are user-package Next Bill Dates in the billing range. One collective invoice will result from this. The exception to the rule above is if the child has a different bill cycle and on that date billing tries to 'catch up' the child and synchronize them with the main account, it will only sync the child and not start to process the other members of the family. However, if the system first syncs that child and THEN goes to bill them recurring for the next month (because they have to be caught up for multiple bill periods), it will trigger billing to BILL the child (in addition to syncing them), in which case the rule applies, if one member is BILLED, all members will be billed. The invoice template used will always be the parents (main) account. Children can never have a template, even if one is set on the bill group.
Reporting: to see which accounts will be billed, you can use the 'Account Services' report. Filter it for active account status and active service status and by 'Next Bill Date' ascending and this will show you all the customers who will be billed. This also gives you information to determine what dates in the range to select, i.e. find the min and max next bill dates on the services you wish to bill. This report includes status for the account to which the service belongs and any parent that the account may be under and provides statuses for each to be used in filtering.
Invoices: when the Bill Run executes for multiple months, EngageIP Billing will create a new invoice for each month.
Bill Run Confirmation and Logging
To confirm billing is running or has run, there are a few reports to review. When billing runs, it will log a main entry in the Bill Run History report for the Owner account.
Click Reports
Under the Owner Reports section select the Bill Run History. The duration here details how long the bill run took in Hours, Minutes and Seconds
The event log on the owner will also show all the individual log entries as billing processes accounts and transactions and can be used as an indicator on bill run progress. Search for the following pairs of 'book ends' for each process:
Starting Bill Run
Finished Bill Run
Running Billing
Finished Billing
Running Credit Card Payments
Finished Credit Card Payments
Running Credit Card Token Payments
Finished Credit Card Token Payments
Running BillUsageOnly
Finished BillUsageOnly
Starting payment terms
Finished payment terms
Running Render Invoice
Finished Render Invoice
Running Delivery
Finished Delivery
Comma separated list for copy and paste into the event log view for filtering:
Starting Bill Run;Finished Bill Run;Running Billing;Finished Billing;Running Credit Card Payments;Finished Credit Card Payments;Running BillUsageOnly;Finished BillUsageOnly;Starting payment terms;Finished payment terms;Running Render Invoice;Finished Render Invoice;Running Delivery;Finished Delivery;Running CCTokenPaymentProcessor;Finished CCTokenPaymentProcessor
Soft Copy Invoices As billing progresses through the billable groups and accounts, it will render invoices (if so selected) and start populating the Owner report called 'Invoices'. The Invoices report will list all the rendered invoices along with Account Names, Charges, Date etc. To print invoices, the Run Delivery option must have been checked in your Bill Run configuration. When checked, the billing service will move invoices from the Invoices report to the Invoice Print Queue report, from which you can print all said invoices. If you did not have Run Delivery checked, you can render the invoices and propagate them to that queue again by setting up your Bill run with only Run Delivery checked, set the date back as required to pick up the undelivered invoices.
Hard Copy Invoice Printing
Setup Internet Explorer for printing - In your browser locate print -> Page Setup settings
Set your page margins to 0.75 inches (this generates a well spaced generic invoice). You can adjust this as needed depending on your layout requirements. Note that the invoice print will use the settings in the local web browser, if you are printing from the billing server, make sure to log into the server and configure its local browser with the correct settings
Print a test invoice to see what it will look like. Test the settings above by clicking on an account's existing invoice and using the standard browser print button, or right click the invoice page and select print. This will generate a printed copy based on the browsers margin settings, layout and orientation
To physically print the invoices, there is an application on the webserver called 'Invoice Printer'. This program is located in the EngageIP Billing Programs folder (Program Files (typically this is installed in the path \Program Files (x86)\EngageIP Billing\Invoice Printer)
When this program is opened, it will automatically start printing the invoices in the print queue. The 'Test Print' button randomly selects a customer invoice to send to the printer so that can view an invoice it will send to the printer. This command is another way to confirm that your margins, orientation etc. are setup correctly.
Back Billing
EngageIP doesn't go into the past and bill older next bill dates, it will only bill packages with dates that are within the range specified in the bill run. You can manually set the bill run to catch these up but it will not do so automatically. An option to automatically do this is by adding an action that will go and auto set the last bill date on the bill run for you. Please request this from LogiSense by emailing support@logisense.com. Another option for reporting on these is to create a custom report designed to look for instances of these phrases to provide bill run timelines. To find out more about custom reports see Creating Custom Reports in EngageIP Billing.
Billing Into The Future / Billing For A Full Year Of Monthly Packages
You can configure a bill run to bill into the future or in the future as well, similar to back billing (above) but using future dates or a longer period range. To do this, the key is to enter your dates to define the period for which you want to bill per the image below:
For each numbered item above, see the corresponding items below:
This is the date / time at which you want billing to start, tonight at 8PM or next Thursday at midnight as examples, click the calendar icon to select the time the bill run should actually start
This is the first date of the range, any user packages with a next bill date equal to or greater than this (but less than or equal to #3) will bill - assuming you have 'Bill Packages' selected.
This is the end date, anything less than or equal to this date but greater than or equal to #2 will be included in billing.
If you want to bill a monthly package which has a next bill date of January 1st 2021 for a whole year, you can enter the dates as:
When the bill run will start
January 1st, 2021 (no time needed)
December 1st, 2021 (no time needed)
As billing iterates through all the packages within this range, monthly packages will continue to bill month after month until their next bill date is not within that range. As soon as a user package next bill date is not in that range, ie it bills to January 1st, 2022, it will cease being in that range and therefore will not be billed anymore with that bill run as set.
The same can be done if you want to simply bill 1 month of user package in a future period, in that case, for example this month is January, and you want to bill in the future month of July:
When the bill run will start
July 1st, 2021
July 1st, 2021
The date range in #2 and #3 will include any packages whose next bill dates are July 1st 2021 and will bill only that period (whether they are monthly, annual etc, it will bill them for one period from that next bill date)
Troubleshooting
When billing runs, it will close any currently open invoices, then create a new invoice with the charges as per any recurring services on the account. That invoice is then closed if the customer is being billed on their bill date. If it is not their bill date, it will simply add the charges to existing invoice and leave it open.
How do I render invoices that have already been render but had the incorrect dealerID or transactions initially?
Click on the Invoice Date link, select a date or leave as is and click save. This will render it again and is often quicker than opening and closing the invoice which would also render the invoice
How do I put customers in bill groups?
On the customer account, click Tools / Change Bill Group
Billing is not running even though the date is set previous to today, what can I check?
Check that the EngageIP Billing service is running on the Server
Check that the billgroups are marked as 'billable'
Ensure the bill run is set as 'enabled'
Confirm the dates on the bill run are correct (Startdate is less than the current date)
Confirm that customer packages have NextBillDates within the date range specified on the bill run
How do I back bill customers who have not been billed in 6 months and their next bill date is in the past?
Billing is timing out billing customers and there are timeout errors in the database, how can these be resolved?
Check the EngageIP registry, there may be a key there with a timeout value of 900 or similar, increase the timeout value. It is best to ask us for assistance here
LogiSense Support
email: support@logisense.com
phone (Canada): 1-519-249-0508
phone (USA): 1-917-410-3584Ensure that maintenance has been done on the server, the hard drive has been defragmented, the database has been indexed
Extend the default remote query run timeout from 600 seconds to 1800 in SQL server - to do this:
Right click the SQL server in studio management
Click properties
Click connections
Remove '600' and enter '1800'
Click OK
Restart MSSQL and perform a IIS reset
Attempt to bill again