The charger's data record, as published
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.
One location with one EVSE and one connector. Static data changes when the site changes, dynamic data with every session.
{- 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.
"party_id": "CMP","id": "DE-CMP-L00912","publish": true,"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","connectors": [{"id": "1","format": "CABLE","power_type": "DC","max_voltage": 920,"max_amperage": 500,"max_electric_power": 150000,"last_updated": "2026-10-02T09:00:00Z"}],}],"owner": { "name": "Raststaetten Nordfeld GmbH" },"help_phone": "+49 800 2667546","time_zone": "Europe/Berlin","last_updated": "2026-10-02T09:00:00Z"}
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.
Published once, referenced by every connector it applies to. Changing it here changes it in every app.
{"country_code": "DE","party_id": "CMP","id": "ADHOC-DC-2026-10","currency": "EUR",- 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.
"elements": [],"last_updated": "2026-10-01T00:00:00Z"}
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.
| Kind | Field | |
|---|---|---|
| Geographic locationwhere | static | address, coordinates |
| Number of connectorshow many | static | connectors |
| Parking spaces for people with disabilitieshow many | static | parking_places with vehicle type DISABLED |
| Owner and operator contactwhom to call | static | operator, owner, help_phone |
| Opening hourswhen | static | opening_times |
| ID code of the operatorwho | static | country_code, party_id |
| Connector typewhat plug | static | connectors.standard |
| Type of currentAC or DC | static | connectors.power_type |
| Power of the stationall points together | static | no field of its own: the sum of its charge points |
| Power of the charge pointkW | static | connectors.max_electric_power |
| Vehicle type compatibilitywho fits | static | parking_places.vehicle_types |
| Operational statusworking or not | dynamic | status |
| Availabilityfree or taken | dynamic | status |
| Ad hoc pricewhat it costs | dynamic | tariff_ids, the tariff |
| 100% renewableyes or no | dynamic | energy_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.
Which field carries AFIR's operational status, and which the availability?
One field, two AFIR items: the status values separate out of order from available, charging, reserved and blocked.
What does is_green_energy true mean in this record?
It is AFIR's yes or no on 100% renewable electricity, referring to the operator's supply contract, named in the supplier fields.
Who issued the code CMP that opens every identifier in the record?
Article 20 of AFIR asks each Member State to appoint an IDRO that issues ID codes to operators and providers.
- OCPI Open Charge Point Interface: an open protocol for roaming between operators and e-mobility service providers. EV charging fundamentals, stop 03 Glossary
- Roaming Charging in another company's network with your own card or app. EV charging fundamentals, stop 03 Glossary
- AFIR Alternative Fuels Infrastructure Regulation (EU) 2023/1804: EU rules for public charging, from payment to coverage. EV charging fundamentals, stop 08 Glossary
- National access point A digital interface set up by a Member State as a single point of access to data, including charging infrastructure data under AFIR. Stop 05 Glossary
- 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.
- 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.
- 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.
- 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.
- 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.
- 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.
- 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.
- 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.
- 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.
- 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.