If you have seen "OCPP 1.6J" on a charger datasheet, you already know that the charger can connect to a central management system. But what does that single letter "J" mean, and why is version 1.6 still running on most of the market? This article explains OCPP 1.6J at the level a charge point operator needs: technical enough to be useful, without drowning you in detail.
A short definition of OCPP 1.6J
OCPP (Open Charge Point Protocol) is an open communication protocol published by the Open Charge Alliance. It defines the rules of the conversation between a charger and its charging station management system (CSMS, called the Central System in older documents). Version 1.6 was published in 2015. The J at the end means that messages are encoded as JSON and carried over a WebSocket connection. The same version also has a "1.6S" variant that uses SOAP/XML, but almost every new installation uses 1.6J.
In short, with OCPP 1.6J the charger goes online, opens a persistent WebSocket connection to the management system, and both sides exchange short JSON messages over that channel.
Why is it still so common?
Even though newer OCPP versions (2.0.1 and 2.1) have been published, 1.6J remains dominant in the field for several reasons:
- Maturity: Nearly every AC and DC charger manufacturer has supported 1.6J for years, and the bugs have been worked out.
- Simplicity: The message set is relatively small, so integration is quick.
- Broad software support: Almost every CSMS speaks 1.6J, which gives you flexibility when choosing hardware.
- Certification: The OCA's official certification programme started with 1.6.
Feature profiles in OCPP 1.6J
Version 1.6 groups its functions into "profiles". A charger must support the Core profile; the others are optional.
- Core: Basic messages such as BootNotification, Heartbeat, StatusNotification, Authorize, StartTransaction, StopTransaction, MeterValues, RemoteStart/StopTransaction, Reset, UnlockConnector and ChangeConfiguration.
- Firmware Management: Remote software updates and diagnostics upload.
- Local Auth List Management: A local list so the charger can validate cards without internet.
- Reservation: Reserving a specific connector for a user.
- Smart Charging: Limiting power and current with charging profiles.
- Remote Trigger: Asking the charger to send a specific message right away.
A charger that is "OCPP 1.6J compliant" does not necessarily support all of these profiles. Ask separately about smart charging and local list support before you buy.
How does a typical charging session work?
- The charger powers up, opens a WebSocket connection to the CSMS and sends a BootNotification.
- The CSMS replies with the current time and the Heartbeat interval.
- The connector status is reported with StatusNotification (Available, Preparing and so on).
- The user taps an RFID card; the charger checks it with Authorize.
- When the cable is plugged in, the charger sends StartTransaction and the CSMS returns a transactionId.
- During charging, energy and power data flow in with MeterValues.
- When the session ends, StopTransaction reports the closing meter value.
This flow is the foundation for billing and reporting.
Limits of OCPP 1.6J
1.6J is a standard that works well, but it has some gaps. Security profiles were not part of the original release; they were added later through the "Security Whitepaper". Charger configuration relies on a key–value list that differs between manufacturers. There is also no native support for newer scenarios such as ISO 15118 Plug & Charge or bidirectional charging. That is why it is worth reviewing the differences between OCPP 1.6J, 2.0.1 and 2.1 for new investments.
Practical advice for operators
Most of the chargers in your field are probably speaking 1.6J, and that will stay true for years. So it matters that your management software supports 1.6J completely while also managing 2.0.1 and 2.1 chargers in the same dashboard. Üreticy's OCPP software runs all three versions on the same network, so you do not need a separate system for older and newer chargers.
Conclusion
OCPP 1.6J is a mature, widely used charging protocol based on JSON and WebSocket. It supports the core charging session, remote commands and smart charging; for more advanced security and energy scenarios you need to look at versions 2.0.1 and 2.1. When you buy a charger, look beyond the "1.6J" label and check which profiles are actually supported.
