Open Charge Point Protocol (OCPP): 1.6 vs 2.0.1 use cases

What is Open Charge Point Protocol (OCPP)?
Open Charge Point Protocol, usually called OCPP, is an open communication standard between an EV charging station and a charging station management system. In practice, it is the language that lets a charger report its status, start or stop a session, send meter values, receive configuration, and stay connected to the operator's backend.
For charge point operators, hotels, fleets, parking operators, and companies building charging networks, OCPP matters because the charger is only one part of the service. The operational layer needs charging station management software, payments, tariffs, invoices, access control, reports, and monitoring.
The standard is developed by the Open Charge Alliance, and the most common production versions today are OCPP 1.6 and OCPP 2.0.1.
Quick navigation:
- OCPP 1.6 vs OCPP 2.0.1
- OCPP 2.0.1 changes
- OCPP use case matrix
- Sample implemented use cases
- OCPP implementation problems
- OCPP FAQ

Why OCPP is important for charging station owners
Without a standard protocol, the owner of a charging station can become locked into one hardware vendor or one closed software platform. OCPP reduces that risk because many chargers and management systems can communicate through a shared protocol.
For a business owner, this has practical value:
- easier charger onboarding,
- better remote monitoring,
- remote configuration and diagnostics,
- less dependence on one hardware supplier,
- the ability to connect chargers with payments, access control, and reporting,
- a simpler path to scale from one location to a charging network.
EV24 uses OCPP as part of the operational layer for EV charging. The EV24 documentation on charger configuration shows how OCPP settings sit next to tariffs, authorization methods, address, QR code, and country requirements.
OCPP 1.6 vs OCPP 2.0.1
OCPP 1.6 is still widely used and supported by many AC and DC chargers. OCPP 2.0.1 adds stronger capabilities for large networks, device management, security, ISO 15118, smart charging, and richer transaction handling. The Open Charge Alliance notes that OCPP 2.0.1 is not backward compatible with OCPP 1.6, so version choice should be checked before hardware purchase or backend migration.
| Area | OCPP 1.6 | OCPP 2.0.1 |
|---|---|---|
| Market adoption | Very common in existing installations | Growing in newer, more advanced deployments |
| Transactions | Separate start, stop, status, and meter messages | More structured transaction event handling |
| Device management | Basic configuration and diagnostics | Richer device model, inventory, variables, and reports |
| Security | Possible, but often less standardized in practice | Better support for security profiles and certificate handling |
| Smart charging | Supported in simpler scenarios | Expanded support for energy management and ISO 15118 use cases |
What changed in OCPP 2.0.1
The older article focused heavily on OCPP 2.0 use cases. The important point is not that every operator needs every feature on day one. The point is that OCPP 2.0.1 gives larger charging networks a more structured way to manage chargers, security, transactions, tariffs, diagnostics, and ISO 15118.
Key changes include:
- Device management - inventory reporting, improved configuration, better error visibility, variables, and monitoring.
- Transaction handling - a more structured
TransactionEventapproach instead of separate start, stop, meter, and status messages. - Security profiles - stronger support for charger authentication, secure communication, certificates, security logs, and secure firmware updates.
- Smart charging - better support for energy management systems, local controllers, and advanced charging profiles.
- ISO 15118 support - better foundation for Plug & Charge and EV-side smart charging communication.
- Driver experience - more authorization options, tariff visibility, cost display, and station messages.
For procurement and implementation teams, the OCPP certification program is also worth checking. Certification does not replace field testing, but it helps verify that a charger or CSMS implementation follows the protocol specification.
OCPP 1.6 vs OCPP 2.0.1 use cases
The original technical table listed detailed OCPP use cases by category. For a business blog, the useful version is a map of which operational areas were already possible in OCPP 1.6 and which areas were added or expanded in OCPP 2.0.1.
| Use case family | OCPP 1.6 | OCPP 2.0.1 additions | Why it matters |
|---|---|---|---|
| Security | Basic authentication and transport security can be implemented | Security profiles, certificate updates, security event notifications, and stronger key management | Important for public networks, enterprise sites, and operators that need auditable infrastructure |
| Provisioning | Boot notification, reset, availability, and basic configuration | Set/get variables, base reports, custom reports, and network connection profile updates | Makes onboarding and remote configuration easier at scale |
| Authorization | RFID, local authorization list, cache, remote start, and online/offline authorization scenarios | PIN, payment terminal, contract certificates, ISO 15118 authorization, and more flexible ID tokens | Supports mixed access models: public, fleet, residential, hotel, and employee charging |
| Local authorization list | Send local list and check local list version | Better integration with broader token and ID handling | Useful when chargers must keep working during temporary connectivity loss |
| Transactions | StartTransaction, StopTransaction, MeterValues, and StatusNotification | TransactionEvent, more start/stop options, transaction status checks, and offline event handling | Session data becomes cleaner for payments, reports, invoices, and dispute handling |
| Remote control | Remote start, remote stop, unlock connector, and trigger message | More advanced remote stop scenarios, including ISO 15118 charging | Helps support teams resolve driver issues without a site visit |
| Availability | Status notification, heartbeat, change availability, and lock failure | More structured station and EVSE-level availability handling | Improves monitoring, map availability, and operational response |
| Reservation | Reserve, cancel reservation, and reserved EVSE handling | Better fit with richer authorization and transaction models | Relevant for fleets, premium parking, hotels, and workplace charging |
| Tariffs and costs | Usually handled mostly outside the protocol or in simpler flows | Tariff information, running cost, final cost, fallback tariff, and tariff updates during charging | Supports transparent pricing and better driver communication |
| Metering | Meter values for sessions and non-session reporting | More structured metering exchange during the charging loop | Critical for settlements, billing, energy reporting, and ROI analysis |
| Smart charging | Charging profiles, composite schedule, central smart charging, local smart charging | External charging limits, richer profile handling, local controller scenarios, and optimized scheduling | Helps sites manage grid constraints and energy costs |
| Firmware management | Firmware update support | Secure firmware update and local controller publishing flows | Reduces service cost and improves security over the charger lifecycle |
| ISO 15118 certificate management | Not a core OCPP 1.6 capability | Certificate installation, update, retrieval, deletion, and CA certificate management | Needed for Plug & Charge and more advanced EV-to-charger scenarios |
| Diagnostics | Log retrieval and basic diagnostics | Monitoring reports, variable monitoring, customer information, and more detailed diagnostics | Improves support, maintenance, and uptime in larger networks |
Detailed OCPP use case matrix
For teams comparing protocol versions during charger selection or backend integration, the detailed view is also useful. The table below keeps the original structure: use case ID, use case name, whether it exists in OCPP 1.6, and whether it is new in OCPP 2.0.
| UC ID | Use Case | OCPP 1.6 | New in OCPP 2.0 |
|---|---|---|---|
| A01 | Update charging station password for HTTP Basic Authentication | Yes | |
| A02 | Update charging station certificate by request of CSMS | Yes | |
| A03 | Update charging station certificate initiated by the charging station | Yes | |
| A04 | Security event notification | Yes | |
| B01 | Cold boot charging station | Yes | |
| B02 | Cold boot charging station - pending | Yes | |
| B03 | Cold boot charging station - rejected | Yes | |
| B04 | Offline behavior idle charging station | Yes | |
| B05 | Set variables | Yes | |
| B06 | Get variables | Yes | |
| B07 | Get base report | Yes | |
| B08 | Get custom report | Yes | |
| B09 | Set new network connection profile | Yes | |
| B10 | Migrate to new CSMS | Yes | |
| B11 | Reset without ongoing transaction | Yes | |
| B12 | Reset with ongoing transaction | Yes | |
| C01 | EV driver authorization using RFID | Yes | |
| C02 | Authorization using a start button | Yes | |
| C03 | Authorization using credit or debit card | Yes | |
| C04 | Authorization using PIN code | Yes | |
| C05 | Authorization for CSMS-initiated transactions | Yes | |
| C06 | Authorization using local ID type | Yes | |
| C07 | Authorization using contract certificates | Yes | |
| C08 | Authorization at EVSE using ISO 15118 External Identification Means | Yes | |
| C09 | Authorization by group ID | Yes | |
| C10 | Store authorization data in authorization cache | Yes | |
| C11 | Clear authorization data in authorization cache | Yes | |
| C12 | Start transaction with cached ID | Yes | |
| C13 | Offline authorization through local authorization list | Yes | |
| C14 | Online authorization through local authorization list | Yes | |
| C15 | Offline authorization of unknown ID | Yes | |
| C16 | Stop transaction with a master pass | Yes | |
| D01 | Send local authorization list | Yes | |
| D02 | Get local list version | Yes | |
| E01 | Start transaction options | Yes | |
| E02 | Start transaction - cable plugged in first | Yes | |
| E03 | Start transaction - ID token first | Yes | |
| E04 | Transaction started while charging station is offline | Yes | |
| E05 | Start transaction - ID not accepted | Yes | |
| E06 | Stop transaction options | Yes | |
| E07 | Transaction locally stopped by ID token | Yes | |
| E08 | Transaction stopped while charging station is offline | Yes | |
| E09 | Stop transaction when cable is disconnected on EV side | Yes | |
| E10 | Suspend transaction when cable is disconnected on EV side | Yes | |
| E11 | Connection loss during transaction | Yes | |
| E12 | Inform CSMS of offline transaction event | Yes | |
| E13 | Transaction-related message not accepted by CSMS | Yes | |
| E14 | Check transaction status | Yes | |
| E15 | End of charging process | Yes | |
| F01 | Remote start transaction - cable plugged in first | Yes | |
| F02 | Remote start transaction - remote start first | Yes | |
| F03 | Remote stop transaction | Yes | |
| F04 | Remote stop ISO 15118 charging from CSMS | Yes | |
| F05 | Remotely unlock connector | Yes | |
| F06 | Trigger message | Yes | |
| G01 | Status notification | Yes | |
| G02 | Heartbeat | Yes | |
| G03 | Change availability EVSE | Yes | |
| G04 | Change availability charging station | Yes | |
| G05 | Lock failure | Yes | |
| H01 | Reservation | Yes | |
| H02 | Cancel reservation | Yes | |
| H03 | Use a reserved EVSE | Yes | |
| H04 | Reservation ended and not used | Yes | |
| I01 | Show EV driver-specific tariff information | Yes | |
| I02 | Show EV driver running total cost during charging | Yes | |
| I03 | Show EV driver final total cost after charging | Yes | |
| I04 | Show fallback tariff information | Yes | |
| I05 | Show fallback total cost message | Yes | |
| I06 | Update tariff information during transaction | Yes | |
| J01 | Send meter values not related to a transaction | Yes | |
| J02 | Send transaction-related meter values | Yes | |
| J03 | Charging loop with metering information exchange | Yes | |
| K01 | Set charging profile | Yes | |
| K02 | Central smart charging | Yes | |
| K03 | Local smart charging | Yes | |
| K04 | Internal load balancing | Yes | |
| K05 | Remote start transaction with charging profile | Yes | |
| K06 | Offline behavior smart charging during transaction | Yes | |
| K07 | Offline behavior smart charging at start of transaction | Yes | |
| K08 | Get composite schedule | Yes | |
| K09 | Get charging profiles | Yes | |
| K10 | Clear charging profile | Yes | |
| K11 | Set or update external charging limit with ongoing transaction | Yes | |
| K12 | Set or update external charging limit without ongoing transaction | Yes | |
| K13 | Reset or release external charging limit | Yes | |
| K14 | External charging limit with local controller | Yes | |
| K15 | Charging with load leveling based on high-level communication | Yes | |
| K16 | Optimized charging with scheduling to the CSMS | Yes | |
| K17 | Renegotiating a charging schedule | Yes | |
| L01 | Secure firmware update | Yes | |
| L02 | Non-secure firmware update | Yes | |
| L03 | Publish firmware file on local controller | Yes | |
| L04 | Unpublish firmware file on local controller | Yes | |
| M01 | Certificate installation for EV | Yes | |
| M02 | Certificate update for EV | Yes | |
| M03 | Retrieve list of available certificates from a charging station | Yes | |
| M04 | Delete a specific certificate from a charging station | Yes | |
| M05 | Install CA certificate in a charging station | Yes | |
| M06 | Get charging station certificate status | Yes | |
| N01 | Retrieve log information | Yes | |
| N02 | Get monitoring report | Yes | |
| N03 | Set monitoring base | Yes | |
| N04 | Set variable monitoring | Yes |
Sample of implemented use cases
A use case matrix is useful for specification work, but implementation teams usually start with a smaller set of flows that prove the charger and CSMS can communicate reliably. These are the practical OCPP scenarios worth testing first.
| Scenario | Related use cases | What to verify |
|---|---|---|
| Charger connects to CSMS | B01, G02 | Boot notification, heartbeat, station identity, connector count, and stable WebSocket connection |
| Connector status is reported correctly | G01, G03, G04, G05 | Available, preparing, charging, suspended, faulted, and unavailable states match the real charger |
| Driver authorization works | C01, C04, C05, C10, C13 | RFID, PIN, app, QR, or backend-initiated authorization starts only for allowed users |
| Remote start and stop | F01, F02, F03, E01, E06 | The backend can start and stop sessions, including edge cases where the cable is plugged in before or after authorization |
| Meter values and transaction events | E02-E15, J01, J02, J03 | Energy readings, start time, stop time, connector, transaction ID, and final meter value are consistent |
| Offline session behavior | B04, C13, C15, E04, E08, E12 | The charger behaves predictably during connectivity loss and synchronizes session data after reconnecting |
| Tariff and cost display | I01-I06 | The driver sees tariff and cost information before, during, or after charging where the charger supports it |
| Smart charging profile | K01-K17 | Charging limits, schedules, local controller behavior, and external energy limits are applied correctly |
| Diagnostics and firmware | L01-L04, N01-N04 | Logs, monitoring reports, variable monitoring, and firmware flows work without interrupting normal operations |
Source code examples
The examples below show the shape of OCPP-J messages over WebSocket. They are simplified for readability, but they reflect the practical implementation pattern: CALL from one side, then CALLRESULT from the other side with the same message ID.
1. Charging station boots and connects to CSMS
[2, "boot-001", "BootNotification", {
"chargePointVendor": "ExampleVendor",
"chargePointModel": "AC22",
"chargePointSerialNumber": "EV24-DEMO-001",
"firmwareVersion": "1.6.0"
}]
[3, "boot-001", {
"currentTime": "2026-04-28T10:00:00Z",
"interval": 60,
"status": "Accepted"
}]
2. Driver is authorized by RFID or another idTag
[2, "auth-001", "Authorize", {
"idTag": "RFID-123456"
}]
[3, "auth-001", {
"idTagInfo": {
"status": "Accepted"
}
}]
3. Backend starts a session remotely
[2, "remote-start-001", "RemoteStartTransaction", {
"connectorId": 1,
"idTag": "APP-USER-42"
}]
[3, "remote-start-001", {
"status": "Accepted"
}]
4. Charger sends meter values during the transaction
[2, "meter-001", "MeterValues", {
"connectorId": 1,
"transactionId": 987654,
"meterValue": [{
"timestamp": "2026-04-28T10:15:00Z",
"sampledValue": [{
"value": "12.84",
"measurand": "Energy.Active.Import.Register",
"unit": "kWh"
}]
}]
}]
5. OCPP 2.0.1 transaction event sample
[2, "txevent-001", "TransactionEvent", {
"eventType": "Updated",
"timestamp": "2026-04-28T10:15:00Z",
"triggerReason": "MeterValuePeriodic",
"seqNo": 7,
"transactionInfo": {
"transactionId": "TX-987654"
},
"evse": {
"id": 1,
"connectorId": 1
},
"meterValue": [{
"timestamp": "2026-04-28T10:15:00Z",
"sampledValue": [{
"value": 12.84,
"measurand": "Energy.Active.Import.Register",
"unitOfMeasure": {
"unit": "kWh"
}
}]
}]
}]


