Frequently Asked Questions

What is the difference between prices endpoint and tariffs endpoint?

The tariffs endpoint returns the raw tariffs that were shared with Eco-Movement by the CPOs using the OCPI protocol. It does not have any contributions from other sources to improve the values in the response. Alternatively, the prices endpoint returns a list of MSP prices and CPO ad hoc prices at the connector level. Hence, the prices endpoint is much more complete and is contributed by multiple sources, which improve the values in the response.

For example, consider the following two responses. The first response is from the tariffs endpoint, which only has limited information about the price.

{
  "timestamp": "2021-03-12T05:34:48",
  "status_code": 1000,
  "status_message": "Success",
  "data": [
    {
      "id": "98c6f2c2287f4c73cea3d40ae7ec3ff2",
      "currency": "EUR",
      "tariff_alt_text": [
        {
          "language": "en",
          "text": "EVnetNL"
        }
      ],
      "tariff_alt_url": "",
      "last_updated": "2018-09-25T23:12:51Z",
      "elements": [
        {
          "price_components": [
            {
              "type": "ENERGY",
              "price": 0.25,
              "step_size": 1
            }
          ],
          "restrictions": [
            {
              "start_time": null,
              "end_time": null,
              "start_date": null,
              "end_date": null,
              "min_kwh": null,
              "max_kwh": null,
              "min_power": null,
              "max_power": null,
              "min_duration": 0,
              "max_duration": 86400,
              "day_of_week": null
            }
          ]
        }
      ]
    }
  ]
}

Now, compare the above response with the below response from the prices endpoint. The response for the prices endpoint is more detailed with information about the subscription, subscription type, value added tax, etc. Also, the response contains this detailed information for each connector.

{
  "timestamp": "2021-12-06T14:50:07",
  "status_code": 1000,
  "status_message": "Success",
  "data": [
    {
      "id": "4923170c-f034-4424-a320-fb3858e518ec",
      "price_list": [
        {
          "partner": "Maingau Energie",
          "product": {
            "name": "EinfachStromLaden",
            "description": "Extra parking cost of 10 cent per minute apply after 240 minutes of AC charging and after 60 minutes of DC charging. ",
            "subscription_type": "month",
            "subscription_fee_excl_vat": 0,
            "currency": "EUR"
          },
          "elements": [
            {
              "type": "ENERGY",
              "price_excl_vat": 0.25,
              "vat": 19
            }
          ]
        },
        {
          "partner": "Plugsurfing",
          "product": {
            "name": "Plugsurfing Plus",
            "description": "Plus",
            "subscription_type": "month",
            "subscription_fee_excl_vat": 6.6,
            "currency": "EUR"
          },
          "elements": [
            {
              "type": "ENERGY",
              "price_excl_vat": 0.26,
              "vat": 21
            }
          ]
        },
        {
          "partner": "Vattenfall",
          "product": {
            "name": "Vattenfall",
            "description": "Incharge, 15% Discount on McDonalds Stations, Discounted prices may apply in certain Netherlands Regions",
            "subscription_type": "month",
            "subscription_fee_excl_vat": 0,
            "currency": "EUR"
          },
          "elements": [
            {
              "type": "ENERGY",
              "price_excl_vat": 0.33,
              "vat": 21
            }
          ]
        }
      ]
    }
  ]
} 

Why was a location removed and how can I find about a location's removal?

Eco-Movement strives hard to provide you with accurate information regarding charging stations. We perform routine checks to ensure the integrity of the data we provide. As part of these regular checks, we may receive or find information about the unavailability of certain locations due to various factors, such as prolonged maintenance at the charging station, closure of the charging station, removal of duplicate locations, changes in a location's access type, etc.

If you notice that a location was removed, then you may have to take action based on the cause. The following table describes the reasons for a location's removal, the actions that Eco-Movement took, and the actions that you must take to keep your data in sync:

What happened?What should you do?
The operator of the charging station has communicated to Eco-Movement about the unavailability of that charging station, and we changed the status of the charging station in the PATCH update that we provided to you.You can find a location's removal from the status attribute in the PATCH update. Queue all the incoming PATCH updates from Eco-Movement and process after the retrieval or synchronisation is finished.
During regular maintenance, we noticed the unavailability of a charging station and removed that charging station from our database.Compare the locations in your last GET retrieval with the latest data from Eco-Movement using the locations endpoint. Then, determine which locations were present in your last retrieval but not in the latest data from Eco-Movement.

What is the difference between data.evses.uid and data.evses.evse_id?

data.evses.uid - data.evses.uid is unique in the CPO's system only and is not unique in the responses from Eco-Movement Data API. You can use this attribute for PATCH requests as an evse's id.

data.evses.evse_id - data.evses.evse_id is unique and compliant with "eMI3standard version V1.0", but it is not always available in the responses from Eco-Movement Data API.

How can I identify unique locations?

You can use data.id to identify each location, as the attribute is unique for each location.

How can I identify unique EVSEs?

You can concatenate data.id and data.evses.uid and use that value to identify each EVSE.

How can I identify unique connectors?

You can concatenate data.id, data.evses.uid, and data.evses.connectors.id and use that value to identify each connector.

Can we define new values for public access type other than the current 'Public', 'Restricted', and 'Private' in the future?

Eco-Movement is currently in the process of expanding on the existing public access type. This expansion will include subcategories for each existing public access type category so you can have more information about a location's public access type.

What values can I expect in the data.type attribute of the locations endpoint?

You can expect the following values:

  • ON_STREET - The charging unit is in a public place with parking.
  • PARKING_GARAGE - The charging unit is in a multi-storied car park.
  • UNDERGROUND_GARAGE - The charging unit is in an underground, multi-storied car park.
  • PARKING_LOT - The charging unit is in a parking lot. For example, at supermarkets, bars, etc.
  • OTHER - The location type is none of the above options.
  • UNKNOWN - The location type is not known.

Why does the equation power = voltage * amperage not hold for some power values in the data from Eco-Movement?

Eco-Movement sometimes receives ambiguous information, and that makes power calculations difficult. For such cases, Eco-Movement has its formulae for power calculation, resulting in more accurate power values. Hence, straightforward equations such as power = voltage * amperage do not apply to such cases.

What values can I expect in the data.price_list.product.subscription_type attribute of the prices endpoint?

You can expect the following values:

  • month: A subscription fee is applicable every month.
  • yearly: A subscription fee is applicable every year.
  • one-off: An initial fee is applicable to purchase a RFID card or chip, but there isn't a recurring subscription fee.
  • n/a: The product doesn't have a subscription option.

What should I do when encountering unexpected values (null or empty values) for OCPI's mandatory attributes?

Eco-Movement strives hard to provide you with accurate information regarding charging stations. We perform routine checks to ensure the integrity of the data we provide. In rare cases, you might receive unexpected values (for example, empty or null values for an OCPI mandatory attribute like data.evses.connectors.voltage). Several processes run in parallel, so the publication of a location might happen before we cleanse such unexpected values.

We are working hard to improve our internal validation process to ensure we don't publish locations with unexpected values for OCPI's mandatory attributes. Until we improve our validation process, we recommend that you check for unexpected values when handling JSON responses.

If you encounter locations with unexpected values, please contact us so we can cleanse that data.