India’s EV charging stations reached 52,700 in 2026. The US has crossed 250,000 public charging points. The hardware is rolling out at scale. The software problem is acute, most charge point operators run fragmented systems where drivers cannot find available chargers, pricing is opaque, sessions fail without clear error messages, and the operator has no real-time visibility into network utilisation or revenue.
A charge point management system (CPMS) is the software that connects the charger hardware to the grid, the driver, the billing system, and the energy market, making an EV charging network commercially viable rather than just electrically functional.
Every charge point operator, whether a standalone network, a fuel retailer adding EV capability, a real estate developer adding amenity charging, or a fleet operator managing a private depot, needs software to make their charging investment generate revenue.
EngineerBabu built enterprise operations management for Adani Group, one of India’s largest energy conglomerates actively deploying EV charging infrastructure. CMMI Level 5. Google AI Accelerator 2024 Top 20. Contact: mayank@engineerbabu.com
What an EV Charging Management Platform Must Do, The Complete System
| Function | Platform Module |
| Charger connectivity | OCPP-based communication with charge point hardware |
| Charger management | Status monitoring, remote commands, firmware updates |
| Session management | Start, monitor, stop, and record every charging session |
| Driver authentication | RFID, app, QR code, plug-and-charge |
| Billing and payments | Session pricing, payment processing, receipts |
| Smart charging | Load management, demand response, grid optimisation |
| Driver app | Charger discovery, navigation, session monitoring, payment |
| Fleet management | Fleet-specific pricing, billing, usage reporting |
| Roaming | Enable drivers to use the network via partner networks |
| Analytics and reporting | Revenue, utilisation, energy, uptime per charger |
| Remote diagnostics | Fault detection, troubleshooting, firmware management |
| Energy management | Grid connection management, peak demand control |

Module 1 – OCPP Integration and Charger Connectivity
What is OCPP?
OCPP (Open Charge Point Protocol) is the communication protocol between a charge point (the hardware) and a Charge Point Management System (CPMS). It defines how a charger reports its status, how it starts and stops sessions, how it authenticates drivers, and how it receives configuration updates.
OCPP 1.6 is the current dominant version globally. OCPP 2.0.1 adds smart charging capabilities, plug-and-charge (ISO 15118), and improved security. A production CPMS must support both.
What the OCPP connection enables:
| OCPP Message | Direction | Function |
| BootNotification | Charger → CPMS | Charger announces itself on power-up |
| StatusNotification | Charger → CPMS | Charger reports status change (Available, Occupied, Faulted) |
| StartTransaction | Charger → CPMS | Driver starts a charging session |
| StopTransaction | Charger → CPMS | Session ends, with energy and duration data |
| MeterValues | Charger → CPMS | Periodic energy readings during session |
| RemoteStartTransaction | CPMS → Charger | CPMS remotely starts a session (app initiation) |
| RemoteStopTransaction | CPMS → Charger | CPMS remotely stops a session |
| ChangeConfiguration | CPMS → Charger | Update charger configuration parameters |
| UpdateFirmware | CPMS → Charger | Push firmware update |
| SetChargingProfile | CPMS → Charger | Smart charging, define power delivery schedule |
| Reset | CPMS → Charger | Reboot a faulted charger remotely |
The OCPP server architecture:
The CPMS runs a WebSocket server that maintains persistent connections to every charger in the network. Each charger connects on power-up and maintains the connection until powered off. OCPP messages flow over these WebSocket connections in both directions.
At scale, 10,000 chargers, the WebSocket server must handle 10,000 concurrent persistent connections with high availability. A horizontal scaling architecture, multiple WebSocket server instances behind a load balancer with sticky sessions, handles this without architectural complexity.

