GuidesAPI ReferenceChangelog
Guides

How to get Tariffs for connector groups or EVSE

How to get EV charge point tariffs

This tutorial explains how to use the HERE EV Charge Points API v3 to retrieve tariff information for connector groups and individual connectors of EV Supply Equipment (EVSEs) at a location. It also describes the differences between ad hoc and subscription based prices and provides practical examples of how tariffs can be applied and interpreted. The tariff schema used by the EV Charge Point API v3 is based on the OCPI 2.x Tariffs module.

Note

Not all EV charging locations have tariffs.

Tariff data is provided by Charge Point Operators (CPOs) and eMobility Service Providers (eMSPs). While HERE Technologies strives to ensure the freshness and accuracy of this information, it cannot guarantee that the data is always up to date. As a result, the tariffs returned by the HERE EV Charge Points API v3 may differ from the actual prices applied at a charging location. Prices and applicable tariffs should therefore always be verified directly with the relevant CPO or eMSP before charging.

Prerequisites

Before you start, complete your HERE platform onboarding and obtain application credentials. For more information about onboarding and credentials, see Get started.

This section requires you to understand basic requests in the HERE EV Charge Points API v3 as covered in Get one or multiple charging locations.

Tariffs

Tariffs provide information about charging costs. To charge an electric vehicle, drivers are typically required to pay a fee, referred to as a tariff in the HERE EV Charge Points API v3, for using a connector.

A tariff typically consists of:

  • One or more tariff elements
  • Each element containing one or more price components called as dimension
  • Optional restrictions that define when a tariff element applies called as condition

See Tariffs representation in data.

The HERE EV Charge Points API v3 supports two main tariff types: ad hoc tariffs, which apply to pay as you go charging, and subscription based prices provided by Charge Point Operators (CPOs) or eMobility Service Providers (eMSPs).

From a user perspective, tariff representation can appear complex because the HERE EV Charge Points API v3 supports two complementary ways of presenting tariff information:

  • Connector group level: Tariffs are associated with a specific connector type within a connector group. Pricing typically depends on factors such as power output and maximum supported power. For example, fast DC charging usually costs more than slower AC charging.
  • Connector level: Tariffs are associated with specific connectors on individual EVSEs. This allows pricing to reflect the exact capabilities of each connector, such as differences between fast DC and slow AC connectors.

This dual-level approach allows applications to display high-level pricing information quickly at the connector group level, while also providing detailed, connector-specific pricing when needed.

To retrieve tariff information, use the fields query parameter and include tariffs together with at least one of the following options:

  • connectorGroups: Returns tariffs defined at the connector group level.
  • evses: Returns tariffs defined at the individual EVSE connector level.

HTTP call to the endpoint

To access the HERE EV Charge Points API v3 locations endpoint, send this request:

GET /v3/locations?ids=evcp0-OWNhYjkxZDgtNGYzYy0xMWU4LWI3NjMtNDIwMTBhODQwMDAy&fields=evses,connectorGroups,tariffs&apiKey=<YOUR API KEY>
Host: evcp.hereapi.com
Accept: application/json
Authorization: Bearer ACCESS_TOKEN

The following examples all use cURL syntax.

Tariffs representation in data

Tariff information is available through two fields: the tariffs array at the location level, which contains the tariff objects, and the tariffIndexes array at the connector or connector group level, which references the corresponding tariff objects within the tariffs array.

A general tariff object consists of these fields:

FieldField meaning
partnerThe owner of the tariff.
partnerIdThe unique ID for the owner of the tariff.
currencyThe three digit currency code of the country where the charging station is located.
nameThe name of the tariff.
typeThe type of the tariff (adhoc, emsp, cpo)
elementsThe detailed description of tariff variants
  "tariffs": [
            {
              "partner": "K-Lataus",
              "partnerId": "a2f67dda-cca7-11ed-ad67-42010aa40fc0",
              "currency": "EUR",
              "elements": [
                ...
              ],
              "name": "Adhoc price",
              "type": "adhoc"
              }
              ...
          ]

Tariff elements

The array elements consists of multiple tariff dimensions which are active when a certain condition applies.

Tariff dimensions

The dimension used to calculate the price. Supported values are time, energy, flat, and parkingTime. Multiple dimensions can be combined within a single tariff; however, in most cases tariffs are primarily based on either energy or time.

Step and Price

The step value specifies the minimum billing granularity for price calculation, rather than the number of units covered by price.

