M50 WebSocket SDK Communication Protocol Change Log Date Description 2025/6/3 Add new Commands for M91 German. GetUserBalanceTime SetUserBalanceTime GetUserHolidays SetUserHolidays SetTrIcon Updated descriptions for commands. GetDeviceInfo 2025/5/23 Updated descriptions for commands. SetUserData SetFingerData SetFaceData 2025/4/30 Added new Commands. GetUserMessage SetUserMessage GetUserMessageColor SetUserMessageColor 2024/12/19 Added new Commands. GetVideoStreamSetting SetVideoStreamSetting GetCenterScreenMessage SetCenterScreenMessage 2024/12/16 Updated the Command. TimeLog_v2 (added ) 2024/12/11 Updated the Commands. TimeLog_v2 2024/11/9 Added the new Command. GetUserQRCode Updated the Commands to add user QR code. GetUserData SetUserData GetFirstUserData GetNextUserData GetNextUserDataExt 2024/1/3 Added the new Command. EnrollFaceByPhoto 2023/9/28 Updated the Commands to add user period. GetUserData SetUserData GetFirstUserData GetNextUserData GetNextUserDataExt 2023/9/27 Updated Login to add Result: FailUnknownToken 2023/3/30 Added the new Command. DeleteGlogWithPos GetGlogPosInfo 2022/12/28 Added the new Command. KeepAlive 2016/08/04 Added the Commands. TimeLog_v2, AdminLog_v2. Deprecated TimeLog, AdminLog. 2016/07/19 Added the description of in the request of SetUserData and the response of GetUserData. 2016/05/30 Added in the response of GetDeviceStatus. Added in the request of SetUserData. Added the new Commands. GetDeviceInfoAll, GetDeviceStatusAll, GetFirstGlog, GetNextGlog, GetFirmwareVersion, FirmwareUpgradeHttp 2016/03/24 Added the tag in the RemoteEnroll command. 2016/03/12 Added the tag in the Register request from the device, so that the server can deny the connection attempt of the devices with the invalid cloud id. 2016/03/07 Detailed the description of TimeLog by adding tag. 2016/02/25 Added ExitRemoteEnroll. 2016/01/20 Detailed the description of SetUserData. 2015/10/16 Initial 1. Introduction The system administrator can change settings or manipulate the device over Internet. The devices transmit attendance logs and management logs to the server in real time. For this purpose, the devices support websocket communication. 2. Stages 2.1 Establishing websocket connection The device administrator can set the URL of the websocket server in the device menu. (For example, ws://sample/ or wss://smaple) After power on, the device tries to connect to that server every 10s. When successfully connected (handshake), starts message communication. When the connection is closed, the device will automatically retry to connect to the server. 2.2 Registration The administrator should register the device serial number of the devices to manage into the database. Server generates a new token and also stores it to the database. When server receives registration request from the device, it replies the token. 2.3 Login Before going into normal communication state, the device should login. The device sends device serial number (key) and the token. If the device serial number and the token have already been registered in the system database, the server replies OK response. Else, replies Fail response. When login fails, the device close connection and retries again. The Web Server Application can be implemented so that the administrator can see online devices (such devices that are connected but not yet logged in) in the “Register Devices” page, and do registration devices. (In the sample, the server just allows the registration for the register request from the device without any condition.) The administrator can select any of them to change setting or manipulate. 3. Message Detail 1) Register ▪ Device Register F500 F500-0001 cloudid12345678 ▪ Server Register F500-0001 ee73fe2d-f765-7c13-bc8a-b584b0db5796 OK 2) Login ▪ Device Login F500-0001 ee73fe2d-f765-7c13-bc8a-b584b0db5796 ▪ Server Login F500-0001 OK/Fail/FailUnknownToken 3) GetUserData ▪ Server GetUserData 1~99999999 ▪ Device F500 1 F500-0001 GetUserData 1~99999999 23A/+( base64 encoded UTF-16 LE string) User/Manager/Administrator 0 Yes/No 0~49 0~49 0~49 0~49 0~49 Yes/No (Integer value) (Integer value) (Integer value) = (Year-2000) << 16 + (Month << 8) + Day 5342354 (in base64 encoding) 012345 5342354 (in base64 encoding) xxxx (bit mask, [2*n]th bit represents nth finger is enrolled or not, [2*n+1]th bit represents nth finger is duress finger or not) Yes/No Template data in base64 encoding OK/Fail 4) SetUserData ▪ Server SetUserData 1~99999999 Set/Delete /23… User/Manager/Administrator Yes/No 0~49 0~49 0~49 0~49 0~49 Yes/No (Integer value) (Integer value) (Integer value) = (Year-2000) << 16 + (Month << 8) + Day 543453 (in base64 encoding) 012345 543453 (in base64 encoding) Template data in base64 encoding Yes/No ▪ Device F500 1 F500-0001 SetUserData 1~99999999 Set/Delete OK/Fail No Certificates To delete user, use Delete. To delete card number, use SetAAAAAA==. (Note: Integer 0 is converted to “AAAAAA==” in base 64 encoding.) To delete password, use Set. To delete QR code, use SetAAAAAA==. When is ‘Set’ and is not ‘Yes’, if no verification data is existed after operation, then it will be returned FailNo Certificates . 5) GetFirstUserData ▪ server GetFirstUserData ▪ Device F500 1 F500-0001 GetFirstUserData 1~99999999 23A/+ User/Manager/Administrator 0 Yes/No 0~49 0~49 0~49 0~49 0~49 Yes/No (Integer value) (Integer value) (Integer value) = (Year-2000) << 16 + (Month << 8) + Day 56234 012345 56234 xxx… Yes/No Yes/No OK/Fail 6) GetNextUserData ▪ server GetNextUserData ▪ Device F500 1 F500-0001 GetNextUserData 1~99999999 23A/+ User/Manager/Administrator 0 Yes/No 0~49 0~49 0~49 0~49 0~49 Yes/No (Integer value) (Integer value) (Integer value) = (Year-2000) << 16 + (Month << 8) + Day 56234 012345 56234 xxx… Yes/No Yes/No OK/Fail 7) GetNextUserDataExt ▪ server GetNextUserDataExt 1~99999999 ▪ Device F500 1 F500-0001 GetNextUserDataExt 1~99999999 23A/+ User/Manager/Administrator 0 Yes/No 0~49 0~49 0~49 0~49 0~49 Yes/No (Integer value) (Integer value) (Integer value) = (Year-2000) << 16 + (Month << 8) + Day 56234 012345 56234 xxx… Yes/No Yes/No OK/Fail 8) GetUserPassword ▪ server GetUserPassword 1~99999999 ▪ Device F500 1 F500-0001 GetUserPassword 1~99999999 532 OK/Fail 9) GetUserCardNo ▪ server GetUserCardNo 1~99999999 ▪ Device F500 1 F500-0001 GetUserCardNo 1~99999999 394382 OK/Fail 10) GetUserQRCode ▪ server GetUserQR 1~99999999 ▪ Device F500 1 F500-0001 GetUserQR 1~99999999 394382 OK/Fail 11) GetUserPhoto ▪ server GetUserPhoto 1~99999999 ▪ Device F500 1 F500-0001 GetUserPhoto 1~99999999 Photo data in base64 encoding OK/Fail 12) SetUserPhoto ▪ server SetUserPhoto 1~99999999 5543 Photo data in base64 encoding ▪ Device F500 1 F500-0001 SetUserPhoto 1~99999999 OK/Device Not Ready/Fail Fail Reason 13) EnrollFaceByPhoto ▪ server EnrollFaceByPhoto 1~99999999 5543 Photo data in base64 encoding ▪ Device F500 1 F500-0001 EnrollFaceByPhoto 1~99999999 OK/Device Not Ready/Fail Fail Reason 14) GetFingerData ▪ server GetFingerData 1~99999999 0~9 1/0 ▪ Device F500 1 F500-0001 GetFingerData 1~99999999 0~9 Yes/No Template data in base64 encoding OK/Fail 15) SetFingerData ▪ server SetFingerData 1~99999999 User/Manager/Administrator 0~9 1/0 1/0 Template data in base64 encoding ▪ Device F500 1 F500-0001 SetFingerData 1~99999999 0~9 OK/Device Not Ready/Fail To delete Fingerprint data, do not include . 16) GetFaceData ▪ server GetFaceData 1~99999999 ▪ Device F500 1 F500-0001 GetFaceData 1~99999999 Yes Template data in base64 encoding OK/Fail 17) SetFaceData ▪ server SetFaceData 1~99999999 User/Manager/Administrator Yes/No Template data in base64 encoding ▪ Device F500 1 F500-0001 SetFaceData 1~99999999 Update/Delete OK/Device Not Ready/Fail To delete Face data, do not include . 18) RemoteEnroll ▪ Server RemoteEnroll RemoteEnrollFace/RemoteEnrollFP/RemoteEnrollCard/RemoteEnrollQR 0~9 (Optional) ▪ Device F500 1 F500-0001 RemoteEnroll Success/ EnrollNumberError/ DatabaseFull/ FaceAlreadyEnrolled/ FPAllEnrolled / FPAlreadyEnrolled / InvalidFingerNumber / CardAlreadyEnrolled / QRAlreadyEnrolled / MenuProcessing / RemoteEnrollAlreadyStarted / Unknown [ExitRemoteEnroll] ▪ Server ExitRemoteEnroll ▪ Device F500 1 F500-0001 ExitRemoteEnroll SuccessExitRemoteEnroll/NotStartedRemoteEnroll 19) GetDepartment ▪ Server GetDepartment 0~29 ▪ Device F500 1 F500-0001 GetDepartment 0~29 839A/… Not exist 20) SetDepartment ▪ Server SetDepartment 0~29 839A/… ▪ Device F500 1 F500-0001 SetDepartment OK/Fail/Invalid Param 21) GetProxyDept ▪ Server GetProxyDept 0~6 ▪ Device F500 1 F500-0001 GetProxyDept 0~6 839A/… Not exist 22) SetProxyDept ▪ Server SetProxyDept 0~6 839A/… ▪ Device F500 1 F500-0001 SetProxyDept OK/Fail/Invalid Param 23) GetAutoAttendance ▪ Server GetAutoAttendance ▪ Device F500 1 F500-0001 GetAutoAttendance 0, 0, 0 0, 0, 0 0, 0, 0 0, 0, 0 0, 0, 0 0, 0, 0 0, 0, 0 0, 0, 0 0, 0, 0 0, 0, 0 24) SetAutoAttendance ▪ Server SetAutoAttendance 0, 0, 0 0, 0, 0 0, 0, 0 0, 0, 0 0, 0, 0 0, 0, 0 0, 0, 0 0, 0, 0 0, 0, 0 0, 0, 0 ▪ Device F500 1 F500-0001 SetAutoAttendance OK/Fail 25) GetAccessTimeZone ▪ Server GetAccessTimeZone 0~49 ▪ Device F500 1 F500-0001 GetAccessTimeZone 0~49 0, 0 0, 0 0, 0 0, 0 0, 0 0, 0 0, 0 26) SetAccessTimeZone ▪ Server SetAccessTimeZone 0~49 0, 0 0, 0 0, 0 0, 0 0, 0 0, 0 0, 0 ▪ Device F500 1 F500-0001 SetAccessTimeZone OK/Fail 27) GetBellTime ▪ server GetBellTime ▪ Device F500 1 F500-0001 GetBellTime 10 24 0, 0, 0, 0 0, 0, 0, 0 0, 0, 0, 0 0, 0, 0, 0 0, 0, 0, 0 ... 0, 0, 0, 0 0, 0, 0, 0 28) SetBellTime ▪ server SetBellTime 3 24 0, 0, 0, 0 0, 0, 0, 0 0, 0, 0, 0 0, 0, 0, 0 0, 0, 0, 0 ... 0, 0, 0, 0 0, 0, 0, 0 ▪ Device F500 1 F500-0001 SetBellTime OK/Fail 29) GetTime ▪ Server GetTime ▪ Device F500 1 F500-0001 GetTime 30) SetTime ▪ Server SetTime ▪ Device F500 1 F500-0001 SetTime OK/Fail 31) GetDeviceStatus ▪ server GetDeviceStatus xxx ▪ Device F500 1 F500-0001 GetDeviceStatus xxx xxx Available Param Name Description ManagerCount Count of managers registered UserCount Count of users registered FaceCount Count of faces registered FpCount Count of fingers registered CardCount Count of card registered PwdCount Count of password registered QRCount Count of QR code registered DoorStatus 1: Door opened, 0: Door closed AlarmStatus bit-1: Door is not closed. bit-2: Illegal Open bit-3: Duress alarm bit-4: Tamper alarm 32) GetDeviceStatusAll ▪ server GetDeviceStatusAll ▪ Device F500 1 F500-0001 GetDeviceStatusAll < ManagerCount >xxx < UserCount >xxx < FaceCount >xxx < FpCount>xxx < CardCount>xxx < PwdCount>xxx < QRCount>xxx < DoorStatus>xxx < AlarmStatus>xxx (refer to the parameters of GetDeviceStatus ) 33) GetDeviceInfo ▪ server GetDeviceInfo xxx ▪ Device F500 1 F500-0001 GetDeviceInfo xxx xxx Available Param Name Description ManagersNumber Maximum number of managers MachineID Machine ID for OCX Language Device language LockReleaseTime Lock release time in seconds SLogWarning Management Log warning count GLogWarning Time log warning count ReverifyTime Re-verification detect time in minutes Baudrate Baud rate for serial port IdentifyMode Device default identification mode LockMode Lock control mode DoorSensorType Door sensor type DoorOpenTimeout Door open timeout in seconds AutoSleepTime Auto idle sleep time in minutes EventSendType Real time event send type WiegandFormat Wiegand output format CommPassword Communication password for OCX UseProxyInput Use of proxy setting ProxyDlgTimeout Use of proxy setting dialog timeout SoundVolume Device speaker volume setting ShowRealtimeCamera Photo display setting UseFailLog Setting of verify failure logging FaceEngineThreshold Face recognition security level FaceEngineUseAntispoofing Use of antispoofing function NeedWearingMask Use of mask wearing check SuggestWearingMask Use of suggestion for mask wearing UseMeasureTemperature Use of temperature measuring function UseVisitorMode Use of visitor mode ShowRealtimeTemperature Show measured temperature in realtime AbnormalTempDisableDoorOpen Setting of door control when high temperature is detected MeasuringDurationType Temperature measuring time MeasuringDistanceType Temperature measuring distance TemperatureUnit Unit of temperature AbnormalTempThreshold_Celsius High temperature threshold in Celsius degrees AbnormalTempThreshold_Fahrenheit High temperature threshold in Fahrenheit degrees BackgroundColor(M91 German Only) Background Color 0 – Green 1 – Turquoise 2 – Purple 3 – Orange 4 – Blue 5 – Grey 6 – Red 7 - White 34) GetDeviceInfoAll ▪ server GetDeviceInfoAll ▪ Device F500 1 F500-0001 GetDeviceInfoAll xxx xxx xxx … (refer to the parameters of GetDeviceInfo ) 35) SetDeviceInfo ▪ server SetDeviceInfo xxx 5 ▪ Device F500 1 F500-0001 SetDeviceInfo xxx(refer to the parameters of GetDeviceInfo ) OK/Fail 36) EnableDevice ▪ server EnableDevice Yes/No ▪ Device F500 1 F500-0001 EnableDevice OK/Fail 37) LockControlStatus ▪ Server LockControlStatus ▪ Device F500 1 F500-0001 LockControlStatus 1~7 Available Mode Description 1 Forcedly open state 2 Forcedly close state 3 Normal open state 4 Auto recover state 5 Close state 6 Watching close state 7 Illegal open state 38) LockControl ▪ Server LockControl 1~6 ▪ Device F500 1 F500-0001 LockControl OK/Fail Available Mode Description 1 Forcedly open 2 Forcedly close 3 Normal open 4 Auto recover (Close door) 5 Reboot device 6 Cancel warning. 39) TakeOffManager ▪ Server TakeOffManager ▪ Device F500 1 F500-0001 TakeOffManager OK/Fail 40) EmptyTimeLog ▪ Server EmptyTimeLog ▪ Device F500 1 F500-0001 EmptyTimeLog OK/Fail 41) EmptyManageLog ▪ Server EmptyManageLog ▪ Device F500 1 F500-0001 EmptyManageLog OK/Fail 42) EmptyAllData ▪ Server EmptyAllData ▪ Device F500 1 F500-0001 EmptyAllData OK/Fail 43) EmptyUserEnrollmentData ▪ Server EmptyUserEnrollmentData ▪ Device F500 1 F500-0001 EmptyUserEnrollmentData OK/Fail 44) GetEthernetSetting ▪ Server GetEthernetSetting ▪ Device F500 1 F500-0001 GetEthernetSetting Yes/No 192.168.1.102 < Subnet >255.255.255.0 192.168.1.1 5005 00:10:dd:01:08:81 192.168.1.15 255.255.255.0 0.0.0.0 45) SetEthernet ▪ Server SetEthernet Yes/No 192.168.1.102 < Subnet >255.255.255.0 192.168.1.1 5005 ▪ Device F500 1 F500-0001 SetEthernet OK/Fail 46) GetWiFiSetting ▪ Server GetWiFiSetting ▪ Device F500 1 F500-0001 GetWiFiSetting Yes/No xxxx xxxxxx Yes/No 192.168.2.225 < Subnet >255.255.255.0 192.168.2.1 5005 192.168.1.15 255.255.255.0 0.0.0.0 OK 47) SetWiFi ▪ Server SetWiFi Yes/No xxxx xxxxxx Yes/No 192.168.2.225 < Subnet >255.255.255.0 192.168.2.1 5005 ▪ Device F500 1 F500-0001 SetWiFi OK/Fail 48) GetDeviceInfoExt ▪ server GetDeviceInfoExt xxx ▪ Device F500 1 F500-0001 GetDeviceInfoExt xxx xxx xxx xxx xxx xxx Available Param Name Description MobileNetwork Mobile network setting NTPServer NTP server setting VPNServer VPN server setting WebServerUrl Web server/websocket server url SendLogUrl Log server url DeviceName Device name GPS GPS information 49) SetDeviceInfoExt ▪ server SetDeviceInfoExt xxx 5 ▪ Device F500 1 F500-0001 SetDeviceInfoExt OK/Fail Available Param Name Description MobileNetwork Mobile network setting NTPServer NTP server setting VPNServer VPN server setting WebServerUrl Web server/websocket server url SendLogUrl Log server url DeviceName Device name GPS GPS information 50) GetPowerSetting ▪ Server GetPowerSetting ▪ Device F500 1 F500-0001 GetPowerSetting 0 0 12 0, 0, 0, 0 0, 0, 0, 0 0, 0, 0, 0 0, 0, 0, 0 0, 0, 0, 0 ... 0, 0, 0, 0 51) SetPowerSetting ▪ Server SetPowerSetting 0 0 12 0, 0, 0, 0 0, 0, 0, 0 0, 0, 0, 0 0, 0, 0, 0 0, 0, 0, 0 ... 0, 0, 0, 0 ▪ Device F500 1 F500-0001 SetPowerSetting OK/Fail 52) TimeLog (deprecated) ▪ Device F500 1 F500-0001 TimeLog 24 1~99999999 FP Duty On None 0 Yes/No Photo data in base64 encoding Available Attend Status Description "Duty On" "Duty Off" "Overtime On" "Overtime Off" "Go Out On" "Go Out Off" "In" "Out" Available Action Description "Tamper" "FP" "PWD" "CD" "HandLock" "ProgLock" "ProgOpen" "ProgClose" "AutoRecover" "LockOver" "IlgOpen" "FP+CD" "FP+PWD" "CD+PWD" "FP+CD+PWD" "Duress" "InvalidTZ" "VerifyFail" "FACE" "CD+FACE" "FACE+PWD" "FACE+CD+PWD" "FP+FACE" "FACE+FP+CD" "QR" "FACE+QR" "FP+QR" "CD+QR" "QR+PWD" "FACE+FP+QR" "FACE+QR+PWD" "FACE+CD+QR" "FP+CD+QR" "FP+QR+PWD" ▪ Server TimeLog OK/Fail 53) TimeLog_v2 ▪ Device F500 1 F500-0001 TimeLog_v2 24 480 1~99999999 FP Duty On None 0 Yes/No Photo data in base64 encoding XXXX XXXX xxx ▪ Server TimeLog_v2 xxx OK/Fail 54) AdminLog (deprecated) ▪ Device F500 1 F500-0001 AdminLog 24 1~99999999 1~99999999 EnterMenu 0~255 ▪ Server AdminLog OK/Fail Available actions Description "Unknown" "EnrollUserFP" "EnrollUserPWD" "EnrollUserCard" "EnrollMgrFP" "EnrollMgrPWD" "EnrollMgrCard" "DeleteFP" "DeletePWD" "DeleteCard" "DeleteAll" "SettingChanged" "SetTime" "TZSet" "DeleteUser" "DeleteAllEnoll" "Restore" "ModifyPeriod" "EnrollPhoto" "DeletePhoto" "EnrollMsg" "DeleteMsg" "EnrollFace" "DeleteFace" "AbnormalBodyTemperatureAlarm" "EnrollQRcode" "DeleteQRcode" "TurnOn" "TurnOff" 55) AdminLog_v2 ▪ Device F500 1 F500-0001 AdminLog_v2 24 1~99999999 1~99999999 EnterMenu 0~255 xxx ▪ Server AdminLog_v2 xxx OK/Fail 56) KeepAlive ▪ Device F500 1 F500-0001 KeepAlive 2022-12-28-T20:02:42Z ▪ Server KeepAlive OK 2022-12-28-T20:02:42Z 2022-12-28-T20:02:43Z 57) GetFirstGlog ▪ server GetFirstGlog 0 xxx 2013-4-11-T11:28:54Z 2013-4-11-T11:28:54Z ▪ Device F500 1 F500-0001 GetFirstGlog 24 1~99999999 FP Duty On None 0 Yes/No Photo data in base64 encoding (refer to TimeLog Command) OK/Fail (Fail means no more log left) 58) GetNextGlog ▪ server GetNextGlog < BeginLogPos >xxx + 1)--> ▪ Device F500 1 F500-0001 GetNextGlog 24 1~99999999 FP Duty On None 0 Yes/No Photo data in base64 encoding (refer to TimeLog Command) OK/Fail(Fail means no more log left) 59) GetFirmwareVersion ▪ Server GetFirmwareVersion ▪ Device F500 1 F500-0001 GetFirmwareVersion F500 v3.3.0 0x20160530 60) FirmwareUpgradeHttp ▪ Server FirmwareUpgradeHttp xxx http://... ▪ Device F500 1 F500-0001 FirmwareUpgradeHttp OK/Fail After response, the device will start to download and upgrade the firmware automatically. 61) DeleteGlogWithPos ▪ Server DeleteGlogWithPos < EndPos> xxx ▪ Device F500 1 F500-0001 DeleteGlogWithPos OK/Fail 62) GetGlogPosInfo ▪ Server GetGlogPosInfo ▪ Device F500 1 F500-0001 GetGlogPosInfo 5 500000 OK/Fail 63) GetVideoStreamSetting ▪ Server GetVideoStreamSetting ▪ Device F500 1 123 M91-1234 9B0FFFEE-17A970B7 GetVideoStreamSetting 0 0 0 64) SetVideoStreamSetting ▪ Server SetVideoStreamSetting 0 0 0 ▪ Device F500 1 123 M91-1235 9B0FFFEE-17A970B7 SetVideoStreamSetting OK 65) GetCenterScreenMessage ▪ Server GetCenterScreenMessage ▪ Device F500 1 123 M91-1235 9B0FFFEE-17A970B7 GetCenterScreenMessage Message in base64 encoding FF04B248 FFFFFFFF 0 66) SetCenterScreenMessage ▪ Server SetCenterScreenMessage Message in base64 encoding FF04B248 FFFFFFFF 0 ▪ Device F500 1 123 M91-1235 9B0FFFEE-17A970B7 SetCenterScreenMessage OK 67) GetUserMessage ▪ Server GetUserMessage 1~99999999 ▪ Device F500 1 123 M91-1235 9B0FFFEE-17A970B7 GetUserMessage OK 1~99999999 Message in base64 encoding 68) SetUserMessage ▪ Server SetUserMessage 1~99999999 Message in base64 encoding ▪ Device F500 1 123 M91-1235 9B0FFFEE-17A970B7 SetUserMessage OK 69) GetUserMessageColor ▪ Server GetUserMessageColor ▪ Device F500 1 123 M91-1235 9B0FFFEE-17A970B7 GetUserMessageColor OK 04B248 FFFFFF 70) SetUserMessageColor ▪ Server SetUserMessageColor 04B248 FFFFFF ▪ Device F500 1 123 M91-1235 9B0FFFEE-17A970B7 SetUserMessageColor OK 71) GetUserBalanceTime(M91 German Only) ▪ Server GetUserBalanceTime 1~99999999 ▪ Device F500 1 123 M91-1235 9B0FFFEE-17A970B7 GetUserBalanceTime OK 1~99999999 190 72) SetUserBalanceTime(M91 German Only) ▪ Server SetUserBalanceTime 1~99999999 190 ▪ Device F500 1 123 M91-1235 9B0FFFEE-17A970B7 SetUserBalanceTime OK 73) GetUserHolidays(M91 German Only) ▪ Server GetUserHolidays 1~99999999 ▪ Device F500 1 123 M91-1235 9B0FFFEE-17A970B7 GetUserHolidays OK 1~99999999 < HolidaysInDays10>20 74) SetUserHolidays(M91 German Only) ▪ Server SetUserHolidays 1~99999999 < HolidaysInDays10>20 ▪ Device F500 1 123 M91-1235 9B0FFFEE-17A970B7 SetUserHolidays OK 75) SetTrIcon ▪ server SetTrIcon 1~8 0~2 Yes/No 5543 Icon data in base64 encoding ▪ Device F500 1 F500-0001 SetTrIcon OK/Device Not Ready/Fail Fail Reason