⚡ Virtual Charging Station · Virtual ChargePoint · SaaS

The OCPP Simulator
for CSMS Testing

Simulate virtual charging stations and EVs via REST API — no hardware needed. SimIt lets CSMS vendors test every edge case, from BootNotification to smart charging, before going live.

Get API key → See features
4,096 simulators registered

Everything you need to simulate
an EV charging network

From a single connector to hundreds of concurrent stations — SimIt covers every scenario your CSMS needs to handle.

🏗️

Multi-EVSE Architecture

Simulate multiple EVSEs and virtual chargepoints per station. Configure any topology your CSMS expects, from single-port units to large multi-port sites.

🔋

Realistic EV Simulation

Virtual EVs with live battery tracking. Watch the charge level rise as your CSMS manages the session — just like a real vehicle plugged in.

Accurate Energy Metering

Meter readings flow to your CSMS on schedule, indistinguishable from physical hardware. Your billing and reporting features get real data to work with.

🔌

AC & DC Charging

Supports both AC (up to 11 kW) and DC fast-charging (up to 90 kW) modes with dynamic power distribution and charging profile management.

🌐

REST API Control

Full programmatic control over every simulator lifecycle. Integrate directly with your test harness, CI pipeline, or load-testing scripts.

📡

Network Fault Injection

Simulate disconnects, reconnects, and error states on demand. Verify your CSMS handles degraded conditions safely and recovers correctly.

⏱️

Simulated Time Control

Run time-dependent scenarios — session timeouts, reservation expiry, scheduled charging — instantly, without waiting for real time to pass.

📈

High Concurrency

Spin up hundreds of concurrent charging stations and EVs simultaneously. SimIt's cloud infrastructure handles the scale — no setup, no provisioning required on your end.

🔁

Auto-Reconnect

Each station reconnects automatically with random jitter on connection loss, mirroring real-world charger behaviour your CSMS must handle.

🔐

WebSocket Security

Connect to CSMS endpoints that require Basic Auth or TLS. Pass a security object at create time — SimIt adds the Authorization header and SSL context automatically, with no changes to your OCPP logic.

🆕

OCPP 2.0.1

Simulate OCPP 2.0.1 charging stations alongside existing 1.6 stations. Full transaction lifecycle, smart charging profiles, and device model support — connect any 2.0.1-capable CSMS today.

Transparent plans that scale with your test load

Every plan includes concurrent simulator capacity with predictable expansion pricing as your OCPP traffic grows.

Free

$0/mo

1 chargepoint + burst preview
Exploration

Dev

$69/mo

20 chargepoints
Individual developers

Team

$179/mo

100 chargepoints
Small teams / MVPs

Load

$549/mo

500 chargepoints
Load testing

Scale+

$1,199/mo

1,500 chargepoints
Production-scale simulation

Performance

$2,499/mo

5,000 chargepoints
High-scale / enterprise

Evaluating SimIt for your team? We offer free trials of up to 500 chargepoints — no commitment.

Email us to get started →

Billed monthly in USD. Same number of EV simulators is always available. Contact us for higher custom limits.

Simulate a full charging session
in four steps

1

Get your API key

Sign up for free and get your API key instantly — no installation, no setup, no waiting.

2

Create a Station

POST to the API with your CSMS WebSocket URL. SimIt connects immediately and begins the OCPP handshake.

3

Attach an EV

Create a virtual EV, connect it to a connector, and configure battery capacity and initial SOC.

4

Run Your Scenario

Start transactions, inject faults, disconnect the network — then verify your CSMS responds correctly.

REST API

Control everything via HTTP

All operations are available as REST endpoints secured with an API key header (SIMIT-API-KEY).

⚡ Charging Station /api/v1/cs/{action}/{cb_id}
POST/createBoot a station
GET/infoStation state
DEL/deleteRemove station
POST/transaction/startBegin charge
POST/transaction/stopEnd charge
POST/error/setInject error
POST/error/resetClear error
POST/network/disconnectDrop connection
POST/network/connectRestore connection
🔋 Electric Vehicle /api/v1/ev/{action}/{ev_id}
POST/createRegister EV
GET/infoBattery & SOC
DEL/deleteRemove EV
POST/connectPlug in
POST/disconnectUnplug
POST/dischargeDrain battery

OCPP 1.6 & 2.0.1 today,
2.1 on the roadmap

OCPP 1.6

Fully implemented
  • Station registration & keep-alive
  • Remote session start & stop
  • Configurable MeterValues measurands
  • Clock-aligned energy reporting
  • Smart charging profiles
  • Remote configuration
  • Hard & Soft reset
  • Reservation management & auto-expiry
  • Authorization caching & offline fallback
  • ChangeAvailability scheduling
  • Live status updates
  • WebSocket Security (Basic Auth, TLS)

