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.

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.

What is the difference between data.access_type and data.restrictions? Which one does Eco-Movement recommend to use?

data.access_type is based on a machine learning model and primarily focuses on predicting whether a charging station's location is on public, semi-public (restricted), or private grounds, aligning with official definitions (for example, AFIR). The result is that more than a third of our locations are shown as semi-public (restricted), but in reality many of these locations do not have any access restrictions for EV drivers. Therefore, we developed the new data.restrictions attribute that does not use any predictions, but uses specific restrictions received directly from our partners or other reliable sources. This new attribute contains the following values (multiple values can apply for a location):

  • ONLY_CUSTOMERS- Only customers of the charging station's location are allowed to charge. For example, in a supermarket.
  • ONLY_TRUCKS - Only trucks are allowed to charge.
  • ONLY_2_WHEELERS - Only two-wheelers are allowed to charge.
  • ONLY_BUS - Only buses are allowed to charge.
  • ONLY_BRAND - Only EVs of the operator brands are allowed to charge. For example, Tesla.
  • ONLY_CARSHARING - Only shared cars are allowed to charge. This restriction is shown if at least 1 EVSE is for shared cars.
  • ONLY_TAXIS - Only taxis are allowed to charge.
  • ONLY_RESIDENTIAL - Only residents of the charging station's location are allowed to charge. For example, in an apartment building.
  • ONLY_EMPLOYEES Only employees of the charging station's location are allowed to charge. For example, in an office.
  • TIME_RESTRICTED - The charging station is not open 24/7.

For navigation related use cases, Eco-Movement strongly recommends using data.restrictions and not data.access_type, so you can inform drivers about specific access restrictions that apply at a location, and filter out locations that are not relevant for your target group easily.