OCPP Fundamentals
    15 min read

    What is OCPP? The Complete Guide

    A comprehensive deep-dive into the Open Charge Point Protocol (OCPP) - the global standard that powers the electric vehicle charging ecosystem.

    The Open Charge Point Protocol (OCPP) is the backbone of the modern Electric Vehicle (EV) charging infrastructure. acting as the universal language that allows EV chargers (Charge Points) and software management systems (CSMS) to talk to each other.

    Whether you are a developer building charging software, a CPO (Charge Point Operator) managing a fleet, or simply an enthusiast, understanding OCPP is essential. In this guide, we'll cover everything from the basic architecture to the technical nuances of OCPP 1.6J and 2.0.1.

    What is OCPP?

    OCPP is an open-source communication protocol defined by the Open Charge Alliance (OCA). It standardizes the communication between:

    • The Charging Station (also known as the Charge Point or EVSE)
    • The Central System (CSMS - Charging Station Management System)

    Before OCPP, many charging stations used proprietary protocols, meaning if you bought a charger from Vendor A, you had to use Vendor A's software. OCPP broke this lock-in, functioning much like GSM did for mobile phones—allowing any hardware to work with any network.

    The Analogy: Your Phone and Your Carrier

    Think of the Charging Station as a mobile phone and the CSMS as the cellular network. Thanks to standards (GSM/LTE/5G), you can buy a phone from Apple or Samsung and connect it to Verizon, T-Mobile, or Vodafone. OCPP does the exact same thing for EV chargers. You can buy a charger from ABB, Alpitronic, or Wallbox, and connect it to any backend software compliant with the standard.

    How OCPP Works: The Architecture

    At its core, OCPP is a request-response protocol. The Charging Station and the CSMS exchange asynchronous messages to manage the charging process.

    In modern implementations (OCPP 1.6J and 2.0.1), this communication happens over WebSockets. The Charging Station acts as the WebSocket Client, and the CSMS acts as the WebSocket Server.

    Figure 1: Basic OCPP Architecture
    🔌Charging Station(WebSocket Client)
    OCPP over WebSocket (JSON)
    Internet / 4G / Ethernet
    ☁️CSMS(WebSocket Server)

    Key Features & Operations

    OCPP covers a wide range of functionalities required to operate a charging network remotely. Here are the most critical operations:

    1. Boot Notification

    When a charger powers up, it sends a BootNotification request. It introduces itself ("Hi, I'm Charger Model X, Serial Number 123"). The CSMS checks if this charger is allowed on the network and accepts or rejects it.

    2. Authorize

    Before a user can charge, they usually swipe an RFID card or use an app. The charger sends an Authorize request with the ID tag. The CSMS checks its database and responds with "Accepted" or "Invalid".

    3. Transaction Management

    This is the money-maker.

    • StartTransaction: Sent when charging begins. It creates a session ID.
    • StopTransaction: Sent when the user unplugs or the battery is full. It includes the final meter reading for billing.

    4. Meter Values

    While charging, the station repeatedly sends MeterValues (voltage, current, power, energy imported). This allows the CPO to monitor the health of the session and display real-time stats to the user.

    5. Smart Charging

    OCPP supports complex load balancing. The CSMS can send a SetChargingProfile message to tell the charger: "limit your output to 6kW between 6 PM and 8 PM." This prevents grid overload.

    OCPP Versions: 1.6J vs 2.0.1

    While there are older versions (1.2, 1.5), the industry currently resolves around two main versions:

    FeatureOCPP 1.6JOCPP 2.0.1
    AdoptionWidespread (Industry Standard)Growing, but lower hardware support
    ProtocolJSON or SOAP (mostly JSON)JSON only
    Smart ChargingBasic Profile supportAdvanced/Bidirectional (V2G)
    SecurityAdded later (Security Whitepaper)Native, robust TLS security
    Plug & ChargeNo (requires custom extentions)Native Support (ISO 15118)

    Recommendation: If you are building a new network today, support OCPP 1.6J covering 95% of existing hardware, but architect your system to handle 2.0.1 for future-proofing.

    Is OCPP Secure?

    Early versions of OCPP (1.5, 1.6S) were often implemented over plain HTTP, making them vulnerable to "Man-in-the-Middle" attacks.

    However, standard practice today is OCPP 1.6 Security Profile 2 or 3:

    • Profile 2 (TLS): Uses HTTPS/WSS (encrypted connection). This ensures no one can eavesdrop on authorization tags or commands.
    • Profile 3 (Client Certificates): Mututal TLS (mTLS). The charger and server both verify each other's certificates. This is the gold standard for security.

    Conclusion

    OCPP is the unsung hero of the electric transition. It ensures that when you pull up to a charger in Norway, USA, or Japan, the charger can communicate with its network seamlessly.

    For developers, the challenge lies in the complexity of implementation. While the JSON spec is readable, handling the asynchronous state machine of thousands of chargers in real-time is difficult. That is where robust testing and simulation tools become critical.