OCPP 2.0.1

Fully implemented
  • Station registration & keep-alive
  • Remote session start & stop
  • TransactionEvent (Started/Updated/Ended)
  • Configurable MeterValues
  • Smart charging profiles
  • Device model (GetBaseReport, SetVariables, GetVariables)
  • WebSocket Security (Basic Auth, TLS)

OCPP 2.1

Planned
  • Built on top of 2.0.1 foundation
  • V2X & bidirectional charging
  • Dynamic tariff support
  • Enhanced smart charging
  • ISO 15118-20 integration
Get started

Up and running in minutes

1

Get your API key

Create a free account at simit.ddosoft.com and get your API key instantly — no credit card needed.

2

Create a charge point

POST to /cs/create/{id} with your CSMS WebSocket URL. SimIt connects immediately over OCPP.

3

Attach a virtual EV

Create an EV and connect it to a connector. Configure battery capacity and initial SOC as needed.

4

Start a transaction

Trigger a charge session and watch MeterValues flow to your CSMS in real time.

# 1. Create a charge point $ curl -X POST https://simit.ddosoft.com/api/v1/cs/create/CP-001 \ -H "SIMIT-API-KEY: <your-key>" \ -H "Content-Type: application/json" \ -d '{ "csmsUrl": "ws://csms.example.com/ocpp/1.6", "protocol": "ocpp1.6", "power": 22, "efficiency": 1.0 }' # 2. Create & connect a virtual EV $ curl -X POST https://simit.ddosoft.com/api/v1/ev/create/EV-01 \ -H "SIMIT-API-KEY: <your-key>" \ -H "Content-Type: application/json" \ -d '{"batteryCapacity": 60}' $ curl -X POST https://simit.ddosoft.com/api/v1/ev/connect/EV-01 \ -H "SIMIT-API-KEY: <your-key>" \ -H "Content-Type: application/json" \ -d '{"cbId": "CP-001", "connectorId": 1}' # 3. Start a charging transaction $ curl -X POST https://simit.ddosoft.com/api/v1/cs/transaction/start/CP-001 \ -H "SIMIT-API-KEY: <your-key>" \ -H "Content-Type: application/json" \ -d '{"connectorId": 1, "idTag": "ABC123"}'

Latest articles

Short reads on OCPP simulator support, EV charging system testing, and CSMS validation.

SimIt v0.8.2: OCPP 2.0.1 Simulator Support Is Live

OCPP 2.0.1 simulator support is live with TransactionEvent lifecycle, multi-EVSE scenarios, smart charging, device model behavior, and security handlers.

Read articles

Testing EV Charging Systems: How to Choose OCPP Simulators

A practical guide to choosing OCPP simulators for CSMS behavior, reconnect timing, meter consistency, fault injection, and load testing.

Read articles

Frequently asked questions

Everything you need to know about OCPP, EV charging simulation, and SimIt.

Understanding OCPP

What is OCPP?

OCPP (Open Charge Point Protocol) is the open communication standard between EV charging stations and a back-end management platform (CSMS). It defines how a charger authenticates drivers, starts and stops sessions, reports energy, and receives remote commands. OCPP 1.6 over JSON/WebSocket is the most widely deployed version today.

What is a CSMS?

A CSMS (Charging Station Management System) is the server-side software that manages a network of EV chargers — handling driver auth, billing, remote control, energy reporting, firmware updates, and smart charging. SimIt lets CSMS vendors test all of this without physical hardware.

What is an EVSE?

EVSE (Electric Vehicle Supply Equipment) is the logical or physical unit that supplies power to an EV — what most people call a charging point or connector outlet. One station can contain multiple EVSEs, each with one or more connectors. SimIt simulates this full hierarchy.

What is the difference between OCPP 1.6 and 2.0.1?

OCPP 1.6 uses a flat message model over a single WebSocket per station. OCPP 2.0.1 introduces a structured device model, native multi-EVSE support, enhanced security (TLS, certificates), improved smart charging, and display message support. SimIt fully supports both OCPP 1.6 and OCPP 2.0.1.

What OCPP versions does SimIt support?

SimIt fully implements OCPP 1.6 across all standard feature profiles — Core, Firmware Management, Local Auth List, Reservation, Smart Charging, and Remote Trigger. The simulator behaves like real hardware: BootNotification handles Pending responses correctly, Soft and Hard resets are differentiated, ChangeAvailability returns Scheduled during active sessions, reservations expire automatically at their expiry time, authorization responses are cached with offline fallback, and MeterValues honour your MeterValuesSampledData and ClockAlignedDataInterval configuration. SimIt also fully implements OCPP 2.0.1 — connect 2.0.1 stations with full transaction lifecycle (TransactionEvent), smart charging profiles, and device model support. OCPP 2.1 is on the roadmap.

