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:
- Download the latest Locations data.
- Download the latest Connector Prices data.
- Download the latest Prices data.
- 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
anddata.evses.connectors.id
). Use these 3 attributes to search and retrievepricing_ids
at the connector level from the response of Connector Prices.- 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:
Attribute | Description |
---|---|
data.id | The 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.partner | The owner of the payment product. |
data.partner_id | The unique id for the owner of the payment product. It is created by Eco-Movement, and is stable. |
data.product.name | The name of the payment product. |
data.product.type | The type of the payment product. It is one of the following: - adhoc - msp - cpo_subscription |
data.product.description | A brief description about the product. |
data.product.subscription_type | Indicates the type of subscription. The possible values are: - monthly : 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_vat | The subscription price for a month or year, excluding VAT. (if applicable) |
data.product.currency | The three digit currency code of the country where the charging station is located. |
data.elements.price_components.type | The 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_vat | The applicable price excluding vat. |
data.elements.price_components.vat | The applicable VAT. |
data.elements.price_components.step_size | Indicates 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.start_time | The starting time of the day for the prices. |
data.elements.restrictions.end_time | The ending time of the day for the prices. |
data.elements.restrictions.start_date | The starting date for the prices. |
data.elements.restrictions.end_date | The ending date for the prices. |
data.elements.restrictions.min_kwh | The minimum energy used in kWh. |
data.elements.restrictions.max_kwh | The maximum energy used in kWh. |
data.elements.restrictions.min_power | The minimum charging speed in kW. |
data.elements.restrictions.max_power | The maximum charging speed in kW. |
data.elements.restrictions.min_current | The 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.max_current | The 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.min_price | The minimum price excluding VAT based on the amount of kWh that is being delivered. This is different from the FLAT pricing type (Flat Fee), as FLAT indicates a fixed amount that must be paid for any charging session. min_price indicates a minimum value that must be paid as the cost of a charging session even when the cost of kWh delivered is lower than themin_price value. |
data.elements.restrictions.max_price | The maximum price excluding VAT based on the amount of kWh that is being delivered. The charging session will not cost more than this amount. |
data.elements.restrictions.overstay_battery_percentage.min | The battery percentage at which the overstay prices are active. |
data.elements.restrictions.overstay_battery_percentage.max | The battery percentage at which the overstay prices are inactive. |
data.elements.restrictions.overstay_time.min | The time after which the overstay prices are active. |
data.elements.restrictions.overstay_time.max | The time after which the overstay prices are inactive. |
data.elements.restrictions.overstay_time.unit | The unit for the time after which the prices are active. It can be in seconds, minutes, or hours. |
data.elements.restrictions.min_duration | The minimum duration in seconds. |
data.elements.restrictions.max_duration | The maximum duration in seconds. |
data.elements.restrictions.day_of_week | The day(s) of the week that the prices are valid. |
data.elements.restrictions.emsp_contract_date.name | The name of the contract signed between the eMSP and a customer. |
data.elements.restrictions.emsp_contract_date.from | The 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.to | The prices are active until this date, which is based on the contract signed between the eMSP and a customer. |
data.elements.restrictions.reservation | Indicates the costs for reservation or the cost when a reservation expires. |
data.elements.restrictions.payment_methods | Indicates if the price is only for one or more of the following payment methods: - CREDIT_CARD - DEBIT_CARD - APPLE_PAY - GOOGLE_PAY - QR_CODE |
data.last_updated | Indicates 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.
- The JSON schema is available here.