> ## Documentation Index
> Fetch the complete documentation index at: https://docs.chargeexpressltd.com/llms.txt
> Use this file to discover all available pages before exploring further.

# ChargeExpress Fleet API

> Connect your fleet's own systems to ChargeExpress: drivers, vehicles, limits, charging, wallet and billing, with signed webhooks.

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.

| Environment | Base URL | Keys |
| - | - | - |
| Production | `https://partners.chargeexpressltd.com/api/public/v1` | Live keys (`cxk_live_…`) |
| Stage | `https://stage.partners.chargeexpressltd.com/api/public/v1` | Sandbox keys (`cxk_test_…`) |

> [!NOTE]
>
> Each key is either a **sandbox** key (`cxk_test_…`), which acts on a private [sandbox](/guides/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](/authentication).

## What you can build

> **[Driver and vehicle sync](/api-reference/introduction)**
>
> Add, update, suspend and remove drivers from your HR system. Register, assign and retire vehicles from your asset register.

> **[Charging visibility](/guides/charging-flow)**
>
> Find charge points, follow your drivers' sessions as they charge, and get the final energy and cost of each one.

> **[Wallet and billing](/guides/funding-flow)**
>
> Quote and start wallet top-ups, pay outstanding usage invoices, list invoices and download them as PDFs.

> **[Spending controls](/api-reference/introduction)**
>
> Set kWh or GHS limits per session, day, week or month for the whole fleet, with per-driver overrides.

> **[Event-driven integrations](/webhooks/overview)**
>
> 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](/webhooks/events)**
>
> 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](/pagination) 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](/quickstart)**
>
> Create a sandbox key, make your first call and receive your first webhook.

> **[Sandbox](/guides/sandbox)**
>
> Test charging, top-ups and webhooks safely with simulated chargers and payments.

> **[API reference](/api-reference/introduction)**
>
> Every endpoint, parameter and response.


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.