Deep dive · In the raw · optional

The charger's data record, as published

About 12 min · 3 questions ·

Monday
The situation

After the portal of stop 05, the compliance manager opens the record itself: what the operator's interface returns for the new charger when the national access point, or any app, asks for it.

The interface speaks OCPI. AFIR does not prescribe the format, but this is how most European operators publish the static and dynamic data the regulation lists.

The questionWhere in the record does each AFIR data item sit, and what in it comes from the ID registration?

Guess firstAFIR names four dynamic data items. Which four fields of the record carry them?RevealHide

status for operational state and availability (two items in one field), tariff_ids pointing to the ad hoc tariff, and energy_mix.is_green_energy for the renewable flag.

What you are looking at

obliges operators to make static and dynamic data on their public charge points available through an application programming interface, free of charge, and to report that interface to the . The regulation lists the data, not the format; in practice the interface speaks , the protocol, whose Locations module describes sites, charge points and connectors and whose Tariffs module carries the prices.

The record below is the new 150 kW charger from stop 02. Select the lines to see which AFIR item each one carries.

OCPI 2.3.0, Locations module, as returned by the operator's interfaceThe site, the charge point, the flags

One location with one EVSE and one connector. Static data changes when the site changes, dynamic data with every session.

  1. {
  2. Line 2The ID code, part one

    AFIR asks every Member State to appoint an identification registration organisation that issues ID codes to operators. Country code plus party ID is that code; it opens every record and every EVSE ID of the company.

  3. "party_id": "CMP",
  4. "id": "DE-CMP-L00912",
  5. "publish": true,
  6. "address": "Raststaette Nordfeld 1",
  7. "city": "Soltau",
  8. "postal_code": "29614",
  9. "country": "DEU",
  10. "coordinates": { "latitude": "52.9864", "longitude": "9.8412" },
  11. "parking_type": "ALONG_MOTORWAY",
  12. "evses": [{
  13. "uid": "912-1",
  14. "connectors": [{
  15. "id": "1",
  16. "format": "CABLE",
  17. "power_type": "DC",
  18. "max_voltage": 920,
  19. "max_amperage": 500,
  20. "max_electric_power": 150000,
  21. "last_updated": "2026-10-02T09:00:00Z"
  22. }],
  23. }],
  24. "owner": { "name": "Raststaetten Nordfeld GmbH" },
  25. "help_phone": "+49 800 2667546",
  26. "time_zone": "Europe/Berlin",
  27. "last_updated": "2026-10-02T09:00:00Z"
  28. }
location-DE-CMP-L00912.json: the whole file, to copy
{
  "country_code": "DE",
  "party_id": "CMP",
  "id": "DE-CMP-L00912",
  "publish": true,
  "name": "Motorway services Nordfeld",
  "address": "Raststaette Nordfeld 1",
  "city": "Soltau",
  "postal_code": "29614",
  "country": "DEU",
  "coordinates": { "latitude": "52.9864", "longitude": "9.8412" },
  "parking_type": "ALONG_MOTORWAY",
  "evses": [{
    "uid": "912-1",
    "evse_id": "DE*CMP*E000912*1",
    "status": "AVAILABLE",
    "capabilities": ["CONTACTLESS_CARD_SUPPORT", "CREDIT_CARD_PAYABLE", "DEBIT_CARD_PAYABLE", "RFID_READER", "REMOTE_START_STOP_CAPABLE"],
    "connectors": [{
      "id": "1",
      "standard": "IEC_62196_T2_COMBO",
      "format": "CABLE",
      "power_type": "DC",
      "max_voltage": 920,
      "max_amperage": 500,
      "max_electric_power": 150000,
      "tariff_ids": ["ADHOC-DC-2026-10"],
      "last_updated": "2026-10-02T09:00:00Z"
    }],
    "last_updated": "2026-10-05T12:14:30Z"
  }],
  "parking_places": [{ "id": "P-1", "vehicle_types": ["PERSONAL_VEHICLE"], "restricted_to_type": false }, { "id": "P-D", "vehicle_types": ["DISABLED"], "standards": ["PAS 1899"], "restricted_to_type": true }],
  "operator": { "name": "Compliance Charging GmbH", "website": "https://www.compliance-charging.example" },
  "owner": { "name": "Raststaetten Nordfeld GmbH" },
  "help_phone": "+49 800 2667546",
  "time_zone": "Europe/Berlin",
  "opening_times": { "twentyfourseven": true },
  "energy_mix": { "is_green_energy": true, "supplier_name": "Nordfeld Energie", "energy_product_name": "Oekostrom Mobil" },
  "last_updated": "2026-10-02T09:00:00Z"
}

A composed record in the structure of the OCPI 2.3.0 Location, EVSE, Connector and EnergyMix objects. The data items follow Article 20 of AFIR.

OCPI 2.3.0, Tariffs module, the tariff the record points toThe ad hoc price

Published once, referenced by every connector it applies to. Changing it here changes it in every app.

  1. {
  2. "country_code": "DE",
  3. "party_id": "CMP",
  4. "id": "ADHOC-DC-2026-10",
  5. "currency": "EUR",
  6. Line 6The ad hoc tariff

    OCPI marks tariffs for drivers without a contract as AD_HOC_PAYMENT. This is the price AFIR wants shown at the station and in the data, not what any provider charges its own customers.

  7. "elements": [
  8. ],
  9. "last_updated": "2026-10-01T00:00:00Z"
  10. }