About OCPP Simulators

What is the difference between an OCPP simulator and a real charger?

A real charger has firmware, hardware, and power electronics. An OCPP simulator is pure software — it speaks the OCPP protocol over WebSocket exactly as a real charger would, but there is no physical device. You use it to test your CSMS during development and QA without needing any charging hardware on-site.

Does SimIt work with OCPP 1.6 and 2.0.1 simultaneously?

Yes. Each station is independent — you can run OCPP 1.6 and 2.0.1 stations at the same time under one API key. Specify protocol: "ocpp1.6" or protocol: "ocpp2.0.1" in the create request. This lets you test mixed-protocol fleets or validate a CSMS migration scenario where both protocol versions are active at once.

How do I run an automated OCPP test suite with SimIt?

Use the REST API from any CI/CD pipeline. A typical test: (1) create a station pointed at your CSMS under test, (2) connect a virtual EV and trigger a transaction, (3) assert on your CSMS's response via its own API or logs, (4) delete the station. Each test is stateless and runs in seconds. The REST API works from any language — shell, Python, JavaScript, or a test framework like pytest or Jest.

Getting Started

Is SimIt free to use?

Yes. Sign up and receive your API key instantly — no credit card, no waiting. Each key has a CS limit (concurrent stations) and EV limit (concurrent virtual vehicles). Need more capacity to evaluate? Email us to request a free trial of up to 500 chargepoints.

Does SimIt require any installation?

No. SimIt is a cloud service at simit.ddosoft.com. Sign up, get your API key, and start making REST API calls immediately — no Docker, no server to manage. It works from any environment: dev machine, CI pipeline, or load-testing script.

How do I connect SimIt to my CSMS?

Pass your CSMS WebSocket URL when creating a station. SimIt opens the connection immediately, sends BootNotification, and begins periodic Heartbeats at the interval your CSMS specifies. Plain ws://, TLS wss://, and Basic Auth connections are all supported via the optional security field.

My CSMS runs locally — how do I connect SimIt to it?

SimIt connects out to your CSMS URL, so it must be publicly reachable. For local dev, expose your CSMS with ngrok (ngrok http <port>, free tier, random subdomain each run) or Cloudflare Tunnel (cloudflared tunnel --url http://localhost:<port>, free, persistent subdomain). Both give you a wss:// URL — use that as the CSMS endpoint when creating a station in SimIt.

Simulating Charging Sessions

How do I simulate a RemoteStartTransaction?

Create a station, connect it to your CSMS, create a virtual EV, and plug it into a connector. Your CSMS sends RemoteStartTransaction — SimIt responds Accepted, opens the transaction, and begins sending periodic MeterValues. The EV's SOC rises realistically throughout the session.

How do I simulate a charging error or fault?

Use the error endpoints to set any OCPP 1.6 error code on a connector: Faulted, GroundFailure, HighTemperature, InternalError, OverCurrentFailure, PowerMeterFailure, OtherError. SimIt sends a StatusNotification immediately. Use the reset endpoint to clear it.

How does network fault injection work?

Call network/disconnect to drop the WebSocket instantly — as if the charger lost internet. SimIt then reconnects automatically with backoff and random jitter, exercising your CSMS reconnect logic and session recovery. Call network/connect to reconnect on demand.

Scale & Performance

Can SimIt simulate multiple charging stations at once?

Yes. Each station runs as an independent asyncio task with its own WebSocket connection. Create, update, and delete hundreds simultaneously via the REST API. SimIt's cloud infrastructure handles the concurrency — no configuration needed on your side.

Can I use SimIt for load testing my CSMS?

Yes, this is a primary use case. Script the REST API to spin up hundreds of stations and EVs, start transactions across all of them, and observe how your CSMS handles concurrent BootNotifications, Heartbeats, MeterValues, and transaction messages — all sending realistic OCPP 1.6 traffic, not synthetic pings.

Integration & Security

Does SimIt require physical EV charging hardware?

No. SimIt simulates charging stations, EVSEs, connectors, and electric vehicles entirely in software. From your CSMS's perspective it is indistinguishable from real hardware. Ideal for teams building a CSMS before chargers are available, or for automated regression testing after every code change.

What authentication methods does SimIt support?

SimIt REST API calls require the SIMIT-API-KEY header. For outbound CSMS connections, SimIt supports three security modes: plain WebSocket with no auth (SP-0), Basic Auth via the security.basicAuth field in the create request (SP-1), and TLS/WSS connections with optional server certificate skip for self-signed dev setups. Pass "security": {"basicAuth": {"password": "secret"}} alongside your CSMS URL — the Authorization: Basic header is added to the WebSocket handshake automatically.