What OCPP does during a charging session
A driver sees a simple process: scan a QR code, pay, plug in, and charge. Behind that process, the charger and the backend exchange multiple messages.

What to check before buying an OCPP charger
Not every “OCPP compatible” charger behaves the same way. Before buying hardware, check whether the charger has been tested with the management system you plan to use.
The most important questions are:
- which OCPP version is supported,
- whether the charger uses JSON over WebSocket,
- whether remote start and remote stop work reliably,
- how meter values are reported,
- whether connector statuses are accurate,
- whether firmware updates and diagnostics are available,
- how the charger handles offline sessions,
- whether payment terminal, QR, RFID, and PIN flows are supported.
For a broader hardware decision, start with how to choose an EV charging station. OCPP compatibility is necessary, but it is not the only criterion.
OCPP and payments
OCPP does not replace a payment system. It sends the charging session data that the payment and billing layer needs: authorization result, start time, stop time, connector, meter values, and status.
That is why operators should think about OCPP together with the business model. Public charging often needs payment terminals, QR payment, ad-hoc access, invoices, and settlement reports. Private charging may need access groups, RFID, PIN, employee billing, or fleet reports.
The EV24 charging app and charge point management system connect the driver-facing process with the operational backend, so OCPP data can support payments, tariffs, invoices, and reporting.
OCPP for integrations and custom EV apps
For larger projects, OCPP is only one integration layer. Companies may also need APIs for mobile apps, parking systems, CRM, accounting, or partner portals.
The EV24 Partner API supports these scenarios on top of the charging operations layer. For technical onboarding, the EV24 API documentation for integrators explains access, tokens, and base API requirements.

