Prices (New)

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:

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 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. When this field is set, a charging session with this tariff will at least cost this
amount.

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. 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.