Bill import configuration
Last updated October 16, 2026
You can import utility bill data with Bill Import Formats. After you map the columns in your file, you can reuse the mapping each time you import your file.
The advanced file format is another option to import bills and it has slightly different rules.
A good practice is to test your file import using a small number of bill records and a new batch each time. This lets you easily delete the test batch and bills.
Steps to create a bill import format
- Review your bill import file. What columns do you want to import?
- Create a bill import format. This format maps the columns from your file to create bills.
In the Bills module, go to Bill Imports and then Import Bills.
- Click Open bill import formats.
- Click the plus icon to Add a bill import format.
- Give this format a descriptive name to help you know when to use it.
- Choose the date format used in your bill import file.
- Map the required header information and add additional header information.
- Map the bill line types from your file.
- Save.
Minimum required columns for a bill import file
To import billing data the following columns must be included:
- Account number
- Start date
- End date

Commodity code
To see the commodity code, click on Settings and Commodities and Units. Hover over the commodity name to see the commodity code.

Recommended (optional) bill header information
- A/C/E
- V/P/R
- Meter code
|
AccountNumber |
StartDate |
EndDate |
ACE |
VPR |
Meter code |
USE |
COST |
|
123 |
20180201 |
20180228 |
A |
V |
meter123 |
2534 |
254.24 |
|
Column header |
Information |
|
BILLPERIOD |
MM:YYYY Forces the billing period assignment. See Determine Billing Period for more information. If blank uses UtilityManagement logic. |
|
DUEDATE |
YYYYMMDD |
|
STATEMENTDATE |
YYYYMMDD |
|
CONTROLCODE |
Used to associate a bill image with a bill when UtilityManagement is configured for this option. |
|
ACCTPERIOD |
MM:YYYY Enter the accounting period number, not the accounting period name.
|
|
VENDORCODE |
Not required, but if used it must immediately follow METERCODE (Advanced File only). If duplicate account codes with different vendor codes exist, vendor code must be included. |
|
INVOICENUMBER |
The invoice number for the bill. |
|
METERSERIAL |
Serial number of the meter associated with the bill. A mismatch between the import sheet and UtilityManagement does not prevent a successful import. A bill audit can be configured to flag bills with a mismatch. |
|
RATECODE |
A mismatch between the value in the import sheet and UtilityManagement does not prevent a successful import. A bill audit can be configured to flag bills with a mismatch. |
|
BILLINGPERIOD |
!AUTO!, !START!, !MIDDLE!, !END! Determining Billing Period provides more details. |
|
BILLNOTE |
Import notes associated with the bill. Remember you are importing a CSV file and your comment cannot include a comma. |
A/C/E (Actual, Corrected, Estimated) flags
The A/C/E flag helps the system decide how to handle bills with the same start date, end date, and account code when importing bills to an open batch. (All bills in a pending batch are marked as void until the batch is closed.) It also works with the V/P/R flag to manage duplicate or overlapping records.
You can use these flags with a bill import format or with the advanced file format.
How it works
The A/C/E column tells the import processor whether a bill is:
- A = Actual
- C = Corrected
- E = Estimated
Import rules
- If the A/C/E field contains anything other than A, C, or E, the line is invalid and the bill record is kicked out.
- If the field is blank, the system defaults it to A (Actual).
- Audits cannot flag corrected (C) bills.
- Audits can flag a bill if there are too many consecutive estimated (E) bills on an account.
| Value | Description |
| A |
|
| C |
|
| E |
|
Void/Preserve/Reject (VPR)
How it works
This column tells the import processor what to do:
- V = Void the existing bill, new bill is created
- P = New bill is created, existing bill is preserved
- R = New bill is NOT created (rejected), existing bill is preserved
Import rules
- If the V/P/R column is blank the bills are imported using the A/C/E logic.
- If the column has any character other than V, P or R the line is invalid and the bill record is kicked out.
| Value | Description |
| V | Existing bill is voided. New bill is created. |
| P | Existing bill is preserved, NOT deleted, and not voided. The new bill is created. |
| R | Existing bill is preserved and a new bill is NOT created. A kickout is produced for the bill being imported. |
How ACE and VPR work together
|
A/C/E |
V/P/R |
Logic applied |
Logic applied |
|
|
|
Create the new bill in database |
Existing bill is deleted |
|
A |
|
Create the new bill in database |
Existing bill is deleted |
|
A |
V |
Create the new bill in database |
Existing bill is voided |
|
A |
P |
Create the new bill in database |
Existing bill is preserved (possibly 2 overlapping bills) |
|
A |
R |
Reject the new bill |
Existing bill is preserved |
|
C |
|
Create the new bill in database |
Existing bill is preserved (possibly 2 overlapping bills) |
|
C |
V |
Create the new bill in database |
Existing bill is voided |
|
C |
P |
Create the new bill in database |
Existing bill is preserved (possibly 2 overlapping bills) |
|
C |
R |
Reject the new bill |
Existing bill is preserved |
|
E |
|
Create the new estimated bill in the database |
Existing bill is deleted |
|
E |
V |
Create the new estimated bill in the database |
Existing bill is voided |
|
E |
P |
Create the new estimated bill in the database |
Existing bill is preserved (possibly 2 overlapping bills) |
|
E |
R |
Reject the new estimated bill |
Existing bill is preserved |
Sort order for import file
As discussed in Bill Start and End Dates, some utility vendors do not follow this logic. An enhancement has been made to the bill import processor to identify bills with this one day gap (the begin date is one day after the end date).
The importer adjusts the start date of the bill to the end date of the prior bill.
The import file MUST be sorted in the following sequence.
- Ascending account code.
- Ascending vendor code (if included).
- Ascending start date.
- Ascending end date.
- Ascending meter code (if included).
How to create account charges
To create account charges the Meter Code and Commodity columns must be empty.


