Skip to main content
The Fleet API lets your servers do what fleet managers do in the ChargeExpress fleet portal, and tells them when something changes. Telematics, accounting, HR and dispatch systems can keep ChargeExpress in sync without anyone re-typing data. Every request is made with an API key that belongs to one fleet. The key decides which fleet you are acting for, so paths never carry a fleet id.
Each key is either a sandbox key (cxk_test_…), which acts on a private sandbox copy of your fleet with simulated chargers and payments, or a live key (cxk_live_…), which acts on your real fleet. You choose when you create the key. Live keys come from the production fleet portal. See Authentication.

What you can build

Driver and vehicle sync

Add, update, suspend and remove drivers from your HR system. Register, assign and retire vehicles from your asset register.

Charging visibility

Find charge points, follow your drivers’ sessions as they charge, and get the final energy and cost of each one.

Wallet and billing

Quote and start wallet top-ups, pay outstanding usage invoices, list invoices and download them as PDFs.

Spending controls

Set kWh or GHS limits per session, day, week or month for the whole fleet, with per-driver overrides.

Event-driven integrations

Receive signed webhooks when sessions start and finish, the wallet is funded or runs low, invoices are issued, and drivers, vehicles or limits change.

Reconciliation

Replay the last 30 days of events, list wallet transactions and match invoices to sessions and top-ups.

Conventions at a glance

  • JSON, snake_case. Request and response bodies are JSON with snake_case fields. Timestamps are ISO 8601 in UTC.
  • Decimals are strings. Money is a string with 2 decimal places plus a currency (always GHS), for example "amount": "125.50". Energy is a string in kWh with 4 decimal places, for example "energy_kwh": "18.4250". Parse them with a decimal type, not a float.
  • Ids. Drivers, vehicles, wallets and fleets use opaque lowercase ids such as d3x7n2q9k4m8p1r6t0v5w2yz. Objects new to this API carry a prefix: evt_ for events, we_ for webhook endpoints, req_ for request ids. A session id is the charger’s transaction id, such as "48213". Treat every id as an opaque string.
  • Objects. Every resource has an object field ("driver", "session", …). Single objects are returned as-is; lists are paginated as { data, has_more, next_cursor }.
  • Forward compatible. New fields and new event types can appear in v1 at any time. Ignore fields and event types you don’t recognise.

Next steps

Quickstart

Create a sandbox key, make your first call and receive your first webhook.

Sandbox

Test charging, top-ups and webhooks safely with simulated chargers and payments.

API reference

Every endpoint, parameter and response.