fleet:read (read charge points and sessions), and a webhook endpoint subscribed to the session.* events.
1. Find charge points
GET /charge_points lists the public ChargeExpress network, for example to show your drivers where they can charge, with whether each charger is connected right now and the status of each connector.
Response
simulated: true.
A charger is usable when it has online: true and status: "Operative", and a connector whose status is Available (or Preparing, once a cable is plugged in). Connector statuses are the charger’s OCPP 1.6 statuses.
2. Follow sessions with webhooks
Webhooks can arrive out of order or more than once. Dedupe on the event
id, and if you only want the latest state, compare data.object with what you have or fetch GET /sessions/{sessionId}. See Webhooks.
Session events fire for every session paid from the fleet wallet, whether the driver started it in the app or at the charger.
3. Read a session while it runs
GET /sessions/{sessionId} returns the session as it is now. While it is charging, energy_kwh and cost grow with each meter reading and ended_at is null:
Response
budget_kwh is the most the session can use: the smallest of any fleet or driver limit and what the wallet can cover.
4. Read the result
session.completed carries the settled session:
session.completed data.object
Prepaid energy comes out of the wallet’s
balance_kwh. If on_credit is above zero, a usage invoice is raised for that part. Its id is the session id (GET /invoices/usage/48213), and invoice.created fires when the invoice number is assigned. Pay it as described in Funding flow.
To list your fleet’s sessions, for example to reconcile a month, use GET /sessions with status, driver_id, vehicle_id, charge_point_id, from and to filters.