Common OCPP implementation problems
Most problems appear not in the specification but in implementation. Different chargers can interpret timing, statuses, meter values, and edge cases differently.
Common issues include:
- charger connects but does not report connector status correctly,
- remote start works only in some authorization modes,
- meter values are too rare or inconsistent,
- the station loses connectivity during a session,
- offline transactions are not synchronized cleanly,
- firmware changes alter message behavior,
- payment status and charging status are not aligned.
This is why OCPP testing should cover real charging sessions, failed payments, remote actions, offline behavior, and restart scenarios, not only a successful first connection.

Summary
Open Charge Point Protocol is one of the foundations of modern EV charging infrastructure. It helps connect chargers with a management system, reduces vendor lock-in, and enables monitoring, configuration, sessions, and metering.
For station owners, the key question is not only whether a charger supports OCPP. The real question is whether the whole operating model works: charger, backend, payments, access, reporting, support, and integrations.
FAQ
What does OCPP stand for?+
OCPP stands for Open Charge Point Protocol. It is a communication protocol between an EV charging station and a charging station management system.
What is the difference between OCPP 1.6 and OCPP 2.0.1?+
OCPP 1.6 is widely used and works well for many existing charging networks. OCPP 2.0.1 adds a more advanced device model, improved transaction handling, stronger security, ISO 15118 support, richer smart charging, and better driver facing information.
Are OCPP 1.6 and OCPP 2.0.1 compatible?+
No. OCPP 2.0.1 is not backward compatible with OCPP 1.6. Before buying chargers or migrating a backend, the operator should confirm which OCPP version the charger and CSMS support.
Which OCPP use cases are new in OCPP 2.0?+
New or expanded use cases include certificate management, security event notifications, variables and reports, PIN and payment terminal authorization, transaction status checks, tariff and cost display, advanced smart charging, ISO 15118 certificate management, and richer diagnostics.
Does OCPP handle payments?+
OCPP does not replace a payment system. It provides session, authorization, status, and meter data that payment, invoice, settlement, and reporting systems can use.
Why does OCPP matter for charge point operators?+
OCPP reduces vendor lock in and helps operators connect chargers with management software, monitoring, remote actions, tariffs, access control, payments, reports, and integrations.
How does EV24 use OCPP?+
EV24 uses OCPP as part of the charging operations layer. OCPP data from chargers can support station monitoring, session handling, tariffs, authorization, payments, billing, reporting, and integrations through the EV24 platform.