JPlug abstracts the entire OCPP protocol stack into clean REST endpoints. Start a session, listen for events, stop and bill — all from your existing codebase, without touching a charging protocol.
No credit card required for sandbox access.
The Problem We Solve
The Open Charge Point Protocol is how EV chargers talk to software. It's also verbose, stateful, and built for network operators — not application developers. Implementing OCPP from scratch takes 3–6 months before you write a single line of your actual product.
JPlug handles charger authentication, heartbeats, status notifications, firmware management, and metering data. You make REST calls. We handle the protocol.
The 3-Call Pattern
Everything else — OCPP handshakes, heartbeats, meter values, fault recovery — is handled by JPlug.
Call 1 — Check charger availability
GET /api/v1/chargers/JPLUG-035615
Authorization: Bearer YOUR_API_KEY
Response 200:
{
"id": "JPLUG-035615",
"status": "Available",
"connectors": [
{ "id": 1, "type": "CCS2", "power_kw": 22, "status": "Available" }
]
}Real-time status from the charger, not a cached record.
Call 2 — Start a charging session
POST /api/v1/chargers/JPLUG-035615/sessions
Authorization: Bearer YOUR_API_KEY
Content-Type: application/json
{
"connector_id": 1,
"user_id": "usr_abc123",
"tariff_id": "tariff_per_kwh_standard"
}
Response 200:
{
"session_id": "ses_7xk29q",
"status": "Starting",
"started_at": "2026-04-08T22:00:00Z"
}JPlug sends the RemoteStartTransaction command to the charger and tracks state.
Call 3 — Receive live session events via webhook
POST https://your-app.com/webhooks/jplug
{
"event": "session.updated",
"session_id": "ses_7xk29q",
"energy_kwh": 8.4,
"duration_min": 42,
"status": "Charging",
"cost_cents": 252
}Subscribe to session.started, session.updated, session.ended, and charger.fault. No polling required.
Use Cases
Start, stop, and schedule charging for vehicles across depots or driver homes. Set per-vehicle energy limits and charging policies. Pull CDRs for reimbursement.
Show charger availability, session progress, and cost inside your resident or tenant app. No separate EV charging app for your users.
Reference: Grata Technologies
Use JPlug's UI component library to embed a fully styled charging flow into your app. Charger map, session controls, and receipts — your brand, our backend.
Connect chargers to your BMS or EMS. Enforce site power limits, shift load off-peak, and avoid demand charges — all via API.
White-Label Components
Don't want to build the charger map, session progress UI, and receipt flow from scratch? JPlug ships a library of white-label React components you can drop into your app. Fully themeable — your colors, your typography, your brand.
Available today. Themeable via CSS variables or design tokens.
Developer Experience
Clean JSON responses. Predictable error codes. No SOAP, no OCPP state machines in your app.
Authenticate with a static API key for development. Switch to OAuth for production multi-tenant apps.
Every endpoint documented with Node.js, Python, and curl examples.
{ "error": "charger_offline", "message": "JPLUG-035615 has not sent a heartbeat in 3 minutes." } — not error code 500.
Safe to retry. Pass an idempotency_key on session start and we guarantee no duplicate sessions.
Uptime SLA, monitoring hooks, and session-level logging for high-volume production use.
Case Study — Grata Technologies
Grata Technologies (grata.life) — a Toronto-based property technology platform with multi-family buildings across North America — needed to add EV charging to their resident app. Their team had previously scoped a full custom OCPP build at 6 months minimum.
Using JPlug's API and white-label components, they integrated charger management, session control, and in-app billing for a 120-unit building in Edmonton, AB, in under 4 weeks. Residents see an EV Charging tile directly in the Grata app — no second app, no separate login.
"Two years on the backlog. Four weeks to production with JPlug."— Grata Technologies engineering team
Pricing
Sandbox access is free with no time limit or credit card. In production, add $10/month per integration for white-label branding, a custom domain, and API access. Charger management is $25/month per additional charger. No per-API-call fees and no percentage of charging revenue.
Request sandbox access, then use the documentation's Node.js, Python, and curl examples to build your first integration. We can help verify your production setup when you're ready to launch.