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 state since this field does not exist in 2.1.1.

  • Your partner will not receive Locations with publish=false set.

  • The operator.name field is replaced with the Location owner's party ID. For example, if the owner has country_code=DE and party_id=CPO, the value of the field will be DE*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 issuer field is replaced with the Token owner's party ID. For example, if the owner has country_code=DE and party_id=MSP, the value of the field will be DE*MSP.

Sessions and CDRs

  • The RESERVATION session status is changed to PENDING for OCPI 2.1.1 partners.

  • The COMMAND auth method is changed to AUTH_REQUEST for 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.