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

# Roaming connection

> Publish your chargers and connect your drivers.

Roaming connects the EV charging ecosystem. As a CPO, you publish your chargers to drive utilisation; as an eMSP, you give your drivers access to charger networks.

## Overview

Spirii supports roaming on both sides of your business, and what it does for you depends on the role you're in:

<CardGroup cols={2}>
  <Card title="As a CPO" icon="plug">
    Publish and price your chargers for roaming. Spirii exposes them to drivers on other networks, and you see the resulting sessions and revenue — without building a driver base of your own.
  </Card>

  <Card title="As an eMSP" icon="truck">
    Connect your drivers to other networks' chargers. Your tokens and branded app reach roaming chargers across the ecosystem, so your drivers always have somewhere to charge.
  </Card>
</CardGroup>

## How it works

Spirii connects to the roaming ecosystem on your behalf, in two ways:

* **Roaming hubs** — Spirii's network is connected to the major roaming hubs — marketplaces like Hubject, Gireve, and e-clearing.net that aggregate many CPOs and eMSPs. Once you enable roaming, your chargers reach the drivers on those hubs, and your drivers reach the chargers on them, through Spirii's connections.
* **Direct integrations** — Spirii maintains a set of direct, one-to-one connections to other networks, built over the OCPI protocol. These are available to you from the start.

Spirii manages the connection, data exchange, and settlement for both.

## Pricing

As a CPO, you set a roaming tariff per location in Spirii Connect — the price you're paid per session. What a driver ultimately pays can differ: when a driver from another network charges on your chargers, their own eMSP decides their final price. You enter the tariff gross (so it's comparable with your standard tariff), but eMSPs are billed the net amount, which is what you receive. Account for the platform fees that apply to roaming sessions so your margin holds.

As an eMSP, your drivers pay the host CPO's price for a roaming charge, passed through to your branded app.

## When to use it

* **A public CPO maximising utilisation.** Publishing your chargers across roaming brings in drivers who would never install your app, lifting usage on every location you expose.
* **A CPO entering a new region.** Roaming brings third-party drivers from day one, before you built up loyal local drivers of your own.
* **A fleet operator ensuring coverage along their routes.** Roaming gives your drivers access to charge points across other networks, so there's always somewhere to charge.

## Set up

What you do depends on your side.

### As a CPO

Publish and price your chargers. Each location you want on roaming must be:

* Set to **public**, with **roaming enabled** and a **roaming tariff** set
* Given a **latitude and longitude**
* Using **EVSE connector IDs** in the required eMI3 format — country code + operator ID + EVSE ID, separated by asterisks or dots (for example `DE*SPI*E00012345`). Invalid IDs keep a charger off roaming.

You'll also need a CPO operator ID, or prefix, such as `DE*SPI`, which Spirii helps set up once you've registered it with your local national registry.

### As an eMSP

Connect your tokens and app. Each token (charge key) your drivers use must be:

* **Active** and **roaming-enabled**
* Labelled following the recommended format `DK.SPI.{customerPrefix}` to avoid interoperability issues — Spirii converts the label to the formats hubs and OCPI require behind the scenes

Drivers reach roaming chargers through your branded app or Spirii Go, where they appear alongside your own network's.

## Dependencies & limitations

* **Roaming depends on more parties.** A roaming session involves the CPO, the eMSP, and often a hub, so more can interrupt a charge than on a session within your own network.
* **Data formatting is strict.** Location, EVSE, and token data must follow the required formats (see Set up); incorrect data is the most common reason a charger doesn't appear or a session fails.
* **The eMSP controls the final price and its own data.** You can't set what a driver pays on your chargers over roaming, and a change you make — price or status — appears in the eMSP's app only as fast as they refresh it.

## Related

<CardGroup cols={3}>
  <Card title="Sessions and CDRs" icon="receipt" href="/components/charging/sessions-and-cdrs">
    The records exchanged over roaming and used to settle each charge.
  </Card>

  <Card title="Tokens" icon="key-round" href="/components/access/tokens">
    How an eMSP's drivers authenticate across networks.
  </Card>

  <Card title="Locations" icon="map-pin" href="/components/charging/locations">
    Enable roaming and set the roaming tariff per location.
  </Card>
</CardGroup>