Bill import scenarios
| Description | Bill Created? |
| Correct meter code, no serial number | Yes |
| Correct meter code with single matching serial number | Yes |
| Correct meter code with incorrect serial number | Yes, because meter code is correct. |
| Incorrect meter code with single serial number match. | Yes, because a single serial number match. |
| Incorrect meter code with serial number matching multiple meters | No, too many matching meters. |
| Commodity | |
| !AUTO!: Only one meter of commodity on the account | Yes |
| !AUTO!: More than one meter of commodity on account and no serial number in the import file | No, too many matching meters. |
| !AUTO!: No meter exists for the commodity in import file. Import file contains serial number for a meter of a different commodity. | No, unable to find meter with commodity. |
| !AUTO!: More than one meter of commodity on account. Correct serial number provided for the meter. | Yes |
| !AUTO!: More than one meter of commodity on the account. Serial number matches multiple meters on the account | No, too many matching meters. |
| Meter Code | |
| !AUTO!: Single meter with no serial number provided | Yes |
| !AUTO!: Multiple meters on account, no serial numbers in import file | No, too many matching meters. |
| !AUTO!: Single meter on account, incorrect serial number | Yes, only one meter on account. Bill message is added stating serial number mismatch. |
| !AUTO!: Multiple meter on account, nonmatching serial numbers in import file. | No, too many matching meters. |
| !AUTO!: Multiple meters on the account, multiple matching serial numbers. | No, too many matching meters. |
| !AUTO!: Multiple meters on account, single matching serial number. Rate code in import file does not match. | Yes. Bill message added stating the rate schedule in file does not match. |
Example import with !AUTO!: commodity
|
Account Code |
Start Date |
End Date |
ACE |
Commodity |
|
123456-1 |
20181201 |
20181231 |
A |
!AUTO!:ELECTRIC |
In this example, the importer looks for the electric meter on account 123456-1. If only one meter exists the importer assigns all charges to the meter. If the account has more than one electric meter the import fails.
