Device Registration
Device Registration is a one-time process per device (or when a third party authentication device is being replaced or removed) that registers a unique identifier of your authentication device with the Just Walk Out gate.
Amazon will manually provide you with a laneId during onboarding (it is not retrieved through an API). The laneId is an Amazon-provided identifier that corresponds to a physical JWO gate.
The deviceType is used for reporting purposes in the Store Manager, where metrics are grouped per deviceType. It must be a generic identifier that is shared by all devices of the same kind, not a per-device value. For example, if all of your card readers are the same model, register every one of them with deviceType set to PICO. Do NOT use values such as PICO1, PICO2, etc. Use deviceId to uniquely identify each individual device.
createDeviceRegistration
POST /auth/v2/createDeviceRegistration
Registers a 3P authentication device to be associated with a JWO gate. Required prior to invoking authentication APIs (startAuth/processAuth).
Request Body
| Field | Required | Type | Description |
|---|---|---|---|
storeId |
Yes | String | Your store identifier, provided by Amazon during store onboarding. |
deviceId |
Yes | String | Your unique identifier for the device. |
deviceType |
Yes | String | Generic label shared by all devices of the same kind, used for reporting (e.g., "PICO", "facial_recognition"). Must not be unique per device. |
laneId |
Yes | String | Amazon-provided gate identifier. |
updateExistingRegistration |
No | Boolean | Set true to update existing. Defaults to false. |
Response Body
| Field | Type | Description |
|---|---|---|
success |
Boolean | Whether the registration was successful. |
reason |
String (nullable) | Set only when success is false. Values: DEVICE_ALREADY_REGISTERED, INVALID_LANE. |
Errors
When createDeviceRegistration fails, success is false and reason is set to one of the following values:
| Reason | Meaning | Action |
|---|---|---|
DEVICE_ALREADY_REGISTERED |
The deviceId is already registered at this store and updateExistingRegistration was not set to true. |
If the existing registration is correct, no action is needed (use getDeviceRegistrations to verify). To change it (e.g., move the device to a different lane), call createDeviceRegistration again with updateExistingRegistration set to true. |
INVALID_LANE |
The laneId does not match a gate that Amazon provided for this store. |
Confirm the laneId and storeId exactly match the values Amazon provided during onboarding. If they match and the error persists, contact Amazon. |
getDeviceRegistrations
POST /auth/v2/getDeviceRegistrations
Retrieves all device registrations for a given store.
Request Body
| Field | Required | Type | Description |
|---|---|---|---|
storeId |
Yes | String | Your store identifier, provided by Amazon during store onboarding. |
Response Body
| Field | Type | Description |
|---|---|---|
deviceRegistrations |
Array | List of registered devices. |
deleteDeviceRegistration
POST /auth/v2/deleteDeviceRegistration
Removes a device registration. Use this when an authentication device is being replaced or removed. Once deleted, startAuth calls from that deviceId return DEVICE_NOT_REGISTERED until the device is registered again.
Request Body
| Field | Required | Type | Description |
|---|---|---|---|
storeId |
Yes | String | Your store identifier, provided by Amazon during store onboarding. |
deviceId |
Yes | String | Your unique identifier for the device. |
Response Body
| Field | Type | Description |
|---|---|---|
success |
Boolean | Whether the deletion was successful. |
reason |
String (nullable) | Set only when success is false. Values: DEVICE_NOT_FOUND. |
Errors
When deleteDeviceRegistration fails, success is false and reason is set to one of the following values:
| Reason | Meaning | Action |
|---|---|---|
DEVICE_NOT_FOUND |
No registration exists for this deviceId at this store. The device may never have been registered, may have been deleted already, or the storeId or deviceId may be wrong. |
Check the storeId and deviceId in your request. Use getDeviceRegistrations to see which devices are currently registered. If the device is not listed, it is already unregistered and no further action is needed. |