DimensionStep unit
energykWh
timesecond
parkingTimesecond

The customer is charged for each started step of the specified dimension, with values rounded according to the applicable local or tariff specific rules.

DimensionPrice unit
energykWh
timehour
parkingTimehour

The price value defines the charge for the given dimension in the currency specified in tariff, excluding VAT. The vat value specifies the applicable local VAT rate as a percentage.

ENERGY

The energy is the most common tariff dimension. The price for energy is per 1 kWh (1000 Wh).

    {
      "dimension": "energy",
      "price": 0.5339,
      "vat": 25.5,
      "step": 1
      },

In this example the charging costs EUR 0.5339 + VAT for 1 kWh for charging and energy is charged per Wh.

TIME

The charging time is used typically at high speed chargers as tariff dimension. The price for time is per hour and the step is per second.

    {
      "dimension": "time",
      "price": 12,
      "vat": 25.5,
      "step": 60
      }

In this example the charging costs EUR 12 + VAT per hour for charging and time is charged per minute (i.e EUR 0.2 + VAT per minute).

FLAT

Flat fee is charged once per charging session.

    {
      "dimension": "flat",
      "price": 0.4701,
      "vat": 25.5
      }

In this example charging session fee EUR 0.4701 + VAT is charged per charging session.

PARKING TIME

A parking fee is a time‑based charge applied for occupying a charging spot, typically after active charging has ended, to discourage blocking the connector. The price for parkingTime is per hour and the step is per second.

    {
      "dimension": "parkingTime",
      "price": 4.7809,
      "vat": 25.5,
      "step": 60
      }

In this example, a parking fee of EUR 4.7809 + VAT per hour applies for the time the vehicle occupies the charging space, and the parking fee is charged by minute (i.e. EUR 0.07968 per minute).

Tariff conditions

The set of conditions defines when a given tariff dimension applies. Conditions are evaluated in priority order: if a date condition is present, it is evaluated first, followed by days, and then time‑ and duration‑based conditions.

These conditions allow tariffs to be activated only during specific periods or under specific circumstances, such as time of day, session duration, or battery state.

Typical use case: applying higher prices during peak hours, cheaper night-time tariffs, overstay fees after charging completes, or promotional pricing valid only for a limited date range.

DATE

The date condition defines the date range during which a tariff dimension is applied. The from value specifies the first day on which the dimension becomes valid, while to defines the first day on which it is valid until (exclusive). Either value may be omitted. Date conditions can be applied to any tariff dimension.

  {
    "date": {
      "from": "2026-06-01",
      "to": "2026-08-31"
      }
    }

In this example the dimension is valid and tariff would be applicable between June 1 2026 to August 31 2026.

DAYS

The days condition defines the days of the week when the tariff dimension is valid. Days are presented on chronological order: mo, tu, we, th, fr, sa, su.

  {
    "days": ["sa", "su"]
    }

In this example, the dimension applies on Saturdays and Sundays.

TIME

The time condition defines the period during which a tariff dimension is valid, expressed in local time. If the end time (to) is earlier than the start time (from), the period continues into the next day. If from is omitted, the period starts at the beginning of the day; if to is omitted, it runs until the end of the day, with the end value treated as exclusive.

    {
      "time": {
        "from": "20:00:00",
        "to": "07:00:00"
        }
    }

In this example the tariff dimension is valid from eight o'clock on the evening until seven o'clock in the morning local time.

DURATION

The duration condition defines the charging session length, in seconds, for which a tariff element applies. The min value specifies the minimum session duration (inclusive), and the max value specifies the maximum duration (exclusive); either value may be omitted to indicate no lower or upper duration limit.

    {
      "duration": {
        "min": 0,
        "max": 1440
        }
      }

In this example the tariff dimension is applied during the first 24 minutes of the session; once the session reaches or exceeds 1440 seconds, this dimension element no longer applies and another tariff element (if defined) takes over.

OVERSTAY BATTERY LEVEL

The overstayBatteryLevel condition specifies the minimum battery charge percentage at which a tariff element becomes active, typically used to apply additional fees when a vehicle is fully or nearly fully charged.

    {
      "overstayBatteryLevel": 90
      }

In this example tariff dimension is applied only when the battery level of the vehicle is 90% or more full.

Fetching the tariffs

The HERE EV Charge Points API v3 provides tariff information at different levels of detail to support a range of application scenarios. Tariffs can be accessed at two levels, depending on how pricing information is intended to be presented.

