Connect a charger

Point a charger at Flowion with three settings: its address, its id and its password. Then confirm it is online and ready before the site goes live.

4 min readEdit this page
On this page

A charger connects to Flowion directly, over a secure connection it opens itself. You give it three settings: where to connect, its id and its password. Once it connects, Flowion sets it up, and it is ready to charge.

Any charger that speaks the industry's open charger protocol can connect, whether or not it is in the device catalogue; the catalogue tells you where each model's setting lives and what to watch for. If your chargers are managed in their maker's cloud, you can link them through it instead: see Connect chargers through their maker's cloud.

Before you start

Create the charger in Flowion first, as in Set up your workspace, and keep three values from the response:

  • chargePointId, the id the charger connects with.

  • authorizationKey, its password. It is shown once.

  • installationAddress, the address it connects to.

The charge point id you create must match what the charger is configured with, exactly, including upper and lower case. A mismatch is the most common reason a new charger does not connect.

Set the address

Enter the installationAddress from the response in the charger's back-office or central-system setting:

wss://ocpp.flowion.io/_i/b7k2m9qsxc

Every charger gets its own installation address. It names no organization and no project, so it keeps working if you rename either, or if the location the charger stands at is handed over to another organization.

An address built from your slugs works too:

wss://ocpp.flowion.io/acme            your default project
wss://ocpp.flowion.io/acme/nordics    a named project

The address ends where it is shown above, with no trailing slash: the charger adds a / and its own id when it connects. Some chargers ask for the whole address, id included, in one field. For those, add it yourself:

wss://ocpp.flowion.io/_i/b7k2m9qsxc/DEPOT-A-01

Always wss://, never ws://.

Set the id and password

The charger signs in with a username and a password:

SettingValue
Username, or charge point identitythe chargePointId, exactly as created
Password, or authorization keythe authorizationKey

Chargers name the password field differently: "Authorization key", "Basic auth password", "Security password". It is the same setting.

Lost the key? Rotate it with POST /charging-stations/$CHARGER/credential and enter the new one. The old key stops working immediately.

Leave the rest to Flowion

SettingWhat to do
Connection typeJSON over WebSocket, not SOAP
Protocol versionany version the catalogue lists for your model
Heartbeat intervalleave it; Flowion sets it
Meter reportingleave it; Flowion sets what is measured and how often

When a charger connects for the first time, Flowion asks it to wait a moment, reads which outlets and settings it has, and applies the settings Flowion needs, including how often it reports its meter. Then it lets the charger in. If that setup does not finish after five attempts, the charger is let in anyway and you can see what went wrong.

Check that it is online

GET/v1/charging-stations/$CHARGERbash
curl "$API/charging-stations/$CHARGER" \
  -H "Authorization: Bearer $TOKEN"
200Response
{
  "id": "b2c4a8e0-1f3d-4c5b-9e7a-8d6f0b2c4a8e",
  "chargePointId": "DEPOT-A-01",
  "status": "online",
  "lastSeen": "2026-10-01T09:03:12Z",
  "lastBootAt": "2026-10-01T09:03:10Z",
  "bootReport": {
    "vendorName": "Acme Chargers",
    "model": "AC22",
    "firmwareVersion": "5.3.0"
  },
  "serviceState": {"inService": true, "reasons": []}
}

status is online, and bootReport holds the maker, model and firmware the charger reported about itself. To follow its setup:

GET/v1/charging-stations/$CHARGER/registrationbash
curl "$API/charging-stations/$CHARGER/registration" \
  -H "Authorization: Bearer $TOKEN"

state moves from neverSeen to provisioning to provisioned. acceptedUnprovisioned means the charger was let in before its setup finished, and lastFailure names the step and what the charger answered.

Before the site goes live

  • Check its outlets. GET /charging-stations/$CHARGER/evses should match the hardware. Place each outlet on the circuit that feeds it, so Flowion can keep the site within its limits: see Model a site's circuits.

  • Run one real session with a real card and a real car, and check that the session has an energyWh.

  • Check the times. A session's startedAt should match when it actually started; a charger with a wrong clock records wrong times.

  • Pull the network, physically or by blocking it, and confirm the charger comes back online on its own.

  • Look at its connection. GET /charging-stations/$CHARGER/connectivity shows the network link and signal the charger reports, which is worth a look for a charger on a mobile connection.

If it does not connect

Work down this list; each step assumes the ones above it are fine.

  1. Nothing arrives at all. Check DNS, the firewall and the charger's network. Chargers on mobile connections often sit behind restrictive networks: outbound port 443 to ocpp.flowion.io must be open.

  2. It connects and drops at once. The charger and Flowion did not agree on a protocol version. Choose another version in the charger's settings.

  3. It is refused when it signs in. Check the id first (case matters), then the address, then the key. An address pointing at the wrong project fails exactly like a wrong password, because the id is looked up in the project the address names.

  4. It connects but stays in setup. Read GET /charging-stations/$CHARGER/registration: lastFailure names the step that failed.

  5. It comes online, then goes quiet. Look for a proxy or firewall that closes idle connections sooner than the charger's heartbeat.

Want the protocol detail behind all this? See How a charger is registered.