Skip to main content

What is a unit?

A unit is the digital identity of a single physical item — its digital twin and its certificate of authenticity. Even if two items are identical SKUs (same product, same size, same color), each one is its own unit with its own identity, its own chip, and its own issuance history. Units live inside a collection. A collection defines the group (a product line, a drop, a release); a unit is one item within it.

Why units matter

  • Register items. Create a unit for each physical item when it enters your workflow — before it ships, before it’s paired to a chip.
  • Map to your inventory. Use external_id to tie each unit back to your own SKU, order line, or serial number. Filter lists by external_id to look up units without storing Endstate IDs.
  • Track issuance. A unit’s collection.token.status tells you whether the item has been issued — pending means the unit exists but has no chip yet; active means a chip is paired and the unit has a collection.token.serial within its collection.
  • Verify on tap. When a user taps an NFC chip, the API returns the unit record attached to it. That record is what you display, validate, or act on.

Unit object

id
string (UUID)
The unit’s unique identifier. Stable; use this as your durable reference in Endstate.
external_id
string | null
Your own identifier for this item — SKU, order line ID, serial number, or any opaque string. Must be unique within your organization if provided. Null if not set.
name
string | null
A human-readable label for the item (e.g. "Black Hoodie — Size M"). Optional; null if not set.
attributes
object | null
Free-form JSON you attach to this unit. Use this for any item-level metadata that does not have a dedicated field — color, size, batch number, custom fields. No enforced schema; store whatever your integration needs.
redirect_url
string | null
Where a user is sent after tapping this unit’s chip. Overrides the collection and organization-default redirects. Null if not set — resolution then falls through to the collection redirect, then your organization default. See Tap redirects.
created_at
string (ISO-8601)
When the unit was created.
collection
object
The collection this unit belongs to.
chips
array
The NFC chips paired to this unit. Most units have exactly one chip; the array is empty until a chip is paired.

Create a unit

POST /v1/units
collection_id
string (UUID)
required
The ID of the collection this unit belongs to. The collection must already be provisioned (contract.status: "active"). Required.
external_id
string
Your own identifier for this item. Must be unique within your organization. Optional.
name
string
A human-readable label for the item. Optional.
attributes
object
Free-form JSON metadata to attach to the unit. Optional.
redirect_url
string
Where a user is sent after tapping this unit’s chip. Must be a valid absolute URL. Optional — you can also set or change it later with PATCH /v1/units/ {unit_id}. See Tap redirects.

Example

The unit is returned at the top level, like every single-resource response — see Response shape. It is created with collection.token.status: "pending"; no serial is assigned yet — that happens when a chip is paired. See Lifecycle below.

Lifecycle

Units move through a simple two-state lifecycle:
1

Create the unit

POST /v1/units — the unit is created with collection.token.status: "pending" and an empty chips array. No serial number yet.
2

Pair a chip

POST /v1/chips with unit_id and the chip’s identifiers. Pairing links the physical item to its digital record and triggers issuance.
3

Unit is issued

Issuance is asynchronous. Poll GET /v1/units/{unit_id} until collection.token.status is "active". When active, collection.token.serial holds the unit’s serial number within the collection.
Poll GET /v1/units/{unit_id} to check issuance status.

Endpoints

These endpoints take an API key, except claim and transfer creation, which require a session token (status polling takes either). See Authentication for header format and credential types. For full request/response schemas, see the API reference.

Next steps

Chips

Pair an NFC chip to a unit to complete its digital record and trigger issuance.

Collections

Understand how collections group units and define the serial-number namespace.

Tap redirects

Send a user to your own destination after they tap this unit’s chip.