At the connector group level, tariffs are associated with a connector type within a connector group and typically represent general pricing characteristics such as power output or maximum supported power. At the connector level, tariffs are associated with individual connectors on specific EVSEs, allowing pricing to reflect the exact properties of each connector.

This structure enables applications to retrieve general pricing information and detailed, connector‑specific tariff data either separately or at the same time. When both levels are requested, the indices of the returned tariff entries correspond, allowing connector‑level tariffs to be matched directly with their related connector groups.

Tariffs for connector groups

To get locations with tariffs for connectorGroups, run the following request:

curl -H "Authorization: Bearer $ACCESS_TOKEN" "https://evcp.hereapi.com/v3/locations/246udbvy497hq-aGVyZS1ldjplY29tb3ZlbWVudDoyMDEyMTg1ODgz?fields=tariffs,connectorGroups" | jq

The response with tariffs for connectorGroups is as follows:

{
  "items": [
    {
      ...
      "id": "here:evcp:charginglocation:246udbvy497hq-aGVyZS1ldjplY29tb3ZlbWVudDoyMDEyMTg1ODgz",
      ...
      "connectorGroups": [
        ...
        {
          "standard": "IEC_62196_T2",
          "maxPower": 11000,
          "connectorCount": 2,
          "availableConnectorCount": 2,
          "tariffIndexes": [
            1
          ]
        },
        {
          "standard": "IEC_62196_T2_COMBO",
          "maxPower": 150000,
          "connectorCount": 2,
          "availableConnectorCount": 2,
          "tariffIndexes": [
            0
          ]
        }
      ],
      "tariffs": [
        {
          "partner": "K-Lataus",
          "partnerId": "a2f67dda-cca7-11ed-ad67-42010aa40fc0",
          "currency": "EUR",
          "elements": [
            {
              "components": [
                {
                  "dimension": "energy",
                  "price": 0.5339,
                  "vat": 25.5,
                  "step": 1
                },
                {
                  "dimension": "parkingTime",
                  "price": 9.5618,
                  "vat": 25.5,
                  "step": 60
                }
              ],
              "condition": {
                "duration": {
                  "min": 3600
                }
              }
            },
            {
              "components": [
                {
                  "dimension": "energy",
                  "price": 0.5339,
                  "vat": 25.5,
                  "step": 1
                }
              ]
            }
          ],
          "name": "Adhoc price",
          "type": "adhoc"
        },
        {
          "partner": "K-Lataus",
          "partnerId": "a2f67dda-cca7-11ed-ad67-42010aa40fc0",
          "currency": "EUR",
          "elements": [
            {
              "components": [
                {
                  "dimension": "energy",
                  "price": 0.3665,
                  "vat": 25.5,
                  "step": 1
                },
                {
                  "dimension": "parkingTime",
                  "price": 0.9562,
                  "vat": 25.5,
                  "step": 60
                }
              ],
              "condition": {
                "duration": {
                  "min": 7200
                }
              }
            },
            {
              "components": [
                {
                  "dimension": "energy",
                  "price": 0.3665,
                  "vat": 25.5,
                  "step": 1
                }
              ]
            }
          ],
          "name": "Adhoc price",
          "type": "adhoc"
        }
      ]
    }
  ]
}

Tariffs for EVSEs

To get locations with tariffs for connectors in EVSEs, run the following request:

curl -H "Authorization: Bearer $ACCESS_TOKEN" "https://evcp.hereapi.com/v3/locations/246udbvy497hq-aGVyZS1ldjplY29tb3ZlbWVudDoyMDEyMTg1ODgz?fields=tariffs,evses" | jq

The response with tariffs visible on the connector level for EVSE looks as follows:

{
  "items": [
    {
      "id": "here:evcp:charginglocation:evcp0-OTg1ZTM5N2EtN2U2OS0xMWVlLTg3OTItNDIwMTBhYTQwZmMw",
      ...
      "evses": [
        {
          "uid": "652d2e83d0ae2a7329eae33a",
          "connectors": [
            {
              "id": "652d2e83d0ae2a7329eae33a",
              "standard": "IEC_62196_T2_COMBO",
              "format": "cable",
              "powerType": "dc",
              "maxVoltage": 400,
              "maxCurrent": 450,
              "maxPower": 180000,
              "tariffIndexes": [
                0
              ]
            }
          ]
        }
        ...
      ],
      "tariffs": [
        {
          "partner": "K-Lataus",
          "partnerId": "a2f67dda-cca7-11ed-ad67-42010aa40fc0",
          "currency": "EUR",
          "elements": [
            {
              "components": [
                {
                  "dimension": "energy",
                  "price": 0.5339,
                  "vat": 25.5,
                  "step": 1
                },
                {
                  "dimension": "parkingTime",
                  "price": 9.5618,
                  "vat": 25.5,
                  "step": 60
                }
              ],
              "condition": {
                "duration": {
                  "min": 3600
                }
              }
            },
            {
              "components": [
                {
                  "dimension": "energy",
                  "price": 0.5339,
                  "vat": 25.5,
                  "step": 1
                }
              ]
            }
          ],
          "name": "Adhoc price",
          "type": "adhoc"
        }
      ]
    }
  ]
}

