Developers
The backend, without the backend.
Real-time OCPP APIs you can build your own CMS on top of. The protocol work is already done.
Call
[ 2, "19223203", "RemoteStartTransaction", { "connectorId": 1, "idTag": "04A1B2C3D4E5F6" }]Result
[ 3, "19223203", { "status": "Accepted" }]Speaks
- OCPP 1.6
- OCPP 2.0.1
- OCPINEW
- OpenADR
Sessions
Start, stop and observe charging sessions in real time.
Chargers
Register hardware, read health, issue remote commands.
Transactions
Every session with its meter values, pricing and invoice.
Payouts
Settlement records and the partner split applied to each.
Tags
Issue, assign and revoke RFID credentials.
Webhooks
Receive state changes rather than polling for them.
Full reference, request shapes and example payloads live in the Postman collection.
The protocol
What actually goes over the wire.
Four OCPP 1.6-J exchanges the platform handles every second of the day. These frames are the open specification rather than our own surface. The Plugeasy API reference lives in the Postman collection.
A charger introduces itself. The platform accepts it, sets the clock, and tells it how often to check in.
Call
[
2,
"19223201",
"BootNotification",
{
"chargePointVendor": "ABB",
"chargePointModel": "Terra AC",
"chargePointSerialNumber": "EVSE_04",
"firmwareVersion": "1.4.12"
}
]Call result
[
3,
"19223201",
{
"status": "Accepted",
"currentTime": "2026-08-25T03:12:40Z",
"interval": 300
}
]Every state change arrives as it happens. This is the message the self-healing pipeline reacts to.
Call
[
2,
"19223202",
"StatusNotification",
{
"connectorId": 1,
"errorCode": "GroundFailure",
"status": "Faulted",
"timestamp": "2026-08-25T03:12:41Z"
}
]Call result
[
3,
"19223202",
{}
]The command behind an appless scan, an app tap, or your own front end calling the platform.
Call
[
2,
"19223203",
"RemoteStartTransaction",
{
"connectorId": 1,
"idTag": "04A1B2C3D4E5F6"
}
]Call result
[
3,
"19223203",
{
"status": "Accepted"
}
]Sampled readings during a session. These are what the invoice, the settlement and the carbon figure are all computed from.
Call
[
2,
"19223204",
"MeterValues",
{
"connectorId": 1,
"transactionId": 90114,
"meterValue": [
{
"timestamp": "2026-08-25T03:41:00Z",
"sampledValue": [
{
"value": "16670",
"measurand": "Energy.Active.Import.Register",
"unit": "Wh"
}
]
}
]
}
]Call result
[
3,
"19223204",
{}
]Handled for you
- Session state
- Reconnects, half-open sockets, duplicate StartTransaction after a charger reboots, transactions that never got a Stop.
- Clock skew
- Chargers disagree about the time. Meter values are reconciled against the platform's clock, not the unit's.
- Vendor drift
- Every manufacturer reads the spec slightly differently. The compatibility list is the result of absorbing that.
- Money
- Metering to invoice to settlement to partner split, per transaction, without you writing a billing engine.
The network runs itself.
You collect.
Self-healing infrastructure, settlement on T+3, and charging that starts with a camera rather than a download. Bring us your network and we will show you it running.
- Speaks
- OCPP 1.6 · OCPP 2.0.1 · OCPI · OpenADR
- Phone
- 080 6217 8780
- Status
- Accepting demos