# Register or update a device for push notifications

Registers a new device subscription or updates an existing one for push notifications. The request must include a valid Web Push subscription with endpoint, keys, and device metadata. Requires authentication. If a device with the same endpoint already exists, it is updated.

Endpoint: PUT /api/v1/devices
Version: 1.0
Security: header

## Request fields (application/json):

  - `deviceId` (string, required)
    Unique device identifier from client (FID)

  - `fcmToken` (string, required)
    Firebase Cloud Messaging token

  - `endpoint` (string, required)
    Push service endpoint URL

  - `keys` (object, required)
    Encryption keys for push messages

  - `keys.p256dh` (string, required)
    Base64url-encoded P-256 ECDH public key

  - `keys.auth` (string, required)
    Base64url-encoded auth secret (16 bytes)

  - `platform` (string, required)
    Device platform
    Enum: "android", "ios", "web"

  - `device` (string,null)
    Optional device description

## Response 400 fields (application/json):

  - `errorCode` (string, required)
    Error code

  - `message` (string, required)
    Error message

  - `docUrl` (string)
    Link to documentation

## Response 401 fields (application/json):

  - `errorCode` (string, required)
    Error code

  - `message` (string, required)
    Error message

  - `docUrl` (string)
    Link to documentation