tariff-ADHOC-DC-2026-10.json: the whole file, to copy
{
  "country_code": "DE",
  "party_id": "CMP",
  "id": "ADHOC-DC-2026-10",
  "currency": "EUR",
  "type": "AD_HOC_PAYMENT",
  "tax_included": "YES",
  "tariff_alt_text": [{ "language": "en", "text": "0.69 EUR per kWh incl. VAT. After charging: 0.10 EUR per minute of occupancy." }],
  "elements": [
    { "price_components": [{ "type": "ENERGY", "price": 0.69, "vat": 19.0, "step_size": 1 }] },
    { "price_components": [{ "type": "PARKING_TIME", "price": 6.00, "vat": 19.0, "step_size": 60 }] }
  ],
  "last_updated": "2026-10-01T00:00:00Z"
}

Tariff type, tax flag, display text and the two price components as OCPI 2.3.0 defines them; the price per kWh and the occupancy fee are what Article 5(4) of AFIR requires at 50 kW and more.

AFIR, Article 20, mappedEvery data item, and the field that carries it
KindField
Geographic locationwherestaticaddress, coordinates
Number of connectorshow manystaticconnectors
Parking spaces for people with disabilitieshow manystaticparking_places with vehicle type DISABLED
Owner and operator contactwhom to callstaticoperator, owner, help_phone
Opening hourswhenstaticopening_times
ID code of the operatorwhostaticcountry_code, party_id
Connector typewhat plugstaticconnectors.standard
Type of currentAC or DCstaticconnectors.power_type
Power of the stationall points togetherstaticno field of its own: the sum of its charge points
Power of the charge pointkWstaticconnectors.max_electric_power
Vehicle type compatibilitywho fitsstaticparking_places.vehicle_types
Operational statusworking or notdynamicstatus
Availabilityfree or takendynamicstatus
Ad hoc pricewhat it costsdynamictariff_ids, the tariff
100% renewableyes or nodynamicenergy_mix.is_green_energy

The data items of Article 20 of AFIR against the fields of an OCPI location record.

What the record says about compliance

Three things the compliance manager checks in the raw record, not in a portal: the status timestamp moves when the charger changes state, so the dynamic data is live and not a daily copy; the tariff in the data is the tariff on the screen, because both come from the same object; and the ID code in every identifier is the one the registration organisation issued. A record that passes these three is what AFIR means by data availability. How the same data reaches apps and navigation systems is shown in Charging infrastructure, stop 06.

Check your understanding

3 questions. Answer all of them to complete this stop. Each answer explains itself.

01Question 1 of 3

Which field carries AFIR's operational status, and which the availability?

02Question 2 of 3

What does is_green_energy true mean in this record?

03Question 3 of 3

Who issued the code CMP that opens every identifier in the record?

  1. EUR-Lex: Regulation (EU) 2023/1804 (AFIR), Articles 3, 4, 5 and 20. https://eur-lex.europa.eu/eli/reg/2023/1804/oj. Checked 09 Oct 2026. © European Union, reused under Commission Decision 2011/833/EU.
  2. EVRoaming Foundation: OCPI 2.3.0, Locations module: Location, EVSE and Connector objects, EnergyMix. https://github.com/ocpi/ocpi/blob/2.3.0/release/core/mod_locations.asciidoc. Checked 11 Oct 2026.
  3. EVRoaming Foundation: OCPI 2.3.0, Tariffs module: ad hoc tariffs and display text. https://github.com/ocpi/ocpi/blob/2.3.0/release/core/mod_tariffs.asciidoc. Checked 11 Oct 2026.
  4. EVRoaming Foundation: OCPI 2.3.0, Locations module: Location, EVSE and Connector objects, EnergyMix. https://github.com/ocpi/ocpi/blob/2.3.0/release/core/mod_locations.asciidoc. Checked 11 Oct 2026.
  5. EUR-Lex: Regulation (EU) 2023/1804 (AFIR), Articles 3, 4, 5 and 20. https://eur-lex.europa.eu/eli/reg/2023/1804/oj. Checked 09 Oct 2026. © European Union, reused under Commission Decision 2011/833/EU.
  6. EVRoaming Foundation: OCPI 2.3.0, Tariffs module: ad hoc tariffs and display text. https://github.com/ocpi/ocpi/blob/2.3.0/release/core/mod_tariffs.asciidoc. Checked 11 Oct 2026.
  7. EUR-Lex: Regulation (EU) 2023/1804 (AFIR), Articles 3, 4, 5 and 20. https://eur-lex.europa.eu/eli/reg/2023/1804/oj. Checked 09 Oct 2026. © European Union, reused under Commission Decision 2011/833/EU.
  8. EUR-Lex: Regulation (EU) 2023/1804 (AFIR), Articles 3, 4, 5 and 20. https://eur-lex.europa.eu/eli/reg/2023/1804/oj. Checked 09 Oct 2026. © European Union, reused under Commission Decision 2011/833/EU.
  9. EVRoaming Foundation: OCPI 2.3.0, Locations module: Location, EVSE and Connector objects, EnergyMix. https://github.com/ocpi/ocpi/blob/2.3.0/release/core/mod_locations.asciidoc. Checked 11 Oct 2026.
  10. EUR-Lex: Regulation (EU) 2023/1804 (AFIR), Articles 3, 4, 5 and 20. https://eur-lex.europa.eu/eli/reg/2023/1804/oj. Checked 09 Oct 2026. © European Union, reused under Commission Decision 2011/833/EU.
Was this helpful?