> ## 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.

# Identifiers

> The IDs each resource carries, which one to use when, and what the formatted ones encode.

Most resources in the Spirii API carry more than one identifier: an internal ID you use to address the resource, and often a formatted identifier that follows an e-mobility standard. Knowing which is which avoids a common class of integration error.

## Two kinds of identifier

**Internal IDs** are numbers the platform assigns. You use them to address a resource in a request and to link one resource to another. A token's `id`, the `locationId` on a charge box, the `customerId` on a token — these are all internal IDs.

**Standard identifiers** are strings that follow e-mobility standards. They identify things across the wider charging network — for display in apps, for roaming, and for operations at the physical charger — rather than for addressing resources in the API. An EVSE ID and a charge box's CBID are standard identifiers.

The practical rule: to call the API, reach for the numeric `id`. The formatted identifiers belong to the charging domain.

## Internal IDs

| Identifier                                                                           | Identifies                      | Example |
| ------------------------------------------------------------------------------------ | ------------------------------- | ------- |
| `id`                                                                                 | The resource itself             | `12345` |
| `locationId`, `chargeBoxId`, `customerId`, `appUserId`, `voucherId`, `tokenGroupIds` | A related resource, by its `id` | `123`   |

A resource's `id` goes in the path — `GET /v2/tokens/{id}` — and appears on other resources as a typed reference (`locationId`, `customerId`, and so on) to link the two.

## Standard identifiers

| Identifier                 | Identifies                                  | Format                                             | Example                                                            |
| -------------------------- | ------------------------------------------- | -------------------------------------------------- | ------------------------------------------------------------------ |
| CBID (`chargeBoxIdentity`) | A charge box                                | eMI3-style string; operator-facing                 | `DE*SPI*E00012345`                                                 |
| EVSE ID (`evseId`)         | An EVSE                                     | eMI3-compliant string, derived from the CBID       | `DE*SPI*E00012345`                                                 |
| Connector ID               | A connector on an EVSE                      | The EVSE ID with the connector number appended     | `DE*SPI*E00012345*1`                                               |
| Token UID (`uid`)          | The credential a charger reads to authorise | String; the form depends on the token type         | An RFID chip UID, a 20-character virtual UID, or a vehicle MAC/VIN |
| Party ID (`partyId`)       | The operating CPO, for roaming              | Party code, paired with an ISO 3166-1 country code | `SPI` (`DK`)                                                       |

The CBID is what an operator works with, and it seeds the IDs of the EVSEs on the box — so an EVSE's ID follows from its charge box rather than being assigned separately. See [Charge boxes](/components/charging/charge-boxes) and [EVSEs](/components/charging/evses-and-connectors) for how the format is built.

An EVSE also has an internal numeric `uid` alongside its `evseId` string. The `uid` is the platform's internal reference; the `evseId` is the standard identifier drivers and roaming partners see.

## Token IDs: id, uid, and label

A token carries three identifiers, and they're often confused:

* **`id`** — the numeric internal ID. Use it to fetch or update the token in the API.
* **`uid`** — the credential the charger actually reads to authorise a session (the RFID chip's value, the virtual token's generated string, or the vehicle's MAC/VIN).
* **`label`** — a human-facing name for recognising the token, such as `DK.SPI.V03198`. It's for people, not for lookups.

## Tariff IDs vary by type

A tariff reference isn't a single format. Depending on the kind of tariff, the same `id` field can be:

* a **UUID** for a standard tariff — `79804bf6-0d6d-4e74-ae00-16c7238c4e77`
* a **`SPI-` prefixed string** for a roaming product — `SPI-123`
* a **number** for a legacy tariff

Read the accompanying `type` to know which you're dealing with before you rely on the `id`'s shape.

## Related

<CardGroup cols={2}>
  <Card title="Charge boxes" icon="box" href="/components/charging/charge-boxes">
    Where the CBID comes from, and how it seeds EVSE IDs.
  </Card>

  <Card title="EVSEs" icon="plug" href="/components/charging/evses-and-connectors">
    The EVSE ID and connector ID format.
  </Card>

  <Card title="Conventions" icon="ruler" href="/developers/conventions">
    The shared rules every endpoint follows.
  </Card>

  <Card title="API reference" icon="square-terminal" href="/api-reference/overview">
    The identifiers each endpoint accepts and returns.
  </Card>
</CardGroup>
