Error responses, HTTP status codes and every error code, with the errors integrators hit most often.
Both Eliq APIs report errors the same way: an HTTP status plus a JSON body with a stable code. Branch on code, not on description, which can change. The most common errors below come from what integrators actually hit in production.
The Data Management API returns code, description and request_id. The Insights API returns code, description and transaction_id. Give that ID to Eliq support when you report a problem.
{
"code": "LOCATION_NOT_FOUND",
"description": "Location with given id could not be found",
"request_id": "733d3cf1-8cd6-4f0b-90b8-605b7e965464"
}
| HTTP | Meaning | What to do | Retry |
|---|---|---|---|
| 400 | The request is invalid. The code says what is wrong. | Fix the request. Sending it again fails the same way. | No |
| 401 | The token is missing, has expired, or was issued for another API. | Get a new token with the right aud, then retry once. | Once, with a new token |
| 403 | The token is valid but not allowed to do this. | Check the token scopes with Eliq. | No |
| 404 | The resource does not exist. | Check the id, or create the resource first. | No |
| 409 | The request conflicts with the current state. | Read the resource, then try again. | After reading |
| 429 | Too many requests. | Slow down and retry with exponential backoff. Stay under 1,000 requests per minute per endpoint, as set out in the API guidelines. For bulk loads, use Jobs. | Yes, with backoff |
| 500 | Something failed on Eliq’s side. | Retry with backoff. If it persists, contact Eliq with the request_id or transaction_id. | Yes, with backoff |
| 502, 503, 504 | Eliq is briefly unavailable. | Retry with backoff. | Yes, with backoff |
These are the errors integrators run into most often in production, most frequent first. Most of them are avoided by caching reads, refreshing tokens in time, and only sending data that has changed.
| Request | HTTP | Codes | What to do |
|---|---|---|---|
PUT /integration/api/v1/meters/{meter_id} | 400 | METER_FUEL_CANNOT_BE_UPDATED, METER_TYPE_CANNOT_BE_UPDATED, METER_CANNOT_BE_MOVED, METER_MODEL_INVALID | Fuel, type and location cannot change on an existing meter. Send a meter only when it changes, not on every sync. |
GET /v3/locations/{location_id}/euc | 400 | NOT_ENOUGH_DATA_POINTS (about 9 in 10), NO_CONSUMPTION_DATA_FOR_SOLAR_LOCATION, HOUSE_TYPE_REQUIRED_FOR_EUC, and other Energy Usage Categories codes | Most locations do not have enough history yet: ask again when new data has arrived, not on every view. Homes with solar need consumption data, and homes need house_type set. See Data requirements. |
GET /v3/users/{user_id}, /v3/clients, /v3/locations | 401 | none | The user token has expired. Refresh it shortly before it expires, one refresh at a time. See Using refresh tokens safely. |
GET /v3/locations/{location_id}/advice | 429 | TOO_MANY_REQUESTS | Back off. Advice changes slowly, so cache it. |
POST /integration/api/v1/meters/{meter_id}/energy/highres/{resolution} | 429 | TOO_MANY_REQUESTS | Send fewer, larger uploads, or use Jobs for bulk loads. |
GET /v3/locations/{location_id}/similarhomes (also /report and /consumption) | 400 | Similar Homes codes | The home profile is too thin, or there are too few comparable homes for the period. |
GET /v3/locations/{location_id}/homeprofile/image | 404 | none | No image is stored. Treat it as empty. |
GET /v3/locations/{location_id}/marketprice/prices | 404 | none | No prices for the location. Check that spot_price_region_id is set. |
POST /integration/api/v1/meters/{meter_id}/priceformulas | 429 and 400 | TOO_MANY_REQUESTS and price formula codes | Post a formula only when the tariff changes. |
GET /v3/locations/{location_id}/euc | 500 | INTERNAL_ERROR | Retry later with backoff. |
Every code the APIs can return, grouped by area. The list for the Data Management API is generated from the Eliq platform code.
| Code | HTTP | Meaning |
|---|---|---|
NOT_ENOUGH_DATA_POINTS | 400 | Energy Usage Categories: not enough data for the requested period |
DAILY_RESOLUTION_OR_BETTER_REQUIRED_FOR_CUSTOM_PERIOD | 400 | Energy Usage Categories: a custom period needs daily or hourly data |
NOT_SUPPORTED_PROFILE_TYPE | 400 | Energy Usage Categories: the location profile type is missing or not supported |
HOUSE_TYPE_REQUIRED_FOR_EUC | 400 | Energy Usage Categories: set house_type on the home profile |
NOT_ENOUGH_HOME_PROFILE_OPTIONS_SET | 400 | Energy Usage Categories: answer the questions tagged required_for_euc_to_work |
BUSINESS_TYPE_REQUIRED_FOR_EUC | 400 | Energy Usage Categories: set the business type |
NOT_ENOUGH_BUSINESS_PROFILE_OPTIONS_SET | 400 | Energy Usage Categories: set all required business profile options |
EUC_NOT_SUPPORTED_FOR_BUSINESS_TYPE | 400 | Energy Usage Categories: not available for this business type |
SOLAR_PANELS_ARE_NOT_SUPPORTED_IN_EUC | 400 | Energy Usage Categories: not available for homes with solar panels |
NO_CONSUMPTION_DATA_FOR_SOLAR_LOCATION | 400 | Energy Usage Categories: solar is selected but Eliq has no consumption data for the location |
NO_CATEGORIES_IDENTIFIED | 400 | Energy Usage Categories: no categories could be identified for the location |
HOME_PROFILE_INSUFFICIENT_FOR_SIMILAR_HOMES | 400 | Similar Homes: the home profile is not sufficient |
NOT_ENOUGH_SIMILAR_HOMES_CONTRIBUTORS | 400 | Similar Homes: not enough comparable homes for the period |
NO_MATCHING_SIMILAR_HOMES_GROUP | 400 | Similar Homes: no group matches the home profile; check that it is set correctly |
NO_PRICE_INFORMATION | 400 | Similar Homes: no price information for the location in the period |
MISSING_FROM | 400 | The from parameter is missing |
MISSING_TO | 400 | The to parameter is missing |
MISSING_RESOLUTION | 400 | The resolution parameter is missing |
INVALID_RESOLUTION | 400 | The resolution is not supported for this endpoint |
MISSING_FUEL | 400 | The fuel parameter is missing |
INVALID_FUEL | 400 | The fuel is not supported |
MISSING_UNIT | 400 | The unit parameter is missing |
INVALID_UNIT | 400 | The unit is not supported |
INVALID_PARAMETER | 400 | A parameter is invalid; the description names it |
LOCATION_NOT_FOUND | 404 | The location does not exist |
| Code | HTTP | Meaning |
|---|---|---|
NOT_ALLOWED_TO_PERFORM_REQUEST | 403 | Not allowed to perform request |
INTERNAL_ERROR | 500 | Internal server error. If problem remains, please contact support |
INPUT_MISSING | 400 | Request input is missing. This may be caused by incorrect format of input. |
RESOURCE_LOCK_TIMEOUT | 400 | Attempt to update a resource that is already being updated by another process |
DATASOURCE_OPERATION_FAILED | 500 | Datasource operation failed. If problem remains, please contact support |
DATE_RANGE_MISSING | 400 | Missing parameters 'from' and 'to'. This may be caused by incorrect date format, please refer to documentation |
FROM_MISSING | 400 | From date is missing. This may be caused by incorrect date format, please refer to documentation |
TO_MISSING | 400 | To date is missing. This may be caused by incorrect date format, please refer to documentation |
DATE_RANGE_INVALID | 400 | Date range is invalid i.e. 'from' date is after 'to' date |
DATE_RANGE_LIMIT_EXCEEDED | 400 | Maximum range between 'from' and 'to' exceeded. Please refer to documentation |
CLIENT_CONVERSION_RATE_NOT_FOUND | 400 | No m3 to Wh conversion rate is configured for the client. Send energy_wh instead, or contact support to configure the rate |
JOB_IS_CANCELLED | 400 | Job is already canceled |
JOB_IS_COMPLETED | 400 | Job is already completed |
JOB_STATE_CANNOT_BE_CHANGED | 400 | Job state cannot be changed |
FAILED_TO_IDENTIFY_JOB_STATE | 400 | Failed to identify job state |
JOB_NOT_FOUND | 404 | Could not find job |
JOB_MUST_NOT_BE_NULL | 400 | Job must not be null |
JOB_MISSING_OPERATION | 400 | Job operation is missing |
JOB_INVALID_OPERATION | 400 | Job operation is invalid |
JOB_MISSING_ENTITY | 400 | Job entity is missing |
JOB_INVALID_ENTITY | 400 | Job entity is invalid |
JOB_MISSING_REFERENCE | 400 | Job reference is missing |
JOB_INVALID_REFERENCE | 400 | Job reference is invalid |
JOB_MISSING_FILE_FORMAT | 400 | Job file format is missing |
JOB_INVALID_FILE_FORMAT | 400 | Job file format is invalid |
JOB_REFERENCE_ALREADY_EXIST | 400 | Job reference already exists |
| Code | HTTP | Meaning |
|---|---|---|
LOCATION_NOT_FOUND | 404 | Location with given id could not be found |
LOCATION_ID_MISMATCH | 400 | Parameter 'id' does not match 'id' provided in the URI |
LOCATION_ID_MISSING | 400 | Parameter 'id' must not be null or empty |
LOCATION_USER_ID_MISSING | 400 | Parameter 'user_id' must not be null or empty |
LOCATION_ADDRESS_MISSING | 400 | Parameter 'address' must not be null |
LOCATION_ADDRESS_POSTAL_CODE_OR_CITY_MISSING | 400 | Parameter 'address.postal_code' or 'address.city' must be provided if 'geo' is not provided |
LOCATION_ADDRESS_COUNTRY_CODE_MISSING | 400 | Parameter 'address.country_code' must not be null or empty |
LOCATION_USER_NOT_FOUND | 400 | User with given 'user_id' could not be found |
LOCATION_CANNOT_BE_MOVED | 400 | A location with the same id already exists for another user. A location cannot be moved between users. |
LOCATION_ADDRESS_COUNTRY_CODE_INVALID | 400 | Parameter 'address.country_code' is invalid |
LOCATION_GEO_LATITUDE_MISSING | 400 | Parameter 'geo.latitude' must not be null |
LOCATION_GEO_LATITUDE_INVALID | 400 | Parameter 'geo.latitude' is invalid. It must be in the range between -90 and 90 |
LOCATION_GEO_LONGITUDE_MISSING | 400 | Parameter 'geo.longitude' must not be null |
LOCATION_GEO_LONGITUDE_INVALID | 400 | Parameter 'geo.longitude' is invalid. It must be in the range between -180 and 180 |
LOCATION_SPOT_PRICE_REGION_NOT_FOUND | 400 | Spot price region with given 'spot_price_region_id' could not be found. |
EXCESSIVE_REQUESTS_FOR_THE_SAME_LOCATION | 400 | Too many requests to add the same location were created, please try again later. |
MULTIPLE_LOCATIONS_FOUND_WITH_SAME_ID | 500 | Multiple locations were found with the same id |
METER_NOT_FOUND | 404 | Meter with given id could not be found |
METER_ID_MISMATCH | 400 | Parameter 'id' does not match 'id' provided in the URI |
METER_ID_MISSING | 400 | Parameter 'id' must not be null or empty |
METER_MODEL_DOES_NOT_SUPPORT_READS | 400 | Meter associated with provided id does not support meter reads. |
METER_MODEL_INVALID | 400 | Invalid meter model |
METER_MODEL_MISSING | 400 | Parameter 'model' must not be null or empty |
METER_SUPPLY_START_DATE_MISSING | 400 | Parameter 'supply_start_date' must not be null or empty. This may be caused by incorrect date format, please refer to documentation |
METER_LOCATION_ID_MISSING | 400 | Parameter 'location_id' must not be null or empty |
METER_FUEL_MISSING | 400 | Parameter 'fuel' must not be null or empty |
METER_FUEL_INVALID | 400 | Invalid meter fuel. Must be one of 'elec', 'gas' or 'district_heating' |
METER_FUEL_CANNOT_BE_UPDATED | 400 | Fuel type for Meter cannot be updated |
METER_TYPE_MISSING | 400 | Parameter 'type' must not be null or empty |
METER_TYPE_INVALID | 400 | Invalid meter type. Must be one of 'import', 'export', 'consumption' or 'production' |
METER_TYPE_CANNOT_BE_UPDATED | 400 | Direction type for Meter cannot be updated |
METER_LOCATION_NOT_FOUND | 400 | Location with given 'location_id' could not be found |
METER_CANNOT_BE_MOVED | 400 | A meter with the same id already exists for another location. A meter cannot be moved between users. |
CATEGORY_PERCENTAGE_IS_INVALID | 400 | Category percentage is invalid |
CATEGORY_CLIENT_IS_INVALID | 400 | Category is invalid |
CATEGORY_PERCENTAGE_CLIENT_SHOULD_BE_NULL | 400 | Category percentage should be null |
CATEGORY_CLIENT_CANNOT_BE_NULL | 400 | Category cannot be null |
GAS_CANNOT_BE_EXPORTED | 400 | Gas cannot be exported |
EXPORT_DUPLICATE_FOUND | 400 | Duplicate Meter, Direction: Export, already exist |
IMPORT_DUPLICATE_FOUND | 400 | Duplicate Meter, Direction: Import, already exist |
ELEC_EXPORT_DUPLICATE_FOUND | 400 | Duplicate Meter, Fuel: Elec, Direction: Export, already exist |
ELEC_IMPORT_DUPLICATE_FOUND | 400 | Duplicate Meter, Fuel: Elec, Direction: Import, already exist |
EXCESSIVE_REQUESTS_FOR_THE_SAME_METER | 400 | Too many requests to add the same meter were created, please try again later. |
MULTIPLE_METERS_FOUND_WITH_SAME_ID | 500 | Multiple meters found with the same id |
METER_TYPE_MUST_BE_IMPORT_FOR_DISTRICT_HEATING | 400 | Direction type must be 'import' for district heating meters |
METER_CUSTOM_NOT_SUPPORTED | 400 | The provided custom properties are not supported |
USER_NOT_FOUND | 404 | User with given id could not be found |
USER_NOT_FOUND_BY_EMAIL | 404 | User with given email could not be found |
MULTIPLE_USERS_FOUND_WITH_SAME_EMAIL | 404 | More than one user was found with the same email |
USER_ID_MISMATCH | 400 | Parameter 'id' does not match 'id' provided in the URI |
USER_ID_MISSING | 400 | Parameter 'id' must not be null or empty |
USER_EMAIL_INVALID | 400 | Email is invalid |
USER_PHONE_INVALID | 400 | Phone number is invalid |
USER_EMAIL_DUPLICATE | 400 | A user with the provided email already exist |
EXCESSIVE_REQUESTS_FOR_THE_SAME_USER | 400 | Too many requests to add the same User were created, please try again later. |
USER_LANGUAGE_CODE_INVALID | 400 | Language code is invalid |
USER_LANGUAGE_CODE_MISSING | 400 | Language code is missing |
USER_TIME_ZONE_MISSING | 400 | Time zone is missing |
USER_TIME_ZONE_INVALID | 400 | Time zone is invalid |
USER_CUSTOM_NOT_SUPPORTED | 400 | The provided custom properties are not supported |
| Code | HTTP | Meaning |
|---|---|---|
ENERGY_SEQUENCE_LENGTH_LIMIT_EXCEEDED | 400 | Maximum limit of element per request exceeded. Please refer to documentation for more information |
ENERGY_ELEMENT_DATE_MISSING | 400 | Element in sequence missing parameter 'date'. This may be caused by incorrect date format, please refer to documentation |
ENERGY_ELEMENT_ENERGY_WH_AND_ENERGY_M3_MISSING | 400 | Element in sequence must have either parameter 'energy_wh' or 'energy_m3' |
ENERGY_ELEMENT_BOTH_ENERGY_WH_AND_ENERGY_M3_SET | 400 | Element in sequence must have either parameter 'energy_wh' or 'energy_m3' but not both |
ENERGY_ELEMENT_ENERGY_M3_ON_UNSUPPORTED_FUEL_METER | 400 | Element in sequence has 'energy_m3' but the meter's fuel does not support it. 'energy_wh' is supported |
ENERGY_SEQUENCE_CONTAINS_DUPLICATE_ELEMENTS | 400 | Energy elements in sequence must be unique |
ENERGY_ELEMENT_ENERGY_WH_INVALID | 400 | Parameters 'energy_wh' and 'energy_m3' must not be negative |
ENERGY_ELEMENT_CONTAINS_DUPLICATE_REGISTERS | 400 | Registers in 'registers[]' must be unique |
ENERGY_ELEMENT_REGISTER_ID_MISSING | 400 | Parameter 'registers[].id' must not be null or empty |
ENERGY_ELEMENT_REGISTER_ENERGY_WH_INVALID | 400 | Parameters 'registers[].energy_wh' and 'registers[].energy_m3' must not be negative |
ENERGY_ELEMENT_REGISTER_ENERGY_WH_MISSING | 400 | Parameter 'registers[].energy_wh' must not be null |
ENERGY_ELEMENT_REGISTER_ENERGY_WH_AND_ENERGY_M3_MISSING | 400 | Element in sequence must have either parameter 'registers[].energy_wh' or 'registers[].energy_m3' |
ENERGY_ELEMENT_REGISTER_BOTH_ENERGY_WH_AND_ENERGY_M3_SET | 400 | Element in sequence must have either parameter 'registers[].energy_wh' or 'registers[].energy_m3' but not both |
REGISTERS_ENERGY_WH_SUM_NOT_MATCH_DATA_ENERGY_WH | 400 | Parameter 'registers' elements 'energy_wh' sum have to be identical to parameter 'energy_wh' |
ENERGY_DAILY_DATE_IS_OUTSIDE_METER_SUPPLY_DATE_RANGE | 400 | Parameter 'date' cannot be outside range of meter SupplyStartDate -> SupplyEndDate range |
RESOLUTION_MISSING | 400 | Resolution must not be null or empty |
RESOLUTION_INVALID | 400 | Invalid resolution. Must be one of: [hour, 30min, 15min, 10min, 6min] |
ENERGY_ELEMENT_INTERVAL_START_MISSING | 400 | Parameter 'interval_start' must not be null. This may be caused by incorrect datetime format, please refer to documentation |
ENERGY_ELEMENT_INTERVAL_START_DATE_INVALID_FOR_RESOLUTION | 400 | Parameter 'interval_start' must align with given resolution (eg. 'xx:00:00' for hourly, 'xx:00:00' and 'xx:30:00' for 30min). Please refer to documentation for more information |
GAP_IN_ENERGY_DATE_INTERVAL | 400 | Gap not matching resolution size between 'interval_start' dates have been found. |
ENERGY_INTERVAL_START_DATE_IS_OUTSIDE_METER_SUPPLY_DATE_RANGE | 400 | Parameter 'interval_start' must be between meter SupplyStartDate and SupplyEndDate dates. |
ENERGY_MONTHLY_DATA_MUST_NOT_BE_NULL | 400 | Request body 'energyMonthlyData' must not be null or empty |
SEQUENCE_MUST_NOT_CONTAIN_DUPLICATE_DATES | 400 | Sequence contains duplicate date ranges |
ENERGY_WH_OR_ENERGY_M3_MUST_NOT_BE_NULL | 400 | Either 'energy_wh' or 'energy_m3' must be provided |
ENERGY_WH_AND_ENERGY_M3_MUST_NOT_BE_PROVIDED_TOGETHER | 400 | 'energy_wh' and 'energy_m3' cannot be provided together |
ENERGY_M3_MUST_NOT_BE_ADDED_ON_UNSUPPORTED_FUEL_METER | 400 | 'energy_m3' cannot be used on a meter whose fuel type does not support it |
FROM_MISSING | 400 | Parameter 'from' is missing or invalid |
TO_MISSING | 400 | Parameter 'to' is missing or invalid |
DATE_RANGE_INVALID | 400 | Date range is invalid i.e. 'to' date is not after 'from' date |
REGISTERS_ENERGY_MUST_NOT_BE_NULL | 400 | Parameter 'registers[].energy_wh' must not be null |
REGISTERS_ID_CANNOT_BE_NULL | 400 | Parameter 'registers[].id' must not be null or empty |
REGISTERS_CANNOT_HAVE_SAME_ID | 400 | Registers contain duplicate 'id' values |
READ_SEQUENCE_LENGTH_LIMIT_EXCEEDED | 400 | Maximum limit of element per request exceeded. Please refer to documentation for more information |
READ_ELEMENT_DATE_MISSING | 400 | Element in sequence missing parameter 'date'. This may be caused by incorrect date format, please refer to documentation |
READ_ELEMENT_REGISTERS_MISSING | 400 | Element in sequence missing parameter 'registers' |
READ_SEQUENCE_CONTAINS_DUPLICATE_ELEMENTS | 400 | Energy elements in sequence must be unique |
READ_ELEMENT_CONTAINS_DUPLICATE_REGISTERS | 400 | Registers in 'registers[]' must be unique |
READ_ELEMENT_REGISTER_ID_MISSING | 400 | Parameter 'registers[].id' must not be null or empty |
READ_ELEMENT_REGISTER_INDEX_INVALID | 400 | Parameter 'registers[].index' must not be negative |
READ_ELEMENT_REGISTER_INDEX_MISSING | 400 | Parameter 'registers[].index' must not be null |
READ_ELEMENT_QUALITY_MISSING | 400 | Parameter 'quality' must not be null |
READ_ELEMENT_QUALITY_INVALID | 400 | Parameter 'quality' invalid. Should be one of 'normal' or 'estimated' |
READ_ELEMENT_SOURCE_MISSING | 400 | Parameter 'source' must not be null |
READ_ELEMENT_SOURCE_INVALID | 400 | Parameter 'source' invalid. Should be one of 'customer', 'utility', 'smr' or 'system' |
READ_ELEMENT_STATUS_MISSING | 400 | Parameter 'status' must not be null |
READ_ELEMENT_STATUS_INVALID | 400 | Parameter 'status' invalid. Should be one of 'accepted' or 'pending' |
READ_ELEMENT_UNIT_MISSING | 400 | Parameter 'unit' must not be null |
READ_ELEMENT_UNIT_INVALID | 400 | Parameter 'unit' invalid. Should be 'kwh' or 'm3' |
READ_ELEMENT_UNIT_M3_ON_UNSUPPORTED_FUEL_METER | 400 | Parameter 'unit' has value 'm3' but the meter's fuel does not support it. 'kwh' is supported |
| Code | HTTP | Meaning |
|---|---|---|
PRICE_FORMULA_NOT_FOUND | 404 | Price formula for the given 'meter_id' and 'from' date was not found. |
PRICE_FORMULA_CURRENCY_CODE_INVALID | 400 | Parameter 'currency_code' invalid |
PRICE_FORMULA_CURRENCY_CODE_MISSING | 400 | Parameter 'currency_code' must not be null or empty |
PRICE_FORMULA_MUST_NOT_BE_NULL | 400 | Price formula cannot be null or empty |
PRICE_FORMULA_METER_NOT_FOUND | 400 | Meter with the given 'meter_id' could not be found. Meter was either deleted or not imported. |
PRICE_FORMULA_TO_DATE_MISSING | 400 | Parameter 'to' must not be null or empty. This may be caused by incorrect format of input. |
PRICE_FORMULA_FROM_DATE_MISSING | 400 | Parameter 'from' must not be null or empty. This may be caused by incorrect format of input. |
PRICE_FORMULA_FROM_DATE_INVALID | 400 | Parameter 'from' must not be in the same date or after parameter 'to'. |
PRICE_FORMULA_ELEMENTS_MISSING | 400 | Parameter 'elements' must not be null or empty. |
PRICE_FORMULA_FUEL_MISSING | 400 | Parameter 'fuel' must not be null |
PRICE_FORMULA_FUEL_INVALID | 400 | Parameter 'fuel' invalid |
PRICE_FORMULA_DIRECTION_MISSING | 400 | Parameter 'direction' must not be null |
PRICE_FORMULA_DIRECTION_INVALID | 400 | Parameter 'direction' invalid |
PRICE_FORMULA_TARIFF_ID_MISSING | 400 | Parameter 'tariff_id' must not be null |
PRICE_FORMULA_TARIFF_ID_INVALID | 400 | Parameter 'tariff_id' invalid. Must be 100 characters or less |
PRICE_FORMULA_TYPE_MISSING | 400 | Parameter 'type' must not be null |
PRICE_FORMULA_TYPE_INVALID | 400 | Parameter 'type' invalid. Must be one of: ['import', 'export'] |
PRICE_FORMULA_PRICE_MULTIPLIER_INVALID | 400 | Parameter 'price_multiplier' invalid. Must be greater than 0 and less than 1000 |
INVALID_PRICE_FORMULA_SOURCE | 400 | Invalid parameter source. Only 'client' or 'user' is valid. |
PRICE_FORMULA_ALREADY_ADDED_BY_SOURCE_CLIENT | 400 | Price formula already added by source 'client'. Cannot add price formula by source 'user' if price formula by source 'Client' is already added. |
INVALID_PRICE_FORMULA_ENERGY_UNIT | 400 | Parameter 'energy_unit' invalid. Only 'kwh' or 'm3' is valid. |
PRICE_FORMULA_DUPLICATES_FOUND | 400 | Found multiple price formulas starting from the same 'from' date. |
PRICE_FORMULA_FROM_DATE_IS_OVERLAP_EXISTING_PRICE_FORMULA | 400 | Parameter 'from' cannot overlap with already existing price formula. |
PRICE_FORMULA_TO_DATE_IS_OVERLAP_EXISTING_PRICE_FORMULA | 400 | Parameter 'to' cannot overlap with already existing price formula. |
PRICE_FORMULA_FROM_DATE_OUTSIDE_DEVICE_SUPPLY_DATE_RANGE | 400 | Parameter 'from' cannot be outside device supply date range (start -> end dates). |
PRICE_FORMULA_ELEMENT_NAME_MISSING | 400 | Parameter 'element[].name' must not be null or empty. |
PRICE_FORMULA_ELEMENT_CHARGE_INVALID | 400 | Parameter 'elements[].unit_rate' must be null for 'elements[].type = charge'. |
PRICE_FORMULA_ELEMENT_UNIT_RATE_INVALID | 400 | Parameter 'elements[].charge' must be null for 'elements[].type = unit_rate'. |
PRICE_FORMULA_ELEMENT_UNIT_RATE_MISSING | 400 | Parameter 'elements[].unit_rate' must not be null or empty for 'elements[].type = unit_rate'. |
PRICE_FORMULA_ELEMENT_CHARGE_MISSING | 400 | Parameter 'elements[].charge' must not be null or empty for 'elements[].type = charge'. |
PRICE_FORMULA_ELEMENT_TYPE_INVALID | 400 | Parameters 'elements[].type' is invalid. Must be one of: ['charge', 'unit_rate'] |
PRICE_FORMULA_ELEMENT_TYPE_MISSING | 400 | Parameters 'elements[].type' cannot be null or empty. |
PRICE_FORMULA_ELEMENT_CHARGE_RESOLUTION_MISSING | 400 | Parameter 'elements[].charge.resolution' must not be null or empty for 'elements[].type = charge'. |
PRICE_FORMULA_ELEMENT_CHARGE_RESOLUTION_INVALID | 400 | Parameter 'elements[].charge.resolution' is invalid. Must be one of ['day', 'month']. |
PRICE_FORMULA_ELEMENT_CHARGE_VALUE_MISSING | 400 | Parameter 'elements[].charge.charge' must not be null for 'elements[].type = charge'. |
PRICE_FORMULA_ELEMENT_UNIT_RATE_TYPE_MISSING | 400 | Parameters 'elements[].unit_rate.type' cannot be null or empty. |
PRICE_FORMULA_ELEMENT_UNIT_RATE_TYPE_INVALID | 400 | Parameters 'elements[].unit_rate.type' is invalid. Must be one of: ['fixed', 'tou', 'nordpool', 'block'] |
PRICE_FORMULA_ELEMENT_UNIT_RATE_VALUE_FOR_TYPE_FIXED_INVALID | 400 | Parameters 'elements[].unit_rate.[tou,nordpool,block]' must be null for 'elements[].unit_rate.type = fixed' |
PRICE_FORMULA_ELEMENT_UNIT_RATE_VALUE_FOR_TYPE_NORDPOOL_INVALID | 400 | Parameters 'elements[].unit_rate.[tou,fix,block]' must be null for 'elements[].unit_rate.type = nordpool' |
PRICE_FORMULA_ELEMENT_UNIT_RATE_VALUE_FOR_TYPE_BLOCK_INVALID | 400 | Parameters 'elements[].unit_rate.[tou,fix,norpool]' must be null for 'elements[].unit_rate.type = block' |
PRICE_FORMULA_ELEMENT_UNIT_RATE_VALUE_FOR_TYPE_TOU_INVALID | 400 | Parameters 'elements[].unit_rate.[block,fix,norpool]' must be null for 'elements[].unit_rate.type = tou' |
PRICE_FORMULA_ELEMENT_UNIT_RATE_BLOCK_MISSING | 400 | Parameters 'elements[].unit_rate.block' must not be null for 'elements[].unit_rate.type = block' |
PRICE_FORMULA_ELEMENT_UNIT_RATE_FIXED_MISSING | 400 | Parameters 'elements[].unit_rate.fixed' must not be null for 'elements[].unit_rate.type = fixed'. |
PRICE_FORMULA_ELEMENT_UNIT_RATE_NORDPOOL_MISSING | 400 | Parameters 'elements[].unit_rate.nordpool' must not be null for 'elements[].unit_rate.type = nordpool'. |
PRICE_FORMULA_ELEMENT_UNIT_RATE_TOU_MISSING | 400 | Parameters 'elements[].unit_rate.tou' must not be null for 'elements[].unit_rate.type = tou' |
PRICE_FORMULA_UNIT_RATE_WEEKDAYS_VALUES_MISSING | 400 | Parameters 'elements[].unit_rate.weekdays' must not be empty' |
PRICE_FORMULA_UNIT_RATE_WEEKDAYS_VALUES_INVALID | 400 | Parameters 'elements[].unit_rate.weekdays' values must only contain valid weekdays like 'Monday', 'Tuesday', 'Wednesday', etc.' |
PRICE_FORMULA_UNIT_RATE_WEEKDAYS_VALUES_CONTAINS_DUPLICATES | 400 | Parameters 'elements[].unit_rate.weekdays' values must not contain any duplicates' |
PRICE_FORMULA_ELEMENT_UNIT_RATE_FIXED_VALUE_MISSING | 400 | Parameters 'elements[].unit_rate.fixed.unit_rate' must not be null |
PRICE_FORMULA_ELEMENT_UNIT_RATE_FIXED_VALUE_INVALID | 400 | Parameters 'elements[].unit_rate.fixed.unit_rate' must not be equal to 0 for 'elements[].unit_rate.type = fixed'. |
PRICE_FORMULA_ELEMENT_UNIT_RATE_SPOT_PRICE_MULTIPLIER_INVALID | 400 | Parameter 'elements[].unit_rate.spot_price.multiplier' must not be less than 0 for 'elements[].unit_rate.type = spot_price'. |
PRICE_FORMULA_ELEMENT_UNIT_RATE_TOU_REGISTER_ID_MISSING | 400 | Parameters 'elements[].unit_rate.tou.register_id' must not be null for 'elements[].unit_rate.type = tou'. |
| Code | HTTP | Meaning |
|---|---|---|
PRICE_FORMULA_ELEMENT_UNIT_RATE_TOU_VALUE_MISSING | 400 | Parameters 'elements[].unit_rate.tou.unit_rate' must not be null for 'elements[].unit_rate.type = tou'. |
PRICE_FORMULA_ELEMENT_UNIT_RATE_TOU_VALUE_INVALID | 400 | Parameters 'elements[].unit_rate.tou.unit_rate' must not be null, or equal to 0 for 'elements[].unit_rate.type = tou'. |
PRICE_FORMULA_ELEMENT_UNIT_RATE_VALUE_TOU_INTERVALS_MISSING | 400 | Parameters 'elements[].unit_rate.tou.intervals[]' must not be empty or null for 'elements[].unit_rate.type = tou'. |
PRICE_FORMULA_ELEMENT_UNIT_RATE_TOU_INTERVALS_FROM_MINUTE_INVALID | 400 | Parameters 'elements[].unit_rate.tou.intervals[].from_minute' cannot be more than 1440 for 'elements[].unit_rate.type = tou'. |
PRICE_FORMULA_ELEMENT_UNIT_RATE_TOU_INTERVALS_TO_MINUTE_INVALID | 400 | Parameters 'elements[].unit_rate.tou.intervals[].to_minute' cannot be more than 1440 for 'elements[].unit_rate.type = tou'. |
PRICE_FORMULA_ELEMENT_UNIT_RATE_TOU_INTERVALS_TO_MINUTE_MISSING | 400 | Parameters 'elements[].unit_rate.tou.intervals[].to_minute' cannot be null for 'elements[].unit_rate.type = tou'. |
PRICE_FORMULA_ELEMENT_UNIT_RATE_TOU_INTERVALS_FROM_MINUTE_MISSING | 400 | Parameters 'elements[].unit_rate.tou.intervals[].from_minute' cannot be null or less than 0 for 'elements[].unit_rate.type = tou'. |
PRICE_FORMULA_ELEMENT_UNIT_RATE_BLOCK_REGISTER_ID_MISSING | 400 | Parameters 'elements[].unit_rate.block.register_id' must not be null or empty for 'elements[].unit_rate.type = block'. |
PRICE_FORMULA_ELEMENT_UNIT_RATE_BLOCK_VALUE_INVALID | 400 | Parameters 'elements[].unit_rate.block.unit_rate' must not be equal to 0 for 'elements[].unit_rate.type = block'. |
PRICE_FORMULA_ELEMENT_UNIT_RATE_BLOCK_FROM_KWH_INVALID | 400 | Parameters 'elements[].unit_rate.block.from_kwh' cannot be equal or bigger 'elements[].unit_rate.block.to_kwh' for 'elements[].unit_rate.type = block'. |
PRICE_FORMULA_ELEMENT_UNIT_RATE_BLOCK_FROM_KWH_MISSING | 400 | Parameters 'elements[].unit_rate.block.from_kwh' cannot be null for 'elements[].unit_rate.type = block'. |
PRICE_FORMULA_ELEMENT_UNIT_RATE_BLOCK_TO_KWH_MISSING | 400 | Parameters 'elements[].unit_rate.block.to_kwh' cannot be null for 'elements[].unit_rate.type = block'. |
PRICE_FORMULA_ELEMENT_BLOCK_RESOLUTION_TYPE_INVALID | 400 | Parameters 'elements[].unit_rate.block.resolution' is invalid. Only valid values are 'day' and 'year' for 'elements[].unit_rate.type = block'. |
PRICE_FORMULA_ELEMENT_BLOCK_RESOLUTION_TYPE_MISSING | 400 | Parameters 'elements[].unit_rate.block.resolution' cannot be null or empty for 'elements[].unit_rate.type = block'. |
PRICE_FORMULA_ELEMENT_UNIT_RATE_NORDPOOL_REGION_MISSING | 400 | Parameters 'elements[].unit_rate.nordpool.region' must not be null for 'elements[].unit_rate.type = nordpool'. |
PRICE_FORMULA_ELEMENT_UNIT_RATE_NORDPOOL_REGION_INVALID | 400 | Parameters 'elements[].unit_rate.nordpool.region' is invalid for 'elements[].unit_rate.type = nordpool'. |
PRICE_FORMULA_ELEMENT_UNIT_RATE_NORDPOOL_MULTIPLIER_INVALID | 400 | Parameters 'elements[].unit_rate.nordpool.multiplier' must not be equal or less than 0 for 'elements[].unit_rate.type = nordpool'. |
PRICE_FORMULA_ELEMENT_NORDPOOL_RESOLUTION_TYPE_INVALID | 400 | Parameters 'elements[].unit_rate.nordpool.resolution' is invalid. Only valid value is 'hour'. |
PRICE_FORMULA_ELEMENT_NORDPOOL_RESOLUTION_TYPE_MISSING | 400 | Parameters 'elements[].unit_rate.nordpool.resolution' cannot be null or empty. |
PRICE_FORMULA_DEVICE_ID_MISSING | 400 | Parameter 'meter_id' must not be null or empty. |
PRICE_FORMULA_ELEMENT_MISSING | 400 | Parameter 'element' must not be null or empty. |
PRICE_FORMULA_ELEMENT_UNIT_RATE_VALUE_FOR_TYPE_SPOT_PRICE_INVALID | 400 | Parameters 'elements[].unit_rate.[tou,fix,block,nordpool]' must be null for 'elements[].unit_rate.type = spot_price'. |
PRICE_FORMULA_ELEMENT_UNIT_RATE_BLOCK_FROM_M3_INVALID | 400 | Parameters 'elements[].unit_rate.block.from_m3' is invalid for 'elements[].unit_rate.type = block'. |
PRICE_FORMULA_ELEMENT_UNIT_RATE_BLOCK_FROM_M3_MISSING | 400 | Parameters 'elements[].unit_rate.block.from_m3' cannot be null for 'elements[].unit_rate.type = block'. |
PRICE_FORMULA_ELEMENT_UNIT_RATE_BLOCK_TO_M3_MISSING | 400 | Parameters 'elements[].unit_rate.block.to_m3' cannot be null for 'elements[].unit_rate.type = block'. |
PRICE_FORMULA_ELEMENT_UNIT_RATE_NORDPOOL_RESOLUTION_MISSING | 400 | Parameters 'elements[].unit_rate.nordpool.resolution' must not be null for 'elements[].unit_rate.type = nordpool'. |
PRICE_FORMULA_UNIT_RATE_VALUE_TOU_INTERVALS_INCLUDED_WITH_SKIP_INTERVALS | 400 | Parameters 'elements[].unit_rate.tou.intervals[]' cannot be provided together with skip intervals. |
PRICE_FORMULA_LOCATION_INVALID | 400 | Location for the price formula is invalid. |
PRICE_FORMULA_UNIT_RATE_BLOCK_FROM_TO_KWH_NOT_ALLOWED_ENERGY_UNIT_M3 | 400 | Parameters 'elements[].unit_rate.block.from_kwh/to_kwh' not allowed when energy unit is m3. |
PRICE_FORMULA_UNIT_RATE_BLOCK_FROM_TO_M3_NOT_ALLOWED_ENERGY_UNIT_KWH | 400 | Parameters 'elements[].unit_rate.block.from_m3/to_m3' not allowed when energy unit is kwh. |
PRICE_FORMULA_CHARGE_CAPACITY_TARIFF_MISSING | 400 | Parameter 'elements[].charge.capacity_tariff' must not be null. |
PRICE_FORMULA_CHARGE_CAPACITY_TARIFF_CALCULATION_TYPE_MISSING | 400 | Parameter 'elements[].charge.capacity_tariff.calculation_type' must not be null. |
PRICE_FORMULA_HAVE_DATE_RANGE_GAP_WITH_PREVIOUS_PRICE_FORMULA | 400 | Price formula has a date range gap with the previous price formula. |
PRICE_FORMULA_HAVE_DATE_RANGE_GAP_WITH_NEXT_PRICE_FORMULA | 400 | Price formula has a date range gap with the next price formula. |
PRICE_FORMULA_UNIT_RATE_SPOT_PRICE_MISSING | 400 | Parameters 'elements[].unit_rate.spot_price' must not be null for 'elements[].unit_rate.type = spot_price'. |
PRICE_FORMULA_UNIT_RATE_SPOT_PRICE_REGION_MISSING | 400 | Parameters 'elements[].unit_rate.spot_price.region' must not be null for 'elements[].unit_rate.type = spot_price'. |
PRICE_FORMULA_UNIT_RATE_SPOT_PRICE_REGION_INVALID | 400 | Parameters 'elements[].unit_rate.spot_price.region' is invalid for 'elements[].unit_rate.type = spot_price'. |
PRICE_FORMULA_UNIT_RATE_SPOT_PRICE_RESOLUTION_MISSING | 400 | Parameters 'elements[].unit_rate.spot_price.resolution' must not be null for 'elements[].unit_rate.type = spot_price'. |
MISSING_PRICE_FORMULA_CAPACITY_TARIFF_CALCULATION_TYPE | 400 | Parameter 'capacity_tariff.calculation_type' must not be null. |
PRICE_FORMULA_CHARGE_TYPE_MISSING | 400 | Parameter 'elements[].charge.type' must not be null. |
INVALID_PRICE_FORMULA_CHARGE_TYPE | 400 | Parameter 'elements[].charge.type' is invalid. |
MISSING_PRICE_FORMULA_SPOT_PRICE_PROVIDER | 400 | Parameter 'elements[].unit_rate.spot_price.provider' must not be null. |
MISSING_PRICE_FORMULA_SPOT_PRICE_RESOLUTION | 400 | Parameter 'elements[].unit_rate.spot_price.resolution' must not be null. |
MISSING_PRICE_FORMULA_SPOT_PRICE_REGION | 400 | Parameter 'elements[].unit_rate.spot_price.region' must not be null. |
INVALID_PRICE_FORMULA_SPOT_PRICE_RESOLUTION | 400 | Parameter 'elements[].unit_rate.spot_price.resolution' is invalid. |
INVALID_PRICE_FORMULA_SPOT_PRICE_PROVIDER | 400 | Parameter 'elements[].unit_rate.spot_price.provider' is invalid. |
| Code | HTTP | Meaning |
|---|---|---|
LOCATION_ID_MISSING | 400 | Parameter 'locationId' must not be null or empty |
LOCATION_ID_MISMATCH | 400 | Parameter 'location_id' does not match 'locationId' provided in the URI |
HOME_PROFILE_MISSING | 400 | Home profile must not be null |
LOCATION_PROFILE_TYPE_INVALID_OR_MISSING | 400 | Location profile type must not be null, and can only be 'residential' or 'business' |
LOCATION_PROFILE_MISSING | 400 | Location profile must not be null |
PROFILE_TYPE_NOT_CONFIGURED | 400 | Location profile type is not configured |
EXISTING_PROFILE_VALUES_FOUND | 400 | Can not change profile type for a configured profile with existing values |
PROFILE_CONFIGURATION_NOT_FOUND | 404 | Location profile configuration not found |
PROFILE_VALUE_NOT_FOUND | 404 | Location profile value not found for given id |
DUPLICATE_FOUND | 400 | Max Demand for the same Meter and Date already exist |
MISSING_INPUT | 404 | Missing Max Demand Input data |
MISSING_UNIT_TYPE | 400 | Missing Unit Type |
INVALID_MONTHLY_DAY | 400 | For Max Demand resolution monthly date have to be first day of the month |
INVALID_DATE | 400 | Invalid date |
NOT_SUPPORTED_UNIT_TYPE | 400 | Unit type is not supported |
INVALID_FROM_DATE | 400 | Invalid From Date |
INVALID_TO_DATE | 400 | Invalid To Date |
MAX_DEMAND_NOT_FOUND | 404 | Max demand was not found |
METER_ID_MISSING | 400 | Meter id is missing |
MISSING_RESOLUTION | 400 | Missing resolution |
NOT_SUPPORTED_RESOLUTION | 400 | Not Supported Resolution |
MAX_DEMAND_RESOLUTION_NOT_SUPPORTED | 400 | Max demand resolution is not supported |
MAX_DEMAND_LIMIT_NOT_FOUND | 404 | Max demand limit was not found |
MIN_VALUE_BIGGER_OR_EQUAL_MAX_VALUE | 400 | Min value have to be smaller than Max value |
TARGET_VALUE_SMALLER_THAN_MIN_VALUE | 400 | Target value cannot be smaller than Min value |
TARGET_VALUE_BIGGER_THAN_MAX_VALUE | 400 | Target value cannot be bigger than Max Value |
request_id, the time and the endpoint.