PUT /api/v3/accountmeter/{accountMeterId}

Edits an existing account-meter relationship's date range or general ledger assignment

EditAccountMeterV3 Permissions: Accounts (Edit)
Use this endpoint to modify the begin date, end date, or general ledger on an existing account-meter relationship. Cannot be used on account-only records (relationships where meterID is null). When changing dates, associated rate and template assignments are automatically adjusted to fit the new date range. Side effect: Triggers recalculation of meter auto-groups (UDAGs) for the associated meter. Constraints for deleteBills=true: Only allowed when editing the most recent relationship between the account and meter, when the end date has changed but the begin date has not, and the user has bill delete permissions.

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.

Path Parameters

Name Description Type Required
accountMeterId The unique numeric identifier of the account-meter relationship to edit integer (int32) Required

Query Parameters

Name Description Type Required
deleteBills When true, deletes all bills with at least one line for this account/meter combination where the bill start date is on or after the new end date. WARNING: The entire bill is deleted even if it includes other meters. When false, no bills are deleted. boolean Optional

Request Body

AccountMeterEdit
Property Description Type
beginDate The beginning date and time for this account meter relationship Must be between 1899-12-31 and 3000-01-01 Required (defined) string (date-time)
endDate The ending date and time for this account meter relationship Must be greater than BeginDate Must be between 1899-12-31 and 3000-01-01 Required (defined) string (date-time)
generalLedgerId The identifier for the general ledger assigned to this account meter Required (defined) integer (int32)
vendorTypeId The identifier for the vendor type. Vendors may assume different types on different account meters Required (defined) integer (int32)
Example Request Body application/json
{  "beginDate": "2026-06-29",  "endDate": "2026-06-29",  "generalLedgerId": 1,  "vendorTypeId": 1
}

Responses

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

Response Body Parameters

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": {      "vendorCode": "string",      "vendorId": 1,      "vendorInfo": "string"
    }
  },  "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": {      "templateCode": "string",      "templateId": 1,      "templateInfo": "string"
    }
  }
  ],  "generalLedger": {    "generalLedgerCode": "string",    "generalLedgerId": 1,    "generalLedgerInfo": "string"
  },  "meter": {    "active": false,    "commodity": {      "commodityCode": "string",      "commodityIcon": {},      "commodityId": 1,      "commodityInfo": "string"
    },    "isCalculatedMeter": false,    "isEsaCalculatedMeter": false,    "isSplitChildMeter": false,    "isSplitParentMeter": false,    "meterCode": "string",    "meterId": 1,    "meterInfo": "string",    "meterType": {      "meterTypeCode": "string",      "meterTypeId": 1,      "meterTypeInfo": "string"
    },    "serialNumber": "string"
  },  "rates": [
    {    "endDate": "2026-06-29",    "rate": {      "name": "string",      "rateId": 1
    },    "startDate": "2026-06-29"
  }
  ],  "vendorType": {    "vendorTypeCode": "string",    "vendorTypeId": 1
  }
}
400 Bad Request The request was malformed or contains invalid parameters. Check the request body and query parameters.
404 Not Found The requested resource was not found. Verify the ID or path is correct.