Module 2 – Session Management
Every charging session is a transaction. It begins when a driver plugs in and authenticates. It ends when they unplug or the session is manually stopped. The session record captures everything that happened in between.
Session lifecycle:
| Event | Trigger | System Action |
| Plug inserted | Physical connection detected | Charger status → Preparing |
| Driver authentication | RFID tap, app start, QR scan, or plug-and-charge | Identity verified, authorisation checked |
| Authorisation response | CPMS authorises or rejects | If authorised: session start; if rejected: display error |
| Charging begins | Charger energises the connector | Session record created, timer starts |
| Meter values (periodic) | Every 5 minutes or configurable interval | Energy delivered logged, running cost calculated |
| Session stop | Driver stops via app, RFID tap, or session limit reached | Final energy reading recorded, session closed |
| Billing event | Session data finalised | Bill calculated, payment charged, receipt sent |
| Charger available | Connector de-energised | Charger status → Available |
Session pricing models:
| Pricing Model | How Charged | Use Case |
| Per kWh | Fixed rate per unit of energy | Standard, most common |
| Per minute | Time-based pricing | AC charging where time is the constraint |
| Per session | Flat session fee | Simple, predictable |
| Time of use | Different rates by time of day | Peak/off-peak pricing |
| Member vs guest | Discounted rate for registered members | Loyalty and retention |
| Fleet rate | Volume-discounted rate for fleet accounts | Fleet operators |
Module 3 – Driver Authentication and Authorization
Authentication methods:
| Method | Technology | User Experience |
| RFID card | NFC/RFID card tap at charger | Simple, no phone required |
| Mobile app | QR scan or BLE beacon + app | Feature-rich, session monitoring in app |
| Plug-and-charge (PnC) | ISO 15118, automatic authentication via cable | Seamless, no action required |
| Credit/debit card | Contactless payment terminal on charger | Ad-hoc use without account |
| SMS/QR code | Driver scans QR, receives SMS OTP | Fallback for app issues |
The authorisation check:
When a driver authenticates, the CPMS checks: Is this ID (RFID number or account ID) in the authorised list? Is the account in good standing (not suspended, not overdue on payment)? If a payment method is required, is it validated? Has a roaming authorisation been received (for network roaming scenarios)?
Offline authorisation:
When a charger loses connectivity to the CPMS, it must still be able to authorise known drivers from a locally cached authorisation list. The CPMS pushes an updated authorisation list to each charger regularly, the charger stores it and uses it for local authorisation when offline. Sessions started offline are synchronised to the CPMS when connectivity is restored.
Module 4 – Smart Charging and Load Management
The smart charging problem:
A charging station with 20 DC fast chargers at 150 kW each has a potential peak demand of 3,000 kW. The grid connection may be sized for 1,500 kW. Without smart charging, the 21st charging session cannot be served, the breaker trips.
With smart charging, the CPMS dynamically allocates available power across active sessions, each session gets less than 150 kW when demand is high, but every driver continues charging rather than being cut off.
OCPP 2.0.1 SetChargingProfile:
Smart charging is implemented through OCPP’s SetChargingProfile command. The CPMS sends a charging profile to each charger defining the maximum power delivery in each time slot. The charger respects this profile, it will not deliver more power than the profile allows, even if the vehicle could accept more.
Smart charging scenarios:
| Scenario | What Smart Charging Does |
| Grid capacity constraint | Distribute available grid capacity across active sessions |
| Demand response | Reduce charging power during grid peak hours to avoid demand charges |
| Renewable integration | Shift charging demand to periods of high solar or wind generation |
| Fleet depot overnight | Spread fleet charging across the night to avoid peak demand charges |
| Dynamic pricing integration | Charge at lower power during high-rate periods, faster during low-rate periods |
Load balancing algorithm:
The CPMS continuously monitors total power draw across the site. When a new session starts or an existing session’s demand changes, the algorithm recalculates the optimal power allocation across all active sessions.
The allocation considers: minimum power required to keep each session active, session priority (fleet vs public, subscribed vs ad-hoc), and the site’s available grid capacity at the current moment.

Module 5 – Billing, Payments, and Revenue Management
The billing flow:
When a session ends, the CPMS has the complete session data, start time, end time, energy delivered in kWh, and the applicable pricing configuration. The billing engine calculates the session cost:
Session cost = Energy (kWh) × Rate (per kWh) + Session fee + Parking fee (if applicable) + Applicable taxes
The calculated amount is charged to the driver’s payment method, pre-authorised credit card, wallet balance, or fleet account. A receipt is sent via email and push notification.
Payment methods:
| Market | Payment Methods | Integration |
| India | UPI (GPay, PhonePe, Paytm), credit/debit cards, wallet | Razorpay |
| US | Credit/debit, Apple Pay, Google Pay | Stripe |
| Global | Cards + local wallets | Stripe + regional processors |
Fleet billing:
Fleet operators, companies managing EV vehicle fleets, need consolidated billing rather than per-session individual payments. The CPMS supports:
Fleet accounts with credit limits and monthly billing cycles. Driver-level cost allocation, which driver charged, when, at which charger, for internal cost allocation. Vehicle-level reporting, energy consumed per vehicle per month.
Invoice generation, monthly consolidated invoice per fleet account. Budget alerts, notification when a fleet account approaches its monthly budget.
Module 6 – Driver App and Charger Discovery
Driver app features:
| Feature | Details |
| Charger map | Real-time availability of all chargers in the network |
| Charger details | Connector types, power levels, pricing, amenities at location |
| Navigation | In-app directions to selected charger |
| Session start | QR scan or tap button, remote start via app |
| Session monitoring | Real-time energy delivered, cost accrued, estimated completion |
| Session stop | Remote stop from app |
| Payment | Saved card or UPI for instant post-session payment |
| History | Past sessions, energy, cost, receipts |
| Favourites | Save frequently used chargers |
| Notifications | Session start, completion, charger issue alerts |
Real-time availability:
The charger map shows every charger in the network with real-time status, available (green), occupied (orange), faulted (red), and offline (grey). The status updates within 10 seconds of any change, when a driver unplugs, the charger shows as available immediately, not after a polling delay.
Module 7 – Network Roaming
Roaming allows a driver registered with Network A to use chargers on Network B, similar to how a mobile phone on Vodafone can make calls on Airtel’s network when Vodafone coverage is unavailable.
The roaming protocol (OCPI):
OCPI (Open Charge Point Interface) is the standard protocol for EV charging network roaming. It defines how two CPMS platforms exchange: location and charger availability data, tariff information, session authorisation, and CDR (Charge Detail Record) for billing settlement.
A CPMS that implements OCPI can connect to the national roaming hub, in India, this is managed by BEE; in Europe, by Hubject, and immediately enable its drivers to use any participating network’s chargers.
Roaming settlement:
When a driver from Network A charges at Network B’s charger, Network B sends a CDR to Network A with the energy delivered and the applicable rate. Network A bills the driver at its own rate (which may be higher than Network B’s rate to cover the settlement cost).
Network A settles with Network B monthly for the difference. The roaming module tracks these cross-network CDRs and generates settlement invoices automatically.

