OCPI 2.2.1
Last updated: November 12, 2025
Everything you need to know about OCPI 2.2.1 and the ENAPI platform
The ENAPI Transaction Broker supports OCPI 2.2.1. Note that the following modules are not yet implemented:
ChargingProfiles
Please let us know if you have an urgent need for this module.
Furthermore, the CANCEL_RESERVATION command is not currently supported.
🔑 Token Encoding
OCPI 2.2 introduced base64 token encoding of authorization tokens. However, not all platforms support token encoding. ENAPI provides configuration to each platform, allowing you to define whether tokens should be encoded or not.
🔌 Roaming Partners
ENAPI's Credentials
As part of the Credentials handshake, ENAPI will provide your system with only a single Credentials Role - ENAPI's own, with the HUB market role.
Receiving Roaming Partner Credentials
Data received from roaming partners via ENAPI will have the country_code and party_id of the roaming partner in the data object.
Hub Client Info is partially implemented as a means of discovering OCPI parties that you have a roaming agreement with. ENAPI sends a request to both sides when an agreement is made. Currently ENAPI only tracks CONNECTED and SUSPENDED statuses.
If needed, ENAPI can provide roaming partners via the Credentials module (in the roles field), instead of via the Hub Client Info module.
🌐 Version Interoperability
Roaming with a 2.1.1 Partner
Your partner will not receive data fields and enumeration values that were added in OCPI 2.2 unless they are explicitly back-ported by ENAPI. Please refer to the OCPI changelog (section 17 of the OCPI 2.2.1 specification) for differences between the versions.
Locations
Locations from your partner will always have a null
statesince this field does not exist in 2.1.1.Your partner will not receive Locations with
publish=falseset.The
operator.namefield is replaced with the Location owner's party ID. For example, if the owner hascountry_code=DEandparty_id=CPO, the value of the field will beDE*CPO.Your partner will not receive Connectors with standards and power types which are not available in OCPI 2.1.1.
Your partner can only receive a single Tariff ID per Connector. ENAPI will attempt to select the most appropriate based on the Tariff type. The field will be null if none can be selected.
Tokens
The
issuerfield is replaced with the Token owner's party ID. For example, if the owner hascountry_code=DEandparty_id=MSP, the value of the field will beDE*MSP.
Sessions and CDRs
The
RESERVATIONsession status is changed toPENDINGfor OCPI 2.1.1 partners.The
COMMANDauth method is changed toAUTH_REQUESTfor OCPI 2.1.1 partners.Charging period dimensions with types not available in OCPI 2.1.1 are not sent to OCPI 2.1.1 partners.
Roaming with a 2.3.0 Partner
You will not receive data fields and enumeration values that were added in OCPI 2.3.0 unless they are explicitly back-ported by ENAPI.