diff --git a/src/controllers/devices/controller.ts b/src/controllers/devices/controller.ts
index 79c307c54fa52f1a08e6bdcb5a707f988994910e..d0ffad07b70a99a441625cbba957443a4432bd98 100644
--- a/src/controllers/devices/controller.ts
+++ b/src/controllers/devices/controller.ts
@@ -9,6 +9,7 @@ import {
   Param,
   Patch,
   Post,
+  Put,
   Req,
 } from 'routing-controllers';
 import { ServiceFactory } from '../../services/services-factory';
@@ -17,6 +18,7 @@ import { DevicesServiceInterface } from '../../services/devices-service';
 import { OpenAPI, ResponseSchema } from 'routing-controllers-openapi';
 import { DeviceRequest, DeviceResponse, DeviceValuesRequest, GetDevicesResponse } from './dto';
 import { StatusCodes, StatusCodeDescriptions } from '../../utils/status-codes';
+import { DeviceStatus } from '../../models/device';
 
 @JsonController('/devices')
 export class DevicesController {
@@ -127,7 +129,7 @@ export class DevicesController {
 
   // Backend-Internal access only, to be called by consumers if device is expired or dead.
   @OpenAPI({
-    summary: 'Update device Status.',
+    summary: 'Update device Status. Service internal use only.',
     description: 'Updates the device status with the provided device ID, using the provided status value.',
     operationId: 'updateDeviceStatus',
     // security: [{ oauth2: [] }],
@@ -141,10 +143,10 @@ export class DevicesController {
   @ResponseSchema(DeviceResponse, {
     description: 'The updated device.',
   })
-  @Patch('/unauthenticated/:deviceId/:status')
+  @Put('/unauthenticated/:deviceId/status/:status')
   updateUserDeviceStatusById(
     @Param('deviceId') deviceId: string,
-    @Param('status') status: string,
+    @Param('status') status: DeviceStatus,
   ): Promise<DeviceResponse> {
     if (!process.env.EXPOSE_UNAUTHENTICATED_ROUTES || process.env.EXPOSE_UNAUTHENTICATED_ROUTES === 'False') {
       throw new ForbiddenError('Unauthenticated route is not enabled');
diff --git a/src/services/devices-service.ts b/src/services/devices-service.ts
index a450ade3fc15eab89cd3a30d70e5234e6788b33b..42df567c5f0703e469da8bc18e0b0a75af2b245a 100644
--- a/src/services/devices-service.ts
+++ b/src/services/devices-service.ts
@@ -1,5 +1,6 @@
 import { DeviceRequest, DeviceResponse, DeviceValuesRequest, GetDevicesResponse } from '../controllers/devices/dto';
 import { AuthorizationBag } from '../models/authorization-bag';
+import { DeviceStatus } from '../models/device';
 
 export interface DevicesServiceInterface {
   createUserDevice(device: DeviceRequest, authorizationBag: AuthorizationBag): Promise<DeviceResponse>;
@@ -19,6 +20,6 @@ export interface DevicesServiceInterface {
   updateUserDeviceStatusById(
     deviceId: string,
     authorizationBag: AuthorizationBag,
-    status: string,
+    status: DeviceStatus,
   ): Promise<DeviceResponse>;
 }
diff --git a/src/services/impl/devices-service-impl.ts b/src/services/impl/devices-service-impl.ts
index 4dbb85bac7085a0e5e1f69a3899bcef3bebdff56..e7c7d5c4882a20f93ce20b9d3670aa855fb3cb71 100644
--- a/src/services/impl/devices-service-impl.ts
+++ b/src/services/impl/devices-service-impl.ts
@@ -8,6 +8,7 @@ import { UpdateUserDevice } from './devices/update-user-device';
 import { AuthorizationBag } from '../../models/authorization-bag';
 import { DeviceRequest, DeviceResponse, DeviceValuesRequest, GetDevicesResponse } from '../../controllers/devices/dto';
 import { UpdateUserDeviceStatus } from './devices/update-user-device-status';
+import { DeviceStatus } from '../../models/device';
 
 export class DevicesService extends AbstractService implements DevicesServiceInterface {
   createUserDevice(device: DeviceRequest, authorizationBag: AuthorizationBag): Promise<DeviceResponse> {
@@ -37,7 +38,7 @@ export class DevicesService extends AbstractService implements DevicesServiceInt
   updateUserDeviceStatusById(
     deviceId: string,
     authorizationBag: AuthorizationBag,
-    status: string,
+    status: DeviceStatus,
   ): Promise<DeviceResponse> {
     return this.commandExecutor.execute(new UpdateUserDeviceStatus(deviceId, authorizationBag, status));
   }
diff --git a/src/services/impl/devices/test-user-device.ts b/src/services/impl/devices/test-user-device.ts
index 3e942375b69d7da6dd118b110e8156f46b92b547..a87cd6d679a775e6281eef9adbea1c897776fcb8 100644
--- a/src/services/impl/devices/test-user-device.ts
+++ b/src/services/impl/devices/test-user-device.ts
@@ -1,6 +1,6 @@
 import { Command } from '../command';
 import { EntityManager } from 'typeorm';
-import { Device, DeviceSubType, DeviceType } from '../../../models/device';
+import { Device, DeviceStatus, DeviceSubType, DeviceType } from '../../../models/device';
 import { testBrowserPush } from '../../../push-browser/push-browser-sender';
 import { testSafariPush } from '../../../push-browser/push-safari-sender';
 import { testMattermost } from '../../../push-browser/push-mattermost-sender';
@@ -37,12 +37,12 @@ export class TestUserDevice implements Command {
       if (testRet === 'EXPIRED' && selectedDevice.status !== 'EXPIRED') {
         // Device is expired, update the device status accordingly
         console.debug('Device is expired, updating DB');
-        this.devicesService.updateUserDeviceStatusById(selectedDevice.id, null, 'EXPIRED');
+        this.devicesService.updateUserDeviceStatusById(selectedDevice.id, null, DeviceStatus.EXPIRED);
       }
       if (testRet === 'OK' && selectedDevice.status === 'EXPIRED') {
         // Device is not expired anymore, update the device status accordingly
         console.debug('Device is not expired anymore, updating DB');
-        this.devicesService.updateUserDeviceStatusById(selectedDevice.id, null, 'OK');
+        this.devicesService.updateUserDeviceStatusById(selectedDevice.id, null, DeviceStatus.OK);
       }
       return;
     }