Build Cost: EV Charging Software Development
| Module | Cost Range (USD) | Notes |
| OCPP 1.6 + 2.0.1 server implementation | $10K – $20K | WebSocket server, OCPP message handling |
| Charger management + remote commands | $6K – $12K | Status monitoring, reset, firmware update |
| Session management engine | $8K – $15K | Full session lifecycle, meter values |
| Driver authentication (RFID + app + PnC) | $6K – $12K | |
| Smart charging + load balancing | $8K – $15K | SetChargingProfile, grid management |
| Billing engine + payment integration | $8K – $15K | All pricing models, fleet billing |
| Driver mobile app (Flutter, iOS + Android) | $10K – $18K | |
| Roaming (OCPI implementation) | $6K – $12K | |
| Fleet management portal | $5K – $10K | |
| Analytics dashboard (operator) | $6K – $12K | Revenue, utilisation, uptime |
| Remote diagnostics + firmware management | $5K – $10K | |
| AWS + VAPT + Year 1 ops | $5K – $10K | |
| Total | $83K – $161K | Full EV charging platform |
EngineerBabu built enterprise technology for Adani Group, actively deploying EV charging infrastructure across India. CMMI Level 5. Google AI Accelerator 2024 Top 20. Contact: mayank@engineerbabu.com
FAQs about EV Charging Software Development
-
What is OCPP and why does every EV charging platform need to implement it?
OCPP (Open Charge Point Protocol) is the open standard that defines the communication protocol between electric vehicle charge points (hardware) and the Charge Point Management System (software). It is maintained by the Open Charge Alliance and adopted by virtually every major charge point manufacturer globally, ABB, Schneider Electric, Delta Electronics, Exicom, and hundreds of others all implement OCPP in their chargers. A CPMS that implements OCPP can connect to any OCPP-compliant charger from any manufacturer without a custom integration per manufacturer. This is the critical advantage of OCPP, it prevents vendor lock-in and allows charge point operators to deploy hardware from multiple manufacturers in the same network, all managed through one platform. OCPP 1.6 is the dominant version in current deployments. OCPP 2.0.1 adds smart charging profiles, plug-and-charge (ISO 15118), and enhanced security that are essential for next-generation charging infrastructure.
-
What is smart charging and how does it prevent grid overload at a charging station?
Smart charging is the dynamic management of power delivery across multiple charging sessions to keep total power draw within the available grid connection capacity. Without smart charging, each charging session draws its maximum rated power independently, a site with 20 chargers at 150 kW each would theoretically draw 3,000 kW simultaneously, far exceeding the grid connection capacity and causing breaker trips. Smart charging works by having the Charge Point Management System continuously monitor total power draw and set charging profiles on each active charger, OCPP SetChargingProfile commands, that limit individual session power delivery so that the sum of all sessions stays within the available capacity. As sessions start and stop, the algorithm recalculates and updates profiles dynamically. Every driver continues charging, just at a reduced power level during peak demand periods rather than being refused service.
-
What is EV charging roaming and how does it work technically?
EV charging roaming allows a driver registered with one charging network to use chargers operated by a different network, similar to mobile phone roaming. Technically, it is implemented through OCPI (Open Charge Point Interface), the standard API for inter-network communication. When a driver from Network A attempts to charge at Network B’s charger, Network B’s CPMS sends an authorisation request to the national roaming hub, which forwards it to Network A’s CPMS for approval. Network A’s CPMS confirms the driver’s account is valid and in good standing. Network B’s CPMS authorises the session. When the session ends, Network B sends a Charge Detail Record (CDR) to Network A with the energy delivered and applicable tariff. Network A bills the driver at its own rate and settles the wholesale amount with Network B on a monthly basis. A CPMS that implements OCPI can connect to national and international roaming hubs and immediately enable its drivers to use any connected network’s chargers.