Use the prices endpoint to retrieve a list of MSP prices and CPO ad hoc prices. The prices are considered at the connector level.

📘

Note

The way you match prices with a location is different if you are using this endpoint to retrieve the pricing information.

To match a location with its prices:

  1. Download the latest Locations data.
  2. Download the latest Connector Prices data.
  3. Download the latest Prices data.
  4. Each location in the response of Locations data contains a location's id (data.id), and one or more EVSE UIDs and connector ids (data.evses.uid and data.evses.connectors.id). Use these 3 attributes to search and retrieve pricing_ids at the connector level from the response of Connector Prices.
  5. Use each id from pricing_ids to retrieve the prices from the response of Prices data.

Eco-Movement recommends that you retrieve all the prices once a day or week. Download the prices data during CET working hours. Outside of these working hours, it is likely that there can be updates impacting the id attribute.

Request

See prices and prices/{id} to know more about the parameters that are used with the two versions of the locations endpoint.

Response

The following is a sample response for the prices endpoint:

{
    data: [ 
    
        { product {
         ...
        },
          elements
            [
                { 
                  price_components 
                    [{...},{...}],
                  restrictions
                    {...},{...}
                }
            ]
        }     
    ], 
}

🚧

Caution

Eco-Movement always upholds the API contract, but we may send new attributes in our JSON response when:

  • we add an OCPI mandatory attribute to the JSON response to be OCPI compliant
  • we improve your licensing module with new features

Hence, we strongly recommend that you handle or ignore unknown JSON fields.

Response Definitions

The following are the attributes for the prices endpoint:

AttributeDescription
data.idThe unique id for a price.

Note: It is created by Eco-Movement and is refreshed whenever a price or product associated with that particular id is updated.
data.partnerThe owner of the payment product.
data.partner_idThe unique id for the owner of the payment product. It is created by Eco-Movement, and is stable.
data.ema_idThe E-Mobility Account Identifier (eMA ID) for the owner of the payment product. It is created by Eco-Movement by combining the country code where the charging station is located, and the party id of the owner. For example, NL-ECO.

Note: An owner can have multiple eMA IDs. For example, if a company named 'Example Company A' acquired 'Example Company B' and owns the charging stations of Example Company B, then this attribute maps Example Company B's eMA IDs to Example Company A's eMA IDs. For example, ["NL-EXA", "NL-EXB"].
data.product.nameThe name of the payment product.
data.product.descriptionA brief description about the product.
data.product.subscription_typeIndicates the type of subscription. The possible values are:

- 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.
data.product.subscription_fee_excl_vatThe subscription price for a month or year, excluding VAT. (if applicable)
data.product.currencyThe three digit currency code of the country where the charging station is located.
data.elements.price_components.typeThe type of pricing that is applicable. The available pricing types are:

- ENERGY: The price per kWh.

- FLAT: The fixed price per charging session.

- PARKING_TIME: The parking price per hour. This fee is applicable even if the parked car is not charging.

- TIME: The fixed price per hour.
data.elements.price_components.price_excl_vatThe applicable price excluding vat.
data.elements.price_components.vatThe applicable VAT.
data.elements.price_components.step_sizeIndicates the minimum amount that is billed. A
unit is billed in step_size blocks. For example, if the type is TIME and step_size is 300, then the time is billed in blocks of 5 minutes. Hence, if 6 minutes is used, then 10 minutes (2 blocks of step_size) is billed.

Note: step_size also depends on the type. Every type (except FLAT) defines a step_size multiplier. This is the size of every 'step' and the unit. For example, PARKING_TIME has a step_size multiplier of 1 second. Therefore, step_size of a price component is multiplied by 1 second. Thus, step_size = 300 means 300 seconds.
data.elements.restrictions.times.fromThe starting time of the day for the prices.
data.elements.restrictions.times.toThe ending time of the day for the prices.
data.elements.restrictions.dates.fromThe starting date for the prices.
data.elements.restrictions.dates.toThe ending date for the prices.
data.elements.restrictions.delivered_kwh.minThe minimum energy used in kWh.
data.elements.restrictions.delivered_kwh.maxThe maximum energy used in kWh.
data.elements.restrictions.power_output.minThe minimum charging speed in kW.
data.elements.restrictions.power_output.maxThe maximum charging speed in kW.
data.elements.restrictions.current_output.minThe sum of the minimum current (in Amperes) over all the phases. When the EV is charging with more than or equal to this value the prices are active. If the charging current is lower, this price is inactive.
data.elements.restrictions.current_output.maxThe sum of the maximum current (in Amperes) over all the phases. When the EV is charging with less than this value the prices are active. If the charging current is higher, this price is inactive.
data.elements.restrictions.price.minThe minimum price based on the amount of kWh that is being delivered.
data.elements.restrictions.price.maxThe maximum price based on the amount of kWh that is being delivered.
data.elements.restrictions.overstay.battery_percentage.minThe battery percentage at which the overstay prices are active.
data.elements.restrictions.overstay.battery_percentage.maxThe battery percentage at which the overstay prices are inactive.
data.elements.restrictions.overstay_time.minThe time after which the overstay prices are active.
data.elements.restrictions.overstay_time.maxThe time after which the overstay prices are inactive.
data.elements.restrictions.overstay_time.unitThe unit for the time after which the prices are active. It can be in seconds, minutes, or hours.
data.elements.restrictions.duration.minThe minimum duration in seconds.
data.elements.restrictions.duration.maxThe maximum duration in seconds.
data.elements.restrictions.day_of_weekThe day(s) of the week that the prices are valid.
data.elements.restrictions.emsp_contract_date.nameThe name of the contract signed between the eMSP and a customer.
data.elements.restrictions.emsp_contract_date.fromThe prices are active from this date, which is based on the contract signed between the eMSP and a customer.
data.elements.restrictions.emsp_contract_date.toThe prices are active until this date, which is based on the contract signed between the eMSP and a customer.
data.last_updatedIndicates when the pricing data was last updated. The date is in ISO 8601 standard and the time zone is UTC. The update could be a price update or any other update (for example, pricing type update).

📘

Note

Use the "Try It!" button in prices and prices/{id} to view an actual response from our API.