# Sessions

> A session tracks a complete charging cycle, from the moment you request it to the final confirmed cost.

A **session** tracks a single charging transaction at a charge point, from the moment you request it until the final cost is confirmed. Every charge a user initiates through ChargeNow creates a session, which progresses through a fixed sequence of states and eventually reaches `Settled` with confirmed energy and cost figures.

## The session lifecycle

A session moves through a fixed sequence of states. The happy path runs start, then stop, then settle; two states sit off it.

What each state means:

| State           | What it means                                                                                                            |
| --------------- | ------------------------------------------------------------------------------------------------------------------------ |
| `Pending`       | Session created, command being prepared                                                                                  |
| `Starting`      | Start command sent to the charge point, waiting for confirmation                                                         |
| `Started`       | Charge point confirmed, energy is being delivered                                                                        |
| `StopRequested` | Stop command dispatched, waiting for charge point acknowledgement                                                        |
| `Stopping`      | Charge point acknowledged the stop command                                                                               |
| `Stopped`       | Charging has ended, awaiting final billing data from the network                                                         |
| `Settled`       | Final cost and energy confirmed, session complete                                                                        |
| `Failed`        | The session could not be started or was interrupted                                                                      |
| `Abandoned`     | All stop retries exhausted; charger state is unknown. Final billing data can still arrive from the network and settle it |

**Poll or subscribe to track state.** The start and stop calls dispatch a command and return immediately; the state advances only once the charge point confirms, usually within seconds to a minute. Poll the session or subscribe to [webhooks](/docs/charge-now/guides/webhooks) rather than assuming an immediate transition.

## Tracking changes in real time

Instead of polling, subscribe to the [`session.updated`](/docs/charge-now/guides/webhooks/session-updated) webhook. It fires on every state transition and whenever energy or cost figures are updated, including when a correction is applied after initial settlement.
