POST /api/v3/accountmeter

Creates one or more account-meter relationships, linking accounts to meters for bill entry

CreateAccountMeterV3 Permissions: Accounts (Edit)
Use this endpoint after creating an account and meter separately to establish the service relationship between them. A meter must be linked to an active account before bills can be entered. Multiple relationships can be created in a single request (e.g., when linking one account to multiple meters). Each relationship requires account ID, meter ID, and begin date. Side effect: Triggers recalculation of meter auto-groups (UDAGs) and GHG factor links for affected meters.

Request Headers

Header Value Required Description
ECI-ApiKey string Yes Your API key. See Authentication.
Content-Type application/json Yes All requests must specify JSON content type, including the request body.

Request Body

Array of:

AccountMeterRequest
Property Description Type
accountId The account identifier for this account meter Required Topmost (Account) integer (int32)
beginDate The beginning date and time for this account meter relationship Defaults to 1899-01-01 string (date-time)
deregulated Indicates if the account meter is deregulated boolean
endDate The ending date and time for this account meter relationship Defaults to 3000-01-01 string (date-time)
generalLedgerId The identifier for the general ledger assigned to this account meter integer (int32)
meterId The meter identifier for this account meter Required Topmost (Meter) integer (int32)
rateId Indicates if the account meter rate Required integer (int32)
templateId The account meter template to be used for bill entry Optional. If passed in, the templateId will be used. If not passed If vendortypeid is 2 (supplier), –then a template on this meter’s commodity with code that starts with S_meter’s use unit code will be used –if not found we will try to use a template on this meter’s commodity with code that starts with S_ –If not found we will use a non-supplier template described below If vendortype is non- supplier – the template will be defaulted using the meter’s assigned use and demand units –First try and match template by commodityId, useUnitId, demandUnitId –If no match try commodityId, useUnitId –If no match select the first use only template that matches on commodity –If no match find the first template on this commodity –If none is found no template will be assigned integer (int32)
vendorTypeId The identifier for the vendor type. Vendors may assume different types on different account meters integer (int32)
Example Request Body application/json
[
  {    "accountId": 1,    "beginDate": "2026-06-29",    "deregulated": false,    "endDate": "2026-06-29",    "generalLedgerId": 1,    "meterId": 1,    "rateId": 1,    "templateId": 1,    "vendorTypeId": 1
  }
]

Responses

200 OK The request succeeded and the response body contains the requested data.

Response Body Parameters

Array of:

AccountMeterResponse
Property Description Type
account AccountChild
AccountChild properties
Property Description Type
accountCode The account code (unique identifier assigned by the organization) string
accountId The unique identifier of the account integer (int32)
accountInfo The account description/name string
active Whether the account is currently active. Null if not applicable. boolean
hasCalculatedMeter Whether the account has a child calculated meter boolean
hasSplitChildMeter Whether the account has a child split meter boolean
hasSplitParentMeter Whether the account is a recipient of a meter split boolean
hasSubAccount Whether this account has sub-accounts beneath it boolean
isSubAccount Whether this account is a sub-account of a summary account boolean
vendor VendorChild
VendorChild properties
Property Description Type
vendorCode The vendor code string
vendorId The vendor identifier integer (int32)
vendorInfo The vendor info string
accountMeterId The account meter identifier Required (defined) integer (int32)
beginDate The beginning date and time for this account meter relationship Required (defined) string (date-time)
deregulated Indicates if the account meter is deregulated Required (defined) boolean
endDate The ending date and time for this account meter relationship Required (defined) string (date-time)
formTemplates The template assigned to this account meter Required (defined) FormTemplateChild[]
FormTemplateChild properties
Property Description Type
beginDate string (date-time)
displayOrder integer (int32)
endDate string (date-time)
formTemplateId integer (int32)
template TemplateChild
TemplateChild properties
Property Description Type
templateCode string
templateId integer (int32)
templateInfo string
generalLedger GeneralLedgerChild
GeneralLedgerChild properties
Property Description Type
generalLedgerCode The general ledger code (e.g., GL account number) string
generalLedgerId The unique identifier of the general ledger entry. Null if no general ledger is assigned. integer (int32)
generalLedgerInfo The general ledger description/name string
meter MeterChild
MeterChild properties
Property Description Type
active Indicates whether the Meter is Active boolean
commodity CommodityChild
CommodityChild properties
Property Description Type
commodityCode The commodity code Required (defined) string
commodityIcon Icon
Icon properties
Property Description Type
code The icon code Must be between 0 and 64 characters Required when Color is set string
color The icon color Must be between 0 and 32 characters Required when Code is set string
commodityId The commodity identifier Required (defined) integer (int32)
commodityInfo The commodity info Required (defined) string
isCalculatedMeter Indicates whether the meter is a calculated meter boolean
isEsaCalculatedMeter Indicates whether the meter is an ESA calculated meter boolean
isSplitChildMeter Indicates whether the meter is a child of a split boolean
isSplitParentMeter Indicates whether the meter is a parent of a split boolean
meterCode The meter code string
meterId The meter identifier integer (int32)
meterInfo The meter info string
meterType MeterTypeChild
MeterTypeChild properties
Property Description Type
meterTypeCode Short code for the meter type (e.g., “ELEC”, “GAS”) string
meterTypeId Unique numeric identifier of the meter type integer (int32)
meterTypeInfo Descriptive name of the meter type string
serialNumber The meter’s current serial number string
rates The rate assigned to this account meter Required (defined) AccountRateChild[]
AccountRateChild properties
Property Description Type
endDate string (date-time)
rate RateChild
RateChild properties
Property Description Type
name string
rateId integer (int32)
startDate string (date-time)
vendorType VendorTypeChild
VendorTypeChild properties
Property Description Type
vendorTypeCode The vendor type code string
vendorTypeId The vendor type identifier integer (int32)
Example Response application/json
[
  {    "account": {      "accountCode": "string",      "accountId": 1,      "accountInfo": "string",      "active": false,      "hasCalculatedMeter": false,      "hasSplitChildMeter": false,      "hasSplitParentMeter": false,      "hasSubAccount": false,      "isSubAccount": false,      "vendor": {}
    },    "accountMeterId": 1,    "beginDate": "2026-06-29",    "deregulated": false,    "endDate": "2026-06-29",    "formTemplates": [
      {      "beginDate": "2026-06-29",      "displayOrder": 1,      "endDate": "2026-06-29",      "formTemplateId": 1,      "template": {}
    }
    ],    "generalLedger": {      "generalLedgerCode": "string",      "generalLedgerId": 1,      "generalLedgerInfo": "string"
    },    "meter": {      "active": false,      "commodity": {},      "isCalculatedMeter": false,      "isEsaCalculatedMeter": false,      "isSplitChildMeter": false,      "isSplitParentMeter": false,      "meterCode": "string",      "meterId": 1,      "meterInfo": "string",      "meterType": {},      "serialNumber": "string"
    },    "rates": [
      {      "endDate": "2026-06-29",      "rate": {},      "startDate": "2026-06-29"
    }
    ],    "vendorType": {      "vendorTypeCode": "string",      "vendorTypeId": 1
    }
  }
]