---
title: "Register Device"
method: POST
path: "/v2/devices/register"
tags: ["Devices"]
---

# Register Device

`POST /v2/devices/register`

Register a new tablet/kiosk device.

This endpoint creates a new device record and generates a JWT token for device authentication.
The token has limited scope (earn, redeem, balance_check) and expires in 24 hours.

### Parameters:
- `request` (DeviceRegisterRequest): Device registration details
- `current_user` (User): Authenticated user making the request

### Returns:
- `DeviceRegisterResponse`: Device ID, SID, and authentication token

### Raises:
- 404: If the specified program doesn't exist

## Headers

- `authorization` string, nullable

## Request body

- DeviceRegisterRequest — Request schema for device registration.
  - `deviceType` 'tablet_kiosk' | 'tablet' | 'kiosk', required — Device type enumeration for tablet/kiosk devices.
  - `deviceName` string, required — Human-readable name for the device
  - `programId` string, required
  - `hardwareInfo` object, nullable — Hardware information (model, OS version, etc.)
  - `locationName` string, nullable — Physical location of device
  - `locationAddress` string, nullable — Address of device location

## Response `201`

Successful Response

- DeviceRegisterResponse — Response schema for successful device registration.
  - `deviceId` string, required — Device ID
  - `deviceSid` string, required — Device SID (human-readable identifier)
  - `deviceToken` string, required — JWT token for device authentication
  - `expiresAt` string, date-time, required — Token expiration timestamp
  - `status` 'active' | 'inactive' | 'blocked' | 'pending_activation', required — Device status enumeration.

## Other responses

- `404` — Program not found.
- `422` — Validation Error

---

[API](https://skmtc.net/loyalty/apis/loyaltydog.md) · [All operations](https://skmtc.net/loyalty/apis/loyaltydog/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/loyalty/loyaltydog/versions/42b7b22af2b6/schema)
