Front Matter
Protocol overview, copyright information, complete version history, document revision policy, and the full table of contents for all 19 chapters of the OCPI 2.3.0 specification.
OCPI - Open Charge Point Interface
Protocol overview and version history from OCPI 2.2 through 2.3.0, introduction and background of the Open Charge Point Interface, and its main functionality.
Terminology and Definitions
Key terms, abbreviations, market roles, provider/operator distinctions, charging topology, variable naming conventions, cardinality, and data retention rules used throughout the OCPI protocol.
Supported Topologies
Network topologies supported by OCPI, from simple peer-to-peer connections through dual and mixed-role configurations to Hub-based architectures with message routing.
Transport and Format
JSON/HTTP transport layer, authentication, pull/push models, request and response formats, message routing, unique message IDs, interface endpoints, and offline behaviour.
Status Codes
HTTP transport status codes and OCPI content-level status codes covering the success (1xxx), client error (2xxx), server error (3xxx), and hub error (4xxx) ranges.
Versions Module
Required base module for any OCPI connection. Clients use it to learn which versions of OCPI a server supports, and which modules are available for each version.
Credentials Module
Exchange of credentials tokens used for authorisation of requests between OCPI parties. Every OCPI request must contain a credentials token in the HTTP Authorization header.
Locations Module
Charging Location objects describing the operator's charging sites, including EVSEs, Connectors, and Parking information. Owned by the CPO back-end system.
Sessions Module
The Session object describes one charging session. Sessions are owned by the CPO back-end and can be retrieved via GET or pushed by the CPO to another system.
CDRs Module
Charge Detail Record describing a concluded charging session — the only billing-relevant object. Covers the CDR lifecycle, sender and receiver interfaces, object descriptions, and data types.
Tariffs Module
Provides eMSPs with information about tariffs used by the CPO. Covers flow and lifecycle, sender and receiver interfaces, the Tariff object structure with examples, and related data types.
Tokens Module
Gives CPOs knowledge of token information from eMSPs. eMSPs push Token information so CPOs can build a cache to authorise charging sessions and route CDRs to the right party.
Commands Module
Enables remote commands to be sent to a Location/EVSE: cancelling reservations, reserving charge points, starting and stopping sessions, and unlocking connectors. Processed asynchronously.
ChargingProfiles Module
Allows SCSPs and MSPs to send (Smart) Charging Profiles to a Location/EVSE. Also supports requesting the ActiveChargingProfile from a Location/EVSE.
HubClientInfo Module
Provides parties connected to a Hub with the connection status of other parties, enabling CPOs and eMSPs to know which parties are currently online.
Payments Module
Supports the Payment Terminal use case for direct payment in the roaming world. Consists of two main objects: Terminal and Financial Advice Confirmation.
Bookings Module
Gives eMSPs information about available booking options the CPO offers. eMSPs can request time slots to reserve charging sessions for EV drivers. Introduced in OCPI 2.3.0-booking-1.0.
Types
Fundamental data types: primitive types (class, enum, OpenEnum, string, number), formatting rules (CiString, DateTime, URL), and common reusable classes (DisplayText, Price, TaxAmount, Role).
Changelog
Complete changelog documenting all changes across OCPI versions, from 2.1.1 through 2.3.0-booking-1.0. Includes detailed impact assessments for eMSP and CPO implementations.
Guides marked Coming Soon are actively being developed. Check back for updates as more implementation guides are published.