Tariffs types

The type field indicates the tariff category and determines how the pricing is applied. Supported values are adhoc for pay‑as‑you‑go tariffs without a subscription, emsp for subscription based tariffs provided by an eMobility Service Provider, and cpo for subscription based tariffs provided by the Charge Point Operator for that location. If the field is not specified, the tariff is treated as an adhoc tariff by default.

Note

The payment type is defined in evse.paymentMethod. Some payment methods still require registration despite the tariff type being adhoc, for example operatorApp.

Ad hoc tariffs

By default, tariffs and connectorGroups/evses expose only ad hoc prices, if available.

Ad hoc pricing refers to prices that apply to users without a contract or subscription plan with an eMSP or CPO.

{
    "tariffs": [
        {
          "partner": "K-Lataus",
          "partnerId": "a2f67dda-cca7-11ed-ad67-42010aa40fc0",
          "currency": "EUR",
          "elements": [
            ...
          ],
          "name": "Adhoc price",
          "type": "adhoc"
        }
      ]
  }

Example of the adhoc price, elements omitted.

Subscription tariffs for eMSP and CPO

Subscription tariffs apply to drivers who have a contract, plan, card, or subscription with a specific eMSP or CPO partner. To retrieve these tariffs, use the tariff query parameter.

There are two types of the subscription tariffs:

  • cpo tariffs are for the Charge Point Operator prices
  • emsp tariffs are for the eMobility Service Providers (also known as roaming prices)

A partner, either a Charge Point Operator (CPO) or an eMobility Service Provider (eMSP), may expose multiple tariff types or subscription plans. These typically represent different contracts, plans, cards, or customer groups offered by the same partner.

Available partners and their named tariffs can be discovered via the Metadata endpoint. By requesting tariff metadata with fields=operators,tariffs or fields=eMobilityServiceProviders,tariffs, clients can identify supported partners, their partnerId values, and the set of tariffs each partner provides.

To request partner-specific tariffs, each partnerId must be provided as a separate tariff query parameter. If available, tariffs for all specified partners are included in the response. To retrieve all available subscription tariffs, use tariff=all.

Note

A maximum of 50 partnerId values can be specified per request.

Some eMSPs and CPOs may expose multiple tariffs corresponding to different subscription levels or customer groups. To retrieve locations with named tariffs for a specific partner, use the tariff query parameter and provide both the partnerId and the tariff name.

For example, to retrieve locations with tariffs provided by partner 295adedc-cca5-11ed-8fa2-42010aa40002 and the tariff named Audi charging pro, use the following tariff query parameter: tariff=295adedc-cca5-11ed-8fa2-42010aa40002,Audi%20charging%20pro

Note

Tariff names may contain spaces or other characters that require URL encoding. For example, spaces must be encoded as %20.

Multiple named tariffs for the same partnerId can be requested in a single query by providing multiple tariff names, separated by commas. For example: tariff=295adedc-cca5-11ed-8fa2-42010aa40002,Audi%20charging%20pro,Audi%20charging%20basic. This returns both the Audi charging pro and Audi charging basic tariffs for the specified partner, if available.

    {
      "partner": "ChargePoint",
      "partnerId": "1f90fdf0-cca5-11ed-be23-42010aa40002",
      "currency": "EUR",
      "elements": [
        ...
        ],
          "name": "be.ENERGISED",
          "type": "emsp"
      }

Example of eMSP price, elements omitted.

To get locations with named tariffs on the connectorGroups level, run this request:

curl -H "Authorization: Bearer $ACCESS_TOKEN" "https://evcp.hereapi.com/v3/locations?fields=tariffs,connectorGroups&ids=246udbvy497hq-aGVyZS1ldjplY29tb3ZlbWVudDoyMDEyMTg1ODgz&tariff=295adedc-cca5-11ed-8fa2-42010aa40002%2CAudi%20charging%20pro,Audi%20charging%20basic" | jq
{
  "items": [
    {
      "id": "here:evcp:charginglocation:246udbvy497hq-aGVyZS1ldjplY29tb3ZlbWVudDoyMDEyMTg1ODgz",
      ...
      "connectorGroups": [
        {
          ...
          "tariffIndexes": [
            0,
            1
          ]
        },
      ],
      "tariffs": [
        {
          "partner": "AUDI",
          "partnerId": "295adedc-cca5-11ed-8fa2-42010aa40002",
          "currency": "EUR",
          "elements": [
            ...
          ],
          "name": "Audi charging pro",
          "type": "emsp"
        },
        {
          "partner": "AUDI",
          "partnerId": "295adedc-cca5-11ed-8fa2-42010aa40002",
          "currency": "EUR",
          "elements": [
            ...
          ],
          "name": "Audi charging basic",
          "type": "emsp"
        },
      ]
    }
  ]
}

Example of Audi charging pro and Audi charging basic response, tariff elements omitted.

When requesting a named tariff, the response contains only tariffs for the requested partnerId and name (if those are available), and an ad hoc tariff (if available).

Example case: Calculating price of 10 kWh charging

Using location at Oulu, Finland and fetching with query:

curl -H "Authorization: Bearer $ACCESS_TOKEN" "https://evcp.hereapi.com/v3/locations?ids=evcp0-YjJjMjcxOGEtNTJkMS0xMWYwLThlNTItNDIwMTBhYTQwMGI4&fields=tariffs,connectorGroups&tariff=all" | jq

Time dimension

{
          "partner": "Partner's Name",
          "partnerId": "2ddbbf76-cca5-11ed-9f0f-42010aa40002",
          "currency": "EUR",
          "elements": [
            {
              "components": [
                {
                  "dimension": "time",
                  "price": 9,
                  "vat": 25.5,
                  "step": 60
                },
                {
                  "dimension": "energy",
                  "price": 0.69,
                  "vat": 25.5,
                  "step": 1
                }
              ],
              "condition": {
                "duration": {
                  "min": 0,
                  "max": 1800
                }
              }
            {
            "components": [
                {
                  "dimension": "energy",
                  "price": 0.69,
                  "vat": 25.5,
                  "step": 1
                },
                {
                  "dimension": "parkingTime",
                  "price": 4.7809,
                  "vat": 25.5,
                  "step": 60
                }
              ],
              "condition": {
                "duration": {
                  "min": 1800,
                }
              }
            }
            }
          ]
          "name": "Registered Users",
          "type": "emsp"
        },

In this example, the exact charging price cannot be calculated because the battery state and charging profile are unknown. These factors determine how long charging takes.

For illustration purposes, assume that charging 10 kWh takes 12 minutes. Based on this assumption, the charging price is calculated as follows:

(12 / 60 × 9) + (10 × 0.69) = EUR 8.70 + VAT

Energy and parking time dimensions

{
          "partner": "Partner's name",
          "partnerId": "a78f790a-cca7-11ed-ad10-42010aa40fc0",
          "currency": "EUR",
          "elements": [
            {
              "components": [
                {
                  "dimension": "energy",
                  "price": 0.6295,
                  "vat": 25.5,
                  "step": 1
                },
                {
                  "dimension": "parkingTime",
                  "price": 4.7809,
                  "vat": 25.5,
                  "step": 60
                }
              ],
              "condition": {
                "days": 
                  ["mo","tu","we","th","fr"]
                  },
                "time": {
                  "from": "09:00:00",
                  "to": "18:00:00"
                }
              },
            {
              "components": [
                {
                  "dimension": "energy",
                  "price": 0.6295,
                  "vat": 25.5,
                  "step": 1
                }
              ]
            }
          ],
          "name": "Charging card",
          "type": "emsp"
        },

In this example, the price calculation depends on the day of the week. On weekdays, a time-based parking fee of EUR 4.7809 per hour plus VAT applies while charging. On weekends and during nighttime, only energy consumption is charged.

Assume today is Tuesday at around noon. The vehicle charges for 12 minutes, while the driver spends a total of 18 minutes on a coffee break. Because the parking fee is time-based, it applies to the full 18 minutes. The total charging price is calculated as follows:

(18 / 60 × 4.7809) + (10 × 0.6295) = EUR 7.73 + VAT