0% found this document useful (0 votes)
32 views

ISAPI - Person-Based Access Control

The Intelligent Security API Developer Guide provides comprehensive instructions for implementing person-based access control systems. It covers various aspects including operation methods, security protocols, and typical applications such as data collection and managing person information. The document also includes detailed URI requests for accessing different functionalities of the API.
Copyright
© © All Rights Reserved
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
32 views

ISAPI - Person-Based Access Control

The Intelligent Security API Developer Guide provides comprehensive instructions for implementing person-based access control systems. It covers various aspects including operation methods, security protocols, and typical applications such as data collection and managing person information. The document also includes detailed URI requests for accessing different functionalities of the API.
Copyright
© © All Rights Reserved
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 601

Intelligent Security API (Person-Based

Access Control)
Developer Guide
Intelligent Security API (Person-Based Access Control) Developer Guide

Legal Information
TO THE MAXIMUM EXTENT PERMITTED BY APPLICABLE LAW, THE DOCUMENT IS PROVIDED "AS IS"
AND "WITH ALL FAULTS AND ERRORS". OUR COMPANY MAKES NO REPRESENTATIONS OR
WARRANTIES, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO, WARRANTIES OF
MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE OR NON-INFRINGEMENT. IN NO EVENT
WILL OUR COMPANY BE LIABLE FOR ANY SPECIAL, CONSEQUENTIAL, INCIDENTAL, OR INDIRECT
DAMAGES, INCLUDING, AMONG OTHERS, DAMAGES FOR LOSS OF BUSINESS PROFITS, BUSINESS
INTERRUPTION OR LOSS OF DATA, CORRUPTION OF SYSTEMS, OR LOSS OF DOCUMENTATION,
WHETHER BASED ON BREACH OF CONTRACT, TORT (INCLUDING NEGLIGENCE), OR OTHERWISE, IN
CONNECTION WITH THE USE OF THE DOCUMENT, EVEN IF OUR COMPANY HAS BEEN ADVISED OF
THE POSSIBILITY OF SUCH DAMAGES OR LOSS.

i
Intelligent Security API (Person-Based Access Control) Developer Guide

Contents
Chapter 1 Overview .................................................................................................................... 1
1.1 Introduction ........................................................................................................................... 1
1.2 Update History ....................................................................................................................... 1
Chapter 2 ISAPI Description ...................................................................................................... 18
2.1 Operation Method ............................................................................................................... 18
2.2 URL Format .......................................................................................................................... 21
2.3 Message Format .................................................................................................................. 22
2.4 Others .................................................................................................................................. 24
Chapter 3 Security .................................................................................................................... 25
3.1 Authentication ..................................................................................................................... 25
Chapter 4 Typical Applications .................................................................................................. 27
4.1 Data Collection ..................................................................................................................... 27
4.1.1 Online Collect Data ..................................................................................................... 27
4.1.2 Offline Collect Data ..................................................................................................... 30
4.2 Manage Person Information ................................................................................................ 32
4.3 Manage Card Information .................................................................................................... 34
4.3.1 Collect Card Information ............................................................................................. 36
4.3.2 Card Operation ............................................................................................................ 36
4.4 Manage Fingerprint Information ......................................................................................... 38
4.4.1 Fingerprint Collection ................................................................................................. 40
4.5 Manage Face Information .................................................................................................... 41
4.5.1 Create Face Picture Library ......................................................................................... 41
4.5.2 Collect Face Data ......................................................................................................... 42
4.5.3 Manage Face Records in Face Picture Library ............................................................. 43
4.5.4 Configure Facial Recognition Mode ............................................................................ 44
4.6 Configure Access Permission Control Schedule ................................................................... 46

ii
Intelligent Security API (Person-Based Access Control) Developer Guide

4.7 Configure Authentication Mode Control Schedule .............................................................. 48


4.8 Configure Door Control Schedule ........................................................................................ 50
4.9 Remotely Control Door, Elevator, and Buzzer ...................................................................... 52
4.10 Configure Password for Remote Door Control ................................................................... 53
4.11 Configure Anti-Passing Back ............................................................................................... 54
4.12 Cross-Controller Anti-Passing Back Configuration ............................................................. 56
4.12.1 Configure Route Anti-Passing Back Based on Network ............................................. 56
4.12.2 Configure Entrance/Exit Anti-Passing Back Based on Network ................................. 59
4.12.3 Configure Route Anti-Passing Back Based on Card ................................................... 62
4.12.4 Configure Entrance/Exit Anti-Passing Back Based on Card ....................................... 64
4.13 Alarm or Event Receiving ................................................................................................... 66
4.13.1 Supported Alarm/Event Types and Details ............................................................... 66
4.13.2 Configure Mask Detection Event ............................................................................... 67
4.13.3 Configure Hard Hat Detection Event ......................................................................... 68
4.13.4 Configure and Search for Access Control Events ....................................................... 68
4.13.5 Receive Alarm/Event in Arming Mode ...................................................................... 71
4.13.6 Receive Alarm/Event in Listening Mode ................................................................... 72
4.13.7 Remotely Verify Access Control Events ..................................................................... 75
4.14 Configure Attendance Status and Schedule ....................................................................... 75
4.15 Other Applications ............................................................................................................. 79
4.15.1 Device/Server Settings .............................................................................................. 79
4.15.2 Multi-Factor Authentication ..................................................................................... 81
4.15.3 Multi-Door Interlocking ............................................................................................ 82
4.15.4 M1 Card Encryption Authentication ......................................................................... 82
4.15.5 Configuration and Maintenance ............................................................................... 83
Appendix A. Request URIs ........................................................................................................ 88
A.1 /ISAPI/AccessControl/AcsCfg/capabilities?format=json ...................................................... 88
A.2 /ISAPI/AccessControl/AcsCfg?format=json .......................................................................... 88

iii
Intelligent Security API (Person-Based Access Control) Developer Guide

A.3 /ISAPI/AccessControl/AcsEvent/capabilities?format=json .................................................. 89


A.4 /ISAPI/AccessControl/AcsEvent/StorageCfg/capabilities?format=json ............................... 89
A.5 /ISAPI/AccessControl/AcsEvent/StorageCfg?format=json ................................................... 90
A.6 /ISAPI/AccessControl/AcsEvent?format=json ...................................................................... 90
A.7 /ISAPI/AccessControl/AcsEventTotalNum/capabilities?format=json ................................... 92
A.8 /ISAPI/AccessControl/AcsEventTotalNum?format=json ...................................................... 93
A.9 /ISAPI/AccessControl/AcsWorkStatus/capabilities?format=json ......................................... 93
A.10 /ISAPI/AccessControl/AcsWorkStatus?format=json .......................................................... 94
A.11 /ISAPI/AccessControl/AntiSneakCfg/capabilities?format=json ......................................... 94
A.12 /ISAPI/AccessControl/AntiSneakCfg?format=json ............................................................. 95
A.13 /ISAPI/AccessControl/Attendance/planTemplate/<TemplateNo>?format=json ............... 95
A.14 /ISAPI/AccessControl/Attendance/planTemplate/capabilities?format=json ..................... 96
A.15 /ISAPI/AccessControl/Attendance/planTemplate?format=json ........................................ 96
A.16 /ISAPI/AccessControl/Attendance/weekPlan/<PlanNo>?format=json .............................. 97
A.17 /ISAPI/AccessControl/Attendance/weekPlan/capabilities?format=json ........................... 98
A.18 /ISAPI/AccessControl/capabilities ...................................................................................... 98
A.19 /ISAPI/AccessControl/CaptureCardInfo/capabilities?format=json .................................... 98
A.20 /ISAPI/AccessControl/CaptureCardInfo?format=json ........................................................ 99
A.21 /ISAPI/AccessControl/CaptureFaceData ............................................................................ 99
A.22 /ISAPI/AccessControl/CaptureFaceData/capabilities ....................................................... 102
A.23 /ISAPI/AccessControl/CaptureFaceData/Progress ........................................................... 102
A.24 /ISAPI/AccessControl/CaptureFaceData/Progress/capabilities ....................................... 103
A.25 /ISAPI/AccessControl/CaptureFingerPrint ....................................................................... 103
A.26 /ISAPI/AccessControl/CaptureFingerPrint/capabilities .................................................... 104
A.27 /ISAPI/AccessControl/CaptureIDInfo/capabilities?format=json ...................................... 104
A.28 /ISAPI/AccessControl/CaptureIDInfo?format=json .......................................................... 104
A.29 /ISAPI/AccessControl/CapturePresetParam/capabilities?format=json ........................... 105
A.30 /ISAPI/AccessControl/CapturePresetParam?format=json ............................................... 105

iv
Intelligent Security API (Person-Based Access Control) Developer Guide

A.31 /ISAPI/AccessControl/CaptureRule/capabilities?format=json ......................................... 106


A.32 /ISAPI/AccessControl/CaptureRule?format=json ............................................................ 107
A.33 /ISAPI/AccessControl/CardInfo/capabilities?format=json ............................................... 107
A.34 /ISAPI/AccessControl/CardInfo/Count?format=json ....................................................... 108
A.35 /ISAPI/AccessControl/CardInfo/Count?format=json&employeeNo=<ID> ....................... 109
A.36 /ISAPI/AccessControl/CardInfo/Delete?format=json ...................................................... 109
A.37 /ISAPI/AccessControl/CardInfo/Modify?format=json ..................................................... 109
A.38 /ISAPI/AccessControl/CardInfo/Record?format=json ...................................................... 110
A.39 /ISAPI/AccessControl/CardInfo/Search?format=json ...................................................... 110
A.40 /ISAPI/AccessControl/CardInfo/SetUp?format=json ....................................................... 111
A.41 /ISAPI/AccessControl/CardOperations/capabilities?format=json ................................... 112
A.42 /ISAPI/AccessControl/CardOperations/cardIssueStatus?format=json ............................ 112
A.43 /ISAPI/AccessControl/CardOperations/cardParam?format=json .................................... 112
A.44 /ISAPI/AccessControl/CardOperations/clearData?format=json ...................................... 113
A.45 /ISAPI/AccessControl/CardOperations/controlBlock?format=json ................................. 113
A.46 /ISAPI/AccessControl/CardOperations/customData/searchTask?format=json ............... 114
A.47 /ISAPI/AccessControl/CardOperations/customData?format=json .................................. 114
A.48 /ISAPI/AccessControl/CardOperations/dataBlock/<address>?format=json .................... 115
A.49 /ISAPI/AccessControl/CardOperations/dataBlock/control?format=json ......................... 115
A.50 /ISAPI/AccessControl/CardOperations/dataTrans?format=json ...................................... 116
A.51 /ISAPI/AccessControl/CardOperations/encryption?format=json .................................... 116
A.52 /ISAPI/AccessControl/CardOperations/localIssueCfg?format=json ................................. 117
A.53 /ISAPI/AccessControl/CardOperations/localIssueRequest?format=json ......................... 117
A.54 /ISAPI/AccessControl/CardOperations/localIssueRes?format=json ................................ 118
A.55 /ISAPI/AccessControl/CardOperations/protocol?format=json ........................................ 118
A.56 /ISAPI/AccessControl/CardOperations/reset?format=json ............................................. 119
A.57 /ISAPI/AccessControl/CardOperations/sectionEncryption?format=json ......................... 119
A.58 /ISAPI/AccessControl/CardOperations/verification?format=json ................................... 120

v
Intelligent Security API (Person-Based Access Control) Developer Guide

A.59 /ISAPI/AccessControl/CardReaderAntiSneakCfg/<ID>?format=json ............................... 120


A.60 /ISAPI/AccessControl/CardReaderAntiSneakCfg/capabilities?format=json .................... 121
A.61 /ISAPI/AccessControl/CardReaderCfg/<ID>?format=json ............................................... 121
A.62 /ISAPI/AccessControl/CardReaderCfg/capabilities?format=json ..................................... 122
A.63 /ISAPI/AccessControl/CardReaderPlan/<CardReaderNo>?format=json .......................... 122
A.64 /ISAPI/AccessControl/CardReaderPlan/capabilities?format=json ................................... 123
A.65 /ISAPI/AccessControl/CardVerificationRule/capabilities?format=json ............................ 124
A.66 /ISAPI/AccessControl/CardVerificationRule/progress?format=json ................................ 124
A.67 /ISAPI/AccessControl/CardVerificationRule?format=json ............................................... 125
A.68 /ISAPI/AccessControl/ClearAntiSneak?format=json ........................................................ 125
A.69 /ISAPI/AccessControl/ClearAntiSneak/capabilities?format=json .................................... 126
A.70 /ISAPI/AccessControl/ClearAntiSneakCfg/capabilities?format=json ............................... 126
A.71 /ISAPI/AccessControl/ClearAntiSneakCfg?format=json ................................................... 126
A.72 /ISAPI/AccessControl/ClearAttendancePlan?format=json .............................................. 127
A.73 /ISAPI/AccessControl/ClearCardRecord ........................................................................... 127
A.74 /ISAPI/AccessControl/ClearCardRecord/capabilities ....................................................... 128
A.75 /ISAPI/AccessControl/ClearEventCardLinkageCfg/capabilities?format=json ................... 128
A.76 /ISAPI/AccessControl/ClearEventCardLinkageCfg?format=json ...................................... 129
A.77 /ISAPI/AccessControl/ClearGroupCfg/capabilities?format=json ..................................... 129
A.78 /ISAPI/AccessControl/ClearGroupCfg?format=json ......................................................... 129
A.79 /ISAPI/AccessControl/ClearPictureCfg/capabilities?format=json .................................... 130
A.80 /ISAPI/AccessControl/ClearPictureCfg?format=json ....................................................... 130
A.81 /ISAPI/AccessControl/ClearPlansCfg/capabilities?format=json ....................................... 130
A.82 /ISAPI/AccessControl/ClearPlansCfg?format=json .......................................................... 131
A.83 /ISAPI/AccessControl/ClearSubmarineBack .................................................................... 131
A.84 /ISAPI/AccessControl/ClearSubmarineBack/capabilities ................................................. 132
A.85 /ISAPI/AccessControl/Configuration/attendanceMode/capabilities?format=json .......... 132
A.86 /ISAPI/AccessControl/Configuration/attendanceMode?format=json ............................. 133

vi
Intelligent Security API (Person-Based Access Control) Developer Guide

A.87 /ISAPI/AccessControl/Configuration/IRCfg/capabilities?format=json ............................. 133


A.88 /ISAPI/AccessControl/Configuration/IRCfg?format=json ................................................. 134
A.89 /ISAPI/AccessControl/Configuration/lockType/capabilities?format=json ....................... 134
A.90 /ISAPI/AccessControl/Configuration/lockType?format=json ........................................... 135
A.91 /ISAPI/AccessControl/Configuration/NFCCfg/capabilities?format=json .......................... 135
A.92 /ISAPI/AccessControl/Configuration/NFCCfg?format=json ............................................. 136
A.93 /ISAPI/AccessControl/Configuration/RFCardCfg/capabilities?format=json ..................... 137
A.94 /ISAPI/AccessControl/Configuration/RFCardCfg?format=json ........................................ 137
A.95 /ISAPI/AccessControl/Configuration/safetyHelmetDetection/capabilities?format=json
.................................................................................................................................................. 138
A.96 /ISAPI/AccessControl/Configuration/safetyHelmetDetection?format=json .................... 138
A.97 /ISAPI/AccessControl/DeployInfo .................................................................................... 139
A.98 /ISAPI/AccessControl/DeployInfo/capabilities ................................................................. 139
A.99 /ISAPI/AccessControl/Door/param/<ID> ......................................................................... 140
A.100 /ISAPI/AccessControl/Door/param/<ID>/capabilities ................................................... 140
A.101 /ISAPI/AccessControl/DoorSecurityModule/moduleStatus .......................................... 141
A.102 /ISAPI/AccessControl/DoorSecurityModule/moduleStatus/capabilities ....................... 141
A.103 /ISAPI/AccessControl/DoorStatusHolidayGroupCfg/<GroupNo>?format=json ............. 142
A.104 /ISAPI/AccessControl/DoorStatusHolidayGroupCfg/capabilities?format=json ............. 143
A.105 /ISAPI/AccessControl/DoorStatusHolidayPlanCfg/<PlanNo>?format=json ................... 143
A.106 /ISAPI/AccessControl/DoorStatusHolidayPlanCfg/capabilities?format=json ................. 144
A.107 /ISAPI/AccessControl/DoorStatusPlan/<DoorNo>?format=json ................................... 144
A.108 /ISAPI/AccessControl/DoorStatusPlan/capabilities?format=json .................................. 145
A.109 /ISAPI/AccessControl/DoorStatusPlanTemplate/<TemplateNo>?format=json .............. 146
A.110 /ISAPI/AccessControl/DoorStatusPlanTemplate/capabilities?format=json ................... 146
A.111 /ISAPI/AccessControl/DoorStatusWeekPlanCfg/<PlanNo>?format=json ...................... 147
A.112 /ISAPI/AccessControl/DoorStatusWeekPlanCfg/capabilities?format=json ................... 148
A.113 /ISAPI/AccessControl/EventCardLinkageCfg/<ID>?format=json .................................... 148

vii
Intelligent Security API (Person-Based Access Control) Developer Guide

A.114 /ISAPI/AccessControl/EventCardLinkageCfg/capabilities?format=json ......................... 149


A.115 /ISAPI/AccessControl/EventCardNoList/capabilities?format=json ................................ 149
A.116 /ISAPI/AccessControl/EventCardNoList?format=json .................................................... 150
A.117 /ISAPI/AccessControl/EventOptimizationCfg/capabilities?format=json ........................ 150
A.118 /ISAPI/AccessControl/EventOptimizationCfg?format=json ........................................... 151
A.119 /ISAPI/AccessControl/FaceCompareCond ..................................................................... 151
A.120 /ISAPI/AccessControl/FaceCompareCond/capabilities .................................................. 152
A.121 /ISAPI/AccessControl/FaceRecognizeMode/capabilities?format=json .......................... 152
A.122 /ISAPI/AccessControl/FaceRecognizeMode?format=json ............................................. 153
A.123 /ISAPI/AccessControl/FingerPrint/Count?format=json&employeeNo= ........................ 153
A.124 /ISAPI/AccessControl/FingerPrint/Delete/capabilities?format=json ............................. 154
A.125 /ISAPI/AccessControl/FingerPrint/Delete?format=json ................................................ 154
A.126 /ISAPI/AccessControl/FingerPrint/DeleteProcess?format=json .................................... 155
A.127 /ISAPI/AccessControl/FingerPrint/SetUp?format=json ................................................. 155
A.128 /ISAPI/AccessControl/FingerPrintCfg/capabilities?format=json .................................... 156
A.129 /ISAPI/AccessControl/FingerPrintDownload?format=json ............................................ 157
A.130 /ISAPI/AccessControl/FingerPrintModify?format=json ................................................. 157
A.131 /ISAPI/AccessControl/FingerPrintProgress?format=json ............................................... 158
A.132 /ISAPI/AccessControl/FingerPrintUpload?format=json ................................................. 158
A.133 /ISAPI/AccessControl/FingerPrintUploadAll?format=json ............................................. 159
A.134 /ISAPI/AccessControl/GroupCfg/<ID>?format=json ...................................................... 159
A.135 /ISAPI/AccessControl/GroupCfg/capabilities?format=json ........................................... 160
A.136 /ISAPI/AccessControl/IDBlackListCfg ............................................................................. 160
A.137 /ISAPI/AccessControl/IDBlackListCfg/capabilities .......................................................... 161
A.138 /ISAPI/AccessControl/IDBlackListCfg/template?format=json ........................................ 161
A.139 /ISAPI/AccessControl/IDCardInfoEvent/capabilities?format=json ................................. 162
A.140 /ISAPI/AccessControl/IDCardInfoEvent?format=json .................................................... 162
A.141 /ISAPI/AccessControl/IdentityTerminal ......................................................................... 162

viii
Intelligent Security API (Person-Based Access Control) Developer Guide

A.142 /ISAPI/AccessControl/IdentityTerminal/capabilities ...................................................... 163


A.143 /ISAPI/AccessControl/keyCfg/<ID>/attendance?format=json ....................................... 164
A.144 /ISAPI/AccessControl/keyCfg/attendance/capabilities?format=json ............................ 164
A.145 /ISAPI/AccessControl/keyCfg/attendance?format=json ................................................ 165
A.146 /ISAPI/AccessControl/LogModeCfg/capabilities?format=json ...................................... 165
A.147 /ISAPI/AccessControl/LogModeCfg?format=json .......................................................... 165
A.148 /ISAPI/AccessControl/M1CardEncryptCfg ..................................................................... 166
A.149 /ISAPI/AccessControl/M1CardEncryptCfg/capabilities .................................................. 167
A.150 /ISAPI/AccessControl/maintenanceData?secretkey= .................................................... 167
A.151 /ISAPI/AccessControl/maskDetection/capabilities?format=json ................................... 168
A.152 /ISAPI/AccessControl/maskDetection?format=json ...................................................... 168
A.153 /ISAPI/AccessControl/MultiCardCfg/<ID>?format=json ................................................ 169
A.154 /ISAPI/AccessControl/MultiCardCfg/capabilities?format=json ..................................... 169
A.155 /ISAPI/AccessControl/MultiDoorInterLockCfg/capabilities?format=json ...................... 170
A.156 /ISAPI/AccessControl/MultiDoorInterLockCfg?format=json .......................................... 170
A.157 /ISAPI/AccessControl/OfflineCapture/capabilities?format=json ................................... 171
A.158 /ISAPI/AccessControl/OfflineCapture/DataCollections/<captureNo>?format=json ...... 171
A.159 /ISAPI/AccessControl/OfflineCapture/DataCollections/downloadTask?format=json .... 172
A.160 /ISAPI/AccessControl/OfflineCapture/DataCollections/searchTask?format=json ......... 174
A.161 /ISAPI/AccessControl/OfflineCapture/DataCollections?format=json ............................ 174
A.162 /ISAPI/AccessControl/OfflineCapture/dataOutput/progress?format=json ................... 175
A.163 /ISAPI/AccessControl/OfflineCapture/dataOutput?format=json .................................. 175
A.164 /ISAPI/AccessControl/OfflineCapture/InfoFile/progress?format=json .......................... 176
A.165 /ISAPI/AccessControl/OfflineCapture/InfoFile?format=json ......................................... 176
A.166 /ISAPI/AccessControl/OfflineCapture/InfoFileTemplateDownload?format=json .......... 177
A.167 /ISAPI/AccessControl/OfflineCapture/progress?format=json ....................................... 179
A.168 /ISAPI/AccessControl/OfflineCapture/ruleInfo?format=json ........................................ 179
A.169 /ISAPI/AccessControl/OfflineCapture/uploadFailedDetails?format=json ...................... 180

ix
Intelligent Security API (Person-Based Access Control) Developer Guide

A.170 /ISAPI/AccessControl/OSDPModify/<ID>?format=json ................................................. 180


A.171 /ISAPI/AccessControl/OSDPModify/capabilities?format=json ...................................... 181
A.172 /ISAPI/AccessControl/OSDPStatus/<ID>?format=json .................................................. 181
A.173 /ISAPI/AccessControl/OSDPStatus/capabilities?format=json ........................................ 182
A.174 /ISAPI/AccessControl/personInfoExtendName/capabilities?format=json ..................... 182
A.175 /ISAPI/AccessControl/personInfoExtendName?format=json ........................................ 183
A.176 /ISAPI/AccessControl/PhoneDoorRightCfg/<ID>?format=json ..................................... 183
A.177 /ISAPI/AccessControl/PhoneDoorRightCfg/capabilities?format=json ........................... 184
A.178 /ISAPI/AccessControl/ReaderAcrossHost ...................................................................... 184
A.179 /ISAPI/AccessControl/ReaderAcrossHost/capabilities ................................................... 185
A.180 /ISAPI/AccessControl/remoteCheck/capabilities?format=json ..................................... 186
A.181 /ISAPI/AccessControl/remoteCheck?format=json ......................................................... 186
A.182 /ISAPI/AccessControl/RemoteControl/buzzer/<ID>?format=json ................................. 186
A.183 /ISAPI/AccessControl/RemoteControl/buzzer/capabilities?format=json ...................... 187
A.184 /ISAPI/AccessControl/RemoteControl/door/<ID> ......................................................... 187
A.185 /ISAPI/AccessControl/RemoteControl/door/capabilities .............................................. 188
A.186 /ISAPI/AccessControl/remoteControlPWCheck/capabilities?format=json .................... 188
A.187 /ISAPI/AccessControl/remoteControlPWCheck/door/<ID>?format=json ..................... 189
A.188 /ISAPI/AccessControl/remoteControlPWCfg/capabilities?format=json ........................ 189
A.189 /ISAPI/AccessControl/remoteControlPWCfg/door/<ID>?format=json .......................... 190
A.190 /ISAPI/AccessControl/ServerDevice ............................................................................... 190
A.191 /ISAPI/AccessControl/ServerDevice/capabilities ........................................................... 191
A.192 /ISAPI/AccessControl/SmsRelativeParam/capabilities?format=json ............................. 191
A.193 /ISAPI/AccessControl/SmsRelativeParam?format=json ................................................. 192
A.194 /ISAPI/AccessControl/SnapConfig ................................................................................. 192
A.195 /ISAPI/AccessControl/SnapConfig/capabilities .............................................................. 193
A.196 /ISAPI/AccessControl/StartReaderInfo .......................................................................... 193
A.197 /ISAPI/AccessControl/StartReaderInfo/capabilities ....................................................... 194

x
Intelligent Security API (Person-Based Access Control) Developer Guide

A.198 /ISAPI/AccessControl/SubmarineBack ........................................................................... 194


A.199 /ISAPI/AccessControl/SubmarineBack/capabilities ....................................................... 195
A.200 /ISAPI/AccessControl/SubmarineBackHostInfo/capabilities ......................................... 195
A.201 /ISAPI/AccessControl/SubmarineBackHostInfo/ConfigureNo/<ID> .............................. 195
A.202 /ISAPI/AccessControl/SubmarineBackMode ................................................................. 196
A.203 /ISAPI/AccessControl/SubmarineBackMode/capabilities .............................................. 197
A.204 /ISAPI/AccessControl/SubmarineBackReader/capabilities ............................................ 197
A.205 /ISAPI/AccessControl/SubmarineBackReader/ConfigureNo/<ID> ................................. 198
A.206 /ISAPI/AccessControl/userData?secretkey= .................................................................. 199
A.207 /ISAPI/AccessControl/UserInfo/capabilities?format=json ............................................. 200
A.208 /ISAPI/AccessControl/UserInfo/Count?format=json ..................................................... 200
A.209 /ISAPI/AccessControl/UserInfo/Delete?format=json .................................................... 201
A.210 /ISAPI/AccessControl/UserInfo/Modify?format=json ................................................... 201
A.211 /ISAPI/AccessControl/UserInfo/Record?format=json .................................................... 201
A.212 /ISAPI/AccessControl/UserInfo/Search?format=json .................................................... 202
A.213 /ISAPI/AccessControl/UserInfo/SetUp?format=json ..................................................... 202
A.214 /ISAPI/AccessControl/UserInfoDetail/Delete/capabilities?format=json ....................... 203
A.215 /ISAPI/AccessControl/UserInfoDetail/Delete?format=json ........................................... 204
A.216 /ISAPI/AccessControl/UserInfoDetail/DeleteProcess?format=json ............................... 204
A.217 /ISAPI/AccessControl/UserRightHolidayPlanCfg/capabilities?format=json ................... 205
A.218 /ISAPI/AccessControl/UserRightWeekPlanCfg/capabilities?format=json ...................... 206
A.219 /ISAPI/AccessControl/UserRightHolidayGroupCfg/<GroupNo>?format=json ............... 206
A.220 /ISAPI/AccessControl/UserRightHolidayGroupCfg/capabilities?format=json ................ 207
A.221 /ISAPI/AccessControl/UserRightHolidayPlanCfg/<PlanNo>?format=json ..................... 208
A.222 /ISAPI/AccessControl/UserRightPlanTemplate/<TemplateNo>?format=json ................ 209
A.223 /ISAPI/AccessControl/UserRightPlanTemplate/capabilities?format=json ..................... 210
A.224 /ISAPI/AccessControl/UserRightWeekPlanCfg/<PlanNo>?format=json ........................ 211
A.225 /ISAPI/AccessControl/Verification/ttsText/capabilities?format=json ............................ 212

xi
Intelligent Security API (Person-Based Access Control) Developer Guide

A.226 /ISAPI/AccessControl/Verification/ttsText?format=json ................................................ 212


A.227 /ISAPI/AccessControl/VerifyHolidayGroupCfg/<GroupNo>?format=json ..................... 213
A.228 /ISAPI/AccessControl/VerifyHolidayGroupCfg/capabilities?format=json ...................... 214
A.229 /ISAPI/AccessControl/VerifyHolidayPlanCfg/<PlanNo>?format=json ............................ 214
A.230 /ISAPI/AccessControl/VerifyHolidayPlanCfg/capabilities?format=json ......................... 215
A.231 /ISAPI/AccessControl/VerifyPlanTemplate/<TemplateNo>?format=json ...................... 216
A.232 /ISAPI/AccessControl/VerifyPlanTemplate/capabilities?format=json ............................ 216
A.233 /ISAPI/AccessControl/VerifyWeekPlanCfg/<PlanNo>?format=json .............................. 217
A.234 /ISAPI/AccessControl/VerifyWeekPlanCfg/capabilities?format=json ............................ 218
A.235 /ISAPI/AccessControl/WiegandCfg/capabilities ............................................................. 218
A.236 /ISAPI/AccessControl/WiegandCfg/wiegandNo/<ID> ................................................... 219
A.237 /ISAPI/AccessControl/WiegandRuleCfg ......................................................................... 219
A.238 /ISAPI/AccessControl/WiegandRuleCfg/capabilities ..................................................... 220
A.239 /ISAPI/Event/notification/alertStream .......................................................................... 220
A.240 /ISAPI/Event/notification/httpHosts .............................................................................. 221
A.241 /ISAPI/Event/notification/httpHosts/<ID>/test ............................................................. 222
A.242 /ISAPI/Event/notification/httpHosts/capabilities .......................................................... 223
A.243 /ISAPI/Intelligent/FDLib/capabilities?format=json ........................................................ 223
A.244 /ISAPI/Intelligent/FDLib/Count?format=json ................................................................ 224
A.245 /ISAPI/Intelligent/FDLib/Count?format=json&FDID=&faceLibType= ............................ 224
A.246 /ISAPI/Intelligent/FDLib/FaceDataRecord?format=json ................................................ 225
A.247 /ISAPI/Intelligent/FDLib/FDModify?format=json .......................................................... 226
A.248 /ISAPI/Intelligent/FDLib/FDSearch/Delete?format=json&FDID=&faceLibType= ........... 226
A.249 /ISAPI/Intelligent/FDLib/FDSearch?format=json ........................................................... 227
A.250 /ISAPI/Intelligent/FDLib/FDSearch?format=json&FDID=&FPID=&faceLibType= ........... 227
A.251 /ISAPI/Intelligent/FDLib/FDSetUp?format=json ............................................................ 228
A.252 /ISAPI/Intelligent/FDLib?format=json ............................................................................ 228
A.253 /ISAPI/Intelligent/FDLib?format=json&FDID=&faceLibType= ........................................ 230

xii
Intelligent Security API (Person-Based Access Control) Developer Guide

A.254 /ISAPI/System/capabilities ............................................................................................. 231


A.255 /ISAPI/System/PictureServer/capabilities?format=json ................................................ 231
A.256 /ISAPI/System/PictureServer?format=json .................................................................... 232
A.257 http://<ipAddress>:<portNo>/<url> .............................................................................. 233
Appendix B. Appendixes ......................................................................................................... 234
B.1 Request and Response Messages ...................................................................................... 234
B.1.1 JSON Messages ......................................................................................................... 234
B.1.2 XML Messages .......................................................................................................... 426
B.2 Access Control Event Types ................................................................................................ 484
B.3 Event Linkage Types ........................................................................................................... 501
B.4 Log Types for ISAPI ............................................................................................................. 513
B.5 Response Codes of Text Protocol ....................................................................................... 534
B.6 Error Codes Categorized by Functional Modules ............................................................... 570

xiii
Intelligent Security API (Person-Based Access Control) Developer Guide

Chapter 1 Overview
Access Control is the selective restriction of access to a place or other resources. The access control
applications integrated by Intelligent Security API (ISAPI) in this manual take the person as the
management and control unit, which indicates that linking fingerprints, faces, and other attributes
to a card will be replaced by linking fingerprints, cards, and other attributes to a person.

1.1 Introduction
This manual mainly introduces the integration flows and related URIs for access controller,
fingerprint access control terminal, fingerprint time attendance terminal, and so on, to implement
the following functions: schedule configuration, person/card/fingerprint information management,
alarm/event configuration, door/elevator/buzzer control, anti-passing back, and so on.

1.2 Update History

Summary of Changes in Version 2.6_Jan., 2021


Related Products: DS-K1T331 Series, DS-K1T341A Series, DS-K1T341M Series, DS-K1T642 Series,
DS-K1T671 Series, DS-K1T672 Series, DS-K5671 Series, DS-K5672 Series, and DS-K5604A Series Face
Recognition Terminal; DS-K1A330 Series Face Time Attendance Terminal
1. Extended face picture library capability message JSON_FPLibCap (related URI: /ISAPI/
Intelligent/FDLib/capabilities?format=json ):
added a node featurePointTypeList (feature point types of face pictures supported by the
device).
2. Extended the condition message of setting the face record JSON_SetFaceRecord (related URI: /
ISAPI/Intelligent/FDLib/FDSetUp?format=json ):
added a node PicFeaturePoints (feature points to be applied).
3. Extended the condition message of editing face records in the face picture library in a batch
JSON_BatchEditFaceRecord (related URI: /ISAPI/Intelligent/FDLib/FDModify?format=json ):
added a node PicFeaturePoints (feature points to be applied).
4. Extended the condition message of adding a face record to the face picture library
JSON_AddFaceRecordCond (related URI: /ISAPI/Intelligent/FDLib/FaceDataRecord?
format=json ):
added a node PicFeaturePoints (feature points to be applied).
5. Extended the condition message of editing a face record JSON_EditFaceRecord (related URI: /
ISAPI/Intelligent/FDLib/FDSearch?format=json&FDID=&FPID=&faceLibType= ):
added a node PicFeaturePoints (feature points to be applied).
6. Extended the result message of searching for person information JSON_UserInfoSearch (related
URI: /ISAPI/AccessControl/UserInfo/Search?format=json ):

1
Intelligent Security API (Person-Based Access Control) Developer Guide

added a sub node id (ID of the additional person information) to the node PersonInfoExtends of
UserInfo;
deleted a sub node name from the node PersonInfoExtends of UserInfo.
7. Extended the person information message JSON_UserInfo (related URIs: /ISAPI/AccessControl/
UserInfo/Modify?format=json , /ISAPI/AccessControl/UserInfo/Record?format=json , and /
ISAPI/AccessControl/UserInfo/SetUp?format=json ):
added a sub node id (ID of the additional person information) to the node PersonInfoExtends;
deleted a sub node name from the node PersonInfoExtends.
8. Extended the person management capability message JSON_Cap_UserInfo (related URI: /ISAPI/
AccessControl/UserInfo/capabilities?format=json ):
added a sub node id (ID of the additional person information) to the node PersonInfoExtends;
deleted a sub node name from the node PersonInfoExtends.
9. Added two URIs of configuring the name of the additional person information:
Get configuration capability: GET /ISAPI/AccessControl/personInfoExtendName/capabilities?
format=json ;
Get or set parameters: GET or PUT /ISAPI/AccessControl/personInfoExtendName?
format=json .
10. Extended access control event types in Access Control Event Types :
added an event type 0xc1-"MINOR_FULL_STAFF" (Number of People Exceeds 90% of Capacity).
11. Extended log types in Log Types for ISAPI :
added 15 operation log types: "localParamFactoryDefault" (Restore to default settings locally),
"remoteParamFactoryDefault" (Restore to default settings remotely),
"remoteDeleteAllVerifyOrCapPics" (Delete all authenticated or captured face pictures
remotely), "localDeleteAllVerifyOrCapPics" (Delete all authenticated or captured face pictures
locally), "remoteDeleteEventsAtSpecTime" (Delete events by specified time remotely),
"localDeleteEventsAtSpecTime" (Delete events by specified time locally),
"remoteOpenSummerTime" (Enable DST remotely), "localOpenSummerTime" (Enable DST
locally), "remoteCloseSummerTime" (Disable DST remotely), "localCloseSummerTime" (Disable
DST locally), "remoteEZVIZUnbind" (Unbind from EZVIZ cloud remotely), "localEZVIZUnbind"
(Unbind from EZVIZ cloud locally), "enterLocalUIBackground" (Enter UI background),
"remoteDeleteFaceBaseMap" (Delete registered face pictures remotely), and
"localDeleteFaceBaseMap" (Delete registered face pictures locally);
added four additional information log types: "addUserInfo" (Added person information (access
control permission)), "modifyUserInfo" (Edit person information (access control permission)),
"clearUserInfo" (Delete person information by employee No. (access control permission)), and
"clearAllUser" (Delete all person information (access control permission)).

Summary of Changes in Version 2.6_Oct., 2020


Related Product: DS-K1F600U-D6E and DS-K1F600U-D6E-F Enrollment Station with Software
Version 1.0.0

2
Intelligent Security API (Person-Based Access Control) Developer Guide

1. Added two query parameters security (the version No. of encryption scheme) and iv (the
initialization vector) to the request URI /ISAPI/AccessControl/CapturePresetParam?
format=json .
2. Added two query parameters security (the version No. of encryption scheme) and iv (the
initialization vector) to the request URI /ISAPI/AccessControl/CaptureCardInfo?format=json .
3. Extended the capability message of collecting card information JSON_CardInfoCap and card
information message JSON_CardInfo_Collection (related URIs: /ISAPI/AccessControl/
CaptureCardInfo/capabilities?format=json and /ISAPI/AccessControl/CaptureCardInfo?
format=json ):
added two card types "FelicaCard" (FeliCa card) and "DesfireCard" (DESFire card) to the node
cardType.
4. Added two query parameters security (the version No. of encryption scheme) and iv (the
initialization vector) to the request URI /ISAPI/AccessControl/CaptureIDInfo?format=json .
5. Added URIs of uploading the user list of offline collection:
Upload the user list: POST /ISAPI/AccessControl/OfflineCapture/InfoFile?format=json ;
Get the uploading progress: GET /ISAPI/AccessControl/OfflineCapture/InfoFile/progress?
format=json ;
Get details of failing to upload: GET /ISAPI/AccessControl/OfflineCapture/uploadFailedDetails?
format=json .
6. Extended the result message of searching for the collected data JSON_SearchTaskResponse
(related URI: /ISAPI/AccessControl/OfflineCapture/DataCollections/searchTask?format=json ):
added two sub nodes cardNo (card No.) and cardType (card type) to the node CardNoList of
DataCollections;
added two sub nodes IdentityInfo (identity information) and CardIssueStatus (issuing status list
of cards containing face pictures and fingerprints) to the node DataCollections.
7. Extended parameter message of offline collection rules JSON_RuleInfo (related URI: /ISAPI/
AccessControl/OfflineCapture/ruleInfo?format=json ):
added two nodes enableLocalIssueCard (whether to enable issuing smart cards locally) and
isLocalStorage (whether to store face picture and fingerprint information in the device locally).
8. Extended parameter message of offline collection progress JSON_CaptureProgress (related
URI: /ISAPI/AccessControl/OfflineCapture/progress?format=json ):
added two nodes reqIssueNum (number of persons to be issued with smart cards) and
IssuedNum (number of persons that have been issued with smart cards).
9. Added two query parameters security (the version No. of encryption scheme) and iv (the
initialization vector) to the request URI /ISAPI/AccessControl/OfflineCapture/dataOutput?
format=json .
10. Extended parameter message for exporting offline collected data JSON_DataOutputCfg
(related URI: /ISAPI/AccessControl/OfflineCapture/dataOutput?format=json ):
added a node type (exporting type).
11. Added a URI of downloading the user list template of offline collection: POST /ISAPI/
AccessControl/OfflineCapture/InfoFileTemplateDownload?format=json .
12. Added a URI of downloading data collected offline: POST /ISAPI/AccessControl/
OfflineCapture/DataCollections/downloadTask?format=json .

3
Intelligent Security API (Person-Based Access Control) Developer Guide

13. Extended the offline collection capability message JSON_OfflineCaptureCap (related URI: /
ISAPI/AccessControl/OfflineCapture/capabilities?format=json ):
added three sub nodes maxSize (size of the card No. list), cardNo (card No.), and cardType
(card type) to the node CardNoList of DataCollections of SearchTask;
added two sub nodes IdentityInfo (identity information) and CardIssueStatus (issuing status
list of cards containing face pictures and fingerprints) to the node DataCollections of
SearchTask;
added two nodes enableLocalIssueCard (whether to enable issuing smart cards locally) and
isLocalStorage (whether to store face picture and fingerprint information in the device locally)
to the node RuleInfo;
added two nodes reqIssueNum (number of persons to be issued with smart cards) and
IssuedNum (number of persons that have been issued with smart cards) to the node
CaptureProgress.
14. Added two query parameters security (the version No. of encryption scheme) and iv (the
initialization vector) to the request URI /ISAPI/AccessControl/CardOperations/
sectionEncryption?format=json .
15. Added two query parameters security (the version No. of encryption scheme) and iv (the
initialization vector) to the request URI /ISAPI/AccessControl/CardOperations/verification?
format=json .
16. Added two query parameters security (the version No. of encryption scheme) and iv (the
initialization vector) to the request URI /ISAPI/AccessControl/CardOperations/controlBlock?
format=json .
17. Added a URI for sending a request for card issuing: PUT /ISAPI/AccessControl/
CardOperations/localIssueRequest?format=json .
18. Added a URI of getting the current card issuing status and real-time card issuing results: GET /
ISAPI/AccessControl/CardOperations/localIssueRes?format=json .
19. Added a URI of getting or setting rule parameters for issuing smart cards: GET or PUT /ISAPI/
AccessControl/CardOperations/localIssueCfg?format=json .
20. Added a URI of deleting data from the card: PUT /ISAPI/AccessControl/CardOperations/
clearData?format=json .
21. Added a URI of setting custom card information: PUT /ISAPI/AccessControl/CardOperations/
customData?format=json .
22. Added a URI of searching for custom card information: POST /ISAPI/AccessControl/
CardOperations/customData/searchTask?format=json .
23. Added a URI of getting the smart card issuing status: GET /ISAPI/AccessControl/
CardOperations/cardIssueStatus?format=json .
24. Extended card operation capability message JSON_CardOperationsCap (related URI: /ISAPI/
AccessControl/CardOperations/capabilities?format=json ):
added seven nodes: Issue (capability of sending a request for card issuing and getting the
current card issuing status and real-time card issuing results), localIssueCfg (capability of
configuring rule parameters for issuing smart cards), ClearData (capability of deleting data
from the card), CustomData (capability of setting custom card information),
CustomDataSearchCond (condition configuration capability of searching for custom card

4
Intelligent Security API (Person-Based Access Control) Developer Guide

information), CustomDataResult (result capability of searching for custom card information),


and CardIssueStatus (capability of getting the smart card issuing status).

Summary of Changes in Version 2.6_Aug., 2020


Related Product: DS-K1T680DX Series Face Recognition Terminal with Software Version 3.1.2
1. Extended the functional capability message of access control XML_Cap_AccessControl (related
URI: /ISAPI/AccessControl/capabilities ):
added 9 nodes, i.e., <isSupportSafetyHelmetDetection> (whether it supports configuring hard
hat detection), <isSupportKeyCfgAttendance> (whether it supports configuring parameters of
attendance check by pressing the key), <isSupportIDBlackListTemplate> (whether it supports
downloading the ID card blocklist template), <isSupportAttendanceWeekPlan> (whether it
supports configuring parameters of the week attendance schedule),
<isSupportClearAttendancePlan> (whether it supports clearing the week attendance schedule),
<isSupportAttendanceMode> (whether it supports configuring the attendance mode),
<isSupportAttendancePlanTemplate> (whether it supports configuring the attendance schedule
template), <isSupportAttendancePlanTemplateList> (whether it supports getting the list of
attendance schedule templates), and <isSupportCardVerificationRule> (whether it supports
configuring card No. authentication mode).
2. Extended capability message JSON_Cap_AcsEvent and result parameter message
JSON_AcsEvent of searching for access control events (related URIs: /ISAPI/AccessControl/
AcsEvent/capabilities?format=json and /ISAPI/AccessControl/AcsEvent?format=json ):
added three sub nodes to the node InfoList, i.e., label (custom attendance name), mask
(whether the person is wearing mask), and helmet (whether the person is wearing hard hat).
3. Extended the configuration capability message JSON_Cap_CardReaderCfg and the parameter
message JSON_CardReaderCfg of the card reader (related URIs: /ISAPI/AccessControl/
CardReaderCfg/capabilities?format=json and /ISAPI/AccessControl/CardReaderCfg/<ID>?
format=json ):
added three nodes: enableReverseCardNo (whether to enable reversing the card No.),
independSwipeIntervals (time interval of person authentication), and
maskFaceMatchThresholdN (1:N face picture (face with mask and normal background)
comparison threshold).
4. Extended message about access control event information
JSON_EventNotificationAlert_AccessControlEventMsg :
added two sub nodes label (custom attendance name) and helmet (whether the person is
wearing hard hat) to the node AccessControllerEvent.
5. Extended configuration capability message XML_Cap_IdentityTerminal and parameter message
XML_IdentityTerminal of intelligent identity recognition terminal (related URIs: /ISAPI/
AccessControl/IdentityTerminal/capabilities and /ISAPI/AccessControl/IdentityTerminal ):
added a sub node <maskFaceMatchThresholdN> (1:N face picture (face with mask and normal
background picture) comparison threshold of ECO mode) to the node <ecoMode>.
6. Extended configuration capability message JSON_RFCardCfgCap and parameter message
JSON_RFCardCfg of enabling RF (Radio Frequency) card recognition (related URIs: /ISAPI/

5
Intelligent Security API (Person-Based Access Control) Developer Guide

AccessControl/Configuration/RFCardCfg/capabilities?format=json and /ISAPI/AccessControl/


Configuration/RFCardCfg?format=json ):
add two card types "DesfireCard" (DESFire card) and "FelicaCard" (FeliCa card) to the node
cardType.
7. Added the function of configuring attendance status and schedule, refer to Configure
Attendance Status and Schedule .
8. Added URIs of configuring card No. authentication mode:
Get the configuration capability: GET /ISAPI/AccessControl/CardVerificationRule/capabilities?
format=json ;
Get or set parameters: GET or PUT /ISAPI/AccessControl/CardVerificationRule?format=json ;
Get the switching progress and configuration result: GET /ISAPI/AccessControl/
CardVerificationRule/progress?format=json .

Summary of Changes in Version 2.6_Apr., 2020


Related Product: DS-K1T671TM-3XF, DS-K1T671TMW-3XF, DS-K5671-3XF/ZU, DS-K5604A-3XF/V,
and DS-K1TA70MI-T Face Recognition Terminal with Software Version 2.2.6
1. Extended message about access control event information
JSON_EventNotificationAlert_AccessControlEventMsg :
added 8 sub nodes: name (person name), QRCodeInfo (QR code information),
thermometryUnit (temperature unit), currTemperature (face temperature),
isAbnomalTemperature (whether the face temperature is abnormal), RegionCoordinates (face
temperature's coordinates), remoteCheck (whether remote verification is required), and mask
(whether the person is wearing mask or not) to the node AccessControllerEvent.
2. Extended message about event information of swiping ID card
JSON_EventNotificationAlert_IDCardSwipingEventMsg :
added 7 sub nodes: QRCodeInfo (QR code information), thermometryUnit (temperature unit),
currTemperature (face temperature), isAbnomalTemperature (whether the face temperature is
abnormal), RegionCoordinates (face temperature's coordinates), remoteCheck (whether
remote verification is required), and mask (whether the person is wearing mask or not) to the
node IDCardInfoEvent.
3. Added a message about event information of scanning QR code
JSON_EventNotificationAlert_QRCodeEventMsg .
4. Added a message about face thermography event information
JSON_EventNotificationAlert_FaceThermographyEventMsg .
5. Added two URIs of verifying the access control event remotely:
Get capability: GET /ISAPI/AccessControl/remoteCheck/capabilities?format=json ;
Verify the access control event remotely: PUT /ISAPI/AccessControl/remoteCheck?
format=json .
6. Extended configuration capability message of the access controller JSON_Cap_AcsCfg (related
URI: /ISAPI/AccessControl/AcsCfg/capabilities?format=json ):
added 11 nodes: thermalEnabled (whether to enable thermography), thermalMode (whether
to enable thermography-only mode), thermalPictureEnabled (whether to enable uploading
visible light pictures in thermography-only mode), isSupportThermalIp (whether it supports

6
Intelligent Security API (Person-Based Access Control) Developer Guide

configuring IP address of the thermography device), highestThermalThreshold (upper limit of


the temperature threshold), lowestThermalThreshold (lower limit of the temperature
threshold), thermalDoorEnabled (whether to open the door when the temperature is above the
upper limit or below the lower limit of the threshold), QRCodeEnabled (whether to enable QR
code function), remoteCheckDoorEnabled (whether to enable controlling the door by remote
verification), checkChannelType (verification channel type), and isSupportChannelIp (whether
it supports configuring IP address of the verification channel).
7. Extended parameter message of the access controller JSON_AcsCfg (related URI: /ISAPI/
AccessControl/AcsCfg?format=json ):
added 11 nodes: thermalEnabled (whether to enable thermography), thermalMode (whether
to enable thermography-only mode), thermalPictureEnabled (whether to enable uploading
visible light pictures in thermography-only mode), thermalIp (IP address of the thermography
device), highestThermalThreshold (upper limit of the temperature threshold),
lowestThermalThreshold (lower limit of the temperature threshold), thermalDoorEnabled
(whether to open the door when the temperature is above the upper limit or below the lower
limit of the threshold), QRCodeEnabled (whether to enable QR code function),
remoteCheckDoorEnabled (whether to enable controlling the door by remote verification),
checkChannelType (verification channel type), and channelIp (IP address of the verification
channel).
8. Added two URIs of configuring mask detection parameters:
Get configuration capability: GET /ISAPI/AccessControl/maskDetection/capabilities?
format=json ;
Get or set parameters: GET or PUT /ISAPI/AccessControl/maskDetection?format=json .
9. Extended access control capability message XML_Cap_AccessControl (related URI: /ISAPI/
AccessControl/capabilities ):
added two nodes: <isSupportRemoteCheck> (whether it supports verifying access control
events remotely) and <isSupportMaskDetection> (whether it supports mask detection).
10. Extended device capability message XML_DeviceCap (related URI: /ISAPI/System/
capabilities ):
added two nodes: <isSupportFaceTemperatureMeasurementEvent> (whether it supports
uploading face thermography events) and <isSupportQRCodeEvent> (whether it supports
uploading QR code events).

Summary of Changes in Version 2.6_Feb., 2020


Related Product: DS-K1T804A Series and DS-K1T8003 Series Fingerprint Access Control Terminal
with Software Version 1.3.0; DS-K1A802A Series and DS-K1A8503 Series Fingerprint Time
Attendance Terminal with Software Version 1.3.0
1. Extended person management capability message JSON_Cap_UserInfo (related URI: /ISAPI/
AccessControl/UserInfo/capabilities?format=json ):

7
Intelligent Security API (Person-Based Access Control) Developer Guide

added a node purePwdVerifyEnable (whether the device supports opening the door only by
password).
2. Extended message about week schedule configuration capability of card reader authentication
mode JSON_Cap_VerifyWeekPlanCfg (related URI: /ISAPI/AccessControl/VerifyWeekPlanCfg/
capabilities?format=json ):
added a node purePwdVerifyEnable (whether the device supports opening the door only by
password).
3. Extended message about holiday schedule configuration capability of card reader
authentication mode JSON_Cap_VerifyHolidayPlanCfg (related URI: /ISAPI/AccessControl/
VerifyHolidayPlanCfg/capabilities?format=json ):
added a node purePwdVerifyEnable (whether the device supports opening the door only by
password).
4. Extended configuration capability message of event and card linkage
JSON_Cap_EventCardLinkageCfg (related URI: /ISAPI/AccessControl/EventCardLinkageCfg/
capabilities?format=json ):
added a node purePwdVerifyEnable (whether the device supports opening the door only by
password).
5. Extended condition message of searching for access control events JSON_AcsEventCond
(related URI: /ISAPI/AccessControl/AcsEvent?format=json ):
added a node timeReverseOrder (whether to return events in descending order of time).
6. Extended capability message of searching for access control events JSON_Cap_AcsEvent
(related URI: /ISAPI/AccessControl/AcsEvent/capabilities?format=json ):
added a sub node timeReverseOrder (whether to return events in descending order of time) to
the node AcsEventCond.
7. Extended message about access control event information
JSON_EventNotificationAlert_AccessControlEventMsg :
added a sub node purePwdVerifyEnable (whether the device supports opening the door only
by password) to the node AccessControllerEvent.
8. Extended configuration capability message JSON_Cap_CardReaderCfg and parameter message
JSON_CardReaderCfg of card reader (related URIs: /ISAPI/AccessControl/CardReaderCfg/
capabilities?format=json and /ISAPI/AccessControl/CardReaderCfg/<ID>?format=json ):
added two nodes: FPAlgorithmVersion (fingerprint algorithm library version) and
cardReaderVersion (card reader version).

Summary of Changes in Version 2.6_Jan., 2020


Related Product: DS-K1T341AM, DS-K1T341AMF, DS-K1T642M, DS-K1T642MF, DS-K1T642E, DS-
K1T642EF, DS-K1T642MW, DS-K1T642MFW, DS-K1T642EW, and DS-K1T642EFW Face Recognition
Terminal with Software Version 1.0
1. Extended person information message JSON_UserInfo (related URIs: /ISAPI/AccessControl/
UserInfo/Record?format=json , /ISAPI/AccessControl/UserInfo/Modify?format=json , and /
ISAPI/AccessControl/UserInfo/SetUp?format=json ):

8
Intelligent Security API (Person-Based Access Control) Developer Guide

added two nodes: gender (gender of the person in the face picture) and PersonInfoExtends
(additional person information).
2. Extended result message of searching for person information JSON_UserInfoSearch (related
URI: /ISAPI/AccessControl/UserInfo/Search?format=json ):
added two sub nodes: gender (gender of the person in the face picture) and PersonInfoExtends
(additional person information) to the node UserInfo.
3. Extended person management capability message JSON_Cap_UserInfo (related URI: /ISAPI/
AccessControl/UserInfo/capabilities?format=json ):
added a sub node fuzzySearch (keywords for fuzzy search) to the node UserInfoSearchCond;
added two nodes: gender (gender of the person in the face picture) and PersonInfoExtends
(additional person information).
4. Added a URI of exporting or importing person permission data securely: GET or POST /ISAPI/
AccessControl/userData?secretkey= .
5. Added a URI of exporting the maintenance data: GET /ISAPI/AccessControl/maintenanceData?
secretkey= .
6. Added two URIs of configuring text parameters of the audio prompt for authentication results:
Get configuration capability: GET /ISAPI/AccessControl/Verification/ttsText/capabilities?
format=json ;
Get or set parameters: GET or PUT /ISAPI/AccessControl/Verification/ttsText?format=json .
7. Extended configuration capability message JSON_Cap_AcsCfg and parameter message
JSON_AcsCfg of the access controller (related URIs: /ISAPI/AccessControl/AcsCfg/capabilities?
format=json and /ISAPI/AccessControl/AcsCfg?format=json ):
added three nodes: showPicture (whether to display the authenticated picture),
showEmployeeNo (whether to display the authenticated employee ID), and showName
(whether to display the authenticated name).
8. Extended condition configuration capability XML_Cap_FaceCompareCond and condition
parameter message XML_FaceCompareCond of face picture comparison (related URIs: /ISAPI/
AccessControl/FaceCompareCond/capabilities and /ISAPI/AccessControl/FaceCompareCond ):
added a node <maxDistance> (maximum recognition distance).
9. Added two URIs of configuring door lock status when the device is powered off:
Get configuration capability: GET /ISAPI/AccessControl/Configuration/lockType/capabilities?
format=json ;
Get or set parameters: GET or PUT /ISAPI/AccessControl/Configuration/lockType?
format=json .
10. Extended functional capability message of access control XML_Cap_AccessControl (related
URI: /ISAPI/AccessControl/capabilities ):
added six nodes: <isSupportTTSText> (whether it supports configuring the text of the audio
prompt), <isSupportIDBlackListCfg> (whether it supports applying ID card blocklist),
<isSupportUserDataImport> (whether it supports importing person permission data),
<isSupportUserDataExport> (whether it supports exporting person permission data),
<isSupportMaintenanceDataExport> (whether it supports exporting maintenance data), and
<isSupportLockTypeCfg> (whether it supports configuring door lock status when the device is
powered off).

9
Intelligent Security API (Person-Based Access Control) Developer Guide

Summary of Changes in Version 2.0_Aug., 2019


Related Product: DS-K1T640 Series, DS-K1T671 Series, and DS-K5671 Series Face Recognition
Terminal with Software Version 2.1.1
1. Extended the capability message of collecting face data XML_Cap_CaptureFaceData (related
URI: /ISAPI/AccessControl/CaptureFaceData/capabilities ):
added a sub node <dataType> (data type of collected face pictures) to the node
<CaptureFaceDataCond>.
2. Extended the condition message of collecting face data XML_CaptureFaceDataCond (related
URI: /ISAPI/AccessControl/CaptureFaceData ):
added a node <dataType> (data type of collected face pictures).

Summary of Changes in Version 2.0_July, 2019


Related Products: DS-K1A802 Series, DS-K1A802A Series, and DS-K1A8503 Series Fingerprint Time
Attendance Terminal; DS-K1T804 Series, DS-K1T8003 Series, and DS-K1T8004 Series Fingerprint
Access Control Terminal.
1. Extended person management capability message JSON_Cap_UserInfo and person information
message JSON_UserInfo (related URIs: /ISAPI/AccessControl/UserInfo/capabilities?
format=json , /ISAPI/AccessControl/UserInfo/Record?format=json , and /ISAPI/AccessControl/
UserInfo/Modify?format=json ):
added a node addUser (whether to add the person if the person information being edited does
not exist);
added a person authentication mode "cardOrFpOrPw" (card or fingerprint or password) to the
node userVerifyMode.
2. Extended person information search result message JSON_UserInfoSearch (related URI: /ISAPI/
AccessControl/UserInfo/Search?format=json ):
added a person authentication mode "cardOrFpOrPw" (card or fingerprint or password) to the
sub node userVerifyMode of the node UserInfo (person information).
3. Extended card information capability message JSON_Cap_CardInfo and card information
message JSON_CardInfo (related URIs: /ISAPI/AccessControl/CardInfo/capabilities?
format=json and /ISAPI/AccessControl/CardInfo/Modify?format=json ):
added a node addCard (whether to add the card if the card information being edited does not
exist).
4. Extended capability message XML_Cap_RemoteControlDoor and parameter message
XML_RemoteControlDoor of remotely controlling the door or elevator (related URIs: /ISAPI/
AccessControl/RemoteControl/door/capabilities and /ISAPI/AccessControl/RemoteControl/
door/<ID> ):
added a node <password> (password for opening door).
5. Extended week schedule configuration capability message JSON_Cap_VerifyWeekPlanCfg and
week schedule parameter message JSON_VerifyWeekPlanCfg of the card reader authentication
mode (related URIs: /ISAPI/AccessControl/VerifyWeekPlanCfg/capabilities?format=json and /
ISAPI/AccessControl/VerifyWeekPlanCfg/<PlanNo>?format=json ):

10
Intelligent Security API (Person-Based Access Control) Developer Guide

added an authentication mode "cardOrFpOrPw" (card or fingerprint or password) to the sub


node verifyMode of the node WeekPlanCfg (week schedule parameters).
6. Extended holiday schedule configuration capability message JSON_Cap_VerifyHolidayPlanCfg
and holiday schedule parameter message JSON_VerifyHolidayPlanCfg of the card reader
authentication mode (related URIs: /ISAPI/AccessControl/VerifyHolidayPlanCfg/capabilities?
format=json and /ISAPI/AccessControl/VerifyHolidayPlanCfg/<PlanNo>?format=json ):
added an authentication mode "cardOrFpOrPw" (card or fingerprint or password) to the sub
node verifyMode of the node HolidayPlanCfg (holiday schedule parameters).
7. Extended condition message of searching for access control events JSON_AcsEventCond
(related URI: /ISAPI/AccessControl/AcsEvent?format=json ):
added a node eventAttribute (event attribute).
8. Extended result message of searching for access control events JSON_AcsEvent (related URI: /
ISAPI/AccessControl/AcsEvent?format=json ):
added two sub nodes: attendanceStatus (attendance status) and statusValue (status value) to
the node InfoList (event details);
added an authentication mode "cardOrFpOrPw" (card or fingerprint or password) to the sub
node currentVerifyMode of the node InfoList (event details).
9. Extended capability message of searching for access control events JSON_Cap_AcsEvent
(related URI: /ISAPI/AccessControl/AcsEvent/capabilities?format=json ):
added a sub node eventAttribute (event attribute) to the node AcsEventCond (search
conditions);
added two sub nodes: attendanceStatus (attendance status) and statusValue (status value) to
the node InfoList (event details);
added an authentication mode "cardOrFpOrPw" (card or fingerprint or password) to the sub
node currentVerifyMode of the node InfoList (event details).
10. Extended condition message of getting the total number of access control events by conditions
JSON_AcsEventTotalNumCond (related URI: /ISAPI/AccessControl/AcsEventTotalNum?
format=json ):
added a node eventAttribute (event attribute).
11. Extended capability message of getting the total number of the access control events by
conditions JSON_Cap_AcsEventTotalNum (related URI: /ISAPI/AccessControl/
AcsEventTotalNum/capabilities?format=json ):
added a sub node eventAttribute (event attribute) to the node AcsEventTotalNumCond
(search conditions).
12. Extended message of access control event information
JSON_EventNotificationAlert_AccessControlEventMsg :
added two sub nodes: attendanceStatus (attendance status) and statusValue (status value) to
the node AccessControllerEvent;
added an authentication mode "cardOrFpOrPw" (card or fingerprint or password) to the sub
node currentVerifyMode of the node AccessControllerEvent.
13. Extended capability message of getting working status of access controller
JSON_Cap_AcsWorkStatus and working status message of access controller

11
Intelligent Security API (Person-Based Access Control) Developer Guide

JSON_AcsWorkStatus (related URIs: /ISAPI/AccessControl/AcsWorkStatus/capabilities?


format=json and /ISAPI/AccessControl/AcsWorkStatus?format=json ):
added an authentication mode 27 (card or fingerprint or password) to the node
cardReaderVerifyMode.
14. Extended door (floor) configuration capability message XML_Cap_DoorParam and door (floor)
parameter message XML_DoorParam (related URIs: /ISAPI/AccessControl/Door/param/<ID>/
capabilities and /ISAPI/AccessControl/Door/param/<ID> ):
added a node <remoteControlPWStatus> (whether the password has been configured for
remote door control).
15. Added the function of configuring attendance status, refer to Configure Attendance Status and
Schedule for details.
16. Added the function of configuring password for remote door control, refer to Configure
Password for Remote Door Control for details.
17. Added the function of collecting card information, refer to Collect Card Information for details.
18. Extended access control capability message XML_Cap_AccessControl (related URI: /ISAPI/
AccessControl/capabilities ):
added five nodes: <isSupportRemoteControlPWChcek> (whether to support verifying the
password for remote door control), <isSupportRemoteControlPWCfg> (whether to support
configuring password for remote door control), <isSupportAttendanceStatusModeCfg>
(whether to support configuring attendance mode), <isSupportAttendanceStatusRuleCfg>
(whether to support configuring attendance status and rule), and <isSupportCaptureCardInfo>
(whether to support collecting card information).
19. Extended the access control event types in Access Control Event Types :
added six event types to MAJOR_EVENT: "MINOR_LOCAL_UPGRADE_FAIL" (Local Upgrade
Failed), "MINOR_REMOTE_UPGRADE_FAIL" (Remote Upgrade Failed),
"MINOR_REMOTE_EXTEND_MODULE_UPGRADE_SUCC" (Extension Module is Remotely
Upgraded), "MINOR_REMOTE_EXTEND_MODULE_UPGRADE_FAIL" (Upgrading Extension
Module Remotely Failed), "MINOR_REMOTE_FINGER_PRINT_MODULE_UPGRADE_SUCC"
(Fingerprint Module is Remotely Upgraded), and
"MINOR_REMOTE_FINGER_PRINT_MODULE_UPGRADE_FAIL" (Upgrading Fingerprint Module
Remotely Failed).

Summary of Changes in Version 2.0_July, 2019


Related Products: DS-K1T804 Series Fingerprint Access Control Terminal.
1. Added the URIs to enable or disable NFC (Near-Field Communication) function:
Get the configuration capability: GET /ISAPI/AccessControl/Configuration/NFCCfg/capabilities?
format=json ;
Get parameters: GET /ISAPI/AccessControl/Configuration/NFCCfg?format=json ;
Set parameters: PUT /ISAPI/AccessControl/Configuration/NFCCfg?format=json .
2. Added the URIs to enable or disable RF (Radio Frequency) card recognition:
Get the configuration capability: GET /ISAPI/AccessControl/Configuration/RFCardCfg/
capabilities?format=json ;
Get parameters: GET /ISAPI/AccessControl/Configuration/RFCardCfg?format=json ;

12
Intelligent Security API (Person-Based Access Control) Developer Guide

Set parameters: PUT /ISAPI/AccessControl/Configuration/RFCardCfg?format=json .


3. Extended access control capability message XML_Cap_AccessControl (related URI: /ISAPI/
AccessControl/capabilities ):
added two nodes: <isSupportNFCCfg> (whether the device supports enabling or disabling NFC
function) and <isSupportRFCardCfg> (whether the device supports enabling or disabling RF card
recognition).
4. Extended the access control event types in Access Control Event Types :
added four operation event types to MAJOR_OPERATION:
"MINOR_M1_CARD_ENCRYPT_VERIFY_OPEN" (M1 Card Encryption Verification Enabled),
"MINOR_M1_CARD_ENCRYPT_VERIFY_CLOSE" (M1 Card Encryption Verification Disabled),
"MINOR_NFC_FUNCTION_OPEN" (Opening Door with NFC Card Enabled), and
"MINOR_NFC_FUNCTION_CLOSE" (Opening Door with NFC Card Disabled);
added eight event types to MAJOR_EVENT: "MINOR_INFORMAL_MIFARE_CARD_VERIFY_FAIL"
(Authentication Failed: Invalid Mifare Card), "MINOR_CPU_CARD_ENCRYPT_VERIFY_FAIL"
(Verifying CPU Card Encryption Failed), "MINOR_NFC_DISABLE_VERIFY_FAIL" (Disabling NFC
Verification Failed), "MINOR_EM_CARD_RECOGNIZE_NOT_ENABLED" (EM Card Recognition
Disabled), "MINOR_M1_CARD_RECOGNIZE_NOT_ENABLED" (M1 Card Recognition Disabled),
"MINOR_CPU_CARD_RECOGNIZE_NOT_ENABLED" (CPU Card Recognition Disabled),
"MINOR_ID_CARD_RECOGNIZE_NOT_ENABLED" (ID Card Recognition Disabled), and
"MINOR_CARD_SET_SECRET_KEY_FAIL" (Importing Key to Card Failed).
5. Extended the event linkage types in Event Linkage Types :
added eight event linkage types of the authentication unit:
"EVENT_ACS_INFORMAL_MIFARE_CARD_VERIFY_FAIL" (Authentication Failed: Invalid Mifare
Card), "EVENT_ACS_CPU_CARD_ENCRYPT_VERIFY_FAIL" (Verifying CPU Card Encryption Failed),
"EVENT_ACS_NFC_DISABLE_VERIFY_FAIL" (Disabling NFC Verification Failed),
"EVENT_ACS_EM_CARD_RECOGNIZE_NOT_ENABLED" (EM Card Recognition Disabled),
"EVENT_ACS_M1_CARD_RECOGNIZE_NOT_ENABLED" (M1 Card Recognition Disabled),
"EVENT_ACS_CPU_CARD_RECOGNIZE_NOT_ENABLED" (CPU Card Recognition Disabled),
"EVENT_ACS_ID_CARD_RECOGNIZE_NOT_ENABLED" (ID Card Recognition Disabled), and
"EVENT_ACS_CARD_SET_SECRET_KEY_FAIL" (Importing Key to Card Failed).

Summary of Changes in Version 2.0_June, 2019


Related Products: DS-K1T607 Series, DS-K1T610 Series, and DS-K5607 Series Face Recognition
Terminal in Version 1.1
1. Extended picture storage server capability message JSON_Cap_PictureServerInformation and
picture storage server parameter message JSON_PictureServerInformation (related URIs: /
ISAPI/System/PictureServer/capabilities?format=json and /ISAPI/System/PictureServer?
format=json ):
added a sub node cloudPoolIdEx (cloud storage pool ID) to the node cloudStorage (parameters
of the cloud storage server).
2. Extended person management capability message JSON_Cap_UserInfo (related URI: /ISAPI/
AccessControl/UserInfo/capabilities?format=json ):
added a sub node searchID (search ID) to the node UserInfoSearchCond (search conditions);

13
Intelligent Security API (Person-Based Access Control) Developer Guide

added a node maxRecordNum (supported maximum number of records (person records)).


3. Extended card information capability message JSON_Cap_CardInfo (related URI: /ISAPI/
AccessControl/CardInfo/capabilities?format=json ):
added a sub node searchID (search ID) to the node CardInfoSearchCond (search conditions);
added a node maxRecordNum (supported maximum number of records (card records)).
4. Extended fingerprint configuration capability message JSON_Cap_FingerPrintCfg (related URI: /
ISAPI/AccessControl/FingerPrintCfg/capabilities?format=json ):
added a node searchID (search ID).
5. Added the function of managing face information (including creating face picture library,
managing face records in the face picture library, and configuring facial recognition mode), refer
to Manage Face Information for details.
6. Extended fingerprint and card reader configuration capability message
JSON_Cap_CardReaderCfg and fingerprint and card reader parameter message
JSON_CardReaderCfg (related URIs: /ISAPI/AccessControl/CardReaderCfg/capabilities?
format=json and /ISAPI/AccessControl/CardReaderCfg/<ID>?format=json ):
added two authentication modes: "cardOrFace" (card or face) and "cardOrFaceOrFp" (card or
face or fingerprint) to the node defaultVerifyMode (default authentication mode of the
fingerprint and card reader);
added a node faceRecogizeEnable (whether to enable facial recognition).
7. Extended configuration capability message of intelligent identity recognition terminal
XML_Cap_IdentityTerminal and parameter message of intelligent identity recognition terminal
XML_IdentityTerminal (related URIs: /ISAPI/AccessControl/IdentityTerminal/capabilities and /
ISAPI/AccessControl/IdentityTerminal ):
added a node <readCardRule> (card No. setting rule).
8. Extended access control capability message XML_Cap_AccessControl (related URI: /ISAPI/
AccessControl/capabilities ):
added three nodes: <isSupportCaptureFace> (whether to support collecting face pictures),
<isSupportCaptureInfraredFace> (whether to support collecting infrared face pictures), and
<isSupportFaceRecognizeMode> (whether to support configuring facial recognition mode).

Summary of Changes in Version 2.0_May, 2019


Related Products: DS-K2600 Series Access Controller in Version 2.1.0
1. Extended person information message JSON_UserInfo and person information search result
message JSON_UserInfoSearch (related URIs: /ISAPI/AccessControl/UserInfo/Record?
format=json , /ISAPI/AccessControl/UserInfo/Search?format=json , and /ISAPI/AccessControl/
UserInfo/Modify?format=json ):
added 11 person authentication modes "faceOrFpOrCardOrPw" (face or fingerprint or card or
password), "faceAndFp" (face+fingerprint), "faceAndPw" (face+password), "faceAndCard" (face
+card), "face" (face), "faceAndFpAndCard" (face+fingerprint+card), "faceAndPwAndFp" (face
+password+fingerprint), "employeeNoAndFace" (employee No.+face), "faceOrfaceandCard"

14
Intelligent Security API (Person-Based Access Control) Developer Guide

(face or face+card), "fpOrface" (fingerprint or face), "cardOrfaceOrPw" (card or face or


password) to the sub node userVerifyMode in the node UserInfo.
2. Added a URI to set person information: PUT /ISAPI/AccessControl/UserInfo/SetUp?
format=json .
3. Extended person management capability message JSON_Cap_UserInfo (related URI: /ISAPI/
AccessControl/UserInfo/capabilities?format=json ):
added a function type "setUp" (set person information) to the node supportFunction;
added two sub nodes timeRangeBegin (start time that can be configured) and timeRangeEnd
(end time that can be configured) to the node Valid.
4. Extended card information message JSON_CardInfo (related URI: /ISAPI/AccessControl/
CardInfo/Record?format=json ):
add a node checkEmployeeNo (whether to check the existence of the employee No. (person
ID)).
5. Added a URI to set card information: PUT /ISAPI/AccessControl/CardInfo/SetUp?format=json .
6. Extended card information capability message JSON_Cap_CardInfo (related URI: /ISAPI/
AccessControl/CardInfo/capabilities?format=json ):
added a function type "setUp" (set card information) to the node supportFunction;
added a node checkEmployeeNo (whether to check the existence of the employee No. (person
ID)).
7. Added a URI to set fingerprint parameters: PUT /ISAPI/AccessControl/FingerPrint/SetUp?
format=json .
8. Extended parameter message of door control week schedule JSON_DoorStatusWeekPlanCfg
(related URI: /ISAPI/AccessControl/DoorStatusWeekPlanCfg/<PlanNo>?format=json ):
add two door status "sleep" and "invalid" to the sub node doorStatus in the node WeekPlanCfg.
9. Extended configuration capability message of door control week schedule
JSON_Cap_DoorStatusWeekPlanCfg (related URI: /ISAPI/AccessControl/
DoorStatusWeekPlanCfg/capabilities?format=json ):
added two door status "sleep" and "invalid" to the sub node doorStatus in the node
WeekPlanCfg;
add a sub node validUnit (time accuracy) to the node TimeSegment in the node WeekPlanCfg.
10. Extended week schedule parameter message of the card reader authentication mode
JSON_VerifyWeekPlanCfg (related URI: /ISAPI/AccessControl/VerifyWeekPlanCfg/<PlanNo>?
format=json ):
added two authentication modes "sleep" and "invalid" to the sub node verifyMode in the
node WeekPlanCfg.
11. Extended week schedule configuration capability of the card reader authentication mode
JSON_Cap_VerifyWeekPlanCfg (related URI: /ISAPI/AccessControl/VerifyWeekPlanCfg/
capabilities?format=json ):
added two authentication modes "sleep" and "invalid" to the sub node verifyMode in the
node WeekPlanCfg;
added a sub node validUnit (time accuracy) to the node TimeSegment in the node
WeekPlanCfg.

15
Intelligent Security API (Person-Based Access Control) Developer Guide

12. Extended parameter message of door control holiday schedule


JSON_DoorStatusHolidayPlanCfg (related URI: /ISAPI/AccessControl/
DoorStatusHolidayPlanCfg/<PlanNo>?format=json ):
add two door status "sleep" and "invalid" to the sub node doorStatus in the node
HolidayPlanCfg.
13. Extended configuration capability message of door control holiday schedule
JSON_Cap_DoorStatusHolidayPlanCfg (related URI: /ISAPI/AccessControl/
DoorStatusHolidayPlanCfg/capabilities?format=json ):
added two door status "sleep" and "invalid" to the sub node doorStatus in the node
HolidayPlanCfg;
add a sub node validUnit (time accuracy) to the node TimeSegment in the node
HolidayPlanCfg.
14. Extended holiday schedule parameter message of the card reader authentication mode
JSON_VerifyHolidayPlanCfg (related URI: /ISAPI/AccessControl/VerifyHolidayPlanCfg/
<PlanNo>?format=json ):
added two authentication modes "sleep" and "invalid" to the sub node verifyMode in the
node HolidayPlanCfg.
15. Extended holiday schedule configuration capability of the card reader authentication mode
JSON_Cap_VerifyHolidayPlanCfg (related URI: /ISAPI/AccessControl/VerifyHolidayPlanCfg/
capabilities?format=json ):
added two authentication modes "sleep" and "invalid" to the sub node verifyMode in the
node HolidayPlanCfg;
added a sub node validUnit (time accuracy) to the node TimeSegment in the node
HolidayPlanCfg.
16. Added the URIs to get the list of event and card linkage ID:
Get the capability of the list of event and card linkage ID: GET /ISAPI/AccessControl/
EventCardNoList/capabilities?format=json ;
Get the list of event and card linkage ID: GET /ISAPI/AccessControl/EventCardNoList?
format=json .
17. Added the URI to get the capability of clearing event and card linkage configurations:
GET /ISAPI/AccessControl/ClearEventCardLinkageCfg/capabilities?format=json .
18. Added the URIs to get the total number of access control events by specific conditions:
Get capability: GET /ISAPI/AccessControl/AcsEventTotalNum/capabilities?format=json ;
Get the total number: POST /ISAPI/AccessControl/AcsEventTotalNum?format=json .
19. Extended message of access control event information
( JSON_EventNotificationAlert_AccessControlEventMsg ):
added 11 authentication modes "faceOrFpOrCardOrPw" (face or fingerprint or card or
password), "faceAndFp" (face+fingerprint), "faceAndPw" (face+password), "faceAndCard" (face
+card), "face" (face), "faceAndFpAndCard" (face+fingerprint+card), "faceAndPwAndFp" (face
+password+fingerprint), "employeeNoAndFace" (employee No.+face), "faceOrfaceAndCard"
(face or face+card), "fpOrface" (fingerprint or face), and "cardOrfaceOrPw" (card or face or
password) to the node currentVerifyMode (authentication modes).

16
Intelligent Security API (Person-Based Access Control) Developer Guide

20. Added the function of configuring anti-passing back, refer to Configure Anti-Passing Back for
details.
21. Added functions of configuring cross-controller anti-passing back, refer to Cross-Controller
Anti-Passing Back Configuration for details.
22. Added the URIs to get access controller working status, customize Wiegand rule, configure log
mode, configure SMS function, and configure event optimization, refer to Configuration and
Maintenance for details.
23. Added the URIs to configure door (floor), reader, access controller, and OSDP card reader, refer
to Device/Server Settings for details.
24. Added the URIs to configure M1 card encryption authentication, refer to M1 Card Encryption
Authentication for details.
25. Added the URIs to configure multiple authentication, refer to Multi-Factor Authentication for
details.
26. Added the URIs to configure multi-door interlocking, refer to Multi-Door Interlocking for
details.
27. Extended access control capability message XML_Cap_AccessControl (related URI: /ISAPI/
AccessControl/capabilities ):
added 49 nodes from <isSupportRemoteControlDoor> to <isSupportLogModeCfg>.
28. Added a sub status code 0x60001024-"eventNotSupport" (event subscription is not supported)
to status code 6 (Invalid Message Content) in Response Codes of Text Protocol .

Summary of Changes in Version 2.0_Aug., 2018


New document.

17
Intelligent Security API (Person-Based Access Control) Developer Guide

Chapter 2 ISAPI Description


The design of Intelligent Security API (hereafter referred as to ISAPI) adopts RESTful style, so this
part introduces the predefined resource operation methods, API (URL) format, interaction message
format, time format, namespace, and error processing method.

2.1 Operation Method


The methods to operate resources via ISAPI are same as those of HTTP (Hyper Text Transport
Protocol) and RTSP (Real Time Streaming Protocol).

Note
The RTSP operation methods are mainly used to get the real-time stream for live view, two-way
audio, and playback in this manual. For details about HTTP and RTSP, please refer to https://
tools.ietf.org/html/rfc2612 and https://tools.ietf.org/html/rfc2326 .

Table 2-1 HTTP Operation Method


Method Description
POST Create resources. This method is only available for adding resource that does
not exist before.
GET Retrieve resources. This method cannot change the system status, only return
data as the response to the requester.
PUT Update resources. This method is usually for update the resource that already
exists, but it can also be used to create the resource if the specific resource
does not exist.
DELETE Delete resources.
Table 2-2 RTSP Operation Method
Method Description
OPTIONS Get the supported RTSP operation methods. See the request and response
message format below when interacting between client software and server.
OPTIONS %s RTSP/1.0\r\n //Request URL
CSeq:%u\r\n //Command No.
User-Agent:%s\r\n //Client software name
\r\n

/*Succeeded*/
RTSP/1.0 200 OK\r\n
CSeq: %u\r\n //Command No.

18
Intelligent Security API (Person-Based Access Control) Developer Guide

Method Description
Public: %s\r\n //Supported operation methods
Date:%s\r\n //Date and time
\r\n

/*Failed*/
RTSP/1.0 4XX/5XX %s\r\n
CSeq: %u\r\n //Command No.
Date:%s\r\n //Date and time
\r\n

DESCRIBE Transfer basic information by SDP (Session Description Protocol, see https://
tools.ietf.org/html/rfc2327 ) files, such as URL with SETUP command and so
on. See the request and response message format below when interacting
between client software and server.
DESCRIBE %s RTSP/1.0\r\n //URL
CSeq:%u\r\n //Command No.
Accept: application/sdp\r\n //The SDP description is accepted
Authorization:%s\r\n //Authentication information
User-Agent:%s\r\n //Client software name
\r\n

/*Succeeded*/
RTSP/1.0 200 OK\r\n
CSeq: %u\r\n //Command No.
Content-Type: application/sdp\r\n //The SDP description exists behind the command
Content-Base:%s\r\n //URL
Content-Length: %d\r\n //The length of contents behind the command
\r\n
[content] //SDP description

/*Failed*/
RTSP/1.0 4XX/5XX %s\r\n
CSeq: %u\r\n //Command No.
\r\n

SETUP Interact the session information, such as transmission mode, port number,
and so on. See the request and response message format below when
interacting between client software and server.
SETUP %s RTSP/1.0\r\n //URL
CSeq:%u\r\n //Command No.
Authorization:%s\r\n //Authentication information
Session:%s\r\n //Session ID is only returned at the even number of times
Transport: %s\r\n //Transmission protocol
User-Agent:%s\r\nv //Client software name
\r\n

/*Succeeded*/
RTSP/1.0 200 OK \r\n

19
Intelligent Security API (Person-Based Access Control) Developer Guide

Method Description
CSeq: %u\r\n
Session:%s\r\n //Session ID
Transport: s% //Transmission method
Date: s% //Date and time

/*Failed*/
RTSP/1.0 4XX/5XX %s\r\n
CSeq: %u\r\n //Command No.
\r\n

PLAY Start the stream transmission. See the request and response message format
below when interacting between client software and server.
PLAY %s RTSP/1.0\r\n //URL
CSeq:%u\r\n //Command No.
Authorization:%s\r\n //Authentication information
Session:%s\r\n //Session ID
Range: npt=%f-%f\r\n //Determine the play range
User-Agent:%s\r\n //Client software name
\r\n

/*Succeeded*/
RTSP/1.0 200 OK \r\n
CSeq: %u\r\n
Session:%s\r\n
RTP-Info:%s
Date: %s

/*Failed*/
RTSP/1.0 4XX/5XX %s\r\n
CSeq: %u\r\n //Command No.
Session:%s\r\n
\r\n

PAUSE Pause the stream transmission.


TEARDOWN Stop the stream transmission. See the request and response message format
below when interacting between client software and server.
TEARDOWN %s RTSP/1.0\r\n //URL
CSeq: %u\r\n //Command No.
Authorization:%s\r\n //Authentication information
Session:%s\r\n //Session ID
User-Agent:%s\r\n //Client software name
\r\n

/*Succeeded*/
RTSP/1.0 200 OK \r\n
CSeq: %u\r\n
Session:%s\r\n

20
Intelligent Security API (Person-Based Access Control) Developer Guide

Method Description
Date:%s\r\n
\r\n

/*Failed*/
RTSP/1.0 4XX/5XX %s\r\n
CSeq: %u\r\n //Command No.
Session:%s\r\n
\r\n

2.2 URL Format


URL (Uniform Resource Locator) is a further class of URIs, it can identify a resource and locate the
resource by describing its primary access mechanism.
The format of URL is defined as the follows: <protocol>://<host>[:port][abs_path [?query]].
protocol
Protocol types, i.e., HTTP (version 1.1) and RTSP (version 1.0).
host
Host name, IP address, or the FQDN (Fully Qualified Domain Name) of network devices.
port
Port number of host service for listening the connection status of TCP (Transmission Control
Protocol, see https://tools.ietf.org/html/rfc793 ) or UDP (User Datagram Protocol, see https://
tools.ietf.org/html/rfc768 ). If this field is not configured, the default port number will be
adopted. For HTTP, the default port number is 80, and for RTSP, the default port number is 554.
abs_path
Resource URI: /ServiceName/ResourceType/resource. Here, the ServiceName is ISAPI; the
ResourceType is predefined with upper camel case according to different functions , see details
in the following table; the resource is defined with lower camel case and can be extended in
actual applications. E.g., /ISAPI/System/Network/interfaces.

Predefined URI Model Description


/ISAPI/System/... System related resources
/ISAPI/Security/... Security related resources
/ISAPI/Event... Event/alarm related resources
/ISAPI/Image/... Video encoding and image related resources
/ISAPI/ContentMgmt/ Storage management related resources
...
query

21
Intelligent Security API (Person-Based Access Control) Developer Guide

Strings for describing resources information, including related parameters. The parameter
names and values must be listed as the following format in this field: ?p1=v1&p2=v2&…&pn=vn.

Note
• To locate the connected device, when operating lower-level device via the URL, the query
field should be filled as ?devIndex=uuid&p1=v1&p2=v2&…&pn=vn. The uuid (or guid) is a 32-
byte (128 bits) random number, which is unique and generated by operating system when
adding device, and its format is "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx".
• For message in JSON format, the query field should be filled as ?
format=json&p1=v1&p2=v2&…&pn=vn. For details about message format, refer to the next
section below. E.g.,http://10.17.132.22/ISAPI/System/time?
foramt=json&devIndex=550e8400e29b41d4a716446655440000.

2.3 Message Format


During the ISAPI integration, the request and response messages generated among the interaction
between devices and platform are data in XML format or JSON format.

Note
The message format here is only available for URLs based on HTTP.

XML Format
• For the previous integration, XML is a common format which may only cause a little changes in
the later integration.
• Generally, for configuration information, the Content-Type in the XML format message is
"application/xml; charset='UTF-8'", see details below.
//Request Message
GET /ISAPI/System/status HTTP/1.1

//Response Message
HTTP/1.1 200 OK

Content-Type: application/xml; charset="UTF-8"

<?xml version="1.0" encoding="UTF-8"?>
<DeviceStatus version="2.0" xmlns="http://www.isapi.org/ver20/XMLSchema">

</DeviceStatus>
For data (e.g., firmware, configuration files), the Content-Type in the XML format message is
"application/octet-stream", see details below.
//Request Message
PUT /ISAPI/System/configurationData HTTP/1.1

22
Intelligent Security API (Person-Based Access Control) Developer Guide


Content-Type: application/octet-stream

[proprietary configuration file data content]

//Response Message
HTTP/1.1 200 OK

Content-Type: application/xml; charset="UTF-8"



<?xml version="1.0" encoding="UTF-8"?>
<ResponseStatus version="2.0" xmlns="http://www.isapi.org/ver20/XMLSchema">

</ResponseStatus>

JSON Format Message


• The leaf node (without any sub node) in the message is named by lower camel case, while the
non-leaf node in the message in named by upper camel case.
• To communicate by the messages in JSON format, the devices must support the public
specifications in http://www.ecma-international.org/publications/files/ECMA-ST/
ECMA-404.pdf and HTTP with version 1.1.

Note
JSON is a lightweight data format which is a subset of JavaScript language and is small, fast, and
easy to be parsed.
• Generally, for configuration information, the Content-Type of message is "application/json", see
the example below:
//Request message
GET /ISAPI/System/status HTTP/1.1

//Response message
HTTP/1.1 200 OK

Content-Type: application/json

"DeviceStatus":""

For data (e.g., firmware, configuration files), the Content-Type of message is "application/octet-
stream", see the example below:
//Request message
PUT /ISAPI/System/configurationData HTTP/1.1

Content-Type: application/octet-stream

[proprietary configuration file data content]

23
Intelligent Security API (Person-Based Access Control) Developer Guide

//Response message
HTTP/1.1 200 OK

Content-Type: application/json

"ResponseStatus":""

2.4 Others

Time Format
The time format during ISAPI integration adopts ISO8601 standard (see details in http://
www.w3.org/TR/NOTE-datetime-970915 ), that is, YYY-MM-DDThh:mm:ss.sTZD (e.g.,
2017-08-16T20:17:06+08:00).
Namespace
For message in XML format, namespace is required. The following namespaces are available:
• xmlns=http://www.isapi.org/ver20/XMLSchema
• xmlns:xs="http://www.w3.org/2001/XMLSchema"
• xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
• xmlns:xlink="http://www.w3.org/1999/xlink"

Error Processing
During the integration applications of ISAPI protocol, when the error of URL based on HTTP
occurred, the ResponseStatus message (in XML or JSON format) which contains error code will be
returned. If the error of URL based on RTSP occurs, the corresponding status code will directly be
returned, for details, refer to https://tools.ietf.org/html/rfc2326 .

24
Intelligent Security API (Person-Based Access Control) Developer Guide

Chapter 3 Security
This part mainly introduces the authentication, user permission, and encryption in the integration
applications of ISAPI.

3.1 Authentication
When communicating via ISAPI protocol, the digest of the session must be authenticated.

Note
• The authentication must based on HTTP Authentication: Basic and Digest Access Authentication,
see https://tools.ietf.org/html/rfc2617 for details.
• The request session must contain authentication information, otherwise, device will return 401
error code.

The message digest, which contains user name, password, specific nonce value, HTTP or RTSP
operation methods, and request URL, is generated by the MD5 algorithm, see the calculation rules
below.
qop=Undefined
Digest=MD5(MD5(A1):<nonce>:MD5(A2))
qop="auth:"
Digest=MD5(MD5(A1):<nonce>:<nc>:<cnonce>:<qop>:MD5(A2))
qop="auth-int:"
Digest=MD5(MD5(A1):<nonce>:<nc>:<cnonce>:<qop>:MD5(A2))

Note
• The qop is a value for determining whether the authentication is required.
• A1 and A2 are two data blocks required for digest calculation.
A1: Data block about security, which contains user name, password, security domain, random
number, and so on. If the digest calculation algorithm is MD5, A1=<user>:<realm>:<password>;
if the algorithm is MD5-sess, A1=MD5(<user>:<realm>:<password>):<nonce>:<cnonce>.
A2: Data block about message, such as URL, repeated requests, message body, and so on, it
helps to prevent repeated, and realize the resource/message tamper-proof. If the qop is not
defined or it is "auth:", A2=<request-method>:<uri-directive-value>; if the qop is "auth-int:",
A2=<request-method>:<uri-directive-value>:MD5(<request-entity-body>).
• The nonce is the random number generated by service, the following generation formula is
suggested: nonce = BASE64(time-stamp MD5(time-stamp ":" ETag ":" private-key)). The time-
stamp in the formula is the time stamp generated by service or the unique serial No.; the ETag is

25
Intelligent Security API (Person-Based Access Control) Developer Guide

the value of HTTP ETag header in the request message; the priviate-key is the data that only
known by service.

If authentication failed, the device will return the XML_ResponseStatus_AuthenticationFailed


message, and the remaining authentication attempts will also be returned. If the remaining
attempts is 0, the user will be locked at the next authentication attempt.

26
Intelligent Security API (Person-Based Access Control) Developer Guide

Chapter 4 Typical Applications

4.1 Data Collection

4.1.1 Online Collect Data


When the access control device is connected to the client software or platform via the network,
you can collect data (including ID card information, card information, face data, and fingerprint) on
the client software or platform remotely. The online collected data will be uploaded to the client
software or platform in real time.

27
Intelligent Security API (Person-Based Access Control) Developer Guide

Steps

Figure 4-1 API Calling Flow of Online Collecting Data

28
Intelligent Security API (Person-Based Access Control) Developer Guide

1. Call /ISAPI/AccessControl/capabilities by GET method to get the access control capability and
check whether the device supports configuring online data collection rules.
The access control capability is returned in the message XML_Cap_AccessControl .
If the device supports configuring online data collection rules, the node
<isSupportCaptureRule> will be returned in the capability message and its value is true, and
then you can perform the following steps.
Otherwise, rule configuration of online data collection is not supported, please end this task.
2. Configure online data collection rules.
1) Optional: Call /ISAPI/AccessControl/CaptureRule/capabilities?format=json by GET method
to get the configuration capability of online data collection rules.
The capability is returned in the message JSON_CaptureRuleCap .
2) Optional: Call /ISAPI/AccessControl/CaptureRule?format=json by GET method to get default
or configured rule parameters of online data collection for reference.
The rule parameters are returned in the message JSON_CaptureRule .
3) Call /ISAPI/AccessControl/CaptureRule?format=json by PUT method to set rule parameters
of online data collection.
3. Optional: Configure preset parameters of online data collection.
1) Check the access control capability XML_Cap_AccessControl to know whether the device
supports configuring preset parameters of online data collection.
If the device supports configuring preset parameters of online data collection, the node
<isSupportCapturePresetParam> will be returned in the capability message and its value is
true, and then you can continue to set preset parameters.
Otherwise, preset configuration of online data collection is not supported.
2) Optional: Call /ISAPI/AccessControl/CapturePresetParam/capabilities?format=json by GET
method to get the configuration capability of preset parameters of online data collection.
The configuration capability is returned in the message JSON_CapturePresetCap .
3) Optional: Call /ISAPI/AccessControl/CapturePresetParam?format=json by GET method to
get default or configured preset parameters of online data collection for reference.
The preset parameters are returned in the message JSON_CapturePreset .
4) Call /ISAPI/AccessControl/CapturePresetParam?format=json by PUT method to set preset
parameters of online data collection.

Note
The preset parameters are used to display custom information on the device UI during data
collection. Currently, it only supports displaying the name of the person whose data is being
collected. The preset parameters should be configured again for each collection.
4. Perform the following operation(s) to collect ID card information, card information, face data, or
fingerprint online.

29
Intelligent Security API (Person-Based Access Control) Developer Guide

Collect ID Card a. Call /ISAPI/AccessControl/capabilities by GET method to get the


Information access control capability and check whether the device supports
online collecting ID card information.
The capability is returned in the message XML_Cap_AccessControl . If
it is supported, the node <isSupportCaptureIDInfo> is returned and
its value is true. Otherwise, online ID card collection is not supported.
b. Optional: Call /ISAPI/AccessControl/CaptureIDInfo/capabilities?
format=json by GET method to get the capability of online collecting
ID card information.
The capability is returned in the message JSON_IdentityInfoCap .
c. Call /ISAPI/AccessControl/CaptureIDInfo?format=json by POST
method to online collect ID card information.
The online collected ID card information is returned in the message
JSON_IdentityInfo .
Collect Card Refer to Collect Card Information
Information
Collect Face Refer to Collect Face Data
Data
Collect Refer to Fingerprint Collection
Fingerprint

4.1.2 Offline Collect Data


When the access control device is not connected to the client software or platform via the
network, you can collect data (including ID card information, card information, face data, and
fingerprint) locally on the stand-alone device by importing description of the information that
needs to be collected. The offline collected data will be stored on the device and can also be
downloaded, exported, or deleted from the device.

30
Intelligent Security API (Person-Based Access Control) Developer Guide

Steps

Figure 4-2 API Calling Flow of Offline Collecting Data


1. Call /ISAPI/AccessControl/capabilities by GET method to get the access control capability and
check whether the device supports offline data collection.
The capability is returned in the message XML_Cap_AccessControl .
If the node <isSupportOfflineCapture> is returned in the message and its value is true, it
indicates that the device supports offline data collection, and then you can continue to perform
the following operations. Otherwise, please end this task.
2. Call /ISAPI/AccessControl/OfflineCapture/capabilities?format=json by GET method to get the
capability of collecting data offline for knowing the supported parameters.
The capability is returned in the message JSON_OfflineCaptureCap .
3. Optional: Call /ISAPI/AccessControl/OfflineCapture/InfoFileTemplateDownload?format=json
by POST method to download the user list template of offline data collection.
4. Call /ISAPI/AccessControl/OfflineCapture/InfoFile?format=json by POST method to import the
user list of offline data collection filled in the template.

Note
• You can call /ISAPI/AccessControl/OfflineCapture/InfoFile/progress?format=json by GET
method to get the progress of uploading the user list of offline data collection.
• If uploading failed, you can call /ISAPI/AccessControl/OfflineCapture/uploadFailedDetails?
format=json by GET method to get the details of failing to upload the user list of offline data
collection.

31
Intelligent Security API (Person-Based Access Control) Developer Guide

5. Call /ISAPI/AccessControl/OfflineCapture/ruleInfo?format=json by PUT method to set rule


parameters of offline data collection.

Note
Before setting rule parameters of offline data collection, you'd better call /ISAPI/AccessControl/
OfflineCapture/ruleInfo?format=json by GET method to get the existing or configured
parameters for reference. The parameters are returned in the message JSON_RuleInfo .
6. Collect ID card information, card information, face data, or fingerprint on the stand-alone device
offline.
7. Optional: Call /ISAPI/AccessControl/OfflineCapture/progress?format=json by GET method to
get the progress of offline data collection.
The collection progress is returned in the message JSON_CaptureProgress .
8. Optional: Perform the following operation(s) after collecting data offline.
Export Collected Data PUT /ISAPI/AccessControl/OfflineCapture/dataOutput?
format=json

Note
During exporting, you can call /ISAPI/AccessControl/
OfflineCapture/dataOutput/progress?format=json by GET
method to get the progress of exporting the offline collected
data.

Download Collected POST /ISAPI/AccessControl/OfflineCapture/DataCollections/


Data downloadTask?format=json
Search for Collected POST /ISAPI/AccessControl/OfflineCapture/DataCollections/
Data searchTask?format=json
Delete A Specific Piece DELETE /ISAPI/AccessControl/OfflineCapture/DataCollections/
of Collected Data <captureNo>?format=json
Delete All Collected Data DELETE /ISAPI/AccessControl/OfflineCapture/DataCollections?
format=json

4.2 Manage Person Information


A person is a basic unit, which can link with multiple cards and fingerprints, for access control in
this manual. So, before starting any other operations, you should add persons and apply the
person information (e.g., person ID, name, organization, permissions, and so on) to access control
devices.

32
Intelligent Security API (Person-Based Access Control) Developer Guide

Steps

Figure 4-3 Programming Flow of Managing Person Information


1. Call /ISAPI/AccessControl/UserInfo/capabilities?format=json by GET method to get the person
management capability to know the supported functions.
The field supportFunction with different values (i.e., "post"-support adding person, "delete"-
support deleting person, "put"-support editing person information, "get"-support searching for
persons) is returned in the JSON_Cap_UserInfo message.
2. Call /ISAPI/AccessControl/UserInfo/Record?format=json by POST method to add a person.
The person information, assigned access permission, and configured authentication mode are
all added and applied to the access control device.
3. Optional: Perform the following operation(s) by the corresponding URIs after adding persons.
Set Person PUT /ISAPI/AccessControl/UserInfo/SetUp?format=json
Information
Edit Person PUT /ISAPI/AccessControl/UserInfo/Modify?format=json
Information
Delete Person Only PUT /ISAPI/AccessControl/UserInfo/Delete?format=json

33
Intelligent Security API (Person-Based Access Control) Developer Guide

Note
The timeout of deleting person only can be configured, and setting
the timeout to 60s is suggested.

Delete Person with PUT /ISAPI/AccessControl/UserInfoDetail/Delete?format=json


Linked Cards,
Fingerprints, and Note
Permissions • Before deleting person with linked cards, fingerprints, and
permissions, you should call /ISAPI/AccessControl/
UserInfoDetail/Delete/capabilities?format=json by GET method
to get the deleting capability to know the supported deleting
modes (delete all or delete by person) and other configuration
details.
• You can call /ISAPI/AccessControl/UserInfoDetail/
DeleteProcess?format=json by GET method to get the deleting
status.
• For linking cards and fingerprint to the person, refer to Manage
Card Information and Manage Fingerprint Information .

Search for Persons POST /ISAPI/AccessControl/UserInfo/Search?format=json


Get Number of Total GET /ISAPI/AccessControl/UserInfo/Count?format=json
Added Persons

4.3 Manage Card Information


If a person want to access by card, you should add cards and link the cards with the person for
getting the access permissions, and then apply card information (e.g., card No., card type, and so
on) to access control device.
Before You Start
Make sure you have collected the card information, refer to Collect Card Information for details.

34
Intelligent Security API (Person-Based Access Control) Developer Guide

Steps

Figure 4-4 Programming Flow of Managing Card Information


1. Call /ISAPI/AccessControl/CardInfo/capabilities?format=json by GET method to get the card
management capability for knowing the supported functions.
The field supportFunction with different values (i.e., "post"-support adding card, "delete"-
support deleting card, "put"-support editing card information, "get"-support searching for
cards) is returned in the JSON_Cap_CardInfo message.
2. Call /ISAPI/AccessControl/CardInfo/Record?format=json by POST method to add a card.
The card information (such as card No., card type, and so on) is added to the access control
device and linked to the person according to the employee No.
3. Optional: Perform the following operation(s) by the corresponding URIs after adding cards.
Set Card Information PUT /ISAPI/AccessControl/CardInfo/SetUp?format=json
Edit Card Information PUT /ISAPI/AccessControl/CardInfo/Modify?format=json
Delete Card PUT /ISAPI/AccessControl/CardInfo/Delete?format=json

35
Intelligent Security API (Person-Based Access Control) Developer Guide

Note
The timeout of deleting card can be configured, and setting the
timeout to 60s is suggested.

Search for Cards POST /ISAPI/AccessControl/CardInfo/Search?format=json


Get Number of Total GET /ISAPI/AccessControl/CardInfo/Count?format=json
Added Cards
Get Number of Cards GET /ISAPI/AccessControl/CardInfo/Count?
Linked to A Specific format=json&employeeNo=<ID>
Person

4.3.1 Collect Card Information


The card information for further management and applying should be collected by the card reading
module of the access control device first. The following contents are about the process and
parameter settings of collecting card information.
Steps
1. Call /ISAPI/AccessControl/capabilities by GET method to get the functional capability of access
control and check whether the device supports collecting card information.
The capability will be returned in the message XML_Cap_AccessControl .
If the device supports collecting card information, the node <isSupportCaptureCardInfo> is
returned and its value is "true", and then you can perform the following steps. Otherwise, it
indicates that collecting card information is not supported by the device, please end this task.
2. Optional: Call /ISAPI/AccessControl/CaptureCardInfo/capabilities?format=json by GET method
to get the capability of collecting card information.
3. Call /ISAPI/AccessControl/CaptureCardInfo?format=json by GET method to collect the card
information.

4.3.2 Card Operation

Function Request URI


Get Card Operation Capability GET /ISAPI/AccessControl/
CardOperations/capabilities?
format=json
Encrypt Specific Sections (M1 Card) PUT /ISAPI/AccessControl/
CardOperations/
sectionEncryption?
format=json

36
Intelligent Security API (Person-Based Access Control) Developer Guide

Function Request URI


Verify Section Password (M1 Card) PUT /ISAPI/AccessControl/
CardOperations/verification?
format=json
Change Control Block of Section (M1 Card) PUT /ISAPI/AccessControl/
CardOperations/controlBlock?
format=json
Read or Write Block Data (M1 Read Block Data GET /ISAPI/AccessControl/
Card) CardOperations/dataBlock/
<address>?format=json
Write Block Data PUT /ISAPI/AccessControl/
CardOperations/dataBlock/
<address>?format=json
Operate Data Block (M1 Card) PUT /ISAPI/AccessControl/
CardOperations/dataBlock/
control?format=json
Set Operation Protocol Type of Card PUT /ISAPI/AccessControl/
CardOperations/protocol?
format=json
Set CPU Card Parameters PUT /ISAPI/AccessControl/
CardOperations/cardParam?
format=json
Reset CPU Card GET /ISAPI/AccessControl/
CardOperations/reset?
format=json
Pass Through Data Package of CPU Card PUT /ISAPI/AccessControl/
CardOperations/dataTrans?
format=json
Encrypt CPU Card PUT /ISAPI/AccessControl/
CardOperations/encryption?
format=json
Send a Request for Card Issuing PUT /ISAPI/AccessControl/
CardOperations/
localIssueRequest?
format=json

37
Intelligent Security API (Person-Based Access Control) Developer Guide

Function Request URI


Get Current Card Issuing Status and Real-​time Card Issuing GET /ISAPI/AccessControl/
Results CardOperations/
localIssueRes?format=json
Get or Set Rule Parameters for Issuing Smart Cards GET or PUT /ISAPI/
AccessControl/
CardOperations/localIssueCfg?
format=json
Delete Data from Card PUT /ISAPI/AccessControl/
CardOperations/clearData?
format=json
Set Custom Card Information PUT /ISAPI/AccessControl/
CardOperations/customData?
format=json
Search for Custom Card Information POST /ISAPI/AccessControl/
CardOperations/customData/
searchTask?format=json
Get Smart Card Issuing Status GET /ISAPI/AccessControl/
CardOperations/
cardIssueStatus?format=json

4.4 Manage Fingerprint Information


If a person wants to access by fingerprint, you should collect the fingerprint data via the fingerprint
recorder first, and then apply the fingerprint data and information (e.g., fingerprint ID, type, and so
on) to the fingerprint module of access control device and link the fingerprints with the person for
getting the access permissions.
Before You Start
Make sure you have collected the fingerprint data, refer to Fingerprint Collection for details.

38
Intelligent Security API (Person-Based Access Control) Developer Guide

Steps

Figure 4-5 Programming Flow of Managing Fingerprint Information

Note
To collect the fingerprint, refer to Fingerprint Collection for details.
1. Call /ISAPI/AccessControl/FingerPrintCfg/capabilities?format=json by GET method to get the
fingerprint configuration capability for knowing the required configuration details.
2. Call /ISAPI/AccessControl/FingerPrintDownload?format=json by POST method to set the
fingerprint parameters (e.g., an employee No. to be linked, fingerprint modules to be applied,
and so on) and start applying the recorded fingerprint data.

Note
The binary fingerprint data is collected and recorded by the fingerprint recorder.
3. Call /ISAPI/AccessControl/FingerPrintProgress?format=json by GET method to get the applying
status and make sure the applying is completed.

39
Intelligent Security API (Person-Based Access Control) Developer Guide

Note
The fingerprint data is linked to a person according to the configured employee No. and applied
to the specified fingerprint modules only when the value of applying status (totalStatus) is 1.
4. Optional: Perform the following operation(s) after applying the recorded fingerprint data.
Set Fingerprint POST /ISAPI/AccessControl/FingerPrint/SetUp?format=json
Parameters
Edit Fingerprint POST /ISAPI/AccessControl/FingerPrintModify?format=json
Parameters
Get Fingerprint Data POST /ISAPI/AccessControl/FingerPrintUpload?format=json
Get Data of All POST /ISAPI/AccessControl/FingerPrintUploadAll?format=json
Fingerprints of A
Person
Get Total Number of GET /ISAPI/AccessControl/FingerPrint/Count?
Fingerprints of A format=json&employeeNo=
Specific Person
Delete Fingerprint PUT /ISAPI/AccessControl/FingerPrint/Delete?format=json
Data
Note
• Before deleting fingerprint data, you should call /ISAPI/
AccessControl/FingerPrint/Delete/capabilities?format=json by
GET method to get the deleting capability for knowing the
supported deleting modes (delete by person or by fingerprint
module) and other configuration details.
• This URI is only used to start deleting the fingerprint data. So, to
judge whether the deleting is completed, you must repeatedly
call /ISAPI/AccessControl/FingerPrint/DeleteProcess?
format=json by GET method to get the fingerprint deleting status.

4.4.1 Fingerprint Collection


The fingerprint information for further management and applying should be collected by
fingerprint recorder first. The following contents are about the process and parameter settings of
fingerprint collection.
a. Call /ISAPI/AccessControl/CaptureFingerPrint/capabilities by GET method to get the fingerprint
collection capability.
b. Call /ISAPI/AccessControl/CaptureFingerPrint by POST method to collect the fingerprint
information.

40
Intelligent Security API (Person-Based Access Control) Developer Guide

4.5 Manage Face Information


If a person wants to access by face, you should collect face data via the face capture module of the
access control device first, create face picture libraries, and then apply face records (including face
record ID, information about the person in the picture, and so on) to face picture libraries for
getting the access permission.

4.5.1 Create Face Picture Library


The face picture library refers to the library of face pictures, including captured picture library,
resident population library, blocklist library, etc. You can create, edit, delete, and search for the
face picture libraries.
Steps

Figure 4-6 Programming Flow of Creating Face Picture Library


1. Optional: Call /ISAPI/Intelligent/FDLib/capabilities?format=json by GET method to get the face
picture library capability and check the supported operations of face picture libraries.
The face picture library capability is returned in the message JSON_FPLibCap . If the value of the
node <supportFDFunction> is "post, delete, put, get", it indicates that creating, editing,
deleting, and searching for face picture libraries are supported, and you can perform the
following steps to implement these functions.
2. Call /ISAPI/Intelligent/FDLib?format=json by POST method to create a face picture library.

41
Intelligent Security API (Person-Based Access Control) Developer Guide

Note
There are three types of face picture library, including infrared face picture library, list library,
and static library. So if you want to specify a face picture library, you should provide the library
type and library ID together.
The ID of the created face picture library (FDID) is returned.
3. Optional: Perform the following operation(s) after creating a face picture library.
Edit A Face Picture Library PUT /ISAPI/Intelligent/FDLib?
format=json&FDID=&faceLibType=
Delete A Face Picture Library DELETE /ISAPI/Intelligent/FDLib?
format=json&FDID=&faceLibType=
Delete All Face Picture DELETE /ISAPI/Intelligent/FDLib?format=json
Libraries
Search for A Specific Face GET /ISAPI/Intelligent/FDLib?
Picture Library format=json&FDID=&faceLibType=
Search for All Face Picture GET /ISAPI/Intelligent/FDLib?format=json
Libraries

Note
In the URI, both the library ID (FDID) and the library type (faceLibType) are required to specify a
face picture library, e.g., /ISAPI/Intelligent/FDLib?
format=json&FDID=1223344455566788&faceLibType=blackFD.

4.5.2 Collect Face Data


The face data for further management and applying should be collected by the face capture
module of the access control device first. The following contents are about the process and
parameter settings of face data collection.
Steps
1. Optional: Call /ISAPI/AccessControl/CaptureFaceData/capabilities by GET method to get the
capability of collecting face data.
2. Call /ISAPI/AccessControl/CaptureFaceData by POST method to start collecting face data.
3. Call /ISAPI/AccessControl/CaptureFaceData/Progress by GET method to get the progress of
collecting face data.

42
Intelligent Security API (Person-Based Access Control) Developer Guide

4.5.3 Manage Face Records in Face Picture Library


After creating face picture library, you can import face pictures with different types (i.e., picture
URL and binary picture) to add the face records to the library. And you can also edit, delete, and
search for the face records in the library for management.
Before You Start
• Make sure you have added face picture libraries and get the ID of each library. For creating face
picture library, refer to Create Face Picture Library for details.
• Make sure you have collected the face picture data, refer to Collect Face Data for details.
Steps

Figure 4-7 Programming Flow of Managing Face Records in Face Picture Library
1. Prepare picture URLs (picture storage location) or binary pictures in form format for being
imported to the library.
2. Call /ISAPI/Intelligent/FDLib/FaceDataRecord?format=json by POST method to apply the
picture URL or binary picture with person information for adding a face record to the library
according to the face picture library ID (FDID).
The face record ID (FPID) is returned in the message JSON_AddFaceRecordResult .
3. Optional: Perform the following operation(s) after adding face records to the face picture
library.
Edit Face Record PUT /ISAPI/Intelligent/FDLib/FDSearch?
format=json&FDID=&FPID=&faceLibType=
Edit Face Records in PUT /ISAPI/Intelligent/FDLib/FDModify?format=json
a Batch

43
Intelligent Security API (Person-Based Access Control) Developer Guide

Set Face Record PUT /ISAPI/Intelligent/FDLib/FDSetUp?format=json


Delete Face PUT /ISAPI/Intelligent/FDLib/FDSearch/Delete?
Record(s) format=json&FDID=&faceLibType=

Note
Deleting a face record or deleting face records in a batch are both
supported.

Search for Face POST /ISAPI/Intelligent/FDLib/FDSearch?format=json


Records
Note
Searching multiple face picture libraries at a time and fuzzy search
are both supported.

Get Number of Face GET /ISAPI/Intelligent/FDLib/Count?


Records of a Face format=json&FDID=&faceLibType=
Picture Library
Get Number of Face GET /ISAPI/Intelligent/FDLib/Count?format=json
Records of All Face
Picture Libraries

Note
In the request URI, both the library ID (FDID) and library type (faceLibType) are required to
specify a face picture library, e.g., /ISAPI/Intelligent/FDLib?
format=json&FDID=1223344455566788&faceLibType=blackFD.

4.5.4 Configure Facial Recognition Mode


When recognizing human faces via the access control device, both the normal mode and the deep
mode are available. For the normal mode, the human face is recognized via white light camera; for
the deep mode, the human face is recognized by the IR light camera, which is applicable to a more
complicated environment and can recognize a much wider people range than the normal mode.

44
Intelligent Security API (Person-Based Access Control) Developer Guide

Steps

Figure 4-8 Programming Flow of Configuring Facial Recognition Mode


1. Call /ISAPI/AccessControl/capabilities by GET method to get the functional capability of access
control and check whether the device supports configuring facial recognition mode.

Note
The capability will be returned in the message XML_Cap_AccessControl .
If the device supports configuring facial recognition mode, the node
<isSupportFaceRecognizeMode> is returned and its value is "true", and then you can perform
the following steps. Otherwise, it indicates that configuring facial recognition mode is not
supported by the device, please end this task.
2. Optional: Call /ISAPI/AccessControl/FaceRecognizeMode/capabilities?format=json by GET
method to get the configuration capability of facial recognition mode for knowing the
supported facial recognition modes.
3. Optional: Call /ISAPI/AccessControl/FaceRecognizeMode?format=json by GET method to get
the current facial recognition mode.
4. Perform one of the following operations to add face records to face picture libraries for setting
normal or deep facial recognition mode.
- Add face records to the default face picture library with "blackFD" type, refer to Manage
Face Records in Face Picture Library for details.
- Add visible face pictures to the default face picture library with "blackFD" type, and add
infrared face pictures to the default library with "infraredFD" type, refer to Manage Face
Records in Face Picture Library for details.

45
Intelligent Security API (Person-Based Access Control) Developer Guide

Note
Generally, during the initialization of the access control device, two face picture libraries with
"blackID" type (the library ID is 1) and "infraredFD" type (the library ID is 2) will be created
automatically. But if the default libraries have not been created, you should create them by
yourself, refer to Create Face Picture Library for details.
5. Call /ISAPI/AccessControl/FaceRecognizeMode?format=json by PUT method to configure facial
recognition mode.
Result
The device will reboot automatically after configuring facial recognition mode, and permissions
linked with face pictures in the library will be cleared.

4.6 Configure Access Permission Control Schedule


To regularly control the access permissions for managing the accessible time duration (by default,
it is 24 hours) of some important access control points, you can configure the week or holiday
schedules.

46
Intelligent Security API (Person-Based Access Control) Developer Guide

Steps

Figure 4-9 API Calling Flow of Configuring Access Permission Control Schedule
1. Perform one of the following operations to set week or holiday schedule for access permission
control.
- a. Call /ISAPI/AccessControl/UserRightWeekPlanCfg/capabilities?format=json by GET
method to get the configuration capability of access permission control week schedule for
knowing the configuration details and notices.
b. Call /ISAPI/AccessControl/UserRightWeekPlanCfg/<PlanNo>?format=json by PUT
method to set the week schedule.
- a. Call /ISAPI/AccessControl/UserRightHolidayPlanCfg/capabilities?format=json by GET
method to get the configuration capability of access permission control holiday schedule
for knowing the configuration details and notices.
b. Call /ISAPI/AccessControl/UserRightHolidayPlanCfg/<PlanNo>?format=json by PUT
method to set the holiday schedule.
c. Call /ISAPI/AccessControl/UserRightHolidayGroupCfg/capabilities?format=json by GET
method to get the holiday group configuration capability of access permission control
schedule for knowing the configuration details and notices.
d. Call /ISAPI/AccessControl/UserRightHolidayGroupCfg/<GroupNo>?format=json by PUT
method to add the configured holiday schedule to a holiday group for management.

47
Intelligent Security API (Person-Based Access Control) Developer Guide

2. Optional: Call /ISAPI/AccessControl/UserRightPlanTemplate/capabilities?format=json by GET


method to get the configuration capability of access permission control schedule template for
knowing the configuration details and notices.
3. Call /ISAPI/AccessControl/UserRightPlanTemplate/<TemplateNo>?format=json by PUT
method to set template for access permission control schedule and link the configured template
to the schedule.

Note
For the above configuration URIs, before setting the parameters, you'd better perform GET
operation to get the existing or configured parameters for reference.
1. Optional: Call /ISAPI/AccessControl/ClearPlansCfg/capabilities?format=json by GET method to
get the capability of clearing schedule configurations for knowing the configuration details and
notices.
5. Optional: Call /ISAPI/AccessControl/ClearPlansCfg?format=json by PUT method to clear the
schedule configurations.

4.7 Configure Authentication Mode Control Schedule


You can configure the week or holiday schedule to regularly control the authentication modes
(e.g., by card, by card+password, by fingerprint, by fingerprint+card, and so on) in some specific
time periods.
Perform this task to configure authentication mode control schedule via ISAPI protocol.

48
Intelligent Security API (Person-Based Access Control) Developer Guide

Steps

Figure 4-10 Programming Flow of Configuring Authentication Mode Control Schedule


1. Perform one of the following operations to set week or holiday schedule for authentication
mode control.
- a. Call /ISAPI/AccessControl/VerifyWeekPlanCfg/capabilities?format=json by GET method
to get the configuration capability of authentication mode control week schedule for
knowing the configuration details and notices.
b. Call /ISAPI/AccessControl/VerifyWeekPlanCfg/<PlanNo>?format=json by PUT method to
set the week schedule.
- a. Call /ISAPI/AccessControl/VerifyHolidayPlanCfg/capabilities?format=json by GETmethod
to get the configuration capability of authentication mode control holiday schedule for
knowing the configuration details and notices.
b. Call /ISAPI/AccessControl/VerifyHolidayPlanCfg/<PlanNo>?format=json by PUT method
to set the holiday schedule.
c. Call /ISAPI/AccessControl/VerifyHolidayGroupCfg/capabilities?format=json by GET
method to get the holiday group configuration capability of authentication mode control
schedule for knowing the configuration details and notices.
d. Call /ISAPI/AccessControl/VerifyHolidayGroupCfg/<GroupNo>?format=json by PUT
method to add the configured holiday schedule to a holiday group for management.

49
Intelligent Security API (Person-Based Access Control) Developer Guide

2. Optional: Call /ISAPI/AccessControl/VerifyPlanTemplate/capabilities?format=json by GET


method to get the configuration capability of authentication mode control schedule template
for knowing the configuration details and notices.
3. Call /ISAPI/AccessControl/VerifyPlanTemplate/<TemplateNo>?format=json by PUT method to
set template for authentication mode control schedule.
4. Optional: Call /ISAPI/AccessControl/CardReaderPlan/capabilities?format=json by GET method
to get the configuration capability of authentication mode control schedule for knowing the
configuration details and notices.
5. Call /ISAPI/AccessControl/CardReaderPlan/<CardReaderNo>?format=json by PUT method to
link the configured template to the configured authentication mode control schedule.

Note
For the above configuration URIs, before setting the parameters, you'd better perform GET
operation to get the existing or configured parameters for reference.
1. Optional: Call /ISAPI/AccessControl/ClearPlansCfg/capabilities?format=json by GET method to
get the capability of clearing schedule configurations for knowing the configuration details and
notices.
7. Optional: Call /ISAPI/AccessControl/ClearPlansCfg?format=json by PUT method to clear the
schedule configurations.

4.8 Configure Door Control Schedule


You can configure the week or holiday schedule to regularly control the door statuses, including
Remain Open (access without authentication), Remain Closed (access is not allowed), and Normal
(access with authentication), in some specific time periods.
Perform this task to configure door control schedule via ISAPI protocol.

50
Intelligent Security API (Person-Based Access Control) Developer Guide

Steps

Figure 4-11 Programming Flow of Configuring Door Control Schedule


1. Perform one of the following operations to set week or holiday schedule for door control.
- a. Call /ISAPI/AccessControl/DoorStatusWeekPlanCfg/capabilities?format=json by GET
method to get the configuration capability of door control week schedule for knowing the
configuration details and notices.
b. Call /ISAPI/AccessControl/DoorStatusWeekPlanCfg/<PlanNo>?format=json by PUT
method to set the week schedule.
- a. Call /ISAPI/AccessControl/DoorStatusHolidayPlanCfg/capabilities?format=json by GET
method to get the configuration capability of door control holiday schedule for knowing
the configuration details and notices.
b. Call /ISAPI/AccessControl/DoorStatusHolidayPlanCfg/<PlanNo>?format=json by PUT
method to set the holiday schedule.
c. Call /ISAPI/AccessControl/DoorStatusHolidayPlanCfg/capabilities?format=json by GET
method to get the holiday group configuration capability of door control schedule for
knowing the configuration details and notices.
d. Call /ISAPI/AccessControl/DoorStatusHolidayGroupCfg/<GroupNo>?format=json by PUT
method to add the configured holiday schedule to a holiday group for management.

51
Intelligent Security API (Person-Based Access Control) Developer Guide

2. Optional: Call /ISAPI/AccessControl/DoorStatusPlanTemplate/capabilities?format=json by GET


method to get the configuration capability of door control schedule template for knowing the
configuration details and notices.
3. Call /ISAPI/AccessControl/DoorStatusPlanTemplate/<TemplateNo>?format=json by PUT
method to set template for door control schedule.
4. Optional: Call /ISAPI/AccessControl/DoorStatusPlan/capabilities?format=json by GET method
to get the configuration capability of door control schedule for knowing the configuration
details and notices.
5. Call /ISAPI/AccessControl/DoorStatusPlan/<DoorNo>?format=json by PUT method to link the
configured template to the configured door control schedule.

Note
For the above configuration URIs, before setting the parameters, you'd better perform GET
operation to get the existing or configured parameters for reference.
1. Optional: Call /ISAPI/AccessControl/ClearPlansCfg/capabilities?format=json by GET method to
get the capability of clearing schedule configurations for knowing the configuration details and
notices.
7. Optional: Call /ISAPI/AccessControl/ClearPlansCfg?format=json by PUT method to clear the
schedule configurations.

4.9 Remotely Control Door, Elevator, and Buzzer


You can remotely control the status of doors or elevators, and buzzer (i.e., start or stop buzzing).
Perform this task to remotely control doors, elevators, and buzzers via ISAPI protocol.

52
Intelligent Security API (Person-Based Access Control) Developer Guide

Steps

Figure 4-12 Programming Flow of Remotely Controlling Door, Elevator, and Buzzer
1. Optional: Perform one of the following operations to get the capabilities of remote control to
know the available configurations.
- Call /ISAPI/AccessControl/RemoteControl/door/capabilities by GET method to get the
capability of remote door or elevator control.
- Call /ISAPI/AccessControl/RemoteControl/buzzer/capabilities?format=json by GET method
to get the capability of remote buzzer control.
2. Perform one of the following operations to control the doors, elevators, or buzzers.
- Call /ISAPI/AccessControl/RemoteControl/door/<ID> by PUT method to control the doors or
elevators remotely.

Note
For doors, you can control them in Remain Open, Remain Closed, or Normal status; for
elevators, you can control them in the status of Elevator is Allowed to be Called by Visitor or
Elevator is Allowed to be Called by Resident Only.
- Call /ISAPI/AccessControl/RemoteControl/buzzer/<ID>?format=json by PUT method to
control buzzers remotely to start or stop buzzing.

4.10 Configure Password for Remote Door Control


If you want to remotely control the door via the EZVIZ Cloud Service, the password should be
verified to improve the security. You should configure the password for the door before you can
remotely control the door via the EZVIZ Cloud Service.

53
Intelligent Security API (Person-Based Access Control) Developer Guide

Steps

Figure 4-13 Programming Flow of Configuring Password for Remote Door Control
1. Optional: Call /ISAPI/AccessControl/remoteControlPWCheck/capabilities?format=json by GET
method to get the capability of verifying password for remote door control.
The capability is returned in the message JSON_Cap_RemoteControlPWCheck .
2. Call /ISAPI/AccessControl/remoteControlPWCheck/door/<ID>?format=json by PUT method to
verify the password for remote door control.
3. Optional: Call /ISAPI/AccessControl/remoteControlPWCfg/capabilities?format=json by GET
method to get the capability of configuring password for remote door control.
The capability is returned in the message JSON_Cap_RemoteControlPWCfg .
4. Call /ISAPI/AccessControl/remoteControlPWCfg/door/<ID>?format=json by PUT method to
configure the password for remote door control.

4.11 Configure Anti-Passing Back


The anti-passing back is to set the only route for passing the access control points and only one
person could pass after swiping card. You can configure this function to enhance the access
security of some important and specific places (e.g., laboratories, offices).

54
Intelligent Security API (Person-Based Access Control) Developer Guide

Steps

Figure 4-14 Programming Flow of Configuring Anti-Passing Back

Note
Before setting the following parameters, you'd better get the existing or configured parameters for
reference by each configuration URIs with GET method.
1. Optional: Call /ISAPI/AccessControl/AntiSneakCfg/capabilities?format=json by GET method to
get the anti-passing back configuration capability of the access controller.
The anti-passing back configuration capability JSON_Cap_AntiSneakCfg is returned.
2. Call /ISAPI/AccessControl/AntiSneakCfg?format=json by PUT method to set the anti-passing
back parameters of the access controller.
3. Optional: Call /ISAPI/AccessControl/CardReaderAntiSneakCfg/capabilities?format=json by
GET method to get the anti-passing back configuration capability of the card reader.
4. Call /ISAPI/AccessControl/CardReaderCfg/<ID>?format=json by PUT method to set the anti-
passing back parameters of the card reader.
5. Perform the following operation(s) after configuring the anti-passing back function.

55
Intelligent Security API (Person-Based Access Control) Developer Guide

Clear Anti- PUT /ISAPI/AccessControl/ClearAntiSneakCfg?format=json


passing Back
Parameters Note
The capability of clearing anti-passing back parameters
( JSON_Cap_ClearAntiSneakCfg ) can be obtained by calling /ISAPI/
AccessControl/ClearAntiSneakCfg/capabilities?format=json by GET
method.

Clear Anti- If the anti-passing back event occurred, it will be recorded in the access
passing Back controller, so if needed, you can call /ISAPI/AccessControl/
Records ClearAntiSneak?format=json by PUT method for clearing the records.

Note
The capability of clearing anti-passing back records
( JSON_Cap_ClearAntiSneak ) can be obtained by calling /ISAPI/
AccessControl/ClearAntiSneak/capabilities?format=json by GET
method.

4.12 Cross-Controller Anti-Passing Back Configuration


You can set anti-passing for card readers in multiple access controllers. You should swipe the card
according to the configured card swiping route or entrance/exit. And only one person can pass the
access control point after swiping the card.

4.12.1 Configure Route Anti-Passing Back Based on Network


The route anti-passing back depends on the card swiping route. You should set the first card reader
and the card readers afterwards. The anti-passing back will be judged according to the entrance
and exit information stored in the card readers.

56
Intelligent Security API (Person-Based Access Control) Developer Guide

Steps

Figure 4-15 Programming Flow of Configuring Route Anti-Passing Back Based on Network

Note
Before setting the following parameters, you'd better get the existing or configured parameters for
reference by each configuration URIs with GET method.
1. Call /ISAPI/AccessControl/SubmarineBackMode by PUT method to set the anti-passing back
mode and rule.

Note
• For route anti-passing back based on network, the mode must be set to
"internetCommunicate" and the rule should be set to "line".
• To get the capability of setting anti-passing back mode and rule, you should call /ISAPI/
AccessControl/SubmarineBackMode/capabilities by GET method. And the capability is
returned in the message XML_Cap_SubmarineBackMode .

2. Call /ISAPI/AccessControl/ReaderAcrossHost by PUT method to enable anti-passing back of


card readers.

57
Intelligent Security API (Person-Based Access Control) Developer Guide

Note
To get the capability of enabling anti-passing back of card readers, you should call /ISAPI/
AccessControl/ReaderAcrossHost/capabilities by GET method. And the capability is returned in
the message XML_Cap_ReaderAcrossHost .
3. Perform one of the following operations to configure anti-passing back server or access
controllers.
- Configure anti-passing back server:
a. Call /ISAPI/AccessControl/SubmarineBack by PUT method to specify an access controller
as the server for cross-controller anti-passing back and set the server parameters.

Note
To get the capability of specifying a server for cross-controller anti-passing back, you
should call /ISAPI/AccessControl/SubmarineBack/capabilities by GET method. And the
capability is returned in the message XML_Cap_SubmarineBack .
b. Call /ISAPI/AccessControl/SubmarineBackHostInfo/ConfigureNo/<ID> by PUT method to
set anti-passing back parameters of access controllers.

Note
To get the capability of adding access controllers to the anti-passing back route, you
should call /ISAPI/AccessControl/SubmarineBackHostInfo/capabilities by GET method.
And the capability is returned in the message XML_Cap_SubmarineBackHostInfo .
c. Call /ISAPI/AccessControl/StartReaderInfo by PUT method to specify a first card reader.

Note
To get the capability of specifying a first card reader, you should call /ISAPI/
AccessControl/StartReaderInfo/capabilities by GET method. And the capability is
returned in the message XML_Cap_StartReaderInfo .
d. Call /ISAPI/AccessControl/SubmarineBackReader/ConfigureNo/<ID> by PUT method to
set anti-passing back parameters of the first card reader and other card readers.

Note
To get the capability of setting anti-passing back parameters for card readers, you should
call /ISAPI/AccessControl/SubmarineBackReader/capabilities by GET method. And the
capability is returned in the message XML_Cap_SubmarineBackReader .
- Configure anti-passing back access controllers:
Call /ISAPI/AccessControl/ServerDevice by PUT method to notify the anti-passing back
server information to access controllers.

58
Intelligent Security API (Person-Based Access Control) Developer Guide

Note
To get the capability of notifying anti-passing back server information to access controllers,
you should call /ISAPI/AccessControl/ServerDevice/capabilities by GET method. And the
capability is returned in the message XML_Cap_ServerDevice .
4. Perform the following operation(s) after configuring route anti-passing back based on network.
Clear Cross- PUT /ISAPI/AccessControl/ClearSubmarineBack
Controller Anti-
Passing Back Note
Parameters To get the capability of clearing the cross-controller anti-passing back
parameters, you should call /ISAPI/AccessControl/
ClearSubmarineBack/capabilities by GET method. And the capability is
returned in message XML_Cap_ClearSubmarineBack .

Clear Card If the card is swiped in the anti-passing back route, it will be recorded in
Swiping Records the server. You can call /ISAPI/AccessControl/ClearCardRecord by PUT
in Server method to clear card swiping records in the server.

Note
To get the capability of clearing card swiping records in the server, you
should call /ISAPI/AccessControl/ClearCardRecord/capabilities by GET
method. And the capability is returned in message
XML_Cap_ClearCardRecord .

4.12.2 Configure Entrance/Exit Anti-Passing Back Based on Network


You can set the entrance card reader and the exit card reader only for entering and exiting, without
setting the first card reader and the card readers afterwards. It will authenticate the anti-passing
back according to the entrance and exit information on the card reader.

59
Intelligent Security API (Person-Based Access Control) Developer Guide

Steps

Figure 4-16 Programming Flow of Configuring Entrance/Exit Anti-Passing Back Based on Network

Note
Before setting the following parameters, you'd better get the existing or configured parameters for
reference by each configuration URIs with GET method.
1. Call /ISAPI/AccessControl/SubmarineBackMode by PUT method to set anti-passing back mode
and rule.

Note
• For entrance and exit anti-passing back based on network, the mode must be set to
"internetCommunicate" and the rule should be set to "inOrOut".
• To get the capability of setting anti-passing back mode and rule, you should call /ISAPI/
AccessControl/SubmarineBackMode/capabilities by GET method. And the capability is
returned in the message XML_Cap_SubmarineBackMode .

2. Call /ISAPI/AccessControl/ReaderAcrossHost by PUT method to enable anti-passing back of


card readers.

60
Intelligent Security API (Person-Based Access Control) Developer Guide

Note
To get the capability of enabling anti-passing back of card readers, you should call /ISAPI/
AccessControl/ReaderAcrossHost/capabilities by GET method. And the capability is returned in
the message XML_Cap_ReaderAcrossHost .
3. Perform one of the following operations to configure anti-passing back server or access
controllers.
- Configure anti-passing back server:
a. Call /ISAPI/AccessControl/SubmarineBack by PUT method to specify an access controller
as the server for cross-controller anti-passing back and set the server parameters.

Note
To get the capability of specifying a server for anti-passing back, you should call /ISAPI/
AccessControl/SubmarineBack/capabilities by GET method. And the capability is
returned in the message XML_Cap_SubmarineBack .
b. Call /ISAPI/AccessControl/SubmarineBackHostInfo/ConfigureNo/<ID> by PUT method to
set anti-passing back parameters of access controllers.

Note
To get the capability of adding access controllers to anti-passing back route, you should
call /ISAPI/AccessControl/SubmarineBackHostInfo/capabilities by GET method. And the
capability is returned in the message XML_Cap_SubmarineBackHostInfo .
- Configure anti-passing access controllers:
Call /ISAPI/AccessControl/ServerDevice by PUT method to notify the anti-passing back
server information to access controllers.
-
Note
To get the capability of notifying anti-passing back server information to access controllers,
you should call /ISAPI/AccessControl/ServerDevice/capabilities by GET method. And the
capability is returned in the message XML_Cap_ServerDevice .
4. Perform the following operation(s) after configuring entrance/exit anti-passing back based on
network.
Clear Cross- PUT /ISAPI/AccessControl/ClearSubmarineBack
Controller Anti-
Passing Back Note
Parameters To get the capability of clearing the cross-controller anti-passing back
parameters, you should call /ISAPI/AccessControl/
ClearSubmarineBack/capabilities by GET method. And the capability is
returned in message XML_Cap_ClearSubmarineBack

61
Intelligent Security API (Person-Based Access Control) Developer Guide

Clear Card If the card is swiped in the anti-passing back route or entrance/exit, it
Swiping Records will be recorded by the server. So you can call /ISAPI/AccessControl/
in Server ClearCardRecord by PUT method for clearing card swiping records in the
server.

Note
To get the capability of clearing card swiping records in server, you
should call /ISAPI/AccessControl/ClearCardRecord/capabilities by GET
method. And the capability is returned in message
XML_Cap_ClearCardRecord

4.12.3 Configure Route Anti-Passing Back Based on Card


The route anti-passing back depends on the card swiping route. You should set the first card reader
and the card readers afterwards. It will judge the anti-passing back according to the entrance and
exit records in the card.

62
Intelligent Security API (Person-Based Access Control) Developer Guide

Steps

Figure 4-17 Programming Flow of Configuring Route Anti-Passing Back Based on Card

Note
Before setting the following parameters, you'd better get the existing or configured parameters for
reference by each configuration URIs with GET method.
1. Call /ISAPI/AccessControl/SubmarineBackMode by PUT method to set the anti-passing back
mode and rule.

Note
• For route anti-passing back based on card, the mode must be set to "cardReadAndWrite" and
the rule should be set to "line".
• To get the capability of setting anti-passing back mode and rule, you should call /ISAPI/
AccessControl/SubmarineBackMode/capabilities by GET method. And the capability is
returned in the message XML_Cap_SubmarineBackMode .

2. Call /ISAPI/AccessControl/ReaderAcrossHost by PUT method to enable anti-passing back of


card readers.

63
Intelligent Security API (Person-Based Access Control) Developer Guide

Note
To get the capability of enabling anti-passing back of card readers, you should call /ISAPI/
AccessControl/ReaderAcrossHost/capabilities by GET method. And the capability is returned in
the message XML_Cap_ReaderAcrossHost .
3. Call /ISAPI/AccessControl/SubmarineBackHostInfo/ConfigureNo/<ID> by PUT method to add
access controllers for anti-passing back and set their parameters.

Note
To get the capability of adding access controllers to anti-passing back route, you should call /
ISAPI/AccessControl/SubmarineBackHostInfo/capabilities by GET method. And the capability is
returned in the message XML_Cap_SubmarineBackHostInfo .
4. Call /ISAPI/AccessControl/StartReaderInfo by PUT method to specify a first card reader.

Note
To get the capability of specifying a first card reader, you should call /ISAPI/AccessControl/
StartReaderInfo/capabilities by GET method. And the capability is returned in the message
XML_Cap_StartReaderInfo .
5. Call /ISAPI/AccessControl/SubmarineBackReader/ConfigureNo/<ID> by PUT method to set the
anti-passing back parameters of the first card reader and other card readers.

Note
To get the capability of setting anti-passing back parameters for card readers, you should call /
ISAPI/AccessControl/SubmarineBackReader/capabilities by GET method. And the capability is
returned in the message XML_Cap_SubmarineBackReader .
6. Optional: Call /ISAPI/AccessControl/ClearSubmarineBack by PUT method to clear the cross-
controller anti-passing back parameters.

Note
To get the capability of clearing the cross-controller anti-passing back parameters, you should
call /ISAPI/AccessControl/ClearSubmarineBack/capabilities by GET method. And the capability
is returned in message XML_Cap_ClearSubmarineBack .

4.12.4 Configure Entrance/Exit Anti-Passing Back Based on Card


You can set the entrance card reader and the exit card reader only for entering and exiting without
setting the first card reader and card readers afterwards. The anti-passing back will be judged
according to the entrance and exit records in the card.

64
Intelligent Security API (Person-Based Access Control) Developer Guide

Steps

Figure 4-18 Programming Flow of Configuring Entrance/Exit Anti-Passing Back Based on Card

Note
Before setting the following parameters, you'd better get the existing or configured parameters for
reference by each configuration URIs with GET method.
1. Call /ISAPI/AccessControl/SubmarineBackMode by PUT method to set the anti-passing back
mode and rule.

Note
• For entrance and exit anti-passing back based on card, the mode must be set to
"cardReadAndWrite" and the rule should be set to "inOrOut".
• To get the capability of setting anti-passing back mode and rule, you should call /ISAPI/
AccessControl/SubmarineBackMode/capabilities by GET method. And the capability is
returned in the message XML_Cap_SubmarineBackMode .

2. Call /ISAPI/AccessControl/ReaderAcrossHost by PUT method to enable anti-passing back of


card readers.

Note
To get the capability of enabling anti-passing back of card readers, you should call /ISAPI/
AccessControl/ReaderAcrossHost/capabilities by GET method. And the capability is returned in
the message XML_Cap_ReaderAcrossHost .
3. Call /ISAPI/AccessControl/SubmarineBackHostInfo/ConfigureNo/<ID> by PUT method to add
access controllers for entrance and exit anti-passing back and set the parameters.

65
Intelligent Security API (Person-Based Access Control) Developer Guide

Note
To get the capability of adding access controllers for entrance and exit anti-passing back, you
should call /ISAPI/AccessControl/SubmarineBackHostInfo/capabilities by GET method. And the
capability is returned in the message XML_Cap_SubmarineBackHostInfo .
4. Optional: Call /ISAPI/AccessControl/ClearSubmarineBack by PUT method to clear the cross-
controller anti-passing back parameters.

Note
To get the capability of clearing cross-controller anti-passing back parameters, you should call /
ISAPI/AccessControl/ClearSubmarineBack/capabilities by GET method. And the capability is
returned in message XML_Cap_ClearSubmarineBack .

4.13 Alarm or Event Receiving


When the alarm is triggered or the event occurred, if you have configured alarm/event uploading
parameters, you can receive and process the alarm/event information in the third-party platform
or system. Two modes are available for receiving alarms, including arming mode and listening
mode.
Arming Mode
When the alarm is triggered or event occurred, the third-party platform or system can send the
request URL to the device for getting the alarm/event stream, and then the device uploads the
response message with alarm/event information.
Listening Mode
When alarm is triggered or event occurred, the device uploads the alarm information
automatically, and then the third-party platform or system can receives the alarm/event by
configuring listening port of HTTP host server.

Note
Currently, for traffic camera or capture camera, receiving alarm or event in arming mode is not
supported.

4.13.1 Supported Alarm/Event Types and Details

66
Intelligent Security API (Person-Based Access Control) Developer Guide

Event Type Value of eventType Event Message


Access Control Event AccessControllerEvent JSON_EventNotificationAlert_AccessControlEve
ntMsg
ID Card Swiping Event IDCardInfoEvent JSON_EventNotificationAlert_IDCardSwipingEv
entMsg
QR Code Event QRCodeEvent JSON_EventNotificationAlert_QRCodeEventMs
g

Note
To check whether the device supports
uploading QR code events, you can call /ISAPI/
System/capabilities by GET method to get the
device capability.
The device capability is returned in the
message XML_DeviceCap . If uploading QR
code events is supported, the node
<isSupportQRCodeEvent> will be returned and
its value is true.

Face Thermography FaceTemperatureMeas JSON_EventNotificationAlert_FaceThermograp


Event urementEvent hyEventMsg

Note
To check whether the device supports uploading
face thermography events, you can call /ISAPI/
System/capabilities by GET method to get the
device capability.
The device capability is returned in the message
XML_DeviceCap . If uploading face thermography
events is supported, the node
<isSupportFaceTemperatureMeasurementEvent>
will be returned and its value is true.

4.13.2 Configure Mask Detection Event


You can configure mask detection parameters to determine whether to open the door and
whether to prompt when the person does not wear a mask.

67
Intelligent Security API (Person-Based Access Control) Developer Guide

Function Description
Get Configuration Capability of GET /ISAPI/AccessControl/maskDetection/capabilities?
Mask Detection format=json
Get or Set Mask Detection GET or PUT /ISAPI/AccessControl/maskDetection?format=json
Parameters

Note
To check whether the device supports mask detection, you can call /ISAPI/AccessControl/
capabilities by GET method to get the access control capability.
The access control capability is returned in the message XML_Cap_AccessControl . If the device
supports mask detection, the node <isSupportMaskDetection> will be returned and its value is
true.

4.13.3 Configure Hard Hat Detection Event


You can configure hard hat detection parameters to determine whether to open the door when the
person does not wear a hard hat.

Function Request URI


Get Configuration Capability of GET /ISAPI/AccessControl/Configuration/
Hard Hat Detection safetyHelmetDetection/capabilities?format=json
Get or Set Hard Hat Detection GET or PUT /ISAPI/AccessControl/Configuration/
Parameters safetyHelmetDetection?format=json

Note
To check whether the device supports hard hat detection, you can call /ISAPI/AccessControl/
capabilities by GET method to get the access control capability.
The access control capability is returned in the message XML_Cap_AccessControl . If the device
supports hard hat detection, the node <isSupportSafetyHelmetDetection> will be returned and its
value is true.

4.13.4 Configure and Search for Access Control Events


The access control events include device events, alarm input events, door events, card reader
events, card swiping events, and so on. You can configure the linkage types (i.e., event linkage, card
linkage, MAC linkage, and person linkage) and linkage actions (e.g., recording, alarm output,
buzzing, capture, etc.) of event card linkage via ISAPI protocol to execute the linked actions when
the corresponding events occurred (e.g., door open or closed, card swiped, etc.). And then you can
receive the event information from event sources and search for events via ISAPI protocol.

68
Intelligent Security API (Person-Based Access Control) Developer Guide

Perform this task to configure and search for the access control events via ISAPI protocol.
Steps

Figure 4-19 Programming Flow of Configuring and Searching for Access Control Events

69
Intelligent Security API (Person-Based Access Control) Developer Guide

1. Optional: Call /ISAPI/AccessControl/DeployInfo/capabilities by GET method to get the


capability of getting arming information.

Note
The available arming types, including arming via client software, real-time arming, and arming
via ISAPI protocol, are returned in the capability. For arming via client software, only one
channel can be armed and supports uploading offline events; for real-time arming, up to 4
channels can be armed and it is mainly used to arm the access control device via other devices,
but uploading offline events is not supported.
2. Optional: Call /ISAPI/AccessControl/DeployInfo by GET method to get the arming information,
such as arming No., arming types, and so on, for checking whether the device is armed by other
platforms or systems.
3. Optional: Call /ISAPI/AccessControl/EventCardNoList/capabilities?format=json by GET method
to get the capability of the list of event and card linkage ID for knowing the range of event ID
that can be configured.
4. Optional: Call /ISAPI/AccessControl/EventCardNoList?format=json by GET method to get the
list of configured event and card linkage ID.
5. Call /ISAPI/AccessControl/EventCardLinkageCfg/capabilities?format=json by GET method to
get the configuration capability of event card linkage for knowing the configuration details and
notices.
6. Call /ISAPI/AccessControl/EventCardLinkageCfg/<ID>?format=json by PUT method to set the
event card linkages.
7. Optional: Call /ISAPI/AccessControl/ClearEventCardLinkageCfg/capabilities?format=json by
GET method to get the capability of clearing event card linkage configurations.
8. Optional: Call /ISAPI/AccessControl/ClearEventCardLinkageCfg?format=json by PUT method to
clear the event card linkage configurations.
9. Receive access control alarm/event from the event source in arming mode (see Receive Alarm/
Event in Arming Mode ) or listening mode (see Receive Alarm/Event in Listening Mode ) when
the specified alarm is triggered or event occurred.

Note
The access control event information (eventType: "AccessControllerEvent") is returned in
JSON_EventNotificationAlert_AccessControlEventMsg .
10. Optional: Call /ISAPI/AccessControl/AcsEvent/capabilities?format=json by GET method to get
the event search capability for knowing the supported event types and other information.
11. Call /ISAPI/AccessControl/AcsEvent?format=json by POST method to search for access control
events.
12. Optional: Call /ISAPI/AccessControl/AcsEventTotalNum/capabilities?format=json by GET
method to get the capability of getting total number of access control events by specific
conditions.
13. Optional: Call /ISAPI/AccessControl/AcsEventTotalNum?format=json by POST method to get
the total number of access control events by specific conditions.

70
Intelligent Security API (Person-Based Access Control) Developer Guide

4.13.5 Receive Alarm/Event in Arming Mode


When alarm is triggered or event occurred, and the alarm/event linkage is configured, you can
send request message to device for getting the alarm/event stream, and then the device uploads
the corresponding response message, which contains alarm/event information.
Before You Start
Make sure you have configured alarm/event and triggered the alarm/event. For configuring alarm/
event parameters, refer to the some typical applications of alarm/event configuration.
Steps

Figure 4-20 API Calling Flow of Receiving Alarm/Event in Arming Mode


1. Call /ISAPI/Event/notification/alertStream by GET to get the alarm/event stream.
2. Check if the heartbeat receiving timed out or network disconnected.
- If the heartbeat keeps alive and the network still connected, perform the following step to
continue.
- If the heartbeat receiving timed out or network disconnected, perform the above step
repeatedly until reconnected.
3. Receive and process the alarm/event information.
Example
Sample Code of Receiving Alarm/Event in Arming Mode (without Binary Picture Data)
GET /ISAPI/Event/notification/alertStream HTTP/1.1
Host: data_gateway_ip
Connection: Keep-Alive

HTTP/1.1 401 Unauthorized


Date: Sun, 01 Apr 2018 18:58:53 GMT
Server:

71
Intelligent Security API (Person-Based Access Control) Developer Guide

Content-Length: 178
Content-Type: text/html
Connection: keep-alive
Keep-Alive: timeout=10, max=99
WWW-Authenticate: Digest qop="auth",
realm="IP Camera(C2183)",
nonce="4e5468694e7a42694e7a4d364f4449354d7a6b354d54513d",
stale="FALSE"

GET /ISAPI/Event/notification/alertStream HTTP/1.1


Authorization: Digest username="admin",
realm="IP Camera(C2183)",
nonce="4e5468694e7a42694e7a4d364f4449354d7a6b354d54513d",
uri="/ISAPI/Event/notification/alertStream",
cnonce="3d183a245b8729121ae4ca3d41b90f18",
nc=00000001,
qop="auth",
response="f2e0728991bb031f83df557a8f185178"
Host: 10.6.165.192

HTTP/1.1 200 OK
MIME-Version: 1.0
Connection: close
Content-Type: multipart/mixed; boundary=<frontier>

--<frontier>
Content-Type: application/xml; charset="UTF-8"
Content-Length: text_length

<EventNotificationAlert/>
--<frontier>

4.13.6 Receive Alarm/Event in Listening Mode


When alarm is triggered or event occurred, and the alarm/event linkage is configured, the device
uploads the alarm/event information automatically, you can receive the alarm/event by
configuring the listening port of HTTP host server.
Before You Start
Make sure you have configured alarm/event and triggered the alarm/event. For configuring alarm/
event parameters, refer to the some typical applications of alarm/event configuration.

72
Intelligent Security API (Person-Based Access Control) Developer Guide

Steps

Figure 4-21 API Calling Flow of Receiving Alarm/Event in Listening Mode


1. Optional: Call /ISAPI/Event/notification/httpHosts/capabilities by GET method to get the
capability of HTTP listening server.
2. Call /ISAPI/Event/notification/httpHosts by PUT method to set the parameters (including
listening address and listening port) of HTTP listening server.

Note
Before setting the listening server, you'd better call the URI by GET method to get the default or
configured parameters for reference.
3. Call /ISAPI/Event/notification/httpHosts/<ID>/test by POST method to check if the listening
server is working normally.
4. Receive the alarm/event information from the listening server.
Example
Sample Code of Receiving Alarm/Event in Listening Mode
• with Binary Picture Data
//Request
POST requestUrl HTTP/1.1

73
Intelligent Security API (Person-Based Access Control) Developer Guide

Host: data_gateway_ip:port
Accept-Language: en-US
Date: YourDate
Content-Type: multipart/form-data;boundary=<frontier>
Content-Length: body_length
Connection: keep-alive

--<frontier>
Content-Disposition: form-data; name="Event_Type"
Content-Type: text/xml
Content-Length: xml_length

<EventNotificationAlert/>
--<frontier>
Content-Disposition: form-data; name="Picture_Name"
Content-Length: image_length
Content-Type: image/pjpeg

[binary picture data]


--<frontier>--

//Response
HTTP/1.1 HTTP statusCode
Date: YourDate
Connection: close
• without Binary Picture Data
//Request
POST requestUrl HTTP/1.1
Host: data_gateway_ip:port
Accept-Language: en-US
Date: YourDate
Content-Type: text/xml;
Content-Length: text_length
Connection: keep-alive

<EventNotificationAlert/>

//Response
HTTP/1.1 HTTP statusCode
Date: YourDate
Connection: close

Note
• The Host is the HTTP server domain name or IP address and port No.
• Some alarm data is in JSON format, so the Content-Type may be "text/xml" or "text/json".

74
Intelligent Security API (Person-Based Access Control) Developer Guide

4.13.7 Remotely Verify Access Control Events


For the uploaded access control events, you can verify them remotely to control opening or closing
the door.

Function Description
Get Capability of Verifying GET /ISAPI/AccessControl/remoteCheck/capabilities?
Access Control Event Remotely format=json
Verify Access Control Event PUT /ISAPI/AccessControl/remoteCheck?format=json
Remotely

Note
To check whether the device supports verifying access control events remotely, you can call /ISAPI/
AccessControl/capabilities by GET method to get the access control capability.
The access control capability is returned in the message XML_Cap_AccessControl . If the device
supports this function, the node <isSupportRemoteCheck> will be returned and its value is true.

4.14 Configure Attendance Status and Schedule


The time and attendance refers to tracking and monitoring when employees start and stop
working, and their working hours (including late arrivals, early departures, time taken on breaks
and absenteeism, etc.). You can set the manual or automatic time and attendance mode, or disable
the attendance mode. You can also configure the week schedule to regularly manage and control
the attendance (i.e., check in, check out, break out, break in, overtime in, or overtime out) in some
specific time periods.
Before You Start
Make sure you have added at least one person, refer to Manage Person Information for details.

75
Intelligent Security API (Person-Based Access Control) Developer Guide

Steps

Figure 4-22 API Calling Flow of Configuring Attendance Status and Schedule

76
Intelligent Security API (Person-Based Access Control) Developer Guide

1. Optional: Call /ISAPI/AccessControl/Configuration/attendanceMode/capabilities?format=json


by GET method to get the configuration capability of the attendance mode for knowing the
configuration details and notices.

Note
To check whether the device supports configuring the attendance mode, you can call /ISAPI/
AccessControl/capabilities by GET method to get the functional capability of access control.
If the node <isSupportAttendanceMode> is returned in the message XML_Cap_AccessControl
and its value is true, it indicates that the device supports configuring the attendance mode.
2. Call /ISAPI/AccessControl/Configuration/attendanceMode?format=json by PUT method to set
the attendance mode parameters.

Note
Before setting the attendance mode parameters, you'd better call /ISAPI/AccessControl/
Configuration/attendanceMode?format=json by GET method to get the existing or default
attendance mode parameters for reference.
3. Optional: Call /ISAPI/AccessControl/keyCfg/attendance/capabilities?format=json by GET
method to get the configuration capability of attendance check by pressing the key for knowing
the configuration details and notices.

Note
To check whether the device supports configuring parameters of attendance check by pressing
the key, you can call /ISAPI/AccessControl/capabilities by GET method to get the functional
capability of access control.
If the node <isSupportKeyCfgAttendance> is returned in the message XML_Cap_AccessControl
and its value is true, it indicates that the device supports configuring parameters of attendance
check by pressing the key.
4. Call /ISAPI/AccessControl/keyCfg/<ID>/attendance?format=json by PUT method to set the
parameters of attendance check by pressing the key.

Note
Before setting the parameters, you'd better call /ISAPI/AccessControl/keyCfg/<ID>/
attendance?format=json or /ISAPI/AccessControl/keyCfg/attendance?format=json by GET
method to get the existing or default parameters of one or all keys for reference.
5. Optional: Call /ISAPI/AccessControl/Attendance/weekPlan/capabilities?format=json by GET
method to get the configuration capability of the week attendance schedule for knowing the
configuration details and notices.

77
Intelligent Security API (Person-Based Access Control) Developer Guide

Note
To check whether the device supports configuring the week attendance schedule, you can call /
ISAPI/AccessControl/capabilities by GET method to get the functional capability of access
control.
If the node <isSupportAttendanceWeekPlan> is returned in the message
XML_Cap_AccessControl and its value is true, it indicates that the device supports configuring
the week attendance schedule.
6. Call /ISAPI/AccessControl/Attendance/weekPlan/<PlanNo>?format=json by PUT method to
set the parameters of the week attendance schedule.

Note
Before setting the parameters, you'd better call /ISAPI/AccessControl/Attendance/weekPlan/
<PlanNo>?format=json by GET method to get the existing or default parameters for reference.
7. Optional: Call /ISAPI/AccessControl/Attendance/planTemplate/capabilities?format=json by
GET method to get the configuration capability of the attendance schedule template for
knowing the configuration details and notices.

Note
To check whether the device supports configuring the attendance schedule template, you can
call /ISAPI/AccessControl/capabilities by GET method to get the functional capability of access
control.
If the node <isSupportAttendancePlanTemplate> is returned in the message
XML_Cap_AccessControl and its value is true, it indicates that the device supports configuring
the attendance schedule template.
8. Optional: Call /ISAPI/AccessControl/Attendance/planTemplate?format=json by GET method to
get the list of attendance schedule templates.

Note
To check whether the device supports getting the list of attendance schedule templates, you can
call /ISAPI/AccessControl/capabilities by GET method to get the functional capability of access
control.
If the node <isSupportAttendancePlanTemplateList> is returned in the message
XML_Cap_AccessControl and its value is true, it indicates that the device supports getting the
list of attendance schedule templates.
9. Call /ISAPI/AccessControl/Attendance/planTemplate/<TemplateNo>?format=json by PUT
method to set the parameters of the attendance schedule template.

78
Intelligent Security API (Person-Based Access Control) Developer Guide

Note
Before setting the parameters, you'd better call /ISAPI/AccessControl/Attendance/
planTemplate/<TemplateNo>?format=json by GET method to get the existing or default
parameters for reference.
10. Optional: Call /ISAPI/AccessControl/ClearAttendancePlan?format=json by PUT method to
clear the attendance schedule.

Note
To check whether the device supports clearing the attendance schedule, you can call /ISAPI/
AccessControl/capabilities by GET method to get the functional capability of access control.
If the node <isSupportClearAttendancePlan> is returned in the message
XML_Cap_AccessControl and its value is true, it indicates that the device supports clearing the
attendance schedule.

4.15 Other Applications

4.15.1 Device/Server Settings

Door/Floor

Function Description
Get door (floor) configuration GET /ISAPI/AccessControl/Door/param/<ID>/capabilities
capability
Get or set door (floor) GET or PUT /ISAPI/AccessControl/Door/param/<ID>
parameters

Reader

Function Description
Get reader configuration GET /ISAPI/AccessControl/CardReaderCfg/capabilities?
capability format=json
Get or set reader parameters GET or PUT /ISAPI/AccessControl/CardReaderCfg/<ID>?
format=json
NFC (Near-Field Get configuration capability of enabling or disabling NFC
Communication) Function function
Request URI: GET /ISAPI/AccessControl/Configuration/NFCCfg/
capabilities?format=json

79
Intelligent Security API (Person-Based Access Control) Developer Guide

Function Description
Get parameters of enabling or disabling NFC function
Request URI: GET /ISAPI/AccessControl/Configuration/NFCCfg?
format=json
Set parameters of enabling or disabling NFC function
Request URI: PUT /ISAPI/AccessControl/Configuration/NFCCfg?
format=json
RF (Radio Frequency) Card Get configuration capability of enabling or disabling RF card
Recognition recognition
Request URI: GET /ISAPI/AccessControl/Configuration/
RFCardCfg/capabilities?format=json
Get parameters of enabling or disabling RF card recognition
Request URI: GET /ISAPI/AccessControl/Configuration/
RFCardCfg?format=json
Set parameters of enabling or disabling RF card recognition
Request URI: PUT /ISAPI/AccessControl/Configuration/
RFCardCfg?format=json

Access Controller

Function Description
Get configuration capability of GET /ISAPI/AccessControl/AcsCfg/capabilities?format=json
access controller
Get or set access controller GET or PUT /ISAPI/AccessControl/AcsCfg?format=json
parameters

OSDP (Open Supervised Device Protocol) Card Reader

Function Description
Get capability of getting OSDP GET /ISAPI/AccessControl/OSDPStatus/capabilities?
card reader status format=json
Get OSDP card reader status GET /ISAPI/AccessControl/OSDPStatus/<ID>?format=json
Get capability of setting OSDP GET /ISAPI/AccessControl/OSDPModify/capabilities?
card reader ID format=json
Set OSDP card reader ID PUT /ISAPI/AccessControl/OSDPModify/<ID>?format=json

80
Intelligent Security API (Person-Based Access Control) Developer Guide

Intelligent Identity Recognition Terminal

Function Description
Get configuration capability of GET /ISAPI/AccessControl/IdentityTerminal/capabilities
intelligent identity recognition
terminal
Get parameters of intelligent GET /ISAPI/AccessControl/IdentityTerminal
identity recognition terminal
Set parameters of intelligent PUT /ISAPI/AccessControl/IdentityTerminal
identity recognition terminal

Note
After configuring the identity recognition parameters, when the ID card is swiped to recognize, the
corresponding event information (eventType is "IDCardInfoEvent") will be uploaded in the
message JSON_EventNotificationAlert_IDCardSwipingEventMsg .

Picture Storage Server

Function Description
Get picture storage server GET /ISAPI/System/PictureServer/capabilities?format=json
capability
Get picture storage server GET /ISAPI/System/PictureServer?format=json
parameters
Set picture storage server PUT /ISAPI/System/PictureServer?format=json
parameters

4.15.2 Multi-Factor Authentication


Multi-factor authentication is to manage the cards by group and set the authentication for multiple
cards of one access control point (door).

81
Intelligent Security API (Person-Based Access Control) Developer Guide

Mode Settings

Function Description
Get configuration capability of GET /ISAPI/AccessControl/MultiCardCfg/capabilities?
multi-​factor authentication format=json
mode
Get or set parameters of multi- GET or PUT /ISAPI/AccessControl/MultiCardCfg/<ID>?
factor authentication mode format=json

Group Settings

Function Description
Get group configuration GET /ISAPI/AccessControl/GroupCfg/capabilities?format=json
capability
Get or set group parameters GET or PUT /ISAPI/AccessControl/GroupCfg/<ID>?format=json
Get capability of clearing group GET /ISAPI/AccessControl/ClearGroupCfg/capabilities?
parameters format=json
Clear group parameters PUT /ISAPI/AccessControl/ClearGroupCfg?format=json

4.15.3 Multi-Door Interlocking


Multi-door interlocking is used to control the entry of persons to a secure area such as a clean
room, where dust or small particles may be a problem. One rule is composed of at least two doors
and only one door can be opened simultaneously.

Function Description
Get configuration capability of GET /ISAPI/AccessControl/MultiDoorInterLockCfg/capabilities?
multi-​door interlocking format=json
Get or set multi-​door GET or PUT /ISAPI/AccessControl/MultiDoorInterLockCfg?
interlocking parameters format=json

4.15.4 M1 Card Encryption Authentication


M1 card encryption can improve the security level of authentication.

82
Intelligent Security API (Person-Based Access Control) Developer Guide

Function Description
Get configuration capability of GET /ISAPI/AccessControl/M1CardEncryptCfg/capabilities
M1 card encryption
authentication
Get or set parameters of M1 GET or PUT /ISAPI/AccessControl/M1CardEncryptCfg
card encryption authentication

4.15.5 Configuration and Maintenance

Data Exporting and Importing

Function Description
Export or import person GET or POST /ISAPI/AccessControl/userData?secretkey=
permission data securely
Note
To check whether the device supports exporting or importing
person permission data securely, you can call /ISAPI/
AccessControl/capabilities by GET method to get the functional
capability of access control. The capability is returned in the
message XML_Cap_AccessControl .
If the device supports exporting person permission data
securely, the node <isSupportUserDataExport> will be returned
in the message and its value is "true"; if the device supports
importing person permission data securely, the node
<isSupportUserDataImport> will be returned in the message
and its value is "true".

Export maintenance data GET /ISAPI/AccessControl/maintenanceData?secretkey=

Note
To check whether the device supports exporting the
maintenance data, you can call /ISAPI/AccessControl/
capabilities by GET method to get the functional capability of
access control. The capability is returned in the message
XML_Cap_AccessControl .
If the device supports exporting the maintenance data, the
node <isSupportMaintenanceDataExport> will be returned in
the message and its value is "true".

83
Intelligent Security API (Person-Based Access Control) Developer Guide

Access Control Status

Function Description
Get capability of getting GET /ISAPI/AccessControl/AcsWorkStatus/capabilities?
working status of access format=json
controller
Get working status of access GET /ISAPI/AccessControl/AcsWorkStatus?format=json
controller
Get capability of getting status GET /ISAPI/AccessControl/DoorSecurityModule/moduleStatus/
of secure door control unit capabilities
Get status of secure door GET /ISAPI/AccessControl/DoorSecurityModule/moduleStatus
control unit

Wiegand Settings

Function Description
Get Wiegand configuration GET /ISAPI/AccessControl/WiegandCfg/capabilities
capability
Get or set Wiegand parameters GET or PUT /ISAPI/AccessControl/WiegandCfg/wiegandNo/
<ID>
Get configuration capability of GET /ISAPI/AccessControl/WiegandRuleCfg/capabilities
Wiegand rule
Get or set Wiegand rule GET or PUT /ISAPI/AccessControl/WiegandRuleCfg

Log Mode

Function Description
Get configuration capability of GET /ISAPI/AccessControl/LogModeCfg/capabilities?
log mode format=json
Get or set log mode GET or PUT /ISAPI/AccessControl/LogModeCfg?format=json

SMS ( Short Message Service)

Function Description
Get SMS configuration GET /ISAPI/AccessControl/SmsRelativeParam/capabilities?
capability format=json
Get or set SMS parameters GET or PUT /ISAPI/AccessControl/SmsRelativeParam?
format=json

84
Intelligent Security API (Person-Based Access Control) Developer Guide

Function Description
Get capability of linking door GET /ISAPI/AccessControl/PhoneDoorRightCfg/capabilities?
permission to phone number format=json
Get or set parameters of linking GET or PUT /ISAPI/AccessControl/PhoneDoorRightCfg/<ID>?
door permission to phone format=json
number

Event Optimization

Function Description
Get configuration capability of GET /ISAPI/AccessControl/EventOptimizationCfg/capabilities?
event optimization format=json
Get or set event optimization GET or PUT /ISAPI/AccessControl/EventOptimizationCfg?
parameters format=json

Text of Audio Prompt for Authentication Results

Function Description
Get text configuration GET /ISAPI/AccessControl/Verification/ttsText/capabilities?
capability of audio prompt for format=json
authentication results
Get or set text parameters of GET or PUT /ISAPI/AccessControl/Verification/ttsText?
audio prompt for format=json
authentication results

Face Picture Comparison Condition

Function Description
Get condition configuration GET /ISAPI/AccessControl/FaceCompareCond/capabilities
capability of face picture
comparison
Get or set condition GET or PUT /ISAPI/AccessControl/FaceCompareCond
parameters of face picture
comparison

85
Intelligent Security API (Person-Based Access Control) Developer Guide

ID Card Blocklist

Function Description
Get capability of applying ID GET /ISAPI/AccessControl/IDBlackListCfg/capabilities
card blocklist
Apply ID card blocklist PUT /ISAPI/AccessControl/IDBlackListCfg
Get ID card blocklist template GET /ISAPI/AccessControl/IDBlackListCfg/template?
format=json

Capture Triggering Settings

Function Description
Get capability of getting GET /ISAPI/AccessControl/SnapConfig/capabilities
capture triggering parameters
Get capture triggering GET /ISAPI/AccessControl/SnapConfig
parameters

Door Lock Status

Function Description
Get configuration capability of GET /ISAPI/AccessControl/Configuration/lockType/
door lock status when the capabilities?format=json
device is powered off
Get or set door lock status GET or PUT /ISAPI/AccessControl/Configuration/lockType?
when the device is powered off format=json

Card No. Authentication Mode

Function Description
Get configuration capability of GET /ISAPI/AccessControl/CardVerificationRule/capabilities?
card No. authentication mode format=json
Get or set parameters of card GET or PUT /ISAPI/AccessControl/CardVerificationRule?
No. authentication mode format=json
Get switching progress and GET /ISAPI/AccessControl/CardVerificationRule/progress?
configuration result of card No. format=json
authentication mode

86
Intelligent Security API (Person-Based Access Control) Developer Guide

Active Infrared Intrusion Detection

Function Description
Get Configuration Capability of GET /ISAPI/AccessControl/Configuration/IRCfg/capabilities?
Active Infrared Intrusion format=json
Detection
Get Parameters of Active GET /ISAPI/AccessControl/Configuration/IRCfg?format=json
Infrared Intrusion Detection
Set Parameters of Active PUT /ISAPI/AccessControl/Configuration/IRCfg?format=json
Infrared Intrusion Detection

Additional Person Information

Function Request URI


Get the configuration capability of the name of GET /ISAPI/AccessControl/
the additional person information personInfoExtendName/capabilities?
format=json
Get or set the name of the additional person GET or PUT /ISAPI/AccessControl/
information personInfoExtendName?format=json

Privacy Settings

Function Request URI


Get the capability of clearing pictures in the GET /ISAPI/AccessControl/ClearPictureCfg/
device capabilities?format=json
Clear pictures in the device PUT /ISAPI/AccessControl/ClearPictureCfg?
format=json
Get the storage configuration capability of GET /ISAPI/AccessControl/AcsEvent/
access control events StorageCfg/capabilities?format=json
Get or set storage parameters of access control GET or PUT /ISAPI/AccessControl/AcsEvent/
events StorageCfg?format=json

Getting ID Card Events Actively

Function Request URI


Get the capability of getting ID card events GET /ISAPI/AccessControl/IDCardInfoEvent/
actively capabilities?format=json
Get ID card events actively POST /ISAPI/AccessControl/IDCardInfoEvent?
format=json

87
Intelligent Security API (Person-Based Access Control) Developer Guide

Appendix A. Request URIs

A.1 /ISAPI/AccessControl/AcsCfg/capabilities?format=json
Get the configuration capability of the access controller.

Request URI Definition


Table A-1 GET /ISAPI/AccessControl/AcsCfg/capabilities?format=json
Method GET
Description Get the configuration capability of the access controller.
Query format: determine the format of request or response message.
Request None.
Response Succeeded: JSON_Cap_AcsCfg
Failed: JSON_ResponseStatus

A.2 /ISAPI/AccessControl/AcsCfg?format=json
Operations about the configuration of the access controller.

Request URI Definition


Table A-2 GET /ISAPI/AccessControl/AcsCfg?format=json
Method GET
Description Get the configuration parameters of the access controller.
Query format: determine the format of request or response message.
Request None.
Response Succeeded: JSON_AcsCfg
Failed: JSON_ResponseStatus
Table A-3 PUT /ISAPI/AccessControl/AcsCfg?format=json
Method PUT
Description Set the parameters of the access controller.
Query format: determine the format of request or response message.

88
Intelligent Security API (Person-Based Access Control) Developer Guide

Request JSON_AcsCfg
Response JSON_ResponseStatus

A.3 /ISAPI/AccessControl/AcsEvent/capabilities?format=json
Get the capability of searching for access control events

Request URI Definition


Table A-4 GET /ISAPI/AccessControl/AcsEvent/capabilities?format=json
Method GET
Description Get the capability of searching for access control events.
Query format: determine the format of request or response message.
terminalNo: dependent, int, terminal No., starts from 1. It is required
for information release system integration. The No. is generated after
information release terminal is registered to the central management
server, and you can call "/ISAPI/Publish/TerminalMgr/
terminalSearch" by POST method to get the generated terminal No.
Request None.
Response Succeeded: JSON_Cap_AcsEvent
Failed: JSON_ResponseStatus

A.4 /ISAPI/AccessControl/AcsEvent/StorageCfg/capabilities?format=json
Get the storage configuration capability of access control events.

Request URI Definition


Table A-5 GET /ISAPI/AccessControl/AcsEvent/StorageCfg/capabilities?format=json
Method GET
Description Get the storage configuration capability of access control events.
Query format: determine the format of request or response message.
Request None.
Response Succeeded: JSON_EventStorageCfgCap
Failed: JSON_ResponseStatus

89
Intelligent Security API (Person-Based Access Control) Developer Guide

A.5 /ISAPI/AccessControl/AcsEvent/StorageCfg?format=json
Get or set the storage parameters of access control events.

Request URI Definition


Table A-6 GET /ISAPI/AccessControl/AcsEvent/StorageCfg?format=json
Method GET
Description Get the storage parameters of access control events.
Query format: determine the format of request or response message.
Request None.
Response Succeeded: JSON_EventStorageCfg
Failed: JSON_ResponseStatus
Table A-7 PUT /ISAPI/AccessControl/AcsEvent/StorageCfg?format=json
Method PUT
Description Set the storage parameters of access control events.
Query format: determine the format of request or response message.
Request JSON_EventStorageCfg
Response JSON_ResponseStatus

A.6 /ISAPI/AccessControl/AcsEvent?format=json
Search for access control events.

Request URI Definition


Table A-8 POST /ISAPI/AccessControl/AcsEvent?format=json
Method POST
Description Search for access control events.
Query format: determine the format of request or response message.
terminalNo: dependent, int, terminal No., starts from 1. It is required
for information release system integration. The No. is generated after
information release terminal is registered to the central management
server, and you can call "/ISAPI/Publish/TerminalMgr/
terminalSearch" by POST method to get the generated terminal No.

90
Intelligent Security API (Person-Based Access Control) Developer Guide

security: the version No. of encryption scheme. When security does


not exist, it indicates that the data is not encrypted; when security is
1, it indicates that the nodes of sensitive information in the message
are encrypted in AES128 CBC mode; when security is 2, it indicates
that the nodes of sensitive information in the message are encrypted
in AES256 CBC mode. In the request and response messages, the
values of the node cardNo, employeeNo, employeeNoString, and
name should be encrypted.
iv: the initialization vector, and it is required when security is 1 or 2.
Request JSON_AcsEventCond
Response Succeeded: JSON_AcsEvent
Failed: JSON_ResponseStatus

Remarks
• The recommended timeout of this URI is 10 seconds.
• If the response message contains picture data, the picture data will be returned by boundary
method; otherwise, the response message in JSON format will be returned directly.
Example
Sample Response Message with Picture Data
--MIME_boundary
Content-Type: application/json
Content-Length:480

{
"AcsEvent":{
"searchID":"",
"responseStatusStrg":"OK",
"numOfMatches":1,
"totalMatches":1,
"InfoList":[{
"major":1,
"minor":1,
"time":"2016-12-12T17:30:08+08:00",
"netUser":"",
"remoteHostAddr":"",
"cardNo":"",
"cardType":1,
"whiteListNo":1,
"reportChannel":1,
"cardReaderKind":1,
"cardReaderNo":1,
"doorNo":1,
"verifyNo":1,
"alarmInNo":1,
"alarmOutNo":1,

91
Intelligent Security API (Person-Based Access Control) Developer Guide

"caseSensorNo":1,
"RS485No":1,
"multiCardGroupNo":1,
"accessChannel":1,
"deviceNo":1,
"distractControlNo":1,
"employeeNoString":"",
"localControllerID":1,
"InternetAccess":1,
"type":1,
"MACAddr":"",
"swipeCardType":1,
"serialNo":1,
"channelControllerID":1,
"channelControllerLampID":1,
"channelControllerIRAdaptorID":1,
"channelControllerIREmitterID":1,
"userType":"normal",
"currentVerifyMode":"",
"attendanceStatus":"",
"statusValue":1,
"pictureURL":"",
"picturesNumber":1,
"filename":"picture1"
}]
}
}
--MIME_boundary
Content-Disposition: form-data; filename="picture1"; //Picture data
Content-Type:image/jpeg
Content-Length:12345

fgagasghshgshdasdad…
--MIME_boundary--

A.7 /ISAPI/AccessControl/AcsEventTotalNum/capabilities?format=json
Get the capability of getting total number of access control events by specific conditions.

Request URI Definition


Table A-9 GET /ISAPI/AccessControl/AcsEventTotalNum/capabilities?format=json
Method GET
Description Get the capability of getting total number of access control events by
specific conditions.
Query format: determine the format of request or response message.

92
Intelligent Security API (Person-Based Access Control) Developer Guide

terminalNo: dependent, int, terminal No., starts from 1. It is required


for information release system integration. The No. is generated after
information release terminal is registered to the central management
server, and you can call "/ISAPI/Publish/TerminalMgr/
terminalSearch" by POST method to get the generated terminal No.
Request None.
Response Succeeded: JSON_Cap_AcsEventTotalNum
Failed: JSON_ResponseStatus

A.8 /ISAPI/AccessControl/AcsEventTotalNum?format=json
Get the total number of access control events by specific conditions.

Request URI Definition


Table A-10 POST /ISAPI/AccessControl/AcsEventTotalNum?format=json
Method POST
Description Get the total number of access control events by specific conditions.
Query format: determine the format of request or response message.
terminalNo: dependent, int, terminal No., starts from 1. It is required
for information release system integration. The No. is generated after
information release terminal is registered to the central management
server, and you can call "/ISAPI/Publish/TerminalMgr/
terminalSearch" by POST method to get the generated terminal No.
Request JSON_AcsEventTotalNumCond
Response Succeeded: JSON_AcsEventTotalNum
Failed: JSON_ResponseStatus

Remarks
• The recommended timeout is 30s.
• This URI is not supported by integration of information release system.

A.9 /ISAPI/AccessControl/AcsWorkStatus/capabilities?format=json
Get the capability of getting the working status of the access controller.

93
Intelligent Security API (Person-Based Access Control) Developer Guide

Request URI Definition


Table A-11 GET /ISAPI/AccessControl/AcsWorkStatus/capabilities?format=json
Method GET
Description Get the capability of getting the working status of the access
controller.
Query format: determine the format of request or response message.
Request None.
Response Succeeded: JSON_Cap_AcsWorkStatus
Failed: JSON_ResponseStatus

A.10 /ISAPI/AccessControl/AcsWorkStatus?format=json
Get the working status of the access controller.

Request URI Definition


Table A-12 GET /ISAPI/AccessControl/AcsWorkStatus?format=json
Method GET
Description Get the working status of the access controller.
Query format: determine the format of request or response message.
Request None.
Response Succeeded: JSON_AcsWorkStatus
Failed: JSON_ResponseStatus

A.11 /ISAPI/AccessControl/AntiSneakCfg/capabilities?format=json
Get the anti-passing back configuration capability.

Request URI Definition


Table A-13 GET /ISAPI/AccessControl/AntiSneakCfg/capabilities?format=json
Method GET
Description Get the anti-​passing back configuration capability.
Query format: determine the format of request or response message.

94
Intelligent Security API (Person-Based Access Control) Developer Guide

Request None.
Response Succeeded: JSON_Cap_AntiSneakCfg
Failed: JSON_ResponseStatus

A.12 /ISAPI/AccessControl/AntiSneakCfg?format=json
Operations about anti-passing back configuration.

Request URI Definition


Table A-14 GET /ISAPI/AccessControl/AntiSneakCfg?format=json
Method GET
Description Get the anti-​passing back configuration parameters.
Query format: determine the format of request or response message.
Request None.
Response Succeeded: JSON_AntiSneakCfg
Failed: JSON_ResponseStatus
Table A-15 PUT /ISAPI/AccessControl/AntiSneakCfg?format=json
Method PUT
Description Set the anti-​passing back parameters.
Query format: determine the format of request or response message.
Request JSON_AntiSneakCfg
Response JSON_ResponseStatus

A.13 /ISAPI/AccessControl/Attendance/planTemplate/<TemplateNo>?
format=json
Get or set the parameters of the attendance schedule template.

Request URI Definition


Table A-16 GET /ISAPI/AccessControl/Attendance/planTemplate/<TemplateNo>?format=json
Method GET
Description Get the parameters of the attendance schedule template.
Query format: determine the format of request or response message.

95
Intelligent Security API (Person-Based Access Control) Developer Guide

Request None.
Response Succeeded: JSON_AttendancePlanTemplate
Failed: JSON_ResponseStatus
Table A-17 PUT /ISAPI/AccessControl/Attendance/planTemplate/<TemplateNo>?format=json
Method PUT
Description Set the parameters of the attendance schedule template.
Query format: determine the format of request or response message.
Request JSON_AttendancePlanTemplate
Response JSON_ResponseStatus

Remarks
The <TemplateNo> in the request URI refers to the attendance schedule template No.

A.14 /ISAPI/AccessControl/Attendance/planTemplate/capabilities?
format=json
Get the configuration capability of the attendance schedule template.

Request URI Definition


Table A-18 GET /ISAPI/AccessControl/Attendance/planTemplate/capabilities?format=json
Method GET
Description Get the configuration capability of the attendance schedule
template.
Query format: determine the format of request or response message.
Request None.
Response Succeeded: JSON_AttendancePlanTemplateCap
Failed: JSON_ResponseStatus

A.15 /ISAPI/AccessControl/Attendance/planTemplate?format=json
Get the list of attendance schedule templates.

96
Intelligent Security API (Person-Based Access Control) Developer Guide

Request URI Definition


Table A-19 GET /ISAPI/AccessControl/Attendance/planTemplate?format=json
Method GET
Description Get the list of attendance schedule templates.
Query format: determine the format of request or response message.
Request None.
Response Succeeded: JSON_AttendancePlanTemplateList
Failed: JSON_ResponseStatus

A.16 /ISAPI/AccessControl/Attendance/weekPlan/<PlanNo>?
format=json
Get or set the parameters of the week attendance schedule.

Request URI Definition


Table A-20 GET /ISAPI/AccessControl/Attendance/weekPlan/<PlanNo>?format=json
Method GET
Description Get the parameters of the week attendance schedule.
Query format: determine the format of request or response message.
Request None.
Response Succeeded: JSON_AttendanceWeekPlan
Failed: JSON_ResponseStatus
Table A-21 PUT /ISAPI/AccessControl/Attendance/weekPlan/<PlanNo>?format=json
Method PUT
Description Set the parameters of the week attendance schedule.
Query format: determine the format of request or response message.
Request JSON_AttendanceWeekPlan
Response JSON_ResponseStatus

Remarks
The <PlanNo> in the request URI refers to the attendance schedule No.

97
Intelligent Security API (Person-Based Access Control) Developer Guide

A.17 /ISAPI/AccessControl/Attendance/weekPlan/capabilities?
format=json
Get the configuration capability of the week attendance schedule.

Request URI Definition


Table A-22 GET /ISAPI/AccessControl/Attendance/weekPlan/capabilities?format=json
Method GET
Description Get the configuration capability of the week attendance schedule.
Query format: determine the format of request or response message.
Request None.
Response Succeeded: JSON_AttendanceWeekPlanCap
Failed: JSON_ResponseStatus

A.18 /ISAPI/AccessControl/capabilities
Get the functional capability of access control.

Request URI Definition


Table A-23 GET /ISAPI/AccessControl/capabilities
Method GET
Description Get the functional capability of access control.
Query None.
Request None.
Response Succeeded: XML_Cap_AccessControl
Failed: XML_ResponseStatus

A.19 /ISAPI/AccessControl/CaptureCardInfo/capabilities?format=json
Get the capability of collecting card information.

98
Intelligent Security API (Person-Based Access Control) Developer Guide

Request URI Definition


Table A-24 GET /ISAPI/AccessControl/CaptureCardInfo/capabilities?format=json
Method GET
Description Get the capability of collecting card information.
Query format: determine the format of request or response message.
Request None.
Response Succeeded: JSON_CardInfoCap
Failed: JSON_ResponseStatus

A.20 /ISAPI/AccessControl/CaptureCardInfo?format=json
Collect card information.

Request URI Definition


Table A-25 GET /ISAPI/AccessControl/CaptureCardInfo?format=json
Method GET
Description Collect card information by the card reading module of the device.
Query format: determine the format of request or response message.
security: the version No. of encryption scheme. When security does
not exist, it indicates that the data is not encrypted; when security is
1, it indicates that the nodes of sensitive information in the message
are encrypted in AES128 CBC mode; when security is 2, it indicates
that the nodes of sensitive information in the message are encrypted
in AES256 CBC mode. In the message of this request URI, the value of
the field cardNo should be encrypted.
iv: the initialization vector, and it is required when security is 1 or 2.
Request None.
Response Succeeded: JSON_CardInfo_Collection
Failed: JSON_ResponseStatus

A.21 /ISAPI/AccessControl/CaptureFaceData
Collect face picture information.

99
Intelligent Security API (Person-Based Access Control) Developer Guide

Request URI Definition


Table A-26 POST /ISAPI/AccessControl/CaptureFaceData
Method POST
Description Collect face picture information.
Query None.
Request XML_CaptureFaceDataCond
Response Succeeded: XML_CaptureFaceData
Failed: XML_ResponseStatus

Remarks
This API is allowed to return collected face pictures directly, and the blocking time cannot be too
long (the timeout value is 5s).
Example
Interaction When No Face Data is Collected
POST /ISAPI/AccessControl/CaptureFaceData
Accept: text/html, application/xhtml+xml,
Accept-Language: zh-CN
Content-Type: application/xml
User-Agent: Mozilla/5.0 (compatible; MSIE 9.0; Windows NT 6.1; WOW64; Trident/5.0)
Accept-Encoding: gzip, deflate
Host: 10.10.36.29:8080
Content-Length: 9907
Connection: Keep-Alive
Cache-Control: no-cache

<CaptureFaceDataCond version="2.0" xmlns="http://www.isapi.org/ver20/XMLSchema">


<captureInfrared>true</captureInfrared>
<dataType><!--input "binary" or "url" here--></dataType>
</CaptureFaceDataCond>

---------------------------------------------------------------------------------------------------

HTTP/1.1 200 OK
MIME-Version: 1.0
Connection: close
Content-Type: application/xml; charset="UTF-8"
Content-Length: text_length

<CaptureFaceData version="2.0" xmlns="http://www.isapi.org/ver20/XMLSchema">


<captureProgress>0</captureProgress>
</CaptureFaceData>

Example
Interaction by URI

100
Intelligent Security API (Person-Based Access Control) Developer Guide

POST /ISAPI/AccessControl/CaptureFaceData
Accept: text/html, application/xhtml+xml,
Accept-Language: zh-CN
Content-Type: application/xml
User-Agent: Mozilla/5.0 (compatible; MSIE 9.0; Windows NT 6.1; WOW64; Trident/5.0)
Accept-Encoding: gzip, deflate
Host: 10.10.36.29:8080
Content-Length: 9907
Connection: Keep-Alive
Cache-Control: no-cache

<CaptureFaceDataCond version="2.0" xmlns="http://www.isapi.org/ver20/XMLSchema">


<captureInfrared>true</captureInfrared>
</CaptureFaceDataCond>

---------------------------------------------------------------------------------------------------

HTTP/1.1 200 OK
MIME-Version: 1.0
Connection: close
Content-Type: application/xml; charset="UTF-8"
Content-Length: text_length

<CaptureFaceData version="2.0" xmlns="http://www.isapi.org/ver20/XMLSchema">


<faceDataUrl>url_string</faceDataUrl>
<captureProgress>100</captureProgress>
<infraredFaceDataUrl>url_string</infraredFaceDataUrl>
</CaptureFaceData>

Example
Interaction with Binary Data
POST /ISAPI/AccessControl/CaptureFaceData
Accept: text/html, application/xhtml+xml,
Accept-Language: zh-CN
Content-Type: application/xml
User-Agent: Mozilla/5.0 (compatible; MSIE 9.0; Windows NT 6.1; WOW64; Trident/5.0)
Accept-Encoding: gzip, deflate
Host: 10.10.36.29:8080
Content-Length: 9907
Connection: Keep-Alive
Cache-Control: no-cache

<CaptureFaceDataCond version="2.0" xmlns="http://www.isapi.org/ver20/XMLSchema">


<captureInfrared>true</captureInfrared>
<dataType>binary</dataType>
</CaptureFaceDataCond>

---------------------------------------------------------------------------------------------------

HTTP/1.1 200 OK
MIME-Version: 1.0

101
Intelligent Security API (Person-Based Access Control) Developer Guide

Connection: close
Content-Type: multipart/form-data; boundary=<frontier>
Content-Length: all_length

--<frontier>
Content-Type: application/xml; charset="UTF-8"
Content-Length: text_length

<CaptureFaceData/>
--<frontier>
Content-Disposition: form-data; name="FaceData"; filename="FaceData.jpg"
Content-Type: image/jpeg
Content-Length: image_length

[picture data]
--<frontier>
Content-Disposition: form-data; name="InfraredFaceData"; filename="InfraredFaceData.jpg"
Content-Type: image/jpeg
Content-Length: image_length

[picture data]
--<frontier>--

A.22 /ISAPI/AccessControl/CaptureFaceData/capabilities
Get the capability of collecting face picture information.

Request URI Definition


Table A-27 GET /ISAPI/AccessControl/CaptureFaceData/capabilities
Method GET
Description Get the capability of collecting face picture information.
Query None.
Request None.
Response Succeeded: XML_Cap_CaptureFaceData
Failed: XML_ResponseStatus

A.23 /ISAPI/AccessControl/CaptureFaceData/Progress
Get the progress of collecting face picture information.

102
Intelligent Security API (Person-Based Access Control) Developer Guide

Request URI Definition


Table A-28 GET /ISAPI/AccessControl/CaptureFaceData/Progress
Method GET
Description Get the progress of collecting face picture information.
Query None.
Request None.
Response Succeeded: XML_CaptureFaceData
Failed: XML_ResponseStatus

A.24 /ISAPI/AccessControl/CaptureFaceData/Progress/capabilities
Get capability of getting face picture collection progress.

Request URI Definition


Table A-29 GET /ISAPI/AccessControl/CaptureFaceData/Progress/capabilities
Method GET
Description Get capability of getting face picture collection progress.
Query None.
Request None.
Response Succeeded: XML_Cap_CaptureFaceData
Failed: XML_ResponseStatus

A.25 /ISAPI/AccessControl/CaptureFingerPrint
Collect fingerprint information.

Request URI Definition


Table A-30 POST /ISAPI/AccessControl/CaptureFingerPrint
Method POST
Description Collect fingerprint information.
Query None.

103
Intelligent Security API (Person-Based Access Control) Developer Guide

Request XML_CaptureFingerPrintCond
Response Succeeded: XML_CaptureFingerPrint
Failed: XML_ResponseStatus

A.26 /ISAPI/AccessControl/CaptureFingerPrint/capabilities
Get the fingerprint collection capability.

Request URI Definition


Table A-31 GET /ISAPI/AccessControl/CaptureFingerPrint/capabilities
Method GET
Description Get the fingerprint collection capability.
Query None.
Request None.
Response Succeeded: XML_Cap_CaptureFingerPrint
Failed: XML_ResponseStatus

A.27 /ISAPI/AccessControl/CaptureIDInfo/capabilities?format=json
Get the capability of collecting ID card information.

Request URI Definition


Table A-32 GET /ISAPI/AccessControl/CaptureIDInfo/capabilities?format=json
Method GET
Description Get the capability of collecting ID card information.
Query format: determine the format of request or response message.
Request None.
Response Succeeded: JSON_IdentityInfoCap
Failed: JSON_ResponseStatus

A.28 /ISAPI/AccessControl/CaptureIDInfo?format=json
Collect ID card information.

104
Intelligent Security API (Person-Based Access Control) Developer Guide

Request URI Definition


Table A-33 POST /ISAPI/AccessControl/CaptureIDInfo?format=json
Method POST
Description Collect ID card information.
Query security: the version No. of encryption scheme. When security does
not exist, it indicates that the data is not encrypted; when security is
1, it indicates that the nodes of sensitive information in the message
are encrypted in AES128 CBC mode; when security is 2, it indicates
that the nodes of sensitive information in the message are encrypted
in AES256 CBC mode. In the message of this request URI, the value of
the field IDCardNo should be encrypted.
iv: the initialization vector, and it is required when security is 1 or 2.
format: determine the format of request or response message.
Request JSON_IdentityInfoCond
Response JSON_IdentityInfo

A.29 /ISAPI/AccessControl/CapturePresetParam/capabilities?
format=json
Get the configuration capability of online collection preset parameters.

Request URI Definition


Table A-34 GET /ISAPI/AccessControl/CapturePresetParam/capabilities?format=json
Method GET
Description Get the configuration capability of online collection preset
parameters.
Query format: determine the format of request or response message.
Request None.
Response Succeeded: JSON_CapturePresetCap
Failed: JSON_ResponseStatus

A.30 /ISAPI/AccessControl/CapturePresetParam?format=json
Get or set the online collection preset parameters.

105
Intelligent Security API (Person-Based Access Control) Developer Guide

Request URI Definition


Table A-35 GET /ISAPI/AccessControl/CapturePresetParam?format=json
Method GET
Description Get the online collection preset parameters.
Query format: determine the format of request or response message.
security: the version No. of encryption scheme. When security does
not exist, it indicates that the data is not encrypted; when security is
1, it indicates that the nodes of sensitive information in the message
are encrypted in AES128 CBC mode; when security is 2, it indicates
that the nodes of sensitive information in the message are encrypted
in AES256 CBC mode. In the message of this request URI, the value of
the field name should be encrypted.
iv: the initialization vector, and it is required when security is 1 or 2.
Request None.
Response Succeeded: JSON_CapturePreset
Failed: JSON_ResponseStatus
Table A-36 PUT /ISAPI/AccessControl/CapturePresetParam?format=json
Method PUT
Description Set the online collection preset parameters.
Query format: determine the format of request or response message.
security: the version No. of encryption scheme. When security does
not exist, it indicates that the data is not encrypted; when security is
1, it indicates that the nodes of sensitive information in the message
are encrypted in AES128 CBC mode; when security is 2, it indicates
that the nodes of sensitive information in the message are encrypted
in AES256 CBC mode. In the message of this request URI, the value of
the field name should be encrypted.
iv: the initialization vector, and it is required when security is 1 or 2.
Request JSON_CapturePreset
Response JSON_ResponseStatus

A.31 /ISAPI/AccessControl/CaptureRule/capabilities?format=json
Get the configuration capability of online collection rules.

106
Intelligent Security API (Person-Based Access Control) Developer Guide

Request URI Definition


Table A-37 GET /ISAPI/AccessControl/CaptureRule/capabilities?format=json
Method GET
Description Get the configuration capability of online collection rules.
Query format: determine the format of request or response message.
Request None.
Response Succeeded: JSON_CaptureRuleCap
Failed: JSON_ResponseStatus

A.32 /ISAPI/AccessControl/CaptureRule?format=json
Get or set the parameters of online collection rules.

Request URI Definition


Table A-38 GET /ISAPI/AccessControl/CaptureRule?format=json
Method GET
Description Get the parameters of online collection rules.
Query format: determine the format of request or response message.
Request None.
Response Succeeded: JSON_CaptureRule
Failed: JSON_ResponseStatus
Table A-39 PUT /ISAPI/AccessControl/CaptureRule?format=json
Method PUT
Description Set the parameters of online collection rules.
Query format: determine the format of request or response message.
Request JSON_CaptureRule
Response JSON_ResponseStatus

A.33 /ISAPI/AccessControl/CardInfo/capabilities?format=json
Get the card management capability.

107
Intelligent Security API (Person-Based Access Control) Developer Guide

Request URI Definition


Table A-40 GET /ISAPI/AccessControl/CardInfo/capabilities?format=json
Method GET
Description Get the card management capability.
Query format: determine the format of request or response message.
terminalNo: dependent, int, terminal No., starts from 1. It is required
for information release system integration. The No. is generated after
information release terminal is registered to the central management
server, and you can call "/ISAPI/Publish/TerminalMgr/terminalSearch"
by POST method to get the generated terminal No.
Request None.
Response Succeeded: JSON_Cap_CardInfo
Failed: JSON_ResponseStatus

A.34 /ISAPI/AccessControl/CardInfo/Count?format=json
Get the total number of the added cards.

Request URI Definition


Table A-41 GET /ISAPI/AccessControl/CardInfo/Count?format=json
Method GET
Description Get the total number of the added cards.
Query format: determine the format of request or response message.
terminalNo: dependent, int, terminal No., starts from 1. It is required
for information release system integration. The No. is generated after
information release terminal is registered to the central management
server, and you can call "/ISAPI/Publish/TerminalMgr/
terminalSearch" by POST method to get the generated terminal No.
Request None.
Response Succeeded: JSON_CardInfoCount
Failed: JSON_ResponseStatus

Remarks
This URI is not supported by integration of information release system.

108
Intelligent Security API (Person-Based Access Control) Developer Guide

A.35 /ISAPI/AccessControl/CardInfo/Count?
format=json&employeeNo=<ID>
Get the number of cards linked with a specific person.

Request URI Definition


Table A-42 GET /ISAPI/AccessControl/CardInfo/Count?format=json&employeeNo=<ID>
Method GET
Description Get the number of cards linked with a specific person.
Query format: determine the format of request or response message.
employeeNo: employee No.
Request None.
Response Succeeded: JSON_CardInfoCount
Failed: JSON_ResponseStatus

Remarks
The <ID> in the request URI refers to the actual person ID or employee No.

A.36 /ISAPI/AccessControl/CardInfo/Delete?format=json
Delete cards.

Request URI Definition


Table A-43 PUT /ISAPI/AccessControl/CardInfo/Delete?format=json
Method PUT
Description Delete cards.
Query format: determine the format of request or response message.
Request JSON_CardInfoDelCond
Response JSON_ResponseStatus

A.37 /ISAPI/AccessControl/CardInfo/Modify?format=json
Edit card information.

109
Intelligent Security API (Person-Based Access Control) Developer Guide

Request URI Definition


Table A-44 PUT /ISAPI/AccessControl/CardInfo/Modify?format=json
Method PUT
Description Edit card information.
Query format: determine the format of request or response message.
Request JSON_CardInfo
Response JSON_ResponseStatus

Remarks
The employeeNo and cardNo in the request message JSON_CardInfo cannot be edited by calling
this URI. If the cardNo needs to be edited, you should firstly delete this card and then create a new
one.

A.38 /ISAPI/AccessControl/CardInfo/Record?format=json
Add cards and link them with a person.

Request URI Definition


Table A-45 POST /ISAPI/AccessControl/CardInfo/Record?format=json
Method POST
Description Add cards and link them with a person.
Query format: determine the format of request or response message.
Request JSON_CardInfo
Response JSON_ResponseStatus

A.39 /ISAPI/AccessControl/CardInfo/Search?format=json
Search for cards.

Request URI Definition


Table A-46 POST /ISAPI/AccessControl/CardInfo/Search?format=json
Method POST
Description Search for cards.
Query format: determine the format of request or response message.

110
Intelligent Security API (Person-Based Access Control) Developer Guide

terminalNo: dependent, int, terminal No., starts from 1. It is required


for information release system integration. The No. is generated after
information release terminal is registered to the central management
server, and you can call "/ISAPI/Publish/TerminalMgr/
terminalSearch" by POST method to get the generated terminal No.
Request JSON_CardInfoSearchCond
Response JSON_CardInfoSearch

A.40 /ISAPI/AccessControl/CardInfo/SetUp?format=json
Set card information.

Request URI Definition


Table A-47 PUT /ISAPI/AccessControl/CardInfo/SetUp?format=json
Method PUT
Description Set card information.
Query format: determine the format of request or response message.
Request JSON_CardInfo
Response JSON_ResponseStatus

Remarks
• If the device has checked that the card does not exist according to the card No., the card
information will be added.
• If the device has checked that the card already exists according to the card No., the card
information will be edited.
• If you want to delete a card for a person, you should set the employeeNo and cardNo, and set
the deleteCard to "true" in the message JSON_CardInfo . The success response message will be
returned no matter whether the card exists or not. Deleting the card will only delete the card's
information and will not delete the linked person information.
• If you want to delete all cards for a person, you should set the employeeNo, and set the
deleteCard to "true" in the message JSON_CardInfo . The success response message will be
returned no matter whether the person exists or not or whether the person has cards or not.
Deleting cards will only delete the cards' information and will not delete the linked person
information.

111
Intelligent Security API (Person-Based Access Control) Developer Guide

A.41 /ISAPI/AccessControl/CardOperations/capabilities?format=json
Get card operation capability.

Request URI Definition


Table A-48 GET /ISAPI/AccessControl/CardOperations/capabilities?format=json
Method GET
Description Get card operation capability.
Query format: determine the format of request or response message.
Request None.
Response Succeeded: JSON_CardOperationsCap
Failed: JSON_ResponseStatus

A.42 /ISAPI/AccessControl/CardOperations/cardIssueStatus?
format=json
Get the smart card issuing status.

Request URI Definition


Table A-49 GET /ISAPI/AccessControl/CardOperations/cardIssueStatus?format=json
Method GET
Description Get the smart card issuing status.
Query format: determine the format of request or response message.
Request None.
Response Succeeded: JSON_CardIssueStatus
Failed: JSON_ResponseStatus

A.43 /ISAPI/AccessControl/CardOperations/cardParam?format=json
Set card parameters (only available for CPU card).

112
Intelligent Security API (Person-Based Access Control) Developer Guide

Request URI Definition


Table A-50 PUT /ISAPI/AccessControl/CardOperations/cardParam?format=json
Method PUT
Description Set card parameters (only available for CPU card).
Query format: determine the format of request or response message.
Request JSON_CardParam
Response JSON_ResponseStatus

A.44 /ISAPI/AccessControl/CardOperations/clearData?format=json
Delete data from the card.

Request URI Definition


Table A-51 PUT /ISAPI/AccessControl/CardOperations/clearData?format=json
Method PUT
Description Delete data from the card.
Query format: determine the format of request or response message.
Request JSON_ClearData
Response Succeeded: JSON_ClearDataRes
Failed: JSON_ResponseStatus

A.45 /ISAPI/AccessControl/CardOperations/controlBlock?format=json
Change the control block of a specific section (only available for M1 card).

Request URI Definition


Table A-52 PUT /ISAPI/AccessControl/CardOperations/controlBlock?format=json
Method PUT
Description Change the control block of a specific section (only available for M1
card).
Query format: determine the format of request or response message.
security: the version No. of encryption scheme. When security does
not exist, it indicates that the data is not encrypted; when security is

113
Intelligent Security API (Person-Based Access Control) Developer Guide

1, it indicates that the nodes of sensitive information in the message


are encrypted in AES128 CBC mode; when security is 2, it indicates
that the nodes of sensitive information in the message are encrypted
in AES256 CBC mode.In the message of this request URI, the values
of the fields KeyA and KeyB should be encrypted.
iv: the initialization vector, and it is required when security is 1 or 2.
Request JSON_ControlBlock
Response JSON_ResponseStatus

A.46 /ISAPI/AccessControl/CardOperations/customData/searchTask?
format=json
Search for custom card information.

Request URI Definition


Table A-53 POST /ISAPI/AccessControl/CardOperations/customData/searchTask?format=json
Method POST
Description Search for custom card information.
Query format: determine the format of request or response message.
Request JSON_CustomDataSearchCond
Response Succeeded: JSON_CustomDataResult
Failed: JSON_ResponseStatus

A.47 /ISAPI/AccessControl/CardOperations/customData?format=json
Set custom card information.

Request URI Definition


Table A-54 PUT /ISAPI/AccessControl/CardOperations/customData?format=json
Method PUT
Description Set custom card information.
Query format: determine the format of request or response message.
Request JSON_CustomData
Response Succeeded: JSON_CustomDataRes

114
Intelligent Security API (Person-Based Access Control) Developer Guide

Failed: JSON_ResponseStatus

A.48 /ISAPI/AccessControl/CardOperations/dataBlock/<address>?
format=json
Read or write data block (only available for M1 card).

Request URI Definition


Table A-55 GET /ISAPI/AccessControl/CardOperations/dataBlock/<address>?format=json
Method GET
Description Read data block (only available for M1 card).
Query format: determine the format of request or response message.
Request None.
Response Succeeded: JSON_DataBlock
Failed: JSON_ResponseStatus
Table A-56 PUT /ISAPI/AccessControl/CardOperations/dataBlock/<address>?format=json
Method PUT
Description Write data block (only available for M1 card).
Query format: determine the format of request or response message.
Request JSON_DataBlock
Response JSON_ResponseStatus

Remarks
The <address> in the request URI refers to the block address, which is same as that in
JSON_DataBlock .

A.49 /ISAPI/AccessControl/CardOperations/dataBlock/control?
format=json
Do operations (i.e., plus, minus, copy, and paste) on the data block.

115
Intelligent Security API (Person-Based Access Control) Developer Guide

Request URI Definition


Table A-57 PUT /ISAPI/AccessControl/CardOperations/dataBlock/control?format=json
Method PUT
Description Do operations (i.e., plus, minus, copy, and paste) on the data block.
Query format: determine the format of request or response message.
Request JSON_DataBlockCtrl
Response JSON_ResponseStatus

A.50 /ISAPI/AccessControl/CardOperations/dataTrans?format=json
Pass through the data package (only available for CPU card).

Request URI Definition


Table A-58 PUT /ISAPI/AccessControl/CardOperations/dataTrans?format=json
Method PUT
Description Pass through the data package (only available for CPU card).
Query format: determine the format of request or response message.
Request JSON_DataTrans
Response JSON_ResponseStatus

A.51 /ISAPI/AccessControl/CardOperations/encryption?format=json
Set card encryption parameters (only available for CPU card).

Request URI Definition


Table A-59 PUT /ISAPI/AccessControl/CardOperations/encryption?format=json
Method PUT
Description Set card encryption parameters (only available for CPU card).
Query format: determine the format of request or response message.
Request JSON_CardEncryption
Response JSON_ResponseStatus and tryTimes field (card encryption attampts)

116
Intelligent Security API (Person-Based Access Control) Developer Guide

A.52 /ISAPI/AccessControl/CardOperations/localIssueCfg?format=json
Get or set rule parameters for issuing smart cards.

Request URI Definition


Table A-60 GET /ISAPI/AccessControl/CardOperations/localIssueCfg?format=json
Method GET
Description Get rule parameters for issuing smart cards.
Query format: determine the format of request or response message.
Request None.
Response Succeeded: JSON_localIssueCfg
Failed: JSON_ResponseStatus
Table A-61 PUT /ISAPI/AccessControl/CardOperations/localIssueCfg?format=json
Method PUT
Description Set rule parameters for issuing smart cards.
Query None.
Request JSON_localIssueCfg
Response JSON_ResponseStatus

A.53 /ISAPI/AccessControl/CardOperations/localIssueRequest?
format=json
Send a request for card issuing.

Request URI Definition


Table A-62 PUT /ISAPI/AccessControl/CardOperations/localIssueRequest?format=json
Method PUT
Description Send a request for card issuing.
Query format: determine the format of request or response message.
Request JSON_LocalIssueRequest
Response JSON_ResponseStatus

117
Intelligent Security API (Person-Based Access Control) Developer Guide

Remarks
• The API is not blocked and concurrently processing is not supported.
• The response message only indicates that sending the request for card issuing succeeded. The
card issuing status and results are returned in the response message after the API /ISAPI/
AccessControl/CardOperations/localIssueRes?format=json is called.

A.54 /ISAPI/AccessControl/CardOperations/localIssueRes?format=json
Get the current card issuing status and real-time card issuing results.

Request URI Definition


Table A-63 GET /ISAPI/AccessControl/CardOperations/localIssueRes?format=json
Method GET
Description Get the current card issuing status and real-​time card issuing results.
Query format: determine the format of request or response message.
Request None.
Response Succeeded: JSON_LocalIssueRes
Failed: JSON_ResponseStatus

A.55 /ISAPI/AccessControl/CardOperations/protocol?format=json
Set operation protocol type for the card (only available when applying card).

Request URI Definition


Table A-64 PUT /ISAPI/AccessControl/CardOperations/protocol?format=json
Method PUT
Description Set operation protocol type for the card (only available when
applying card).
Query format: determine the format of request or response message.
Request JSON_CardProto
Response JSON_ResponseStatus

118
Intelligent Security API (Person-Based Access Control) Developer Guide

A.56 /ISAPI/AccessControl/CardOperations/reset?format=json
Reset card parameters (only available for CPU card).

Request URI Definition


Table A-65 GET /ISAPI/AccessControl/CardOperations/reset?format=json
Method GET
Description Reset card parameters (only available for CPU card).
Query format: determine the format of request or response message.
Request None.
Response Succeeded: JSON_CardResetResponse
Failed: JSON_ResponseStatus

A.57 /ISAPI/AccessControl/CardOperations/sectionEncryption?
format=json
Set the encryption parameters of a specific section (only available for M1 card).

Request URI Definition


Table A-66 PUT /ISAPI/AccessControl/CardOperations/sectionEncryption?format=json
Method PUT
Description Set the encryption parameters of a specific section (only available for
M1 card).
Query format: determine the format of request or response message.
security: the version No. of encryption scheme. When security does
not exist, it indicates that the data is not encrypted; when security is
1, it indicates that the nodes of sensitive information in the message
are encrypted in AES128 CBC mode; when security is 2, it indicates
that the nodes of sensitive information in the message are encrypted
in AES256 CBC mode.In the message of this request URI, the values
of the fields password, KeyA, and KeyB should be encrypted.
iv: the initialization vector, and it is required when security is 1 or 2.
Request JSON_SectionEncryption
Response JSON_ResponseStatus

119
Intelligent Security API (Person-Based Access Control) Developer Guide

A.58 /ISAPI/AccessControl/CardOperations/verification?format=json
Verify the password of the encrypted section (only available for M1 card).

Request URI Definition


Table A-67 PUT /ISAPI/AccessControl/CardOperations/verification?format=json
Method PUT
Description Verify the password of the encrypted section (only available for M1
card).
Query format: determine the format of request or response message.
security: the version No. of encryption scheme. When security does
not exist, it indicates that the data is not encrypted; when security is
1, it indicates that the nodes of sensitive information in the message
are encrypted in AES128 CBC mode; when security is 2, it indicates
that the nodes of sensitive information in the message are encrypted
in AES256 CBC mode.In the message of this request URI, the value of
the field password should be encrypted.
iv: the initialization vector, and it is required when security is 1 or 2.
Request JSON_Verification
Response JSON_ResponseStatus

A.59 /ISAPI/AccessControl/CardReaderAntiSneakCfg/<ID>?format=json
Operations about the anti-passing back configuration of a specified card reader.

Request URI Definition


Table A-68 GET /ISAPI/AccessControl/CardReaderAntiSneakCfg/<ID>?format=json
Method GET
Description Get the anti-​passing back configuration parameters of a specified
card reader.
Query format: determine the format of request or response message.
Request None.
Response Succeeded: JSON_CardReaderAntiSneakCfg
Failed: JSON_ResponseStatus

120
Intelligent Security API (Person-Based Access Control) Developer Guide

Table A-69 PUT /ISAPI/AccessControl/CardReaderAntiSneakCfg/<ID>?format=json


Method PUT
Description Set the anti-​passing back parameters of a specified card reader.
Query format: determine the format of request or response message.
Request JSON_CardReaderAntiSneakCfg
Response JSON_ResponseStatus

Remarks
The <ID> in the request URI refers to the card reader No.

A.60 /ISAPI/AccessControl/CardReaderAntiSneakCfg/capabilities?
format=json
Get the anti-passing back configuration capability of card readers.

Request URI Definition


Table A-70 GET /ISAPI/AccessControl/CardReaderAntiSneakCfg/capabilities?format=json
Method GET
Description Get the anti-​passing back configuration capability of card readers.
Query format: determine the format of request or response message.
Request None.
Response Succeeded: JSON_Cap_CardReaderAntiSneakCfg
Failed: JSON_ResponseStatus

A.61 /ISAPI/AccessControl/CardReaderCfg/<ID>?format=json
Operations about the card reader configuration.

Request URI Definition


Table A-71 GET /ISAPI/AccessControl/CardReaderCfg/<ID>?format=json
Method GET
Description Get the card reader configuration parameters.
Query format: determine the format of request or response message.

121
Intelligent Security API (Person-Based Access Control) Developer Guide

Request None.
Response Succeeded: JSON_CardReaderCfg
Failed: JSON_ResponseStatus
Table A-72 PUT /ISAPI/AccessControl/CardReaderCfg/<ID>?format=json
Method PUT
Description Set the card reader parameters.
Query format: determine the format of request or response message.
Request JSON_CardReaderCfg
Response JSON_ResponseStatus

Remarks
The <ID> in the request URI refers to the card reader No. which starts from 1.

A.62 /ISAPI/AccessControl/CardReaderCfg/capabilities?format=json
Get the configuration capability of the card reader.

Request URI Definition


Table A-73 GET /ISAPI/AccessControl/CardReaderCfg/capabilities?format=json
Method GET
Description Get the configuration capability of the card reader.
Query format: determine the format of request or response message.
Request None.
Response Succeeded: JSON_Cap_CardReaderCfg
Failed: JSON_ResponseStatus

A.63 /ISAPI/AccessControl/CardReaderPlan/<CardReaderNo>?
format=json
Operations about the control schedule configuration of the card reader authentication mode.

122
Intelligent Security API (Person-Based Access Control) Developer Guide

Request URI Definition


Table A-74 GET /ISAPI/AccessControl/CardReaderPlan/<CardReaderNo>?format=json
Method GET
Description Get the control schedule configuration parameters of the card reader
authentication mode.
Query format: determine the format of request or response message.
Request None.
Response Succeeded: JSON_CardReaderPlan
Failed: JSON_ResponseStatus
Table A-75 PUT /ISAPI/AccessControl/CardReaderPlan/<CardReaderNo>?format=json
Method PUT
Description Set the control schedule parameters of the card reader
authentication mode.
Query format: determine the format of request or response message.
Request JSON_CardReaderPlan
Response JSON_ResponseStatus

Remarks
The <CardReaderNo> in the request URI refers to the card reader No. which starts from 1, and you
can get the maximum number of the card readers supported by the device from the control
schedule configuration capability of the card reader authentication mode
( JSON_Cap_CardReaderPlan ).

A.64 /ISAPI/AccessControl/CardReaderPlan/capabilities?format=json
Get the control schedule configuration capability of the card reader authentication mode.

Request URI Definition


Table A-76 GET /ISAPI/AccessControl/CardReaderPlan/capabilities?format=json
Method GET
Description Get the control schedule configuration capability of the card reader
authentication mode.
Query format: determine the format of request or response message.

123
Intelligent Security API (Person-Based Access Control) Developer Guide

Request None.
Response Succeeded: JSON_Cap_CardReaderPlan
Failed: JSON_ResponseStatus

A.65 /ISAPI/AccessControl/CardVerificationRule/capabilities?
format=json
Get the configuration capability of card No. authentication mode.

Request URI Definition


Table A-77 GET /ISAPI/AccessControl/CardVerificationRule/capabilities?format=json
Method GET
Description Get the configuration capability of card No. authentication mode.
Query format: determine the format of request or response message.
Request None.
Response Succeeded: JSON_CardVerificationRuleCap
Failed: JSON_ResponseStatus

A.66 /ISAPI/AccessControl/CardVerificationRule/progress?format=json
Get the switching progress and configuration result of card No. authentication mode.

Request URI Definition


Table A-78 GET /ISAPI/AccessControl/CardVerificationRule/progress?format=json
Method GET
Description Get the switching progress and configuration result of card No.
authentication mode.
Query format: determine the format of request or response message.
Request None.
Response Succeeded: JSON_CardVerificationRuleRes
Failed: JSON_ResponseStatus

124
Intelligent Security API (Person-Based Access Control) Developer Guide

Remarks
• This URI is used to search for the result of switching card No. authentication (comparison) mode.
• After the card No. authentication (comparison) mode is switched, the device will check whether
the card No. is duplicate.

A.67 /ISAPI/AccessControl/CardVerificationRule?format=json
Get or set the parameters of card No. authentication mode.

Request URI Definition


Table A-79 GET /ISAPI/AccessControl/CardVerificationRule?format=json
Method GET
Description Get the parameters of card No. authentication mode.
Query format: determine the format of request or response message.
Request None.
Response Succeeded: JSON_CardVerificationRule
Failed: JSON_ResponseStatus
Table A-80 PUT /ISAPI/AccessControl/CardVerificationRule?format=json
Method PUT
Description Set the parameters of card No. authentication mode.
Query format: determine the format of request or response message.
Request JSON_CardVerificationRule
Response JSON_ResponseStatus

A.68 /ISAPI/AccessControl/ClearAntiSneak?format=json
Clear anti-passing back records.

Request URI Definition


Table A-81 PUT /ISAPI/AccessControl/ClearAntiSneak?format=json
Method PUT
Description Clear anti-​passing back records.
Query format: determine the format of request or response message.

125
Intelligent Security API (Person-Based Access Control) Developer Guide

Request JSON_ClearAntiSneak
Response JSON_ResponseStatus

A.69 /ISAPI/AccessControl/ClearAntiSneak/capabilities?format=json
Get the capability of clearing anti-passing back records.

Request URI Definition


Table A-82 GET /ISAPI/AccessControl/ClearAntiSneak/capabilities?format=json
Method GET
Description Get the capability of clearing anti-​passing back records.
Query format: determine the format of request or response message.
Request None.
Response Succeeded: JSON_Cap_ClearAntiSneak
Failed: JSON_ResponseStatus

A.70 /ISAPI/AccessControl/ClearAntiSneakCfg/capabilities?format=json
Get the capability of clearing anti-passing back parameters.

Request URI Definition


Table A-83 GET /ISAPI/AccessControl/ClearAntiSneakCfg/capabilities?format=json
Method GET
Description Get the capability of clearing anti-​passing back parameters.
Query format: determine the format of request or response message.
Request None.
Response Succeeded: JSON_Cap_ClearAntiSneakCfg
Failed: JSON_ResponseStatus

A.71 /ISAPI/AccessControl/ClearAntiSneakCfg?format=json
Clear anti-passing back parameters.

126
Intelligent Security API (Person-Based Access Control) Developer Guide

Request URI Definition


Table A-84 PUT /ISAPI/AccessControl/ClearAntiSneakCfg?format=json
Method PUT
Description Clear anti-​passing back parameters.
Query format: determine the format of request or response message.
Request JSON_ClearAntiSneakCfg
Response JSON_ResponseStatus

A.72 /ISAPI/AccessControl/ClearAttendancePlan?format=json
Clear the attendance schedule.

Request URI Definition


Table A-85 PUT /ISAPI/AccessControl/ClearAttendancePlan?format=json
Method PUT
Description Clear the attendance schedule.
Query format: determine the format of request or response message.
Request JSON_ClearAttendancePlan
Response JSON_ResponseStatus

A.73 /ISAPI/AccessControl/ClearCardRecord
Clear card swiping records in the cross-controller anti-passing back server.

Request URI Definition


Table A-86 PUT /ISAPI/AccessControl/ClearCardRecord
Method PUT
Description Clear card swiping records in the cross-controller anti-​passing back
server.
Query None.
Request XML_ClearCardRecord
Response XML_ResponseStatus

127
Intelligent Security API (Person-Based Access Control) Developer Guide

Remarks
This request URI can only be used by the cross-controller anti-passing back server, and it is not
supported by the cross-controller anti-passing back devices based on card mode.

A.74 /ISAPI/AccessControl/ClearCardRecord/capabilities
Get the capability of clearing card swiping records in the cross-controller anti-passing back server.

Request URI Definition


Table A-87 GET /ISAPI/AccessControl/ClearCardRecord/capabilities
Method GET
Description Get the capability of clearing card swiping records in the cross-
controller anti-​passing back server.
Query None.
Request None.
Response Succeeded: XML_Cap_ClearCardRecord
Failed: XML_ResponseStatus

A.75 /ISAPI/AccessControl/ClearEventCardLinkageCfg/capabilities?
format=json
Get the capability of clearing event and card linkage configuration.

Request URI Definition


Table A-88 GET /ISAPI/AccessControl/ClearEventCardLinkageCfg/capabilities?format=json
Method GET
Description Get the capability of clearing event and card linkage configuration.
Query format: determine the format of request or response message.
Request None.
Response Succeeded: JSON_Cap_ClearEventCardLinkageCfg
Failed: JSON_ResponseStatus

128
Intelligent Security API (Person-Based Access Control) Developer Guide

A.76 /ISAPI/AccessControl/ClearEventCardLinkageCfg?format=json
Clear event and card linkage configuration.

Request URI Definition


Table A-89 PUT /ISAPI/AccessControl/ClearEventCardLinkageCfg?format=json
Method PUT
Description Clear event card linkage configuration parameters.
Query format: determine the format of request or response message.
Request JSON_ClearEventCardLinkageCfg
Response JSON_ResponseStatus

A.77 /ISAPI/AccessControl/ClearGroupCfg/capabilities?format=json
Get the capability of clearing group configuration.

Request URI Definition


Table A-90 GET /ISAPI/AccessControl/ClearGroupCfg/capabilities?format=json
Method GET
Description Get the capability of clearing group configuration.
Query format: determine the format of request or response message.
Request None.
Response Succeeded: JSON_Cap_ClearGroupCfg
Failed: JSON_ResponseStatus

A.78 /ISAPI/AccessControl/ClearGroupCfg?format=json
Clear the group configuration.

Request URI Definition


Table A-91 PUT /ISAPI/AccessControl/ClearGroupCfg?format=json
Method PUT
Description Clear the group configuration parameters.

129
Intelligent Security API (Person-Based Access Control) Developer Guide

Query format: determine the format of request or response message.


Request JSON_ClearGroupCfg
Response JSON_ResponseStatus

A.79 /ISAPI/AccessControl/ClearPictureCfg/capabilities?format=json
Get the capability of clearing all pictures in the device.

Request URI Definition


Table A-92 GET /ISAPI/AccessControl/ClearPictureCfg/capabilities?format=json
Method GET
Description Get the capability of clearing all pictures in the device.
Query format: determine the format of request or response message.
Request None.
Response Succeeded: JSON_ClearPictureCfgCap
Failed: JSON_ResponseStatus

A.80 /ISAPI/AccessControl/ClearPictureCfg?format=json
Clear all pictures in the device.

Request URI Definition


Table A-93 PUT /ISAPI/AccessControl/ClearPictureCfg?format=json
Method PUT
Description Clear all pictures in the device.
Query format: determine the format of request or response message.
Request JSON_ClearPictureCfg
Response JSON_ResponseStatus

A.81 /ISAPI/AccessControl/ClearPlansCfg/capabilities?format=json
Get the capability of clearing access control schedule configuration.

130
Intelligent Security API (Person-Based Access Control) Developer Guide

Request URI Definition


Table A-94 GET /ISAPI/AccessControl/ClearPlansCfg/capabilities?format=json
Method GET
Description Get the capability of clearing access control schedule
configuration.
Query format: determine the format of request or response message.
terminalNo: dependent, int, terminal No., starts from 1. It is
required for information release system integration. The No. is
generated after information release terminal is registered to the
central management server, and you can call "/ISAPI/Publish/
TerminalMgr/terminalSearch" by POST method to get the
generated terminal No.
Request None.
Response Succeeded: JSON_Cap_ClearPlansCfg
Failed: JSON_ResponseStatus

Remarks
This URI is not supported by integration of information release system.

A.82 /ISAPI/AccessControl/ClearPlansCfg?format=json
Clear the access control schedule configuration.

Request URI Definition


Table A-95 PUT /ISAPI/AccessControl/ClearPlansCfg?format=json
Method PUT
Description Clear the access control schedule configuration parameters.
Query format: determine the format of request or response message.
Request JSON_ClearPlansCfg
Response JSON_ResponseStatus

A.83 /ISAPI/AccessControl/ClearSubmarineBack
Clear cross-controller anti-passing back parameters.

131
Intelligent Security API (Person-Based Access Control) Developer Guide

Request URI Definition


Table A-96 PUT /ISAPI/AccessControl/ClearSubmarineBack
Method PUT
Description Clear cross-controller anti-​passing back parameters.
Query None.
Request XML_ClearSubmarineBack
Response XML_ResponseStatus

A.84 /ISAPI/AccessControl/ClearSubmarineBack/capabilities
Get the capability of clearing cross-controller anti-passing back parameters.

Request URI Definition


Table A-97 GET /ISAPI/AccessControl/ClearSubmarineBack/capabilities
Method GET
Description Get the capability of clearing cross-controller anti-​passing back
parameters.
Query None.
Request None.
Response Succeeded: XML_Cap_ClearSubmarineBack
Failed: XML_ResponseStatus

A.85 /ISAPI/AccessControl/Configuration/attendanceMode/capabilities?
format=json
Get the configuration capability of the attendance mode.

Request URI Definition


Table A-98 GET /ISAPI/AccessControl/Configuration/attendanceMode/capabilities?format=json
Method GET
Description Get the configuration capability of the attendance mode.
Query format: determine the format of request or response message.

132
Intelligent Security API (Person-Based Access Control) Developer Guide

Request None.
Response Succeeded: JSON_Cap_AttendanceMode
Failed: JSON_ResponseStatus

A.86 /ISAPI/AccessControl/Configuration/attendanceMode?format=json
Get or set the attendance mode parameters.

Request URI Definition


Table A-99 GET /ISAPI/AccessControl/Configuration/attendanceMode?format=json
Method GET
Description Get the attendance mode parameters.
Query format: determine the format of request or response message.
Request None.
Response Succeeded: JSON_AttendanceMode
Failed: JSON_ResponseStatus
Table A-100 PUT /ISAPI/AccessControl/Configuration/attendanceMode?format=json
Method PUT
Description Set the attendance mode parameters.
Query format: determine the format of request or response message.
Request JSON_AttendanceMode
Response JSON_ResponseStatus

A.87 /ISAPI/AccessControl/Configuration/IRCfg/capabilities?
format=json
Get active infrared intrusion capability.

Request URI Definition


Table A-101 GET /ISAPI/AccessControl/Configuration/IRCfg/capabilities?format=json
Method GET
Description Get active infrared intrusion capability.
Query format: determine the format of request or response message.

133
Intelligent Security API (Person-Based Access Control) Developer Guide

Request None.
Response Succeeded: JSON_IRCfgCap
Failed: JSON_ResponseStatus

A.88 /ISAPI/AccessControl/Configuration/IRCfg?format=json
Get or set active infrared intrusion parameters.

Request URI Definition


Table A-102 GET /ISAPI/AccessControl/Configuration/IRCfg?format=json
Method GET
Description Get active infrared intrusion parameters.
Query format: determine the format of request or response message.
Request None.
Response Succeeded: JSON_IRCfg
Failed: JSON_ResponseStatus
Table A-103 PUT /ISAPI/AccessControl/Configuration/IRCfg?format=json
Method PUT
Description Set active infrared intrusion parameters.
Query format: determine the format of request or response message.
Request JSON_IRCfg
Response JSON_ResponseStatus

A.89 /ISAPI/AccessControl/Configuration/lockType/capabilities?
format=json
Get the configuration capability of the door lock status when the device is powered off.

Request URI Deification


Table A-104 GET /ISAPI/AccessControl/Configuration/lockType/capabilities?format=json
Method GET
Description Get the configuration capability of the door lock status when the
device is powered off.

134
Intelligent Security API (Person-Based Access Control) Developer Guide

Query format: determine the format of request or response message.


Request None.
Response Succeeded: JSON_LockTypeCap
Failed: JSON_ResponseStatus

A.90 /ISAPI/AccessControl/Configuration/lockType?format=json
Get or set the door lock status when the device is powered off.

Request URI Definition


Table A-105 GET /ISAPI/AccessControl/Configuration/lockType?format=json
Method GET
Description Get the door lock status when the device is powered off.
Query format: determine the format of request or response message.
Request None.
Response Succeeded: JSON_LockType
Failed: JSON_ResponseStatus
Table A-106 PUT /ISAPI/AccessControl/Configuration/lockType?format=json
Method PUT
Description Set the door lock status when the device is powered off.
Query format: determine the format of request or response message.
Request JSON_LockType
Response JSON_ResponseStatus

A.91 /ISAPI/AccessControl/Configuration/NFCCfg/capabilities?
format=json
Get the configuration capability of enabling NFC (Near-Field Communication) function.

135
Intelligent Security API (Person-Based Access Control) Developer Guide

Request URI Definition


Table A-107 GET /ISAPI/AccessControl/Configuration/NFCCfg/capabilities?format=json
Method GET
Description Get the configuration capability of enabling NFC (Near-Field
Communication) function.
Query format: determine the format of request or response message.
Request None.
Response Succeeded: JSON_NFCCfgCap
Failed: JSON_ResponseStatus

A.92 /ISAPI/AccessControl/Configuration/NFCCfg?format=json
Operations about the configuration of enabling NFC (Near-Field Communication) function.

Request URI Definition


Table A-108 GET /ISAPI/AccessControl/Configuration/NFCCfg?format=json
Method GET
Description Get the parameters of enabling NFC (Near-Field Communication)
function.
Query format: determine the format of request or response message.
Request None.
Response Succeeded: JSON_NFCCfg
Failed: JSON_ResponseStatus
Table A-109 PUT /ISAPI/AccessControl/Configuration/NFCCfg?format=json
Method PUT
Description Set the parameters of enabling NFC (Near-Field Communication)
function.
Query format: determine the format of request or response message.
Request JSON_NFCCfg
Response JSON_ResponseStatus

136
Intelligent Security API (Person-Based Access Control) Developer Guide

A.93 /ISAPI/AccessControl/Configuration/RFCardCfg/capabilities?
format=json
Get the configuration capability of enabling RF (Radio Frequency) card recognition.

Request URI Definition


Table A-110 GET /ISAPI/AccessControl/Configuration/RFCardCfg/capabilities?format=json
Method GET
Description Get the configuration capability of enabling RF (Radio Frequency)
card recognition.
Query format: determine the format of request or response message.
Request None.
Response Succeeded: JSON_RFCardCfgCap
Failed: JSON_ResponseStatus

A.94 /ISAPI/AccessControl/Configuration/RFCardCfg?format=json
Operations about the configuration of enabling RF (Radio Frequency) card recognition.

Request URI Definition


Table A-111 GET /ISAPI/AccessControl/Configuration/RFCardCfg?format=json
Method GET
Description Get the parameters of enabling RF (Radio Frequency) card
recognition.
Query format: determine the format of request or response message.
Request None.
Response Succeeded: JSON_RFCardCfg
Failed: JSON_ResponseStatus
Table A-112 PUT /ISAPI/AccessControl/Configuration/RFCardCfg?format=json
Method PUT
Description Set the parameters of enabling RF (Radio Frequency) card
recognition.
Query format: determine the format of request or response message.

137
Intelligent Security API (Person-Based Access Control) Developer Guide

Request JSON_RFCardCfg
Response JSON_ResponseStatus

A.95 /ISAPI/AccessControl/Configuration/safetyHelmetDetection/
capabilities?format=json
Get the configuration capability of hard hat detection.

Request URI Definition


Table A-113 GET /ISAPI/AccessControl/Configuration/safetyHelmetDetection/capabilities?
format=json
Method GET
Description Get the configuration capability of hard hat detection.
Query format: determine the format of request or response message.
Request None.
Response Succeeded: JSON_SafetyHelmetDetectionCap
Failed: JSON_ResponseStatus

A.96 /ISAPI/AccessControl/Configuration/safetyHelmetDetection?
format=json
Get or set the parameters of hard hat detection.

Request URI Definition


Table A-114 GET /ISAPI/AccessControl/Configuration/safetyHelmetDetection?format=json
Method GET
Description Get the parameters of hard hat detection.
Query format: determine the format of request or response message.
Request None.
Response Succeeded: JSON_SafetyHelmetDetection
Failed: JSON_ResponseStatus

138
Intelligent Security API (Person-Based Access Control) Developer Guide

Table A-115 PUT /ISAPI/AccessControl/Configuration/safetyHelmetDetection?format=json


Method PUT
Description Set the parameters of hard hat detection.
Query format: determine the format of request or response message.
Request JSON_SafetyHelmetDetection
Response JSON_ResponseStatus

A.97 /ISAPI/AccessControl/DeployInfo
Get the arming information (e.g., arming types).

Request URI Definition


Table A-116 GET /ISAPI/AccessControl/DeployInfo
Method GET
Description Get the arming information (e.g., arming types).
Query None.
Request None.
Response Succeeded: XML_DeployInfo
Failed: XML_ResponseStatus

Remarks
The client arming supports arming of only one channel and can upload offline events. The real-
time arming is used for other devices to arm the access control devices, which supports arming of
up to four channels and cannot upload offline events.

A.98 /ISAPI/AccessControl/DeployInfo/capabilities
Get the capability of getting arming information.

Request URI Definition


Table A-117 GET /ISAPI/AccessControl/DeployInfo/capabilities
Method GET
Description Get the capability of getting arming information.
Query None.

139
Intelligent Security API (Person-Based Access Control) Developer Guide

Request None.
Response Succeeded: XML_Cap_DeployInfo
Failed: XML_ResponseStatus

A.99 /ISAPI/AccessControl/Door/param/<ID>
Operations about the door (floor) configuration.

Request URI Definition


Table A-118 GET /ISAPI/AccessControl/Door/param/<ID>
Method GET
Description Get the door (floor) configuration parameters.
Query None.
Request None.
Response Succeeded: XML_DoorParam
Failed: XML_ResponseStatus
Table A-119 PUT /ISAPI/AccessControl/Door/param/<ID>
Method PUT
Description Set the door (floor) parameters.
Query None.
Request XML_DoorParam
Response XML_ResponseStatus

Remarks
The <ID> in the request URI refers to the door No. (floor No.) which starts from 1.

A.100 /ISAPI/AccessControl/Door/param/<ID>/capabilities
Get the door (floor) configuration capability.

140
Intelligent Security API (Person-Based Access Control) Developer Guide

Request URI Definition


Table A-120 GET /ISAPI/AccessControl/Door/param/<ID>/capabilities
Method GET
Description Get the door (floor) configuration capability.
Query None.
Request None.
Response Succeeded: XML_Cap_DoorParam
Failed: XML_ResponseStatus

Remarks
The <ID> in the request URI refers to the door No. (floor No.) which starts from 1.

A.101 /ISAPI/AccessControl/DoorSecurityModule/moduleStatus
Get the status of the secure door control unit.

Request URI Definition


Table A-121 GET /ISAPI/AccessControl/DoorSecurityModule/moduleStatus
Method GET
Description Get the status of the secure door control unit.
Query None.
Request None.
Response Succeeded: XML_ModuleStatus
Failed: XML_ResponseStatus

A.102 /ISAPI/AccessControl/DoorSecurityModule/moduleStatus/
capabilities
Get the capability of getting the status of the secure door control unit.

141
Intelligent Security API (Person-Based Access Control) Developer Guide

Request URI Definition


Table A-122 GET /ISAPI/AccessControl/DoorSecurityModule/moduleStatus/capabilities
Method GET
Description Get the capability of getting the status of the secure door control
unit.
Query None.
Request None.
Response Succeeded: XML_Cap_ModuleStatus
Failed: XML_ResponseStatus

A.103 /ISAPI/AccessControl/DoorStatusHolidayGroupCfg/<GroupNo>?
format=json
Operations about the holiday group configuration of the door control schedule.

Request URI Definition


Table A-123 GET /ISAPI/AccessControl/DoorStatusHolidayGroupCfg/<GroupNo>?format=json
Method GET
Description Get the holiday group configuration parameters of the door control
schedule.
Query format: determine the format of request or response message.
Request None.
Response Succeeded: JSON_DoorStatusHolidayGroupCfg
Failed: JSON_ResponseStatus
Table A-124 PUT /ISAPI/AccessControl/DoorStatusHolidayGroupCfg/<GroupNo>?format=json
Method PUT
Description Set the holiday group parameters of the door control schedule.
Query format: determine the format of request or response message.
Request JSON_DoorStatusHolidayGroupCfg
Response JSON_ResponseStatus

142
Intelligent Security API (Person-Based Access Control) Developer Guide

Remarks
The <GroupNo> in the request URI refers to the holiday group No. which starts from 1, and you can
get the maximum number of the holiday groups supported by the device from the holiday group
configuration capability of the door control schedule ( JSON_Cap_DoorStatusHolidayGroupCfg ).

A.104 /ISAPI/AccessControl/DoorStatusHolidayGroupCfg/capabilities?
format=json
Get the holiday group configuration capability of the door control schedule.

Request URI Definition


Table A-125 GET /ISAPI/AccessControl/DoorStatusHolidayGroupCfg/capabilities?format=json
Method GET
Description Get the holiday group configuration capability of the door control
schedule.
Query format: determine the format of request or response message.
Request None.
Response Succeeded: JSON_Cap_DoorStatusHolidayGroupCfg
Failed: JSON_ResponseStatus

A.105 /ISAPI/AccessControl/DoorStatusHolidayPlanCfg/<PlanNo>?
format=json
Operations about the configuration of the door control holiday schedule.

Request URI Definition


Table A-126 GET /ISAPI/AccessControl/DoorStatusHolidayPlanCfg/<PlanNo>?format=json
Method GET
Description Get the configuration parameters of the door control holiday
schedule.
Query format: determine the format of request or response message.
Request None.
Response Succeeded: JSON_DoorStatusHolidayPlanCfg
Failed: JSON_ResponseStatus

143
Intelligent Security API (Person-Based Access Control) Developer Guide

Table A-127 PUT /ISAPI/AccessControl/DoorStatusHolidayPlanCfg/<PlanNo>?format=json


Method PUT
Description Set the parameters of the door control holiday schedule.
Query format: determine the format of request or response message.
Request JSON_DoorStatusHolidayPlanCfg
Response JSON_ResponseStatus

Remarks
The <PlanNo> in the request URI refers to the holiday schedule No. which starts from 1, and you
can get the maximum number of the holiday schedules supported by the device from the
configuration capability of the door control holiday schedule
( JSON_Cap_DoorStatusHolidayPlanCfg ).

A.106 /ISAPI/AccessControl/DoorStatusHolidayPlanCfg/capabilities?
format=json
Get the configuration capability of the door control holiday schedule.

Request URI Definition


Table A-128 GET /ISAPI/AccessControl/DoorStatusHolidayPlanCfg/capabilities?format=json
Method GET
Description Get the configuration capability of the door control holiday
schedule.
Query format: determine the format of request or response message.
Request None.
Response Succeeded: JSON_Cap_DoorStatusHolidayPlanCfg
Failed: JSON_ResponseStatus

A.107 /ISAPI/AccessControl/DoorStatusPlan/<DoorNo>?format=json
Operations about the configuration of the door control schedule.

144
Intelligent Security API (Person-Based Access Control) Developer Guide

Request URI Definition


Table A-129 GET /ISAPI/AccessControl/DoorStatusPlan/<DoorNo>?format=json
Method GET
Description Get the configuration parameters of the door control schedule.
Query format: determine the format of request or response message.
Request None.
Response Succeeded: JSON_DoorStatusPlan
Failed: JSON_ResponseStatus
Table A-130 PUT /ISAPI/AccessControl/DoorStatusPlan/<DoorNo>?format=json
Method PUT
Description Set the parameters of the door control schedule.
Query format: determine the format of request or response message.
Request JSON_DoorStatusPlan
Response JSON_ResponseStatus

Remarks
The <DoorNo> in the request URI refers to door No. which starts from 1, and you can get the
maximum number of the doors supported by the device from the configuration capability of the
door control schedule ( JSON_Cap_DoorStatusPlan ).

A.108 /ISAPI/AccessControl/DoorStatusPlan/capabilities?format=json
Get the configuration capability of the door control schedule.

Request URI Definition


Table A-131 GET /ISAPI/AccessControl/DoorStatusPlan/capabilities?format=json
Method GET
Description Get the configuration capability of the door control schedule.
Query format: determine the format of request or response message.
Request None.
Response Succeeded: JSON_Cap_DoorStatusPlan
Failed: JSON_ResponseStatus

145
Intelligent Security API (Person-Based Access Control) Developer Guide

A.109 /ISAPI/AccessControl/DoorStatusPlanTemplate/<TemplateNo>?
format=json
Operations about the configuration of the door control schedule template.

Request URI Definition


Table A-132 GET /ISAPI/AccessControl/DoorStatusPlanTemplate/<TemplateNo>?format=json
Method GET
Description Get the configuration parameters of the door control schedule
template.
Query format: determine the format of request or response message.
Request None.
Response Succeeded: JSON_DoorStatusPlanTemplate
Failed: JSON_ResponseStatus
Table A-133 PUT /ISAPI/AccessControl/DoorStatusPlanTemplate/<TemplateNo>?format=json
Method PUT
Description Set the parameters of the door control schedule template.
Query format: determine the format of request or response message.
Request JSON_DoorStatusPlanTemplate
Response JSON_ResponseStatus

Remarks
The <TemplateNo> in the request URI refers to door control schedule template No. which starts
from 1, and you can get the maximum number of the templates supported by the device from the
configuration capability of the door control schedule template
( JSON_Cap_DoorStatusPlanTemplate ).

A.110 /ISAPI/AccessControl/DoorStatusPlanTemplate/capabilities?
format=json
Get the configuration capability of the door control schedule template.

146
Intelligent Security API (Person-Based Access Control) Developer Guide

Request URI Definition


Table A-134 GET /ISAPI/AccessControl/DoorStatusPlanTemplate/capabilities?format=json
Method GET
Description Get the configuration capability of the door control schedule
template.
Query format: determine the format of request or response message.
Request None.
Response Succeeded: JSON_Cap_DoorStatusPlanTemplate
Failed: JSON_ResponseStatus

A.111 /ISAPI/AccessControl/DoorStatusWeekPlanCfg/<PlanNo>?
format=json
Operations about the configuration of the door control week schedule.

Request URI Definition


Table A-135 GET /ISAPI/AccessControl/DoorStatusWeekPlanCfg/<PlanNo>?format=json
Method GET
Description Get the configuration parameters of the door control week
schedule.
Query format: determine the format of request or response message.
Request None.
Response Succeeded: JSON_DoorStatusWeekPlanCfg
Failed: JSON_ResponseStatus
Table A-136 PUT /ISAPI/AccessControl/DoorStatusWeekPlanCfg/<PlanNo>?format=json
Method PUT
Description Set the parameters of the door control week schedule.
Query format: determine the format of request or response message.
Request JSON_DoorStatusWeekPlanCfg
Response JSON_ResponseStatus

147
Intelligent Security API (Person-Based Access Control) Developer Guide

Remarks
The <PlanNo> in the request URI refers to the door control week schedule No. which starts from 1,
and you can get the maximum number of week schedules supported by the device from the
configuration capability of the door control week schedule ( JSON_Cap_DoorStatusWeekPlanCfg ).

A.112 /ISAPI/AccessControl/DoorStatusWeekPlanCfg/capabilities?
format=json
Get the configuration capability of the door control week schedule.

Request URI Definition


Table A-137 GET /ISAPI/AccessControl/DoorStatusWeekPlanCfg/capabilities?format=json
Method GET
Description Get the configuration capability of the door control week
schedule.
Query format: determine the format of request or response message.
Request None.
Response Succeeded: JSON_Cap_DoorStatusWeekPlanCfg
Failed: JSON_ResponseStatus

A.113 /ISAPI/AccessControl/EventCardLinkageCfg/<ID>?format=json
Operations about event and card linkage configuration.

Request URI Definition


Table A-138 GET /ISAPI/AccessControl/EventCardLinkageCfg/<ID>?format=json
Method GET
Description Get the event and card linkage configuration parameters.
Query format: determine the format of request or response message.
Request None.
Response Succeeded: JSON_EventCardLinkageCfg
Failed: JSON_ResponseStatus

148
Intelligent Security API (Person-Based Access Control) Developer Guide

Table A-139 PUT /ISAPI/AccessControl/EventCardLinkageCfg/<ID>?format=json


Method PUT
Description Set the event card linkage parameters.
Query format: determine the format of request or response message.
Request JSON_EventCardLinkageCfg
Response JSON_ResponseStatus

Remarks
The <ID> in the request URI refers to the event No. which starts from 1, and you can get the
maximum number of the events supported by the device from the configuration capability of the
event and card linkage ( JSON_Cap_EventCardLinkageCfg ).

A.114 /ISAPI/AccessControl/EventCardLinkageCfg/capabilities?
format=json
Get the configuration capability of the event and card linkage.

Request URI Definition


Table A-140 GET /ISAPI/AccessControl/EventCardLinkageCfg/capabilities?format=json
Method GET
Description Get the configuration capability of the event and card linkage.
Query format: determine the format of request or response message.
Request None.
Response Succeeded: JSON_Cap_EventCardLinkageCfg
Failed: JSON_ResponseStatus

A.115 /ISAPI/AccessControl/EventCardNoList/capabilities?format=json
Get the capability of the list of event and card linkage ID.

Request URI Definition


Table A-141 GET /ISAPI/AccessControl/EventCardNoList/capabilities?format=json
Method GET
Description Get the capability of the list of event and card linkage ID.

149
Intelligent Security API (Person-Based Access Control) Developer Guide

Query format: determine the format of request or response message.


Request None.
Response Succeeded: JSON_Cap_EventCardNoList
Failed: JSON_ResponseStatus

A.116 /ISAPI/AccessControl/EventCardNoList?format=json
Get the list of event and card linkage ID.

Request URI Definition


Table A-142 GET /ISAPI/AccessControl/EventCardNoList?format=json
Method GET
Description Get the list of event and card linkage ID.
Query format: determine the format of request or response message.
Request None.
Response Succeeded: JSON_EventCardNoList
Failed: JSON_ResponseStatus

A.117 /ISAPI/AccessControl/EventOptimizationCfg/capabilities?
format=json
Get the configuration capability of event optimization.

Request URI Definition


Table A-143 GET /ISAPI/AccessControl/EventOptimizationCfg/capabilities?format=json
Method GET
Description Get the configuration capability of event optimization.
Query format: determine the format of request or response message.
Request None.
Response Succeeded: JSON_Cap_EventOptimizationCfg
Failed: JSON_ResponseStatus

150
Intelligent Security API (Person-Based Access Control) Developer Guide

A.118 /ISAPI/AccessControl/EventOptimizationCfg?format=json
Operations about the event optimization configuration.

Request URI Definition


Table A-144 GET /ISAPI/AccessControl/EventOptimizationCfg?format=json
Method GET
Description Get the event optimization configuration parameters.
Query format: determine the format of request or response message.
Request None.
Response Succeeded: JSON_EventOptimizationCfg
Failed: JSON_ResponseStatus
Table A-145 PUT /ISAPI/AccessControl/EventOptimizationCfg?format=json
Method PUT
Description Set the event optimization parameters.
Query format: determine the format of request or response message.
Request JSON_EventOptimizationCfg
Response JSON_ResponseStatus

A.119 /ISAPI/AccessControl/FaceCompareCond
Get or set the condition parameters of face picture comparison.

Request URI Definition


Table A-146 GET /ISAPI/AccessControl/FaceCompareCond
Method GET
Description Get the condition parameters of face picture comparison.
Query None.
Request None.
Response Succeeded: XML_FaceCompareCond
Failed: XML_ResponseStatus

151
Intelligent Security API (Person-Based Access Control) Developer Guide

Table A-147 PUT /ISAPI/AccessControl/FaceCompareCond


Method PUT
Description Set the condition parameters of face picture comparison.
Query None.
Request XML_FaceCompareCond
Response XML_ResponseStatus

A.120 /ISAPI/AccessControl/FaceCompareCond/capabilities
Get condition configuration capability of face picture comparison.

Request URI Definition


Table A-148 GET /ISAPI/AccessControl/FaceCompareCond/capabilities
Method GET
Description Get condition configuration capability of face picture comparison.
Query None.
Request None.
Response Succeeded: XML_Cap_FaceCompareCond
Failed: XML_ResponseStatus

A.121 /ISAPI/AccessControl/FaceRecognizeMode/capabilities?
format=json
Get the configuration capability of the facial recognition mode.

Request URI Definition


Table A-149 GET /ISAPI/AccessControl/FaceRecognizeMode/capabilities?format=json
Method GET
Description Get the configuration capability of the facial recognition mode.
Query format: determine the format of request or response message.
Request None.
Response Succeeded: JSON_Cap_FaceRecognizeMode
Failed: JSON_ResponseStatus

152
Intelligent Security API (Person-Based Access Control) Developer Guide

Remarks
Switching facial recognition mode will clear face permission information in the device.

A.122 /ISAPI/AccessControl/FaceRecognizeMode?format=json
Operations about the configuration of the facial recognition mode.

Request URI Definition


Table A-150 GET /ISAPI/AccessControl/FaceRecognizeMode?format=json
Method GET
Description Get the parameters of the facial recognition mode.
Query format: determine the format of request or response message.
Request None.
Response Succeeded: JSON_FaceRecognizeMode
Failed: JSON_ResponseStatus
Table A-151 PUT /ISAPI/AccessControl/FaceRecognizeMode?format=json
Method PUT
Description Set the parameters of the facial recognition mode.
Query format: determine the format of request or response message.
Request JSON_FaceRecognizeMode
Response JSON_ResponseStatus

Remarks
Switching facial recognition mode will clear face permission information in the device.

A.123 /ISAPI/AccessControl/FingerPrint/Count?
format=json&employeeNo=
Get the total number of fingerprints of a specific person.

153
Intelligent Security API (Person-Based Access Control) Developer Guide

Request URI Definition


Table A-152 GET /ISAPI/AccessControl/FingerPrint/Count?format=json&employeeNo=
Method GET
Description Get the total number of fingerprints of a specific person.
Query format: determine the format of request or response message.
employeeNo: int, employee No.
Request None.
Response Succeeded: JSON_FingerPrintCountList
Failed: JSON_ResponseStatus

A.124 /ISAPI/AccessControl/FingerPrint/Delete/capabilities?
format=json
Get the capability of deleting fingerprint data.

Request URI Definition


Table A-153 GET /ISAPI/AccessControl/FingerPrint/Delete/capabilities?format=json
Method GET
Description Get the capability of deleting fingerprint data.
Query format: determine the format of request or response message.
Request None.
Response Succeeded: JSON_Cap_FingerPrintDelete
Failed: JSON_ResponseStatus

A.125 /ISAPI/AccessControl/FingerPrint/Delete?format=json
Start deleting the fingerprint data.

Request URI Definition


Table A-154 PUT /ISAPI/AccessControl/FingerPrint/Delete?format=json
Method PUT
Description Start deleting the fingerprint data.

154
Intelligent Security API (Person-Based Access Control) Developer Guide

Query format: determine the format of request or response message.


Request JSON_FingerPrintDelete
Response JSON_ResponseStatus

Remarks
This URI is only used to start deleting. To judge whether the deleting is completed, you should call
the request URI /ISAPI/AccessControl/FingerPrint/DeleteProcess?format=json by GET method to
get the deleting status.

A.126 /ISAPI/AccessControl/FingerPrint/DeleteProcess?format=json
Get the progress of deleting fingerprint data.

Request URI Definition


Table A-155 GET /ISAPI/AccessControl/FingerPrint/DeleteProcess?format=json
Method GET
Description Get the progress of deleting fingerprint data.
Query format: determine the format of request or response message.
Request None.
Response Succeeded: JSON_FingerPrintDeleteProcess
Failed: JSON_ResponseStatus

Remarks
When starting deleting fingerprint data, this URI will be repeatedly called to get the deleting
progress until "success" or "failed" is returned by the parameter status in the message
JSON_FingerPrintDeleteProcess .

A.127 /ISAPI/AccessControl/FingerPrint/SetUp?format=json
Set the fingerprint parameters.

Request URI Definition


Table A-156 POST /ISAPI/AccessControl/FingerPrint/SetUp?format=json
Method POST
Description Set the fingerprint parameters.
Query format: determine the format of request or response message.

155
Intelligent Security API (Person-Based Access Control) Developer Guide

Request JSON_FingerPrintCfg
Response JSON_FingerPrintStatus

Remarks
• If the fingerData is not applied, it indicates editing fingerprint parameters instead of applying
fingerprint data to the fingerprint module.
• If the fingerData is applied, the fingerprint data will be added if it does not exist in the
fingerprint module, or the original fingerprint data will be overwritten if it already exists in the
fingerprint module.
• There are four different methods for deleting one or more fingerprints:
• To delete a specific fingerprint in a specific fingerprint module linked with a specific employee
No., the employeeNo, enableCardReader, fingerPrintID, and deleteFingerPrint in the
message JSON_FingerPrintCfg should be configured, and the success response message will
be returned no matter whether the fingerprint exists or not.
• To delete a specific fingerprint in all fingerprint modules linked with a specific employee No.,
the employeeNo, fingerPrintID, and deleteFingerPrint in the message JSON_FingerPrintCfg
should be configured, and the success response message will be returned no matter whether
the fingerprints exist or not.
• To delete all fingerprints in a specific fingerprint module linked with a specific employee No.,
the employeeNo, enableCardReader, and deleteFingerPrint in the message
JSON_FingerPrintCfg should be configured, and the success response message will be
returned no matter whether the fingerprints exist or not.
• To delete all fingerprints in all fingerprint modules linked with a specific employee No., the
employeeNo and deleteFingerPrint in the message JSON_FingerPrintCfg should be
configured, and the success response message will be returned no matter whether the
fingerprints exist or not.

A.128 /ISAPI/AccessControl/FingerPrintCfg/capabilities?format=json
Get the configuration capability of fingerprint parameters.

Request URI Definition


Table A-157 GET /ISAPI/AccessControl/FingerPrintCfg/capabilities?format=json
Method GET
Description Get the configuration capability of fingerprint parameters.
Query format: determine the format of request or response message.
Request None.
Response Succeeded: JSON_Cap_FingerPrintCfg

156
Intelligent Security API (Person-Based Access Control) Developer Guide

Failed: JSON_ResponseStatus

A.129 /ISAPI/AccessControl/FingerPrintDownload?format=json
Set fingerprint parameters to link with a person, and apply the collected fingerprint data.

Request URI Definition


Table A-158 POST /ISAPI/AccessControl/FingerPrintDownload?format=json
Method POST
Description Set fingerprint parameters to link with a person, and apply the
collected fingerprint data.
Query format: determine the format of request or response message.
Request JSON_FingerPrintCfg +fingerprint data (by boundary method)
Response JSON_ResponseStatus

Remarks
This URI is only used to start applying the fingerprint data. To check whether the applying is
completed, you should call the request URI /ISAPI/AccessControl/FingerPrintProgress?
format=json by GET method to get the applying status.

A.130 /ISAPI/AccessControl/FingerPrintModify?format=json
Edit fingerprint parameters.

Request URI Definition


Table A-159 POST /ISAPI/AccessControl/FingerPrintModify?format=json
Method POST
Description Edit fingerprint parameters.
Query format: determine the format of request or response message.
Request JSON_FingerPrintModify
Response JSON_ResponseStatus

Remarks
Only the fingerprint parameters can be edited. The collected fingerprint data will not be edited and
applied.

157
Intelligent Security API (Person-Based Access Control) Developer Guide

A.131 /ISAPI/AccessControl/FingerPrintProgress?format=json
Get the progress of applying fingerprint data.

Request URI Definition


Table A-160 GET /ISAPI/AccessControl/FingerPrintProgress?format=json
Method GET
Description Get the progress of applying fingerprint data.
Query format: determine the format of request or response message.
Request None.
Response Succeeded: JSON_FingerPrintStatus
Failed: JSON_ResponseStatus

Remarks
When starting applying fingerprint data, this URI will be repeatedly called to get the applying
progress until "1" is returned by the parameter totalStatus in the message
JSON_FingerPrintStatus .

A.132 /ISAPI/AccessControl/FingerPrintUpload?format=json
Get the fingerprint information, including fingerprint parameters and data.

Request URI Definition


Table A-161 POST /ISAPI/AccessControl/FingerPrintUpload?format=json
Method POST
Description Get the fingerprint information, including fingerprint parameters and
data.
Query format: determine the format of request or response message.
Request JSON_FingerPrintCond
Response JSON_FingerPrintInfo +fingerprint data (by boundary method)

Remarks
• To get the information of a specific fingerprint, the searchID, employeeNo, cardReaderNo, and
fingerPrintID in the message JSON_FingerPrintCond should be configured. If the fingerprint
matching the search conditions exists, the status will be set to "OK" and the corresponding
fingerprint information will be returned by FingerPrintList in the message

158
Intelligent Security API (Person-Based Access Control) Developer Guide

JSON_FingerPrintInfo ; otherwise, the status will be set to "NoFP" and the FingerPrintList will be
set to NULL in the message JSON_FingerPrintInfo .
• To get all fingerprints linked with a specific employee No. (person ID), the searchID and
employeeNo in the message JSON_FingerPrintCond should be configured. If the fingerprints
matching the search conditions exist, the status will be set to "OK" and the corresponding
fingerprint information will be returned by FingerPrintList in the message
JSON_FingerPrintInfo . The request URI /ISAPI/AccessControl/FingerPrintUpload?format=json
will be repeatedly called by POST method to get the information of multiple fingerprints
matching the search conditions until "NoFP" is returned by status in the message
JSON_FingerPrintInfo (it indicates that information of all fingerprints matching the search
conditions are obtained). If there is no fingerprint matching the search conditions, the status will
be set to "NoFP" and the FingerPrintList will be set to NULL in the message
JSON_FingerPrintInfo .

A.133 /ISAPI/AccessControl/FingerPrintUploadAll?format=json
Get all fingerprints' information (including fingerprint parameters and data) of a specific person.

Request URI Definition


Table A-162 POST /ISAPI/AccessControl/FingerPrintUploadAll?format=json
Method POST
Description Get all fingerprints' information (including fingerprint parameters and
data) of a specific person.
Query format: determine the format of request or response message.
Request JSON_FingerPrintCondAll
Response JSON_FingerPrintInfoAll +fingerprint data (by boundary method)

A.134 /ISAPI/AccessControl/GroupCfg/<ID>?format=json
Operations about the group configuration.

Request URI Definition


Table A-163 GET /ISAPI/AccessControl/GroupCfg/<ID>?format=json
Method GET
Description Get the group configuration parameters.
Query format: determine the format of request or response message.

159
Intelligent Security API (Person-Based Access Control) Developer Guide

Request None.
Response Succeeded: JSON_GroupCfg
Failed: JSON_ResponseStatus
Table A-164 PUT /ISAPI/AccessControl/GroupCfg/<ID>?format=json
Method PUT
Description Set the group parameters.
Query format: determine the format of request or response message.
Request JSON_GroupCfg
Response JSON_ResponseStatus

Remarks
The <ID> in the request URI refers to the group No. which starts from 1.

A.135 /ISAPI/AccessControl/GroupCfg/capabilities?format=json
Get the group configuration capability.

Request URI Definition


Table A-165 GET /ISAPI/AccessControl/GroupCfg/capabilities?format=json
Method GET
Description Get the group configuration capability.
Query format: determine the format of request or response message.
Request None.
Response Succeeded: JSON_Cap_GroupCfg
Failed: JSON_ResponseStatus

A.136 /ISAPI/AccessControl/IDBlackListCfg
Apply ID card blocklist.

160
Intelligent Security API (Person-Based Access Control) Developer Guide

Request URI Definition


Table A-166 PUT /ISAPI/AccessControl/IDBlackListCfg
Method PUT
Description Apply ID card blocklist.
Query None.
Request XML_IDBlackListCfg
Response XML_ResponseStatus

A.137 /ISAPI/AccessControl/IDBlackListCfg/capabilities
Get capability of applying ID card blocklist.

Request URI Definition


Table A-167 GET /ISAPI/AccessControl/IDBlackListCfg/capabilities
Method GET
Description Get capability of applying ID card blocklist.
Query None.
Request None.
Response Succeeded: XML_Cap_IDBlackListCfg
Failed: XML_ResponseStatus

A.138 /ISAPI/AccessControl/IDBlackListCfg/template?format=json
Get the ID card blocklist template.

Request URI Definition


Table A-168 GET /ISAPI/AccessControl/IDBlackListCfg/template?format=json
Method GET
Description Get the ID card blocklist template.
Query format: determine the format of request or response message.
Request None.
Response Binary data (template data in binary format).

161
Intelligent Security API (Person-Based Access Control) Developer Guide

A.139 /ISAPI/AccessControl/IDCardInfoEvent/capabilities?format=json
Get the capability of getting the ID card events actively.

Request URI Definition


Table A-169 GET /ISAPI/AccessControl/IDCardInfoEvent/capabilities?format=json
Method GET
Description Get the capability of getting the ID card events actively.
Query format: determine the format of request or response message.
Request None.
Response Succeeded: JSON_IDCardInfoEventCap
Failed: JSON_ResponseStatus

A.140 /ISAPI/AccessControl/IDCardInfoEvent?format=json
Get the ID card events actively.

Request URI Definition


Table A-170 POST /ISAPI/AccessControl/IDCardInfoEvent?format=json
Method POST
Description Get the ID card events actively.
Query format: determine the format of request or response message.
Request JSON_IDCardInfoEventCond
Response JSON_IDCardInfoEvent

A.141 /ISAPI/AccessControl/IdentityTerminal
Operations about configuration of intelligent identity recognition terminal.

162
Intelligent Security API (Person-Based Access Control) Developer Guide

Request URI Definition


Table A-171 GET /ISAPI/AccessControl/IdentityTerminal
Method GET
Description Get the configuration parameters of intelligent identity recognition
terminal.
Query None.
Request None.
Response Succeeded: XML_IdentityTerminal
Failed: XML_ResponseStatus
Table A-172 PUT /ISAPI/AccessControl/IdentityTerminal
Method PUT
Description Set the parameters of intelligent identity recognition terminal.
Query None.
Request XML_IdentityTerminal
Response XML_ResponseStatus

A.142 /ISAPI/AccessControl/IdentityTerminal/capabilities
Get configuration capability of intelligent identity recognition terminal.

Request URI Definition


Table A-173 GET /ISAPI/AccessControl/IdentityTerminal/capabilities
Method GET
Description Get configuration capability of intelligent identity recognition
terminal.
Query None.
Request None.
Response Succeeded: XML_Cap_IdentityTerminal
Failed: XML_ResponseStatus

163
Intelligent Security API (Person-Based Access Control) Developer Guide

A.143 /ISAPI/AccessControl/keyCfg/<ID>/attendance?format=json
Get or set the parameters of attendance check by pressing the key.

Request URI Definition


Table A-174 GET /ISAPI/AccessControl/keyCfg/<ID>/attendance?format=json
Method GET
Description Get the parameters of attendance check by pressing the key.
Query format: determine the format of request or response message.
Request None.
Response Succeeded: JSON_Attendance
Failed: JSON_ResponseStatus
Table A-175 PUT /ISAPI/AccessControl/keyCfg/<ID>/attendance?format=json
Method PUT
Description Set the parameters of attendance check by pressing the key.
Query format: determine the format of request or response message.
Request JSON_Attendance
Response JSON_ResponseStatus

A.144 /ISAPI/AccessControl/keyCfg/attendance/capabilities?
format=json
Get the configuration capability of attendance check by pressing the key.

Request URI Definition


Table A-176 GET /ISAPI/AccessControl/keyCfg/attendance/capabilities?format=json
Method GET
Description Get the configuration capability of attendance check by pressing the
key.
Query format: determine the format of request or response message.
Request None.
Response Succeeded: JSON_AttendanceCap

164
Intelligent Security API (Person-Based Access Control) Developer Guide

Failed: JSON_ResponseStatus

A.145 /ISAPI/AccessControl/keyCfg/attendance?format=json
Get the attendance parameter list.

Request URI Definition


Table A-177 GET /ISAPI/AccessControl/keyCfg/attendance?format=json
Method GET
Description Get the attendance parameter list.
Query format: determine the format of request or response message.
Request None.
Response Succeeded: JSON_AttendanceList
Failed: JSON_ResponseStatus

A.146 /ISAPI/AccessControl/LogModeCfg/capabilities?format=json
Get the configuration capability of the log mode.

Request URI Definition


Table A-178 GET /ISAPI/AccessControl/LogModeCfg/capabilities?format=json
Method GET
Description Get the configuration capability of the log mode.
Query format: determine the format of request or response message.
Request None.
Response Succeeded: JSON_Cap_LogModeCfg
Failed: JSON_ResponseStatus

A.147 /ISAPI/AccessControl/LogModeCfg?format=json
Operations about the log mode configuration.

165
Intelligent Security API (Person-Based Access Control) Developer Guide

Request URI Definition


Table A-179 GET /ISAPI/AccessControl/LogModeCfg?format=json
Method GET
Description Get the log mode configuration parameters.
Query format: determine the format of request or response message.
Request None.
Response Succeeded: JSON_LogModeCfg
Failed: JSON_ResponseStatus
Table A-180 PUT /ISAPI/AccessControl/LogModeCfg?format=json
Method PUT
Description Set the log mode parameters.
Query format: determine the format of request or response message.
Request JSON_LogModeCfg
Response JSON_ResponseStatus

A.148 /ISAPI/AccessControl/M1CardEncryptCfg
Operations about the configuration of M1 card encryption verification.

Request URI Definition


Table A-181 GET /ISAPI/AccessControl/M1CardEncryptCfg
Method GET
Description Get the configuration parameters of M1 card encryption verification.
Query None.
Request None.
Response Succeeded: XML_M1CardEncryptCfg
Failed: XML_ResponseStatus
Table A-182 PUT /ISAPI/AccessControl/M1CardEncryptCfg
Method PUT
Description Set the parameters of M1 card encryption verification.
Query None.

166
Intelligent Security API (Person-Based Access Control) Developer Guide

Request XML_M1CardEncryptCfg
Response XML_ResponseStatus

Remarks
This request URI is used to notify the device that data of which sector is encrypted by M1 card and
will not execute the encryption function.

A.149 /ISAPI/AccessControl/M1CardEncryptCfg/capabilities
Get the configuration capability of M1 card encryption verification.

Request URI Definition


Table A-183 GET /ISAPI/AccessControl/M1CardEncryptCfg/capabilities
Method GET
Description Get the configuration capability of M1 card encryption verification.
Query None.
Request None.
Response Succeeded: XML_Cap_M1CardEncryptCfg
Failed: XML_ResponseStatus

A.150 /ISAPI/AccessControl/maintenanceData?secretkey=
Export the maintenance data.

Request URI Definition


Table A-184 GET /ISAPI/AccessControl/maintenanceData?secretkey=
Method GET
Description Export the maintenance data.
Query secretkey: the verification key, it is provided by the upper layer. It
should be encrypted for exporting and recorded for importing.
security: the version No. of encryption scheme. When security does
not exist, it indicates that the data is not encrypted; when security is
1, it indicates that the nodes of sensitive information in the message
are encrypted in AES128 CBC mode; when security is 2, it indicates
that the nodes of sensitive information in the message are encrypted
in AES256 CBC mode.

167
Intelligent Security API (Person-Based Access Control) Developer Guide

iv: the initialization vector, and it is required when security is 1 or 2.


Request None.
Response Succeeded: Opaque data.
Failed: XML_ResponseStatus

Remarks
The maintenance data include device running logs, events, and so on, and they are used for
troubleshooting.

A.151 /ISAPI/AccessControl/maskDetection/capabilities?format=json
Get the configuration capability of mask detection.

Request URI Definition


Table A-185 GET /ISAPI/AccessControl/maskDetection/capabilities?format=json
Method GET
Description Get the configuration capability of mask detection.
Query format: determine the format of request or response message.
Request None.
Response Succeeded: JSON_MaskDetectionCap
Failed: JSON_ResponseStatus

A.152 /ISAPI/AccessControl/maskDetection?format=json
Get or set the mask detection parameters.

Request URI Definition


Table A-186 GET /ISAPI/AccessControl/maskDetection?format=json
Method GET
Description Get the mask detection parameters.
Query format: determine the format of request or response message.
Request None.
Response Succeeded: JSON_MaskDetection
Failed: JSON_ResponseStatus

168
Intelligent Security API (Person-Based Access Control) Developer Guide

Table A-187 PUT /ISAPI/AccessControl/maskDetection?format=json


Method PUT
Description Set the mask detection parameters.
Query format: determine the format of request or response message.
Request JSON_MaskDetection
Response JSON_ResponseStatus

A.153 /ISAPI/AccessControl/MultiCardCfg/<ID>?format=json
Operations about the configuration of multi-factor authentication mode.

Request URI Definition


Table A-188 GET /ISAPI/AccessControl/MultiCardCfg/<ID>?format=json
Method GET
Description Get the configuration parameters of multi-​factor authentication
mode.
Query format: determine the format of request or response message.
Request None.
Response Succeeded: JSON_MultiCardCfg
Failed: JSON_ResponseStatus
Table A-189 PUT /ISAPI/AccessControl/MultiCardCfg/<ID>?format=json
Method PUT
Description Set the parameters of multi-​factor authentication mode.
Query format: determine the format of request or response message.
Request JSON_MultiCardCfg
Response JSON_ResponseStatus

Remarks
The <ID> in the request URI refers to the door No. which starts from 1.

A.154 /ISAPI/AccessControl/MultiCardCfg/capabilities?format=json
Get the configuration capability of multi-factor authentication mode.

169
Intelligent Security API (Person-Based Access Control) Developer Guide

Request URI Definition


Table A-190 GET /ISAPI/AccessControl/MultiCardCfg/capabilities?format=json
Method GET
Description Get the configuration capability of multi-​factor authentication mode.
Query format: determine the format of request or response message.
Request None.
Response Succeeded: JSON_Cap_MultiCardCfg
Failed: JSON_ResponseStatus

A.155 /ISAPI/AccessControl/MultiDoorInterLockCfg/capabilities?
format=json
Get the configuration capability of the multi-door interlocking.

Request URI Definition


Table A-191 GET /ISAPI/AccessControl/MultiDoorInterLockCfg/capabilities?format=json
Method GET
Description Get the configuration capability of the multi-​door interlocking.
Query format: determine the format of request or response message.
Request None.
Response Succeeded: JSON_Cap_MultiDoorInterLockCfg
Failed: JSON_ResponseStatus

A.156 /ISAPI/AccessControl/MultiDoorInterLockCfg?format=json
Operations about the multi-door interlocking configuration.

Request URI Definition


Table A-192 GET /ISAPI/AccessControl/MultiDoorInterLockCfg?format=json
Method GET
Description Get the multi-​door interlocking configuration parameters.
Query format: determine the format of request or response message.

170
Intelligent Security API (Person-Based Access Control) Developer Guide

Request None.
Response Succeeded: JSON_MultiDoorInterLockCfg
Failed: JSON_ResponseStatus
Table A-193 PUT /ISAPI/AccessControl/MultiDoorInterLockCfg?format=json
Method PUT
Description Set the multi-​door interlocking parameters.
Query format: determine the format of request or response message.
Request JSON_MultiDoorInterLockCfg
Response JSON_ResponseStatus

A.157 /ISAPI/AccessControl/OfflineCapture/capabilities?format=json
Get the offline collection capability.

Request URI Definition


Table A-194 GET /ISAPI/AccessControl/OfflineCapture/capabilities?format=json
Method GET
Description Get the offline collection capability.
Query format: determine the format of request or response message.
Request None.
Response Succeeded: JSON_OfflineCaptureCap
Failed: JSON_ResponseStatus

A.158 /ISAPI/AccessControl/OfflineCapture/DataCollections/
<captureNo>?format=json
Deleted a specific piece of offline collected data.

Request URI Definition


Table A-195 DELETE /ISAPI/AccessControl/OfflineCapture/DataCollections/<captureNo>?
format=json
Method DELETE
Description Deleted a specific piece of offline collected data.

171
Intelligent Security API (Person-Based Access Control) Developer Guide

Query format: determine the format of request or response message.


Request None.
Response JSON_ResponseStatus

Remarks
The <captureNo> in the request URI refers to the collection No.

A.159 /ISAPI/AccessControl/OfflineCapture/DataCollections/
downloadTask?format=json
Download data collected offline.

Request URI Definition


Table A-196 POST /ISAPI/AccessControl/OfflineCapture/DataCollections/downloadTask?
format=json
Method POST
Description Download data collected offline.
Query format: determine the format of request or response message.
Request JSON_DataCollectionsCond
Response Succeeded: JSON_DataCollections
Failed: JSON_ResponseStatus

Remarks
• You can repeatedly call this request URI using the same ID to get the progress. The default
timeout is 60s (if the device's progress is 100 and the caller does not download after 60s, this
request fails and an error message will be returned).
• If the ID is different, the device will return the corresponding status according to whether it
supports processing concurrently. If processing concurrently is not supported, the device will
return the error "The device is busy".
• When the field progress in the success response message is 100, the data collected offline in
binary format or the URL for downloading the data will be returned.
Example
Sample Code of Interaction in URL Format
POST /ISAPI/AccessControl/OfflineCapture/DataCollections/downloadTask?format=json
Accept: text/html, application/xhtml+xml,
Accept-Language: en-US
Content-Type: application/xml
User-Agent: Mozilla/5.0 (compatible; MSIE 9.0; Windows NT 6.1; WOW64; Trident/5.0)

172
Intelligent Security API (Person-Based Access Control) Developer Guide

Accept-Encoding: gzip, deflate


Host: 10.10.36.29:8080
Content-Length: 9907
Connection: Keep-Alive
Cache-Control: no-cache

{
"DataCollectionsCond":{
"dataType ":"url"
/*required, string, data type of the file: "url"-URL, "binary"-binary data*/
}
}
---------------------------------------------------------------------------------------------------
HTTP/1.1 200 OK
MIME-Version: 1.0
Connection: close
Content-Type: application/xml; charset="UTF-8"
Content-Length: text_length

{
"DataCollections":{
"dataType ":"binary",
/*required, string, data type of the file: "url"-URL, "binary"-binary data*/
"fileUrl":""
/*dependent, string, file URL, this field is valid when dataType is "url"*/
}
}

Example
Sample Code of Interaction in Binary Format
POST /ISAPI/AccessControl/OfflineCapture/DataCollections/downloadTask?format=json
Accept: text/html, application/xhtml+xml,
Accept-Language: en-US
Content-Type: application/xml
User-Agent: Mozilla/5.0 (compatible; MSIE 9.0; Windows NT 6.1; WOW64; Trident/5.0)
Accept-Encoding: gzip, deflate
Host: 10.10.36.29:8080
Content-Length: 9907
Connection: Keep-Alive
Cache-Control: no-cache

{
"DataCollectionsCond":{
"dataType ":"binary"
/*required, string, data type of the file: "url"-URL, "binary"-binary data*/
}
}
---------------------------------------------------------------------------------------------------------
HTTP/1.1 200 OK
MIME-Version: 1.0
Connection: close

173
Intelligent Security API (Person-Based Access Control) Developer Guide

Content-Type: multipart/form-data; boundary=<frontier>


Content-Length: all_length

--<frontier>
Content-Type: application/json; charset="UTF-8"
Content-Length: text_length

{DataCollections}
--<frontier>
Content-Disposition: form-data; name="dataCollections"; filename="dataCollections.xx "
Content-Type: application/octet-stream
Content-Length: data_length

[Data]
--<frontier>--

A.160 /ISAPI/AccessControl/OfflineCapture/DataCollections/
searchTask?format=json
Search for the collected data.

Request URI Definition


Table A-197 POST /ISAPI/AccessControl/OfflineCapture/DataCollections/searchTask?format=json
Method POST
Description Search for the collected data.
Query format: determine the format of request or response message.
Request JSON_SearchTaskCond
Response Succeeded: JSON_SearchTaskResponse
Failed: JSON_ResponseStatus

A.161 /ISAPI/AccessControl/OfflineCapture/DataCollections?
format=json
Delete all offline collected data.

Request URI Definition


Table A-198 DELETE /ISAPI/AccessControl/OfflineCapture/DataCollections?format=json
Method DELETE
Description Delete all offline collected data.

174
Intelligent Security API (Person-Based Access Control) Developer Guide

Query format: determine the format of request or response message.


Request None.
Response JSON_ResponseStatus

A.162 /ISAPI/AccessControl/OfflineCapture/dataOutput/progress?
format=json
Get the progress of exporting the offline collected data.

Request URI Definition


Table A-199 GET /ISAPI/AccessControl/OfflineCapture/dataOutput/progress?format=json
Method GET
Description Get the progress of exporting the offline collected data.
Query format: determine the format of request or response message.
Request None.
Response Succeeded: JSON_DataOutputProgress
Failed: JSON_ResponseStatus

A.163 /ISAPI/AccessControl/OfflineCapture/dataOutput?format=json
Export the offline collected data.

Request URI Definition


Table A-200 PUT /ISAPI/AccessControl/OfflineCapture/dataOutput?format=json
Method PUT
Description Export the offline collected data.
Query format: determine the format of request or response message.
security: the version No. of encryption scheme. When security does
not exist, it indicates that the data is not encrypted; when security is
1, it indicates that the nodes of sensitive information in the message
are encrypted in AES128 CBC mode; when security is 2, it indicates
that the nodes of sensitive information in the message are encrypted
in AES256 CBC mode. In the message of this request URI, the value of
the field password should be encrypted.
iv: the initialization vector, and it is required when security is 1 or 2.

175
Intelligent Security API (Person-Based Access Control) Developer Guide

Request JSON_DataOutputCfg
Response JSON_ResponseStatus

A.164 /ISAPI/AccessControl/OfflineCapture/InfoFile/progress?
format=json
Get the progress of uploading the user list of offline collection.

Request URI Definition


Table A-201 GET /ISAPI/AccessControl/OfflineCapture/InfoFile/progress?format=json
Method GET
Description Get the progress of uploading the user list of offline collection.
Query format: determine the format of request or response message.
Request None.
Response Succeeded: JSON_InfoFileProgress
Failed: JSON_ResponseStatus

A.165 /ISAPI/AccessControl/OfflineCapture/InfoFile?format=json
Upload the user list of offline collection.

Request URI Definition


Table A-202 POST /ISAPI/AccessControl/OfflineCapture/InfoFile?format=json
Method POST
Description Upload the user list of offline collection.
Query format: determine the format of request or response message.
Request JSON_InfoFile (opaque data (MIME data)).
Response JSON_ResponseStatus

Example
Sample Code of Interaction in Form Format
POST /ISAPI/AccessControl/OfflineCapture/infoFile?format=json
Accept: text/html, application/xhtml+xml,
Accept-Language: zh-CN
Content-Type: multipart/form-data; boundary=---------------------------7e13971310878
User-Agent: Mozilla/5.0 (compatible; MSIE 9.0; Windows NT 6.1; WOW64; Trident/5.0)

176
Intelligent Security API (Person-Based Access Control) Developer Guide

Accept-Encoding: gzip, deflate


Host: 10.10.36.29:8080
Content-Length: 9907
Connection: Keep-Alive
Cache-Control: no-cache

-----------------------------7e13971310878
Content-Type: application/json
Content-Length: 9907

{JSON_InfoFile}
-----------------------------7e13971310878
Content-Disposition: form-data; name="infoFile";
Content-Type: application/octet-stream
Content-Length: 9907

..........`.`.....C........... .
..
................. $.' ",#..(7),01444.'9=82<.342...C. ....
-----------------------------7e13971310878--

A.166 /ISAPI/AccessControl/OfflineCapture/InfoFileTemplateDownload?
format=json
Download the user list template of offline collection.

Request URI Definition


Table A-203 POST /ISAPI/AccessControl/OfflineCapture/InfoFileTemplateDownload?format=json
Method POST
Description Download the user list template of offline collection.
Query format: determine the format of request or response message.
Request JSON_InfoFileTemplateCond
Response Succeeded: JSON_InfoFileTemplate (opaque data (MIME data))
Failed: JSON_ResponseStatus

Example
Sample Code of Interaction in URL Format
POST /ISAPI/AccessControl/OfflineCapture/InfoFileTemplate/DownloadTask?format=json
Accept: text/html, application/xhtml+xml,
Accept-Language: en-US
Content-Type: application/xml
User-Agent: Mozilla/5.0 (compatible; MSIE 9.0; Windows NT 6.1; WOW64; Trident/5.0)
Accept-Encoding: gzip, deflate
Host: 10.10.36.29:8080

177
Intelligent Security API (Person-Based Access Control) Developer Guide

Content-Length: 9907
Connection: Keep-Alive
Cache-Control: no-cache

{
"InfoFileTemplateCond":{
"dataType ":"binary"
/*required, string, data type of the file: "url"-URL, "binary"-binary data*/
}
}
-----------------------------------------------------------------------------------------------------------
HTTP/1.1 200 OK
MIME-Version: 1.0
Connection: close
Content-Type: application/xml; charset="UTF-8"
Content-Length: text_length

{
"InfoFileTemplate":{
"dataType ":"binary",
/*required, string, data type of the file: "url"-URL, "binary"-binary data*/
"fileUrl":""
/*dependent, string, file URL, this field is valid when dataType is "url"*/
}
}

Example
Sample Code of Interaction in Binary Format
POST /ISAPI/AccessControl/OfflineCapture/InfoFileTemplate/DownloadTask?format=json
Accept: text/html, application/xhtml+xml,
Accept-Language: en-US
Content-Type: application/xml
User-Agent: Mozilla/5.0 (compatible; MSIE 9.0; Windows NT 6.1; WOW64; Trident/5.0)
Accept-Encoding: gzip, deflate
Host: 10.10.36.29:8080
Content-Length: 9907
Connection: Keep-Alive
Cache-Control: no-cache

{
"InfoFileTemplateCond":{
"dataType ":"binary"
/*required, string, data type of the file: "url"-URL, "binary"-binary data*/
}
}
--------------------------------------------------------------------------------------------------------------
HTTP/1.1 200 OK
MIME-Version: 1.0
Connection: close
Content-Type: multipart/form-data; boundary=<frontier>
Content-Length: all_length

178
Intelligent Security API (Person-Based Access Control) Developer Guide

--<frontier>
Content-Type: application/json; charset="UTF-8"
Content-Length: text_length

{JSON_InfoFileTemplate}
--<frontier>
Content-Disposition: form-data; name="infoFileTemplate"; filename="infoFileTemplate.xx "
Content-Type: image/jpeg //The Content-Type can be defined according to the file and standard MIME type
Content-Length: image_length

[File Data]
--<frontier>--

A.167 /ISAPI/AccessControl/OfflineCapture/progress?format=json
Get the offline collection progress.

Request URI Definition


Table A-204 GET /ISAPI/AccessControl/OfflineCapture/progress?format=json
Method GET
Description Get the offline collection progress.
Query format: determine the format of request or response message.
Request None.
Response Succeeded: JSON_CaptureProgress
Failed: JSON_ResponseStatus

A.168 /ISAPI/AccessControl/OfflineCapture/ruleInfo?format=json
Get or set the parameters of offline collection rules.

Request URI Definition


Table A-205 GET /ISAPI/AccessControl/OfflineCapture/ruleInfo?format=json
Method GET
Description Get the parameters of offline collection rules.
Query format: determine the format of request or response message.
Request None.
Response Succeeded: JSON_RuleInfo

179
Intelligent Security API (Person-Based Access Control) Developer Guide

Failed: JSON_ResponseStatus
Table A-206 PUT /ISAPI/AccessControl/OfflineCapture/ruleInfo?format=json
Method PUT
Description Set the parameters of offline collection rules.
Query format: determine the format of request or response message.
Request JSON_RuleInfo
Response JSON_ResponseStatus

A.169 /ISAPI/AccessControl/OfflineCapture/uploadFailedDetails?
format=json
Get the details of failing to upload the user list of offline collection.

Request URI Definition


Table A-207 GET /ISAPI/AccessControl/OfflineCapture/uploadFailedDetails?format=json
Method GET
Description Get the details of failing to upload the user list of offline collection.
Query format: determine the format of request or response message.
Request None.
Response Succeeded: JSON_UploadFailedDetails
Failed: JSON_ResponseStatus

A.170 /ISAPI/AccessControl/OSDPModify/<ID>?format=json
Set the OSDP (Open Supervised Device Protocol) card reader ID.

Request URI Definition


Table A-208 PUT /ISAPI/AccessControl/OSDPModify/<ID>?format=json
Method PUT
Description Set the OSDP (Open Supervised Device Protocol) card reader ID.
Query format: determine the format of request or response message.

180
Intelligent Security API (Person-Based Access Control) Developer Guide

Request JSON_OSDPModify
Response JSON_ResponseStatus

Remarks
The <ID> in the request URI refers to the original OSDP card reader ID which is between 0 and 126,
and 127 refers to broadcast.

A.171 /ISAPI/AccessControl/OSDPModify/capabilities?format=json
Get the capability of editing the OSDP (Open Supervised Device Protocol) card reader ID.

Request URI Definition


Table A-209 GET /ISAPI/AccessControl/OSDPModify/capabilities?format=json
Method GET
Description Get the capability of editing the OSDP (Open Supervised Device
Protocol) card reader ID.
Query format: determine the format of request or response message.
Request None.
Response Succeeded: JSON_Cap_OSDPModify
Failed: JSON_ResponseStatus

A.172 /ISAPI/AccessControl/OSDPStatus/<ID>?format=json
Get the OSDP (Open Supervised Device Protocol) card reader status.

Request URI Definition


Table A-210 GET /ISAPI/AccessControl/OSDPStatus/<ID>?format=json
Method GET
Description Get the OSDP (Open Supervised Device Protocol) card reader status.
Query format: determine the format of request or response message.
Request None.
Response Succeeded: JSON_OSDPStatus
Failed: JSON_ResponseStatus

181
Intelligent Security API (Person-Based Access Control) Developer Guide

Remarks
The <ID> in the request URI refers to the OSDP card reader ID which is between 0 and 126, and 127
refers to broadcast. Limited by the device, the OSDP card reader status can only be obtained one
by one.

A.173 /ISAPI/AccessControl/OSDPStatus/capabilities?format=json
Get the capability of getting the OSDP (Open Supervised Device Protocol) card reader status.

Request URI Definition


Table A-211 GET /ISAPI/AccessControl/OSDPStatus/capabilities?format=json
Method GET
Description Get the capability of getting the OSDP (Open Supervised Device
Protocol) card reader status.
Query format: determine the format of request or response message.
Request None.
Response Succeeded: JSON_Cap_OSDPStatus
Failed: JSON_ResponseStatus

A.174 /ISAPI/AccessControl/personInfoExtendName/capabilities?
format=json
Get the configuration capability of the name of the additional person information.

Request URI Definition


Table A-212 GET /ISAPI/AccessControl/personInfoExtendName/capabilities?format=json
Method GET
Description Get the configuration capability of the name of the additional person
information.
Query format: determine the format of request or response message.
Request None.
Response Succeeded: JSON_PersonInfoExtendNameCap
Failed: JSON_ResponseStatus

182
Intelligent Security API (Person-Based Access Control) Developer Guide

A.175 /ISAPI/AccessControl/personInfoExtendName?format=json
Get or set the parameters of the name of the additional person information.

Request URI Definition


Table A-213 GET /ISAPI/AccessControl/personInfoExtendName?format=json
Method GET
Description Get the parameters of the name of the additional person
information.
Query format: determine the format of request or response message.
Request None.
Response Succeeded: JSON_PersonInfoExtendName
Failed: JSON_ResponseStatus
Table A-214 PUT /ISAPI/AccessControl/personInfoExtendName?format=json
Method PUT
Description Set the parameters of the name of the additional person information.
Query format: determine the format of request or response message.
Request JSON_PersonInfoExtendName
Response JSON_ResponseStatus

A.176 /ISAPI/AccessControl/PhoneDoorRightCfg/<ID>?format=json
Operations about the configuration of the door permission linked to the mobile phone number.

Request URI Definition


Table A-215 GET /ISAPI/AccessControl/PhoneDoorRightCfg/<ID>?format=json
Method GET
Description Get the configuration parameters of the door permission linked to
the mobile phone number.
Query format: determine the format of request or response message.
Request None.
Response Succeeded: JSON_PhoneDoorRightCfg
Failed: JSON_ResponseStatus

183
Intelligent Security API (Person-Based Access Control) Developer Guide

Table A-216 PUT /ISAPI/AccessControl/PhoneDoorRightCfg/<ID>?format=json


Method PUT
Description Set the parameters of the door permission linked to the mobile
phone number.
Query format: determine the format of request or response message.
Request JSON_PhoneDoorRightCfg
Response JSON_ResponseStatus

Remarks
The <ID> in the request URI refers to the No. of the mobile phone number allowlist.

A.177 /ISAPI/AccessControl/PhoneDoorRightCfg/capabilities?
format=json
Get the configuration capability of the door permission linked to the mobile phone number.

Request URI Definition


Table A-217 GET /ISAPI/AccessControl/PhoneDoorRightCfg/capabilities?format=json
Method GET
Description Get the configuration capability of the door permission linked to the
mobile phone number.
Query format: determine the format of request or response message.
Request None.
Response Succeeded: JSON_Cap_PhoneDoorRightCfg
Failed: JSON_ResponseStatus

A.178 /ISAPI/AccessControl/ReaderAcrossHost
Operations about the cross-controller anti-passing back configuration of card readers.

184
Intelligent Security API (Person-Based Access Control) Developer Guide

Request URI Definition


Table A-218 GET /ISAPI/AccessControl/ReaderAcrossHost
Method GET
Description Get the cross-controller anti-​passing back parameters of card
readers.
Query None.
Request None.
Response Succeeded: XML_ReaderAcrossHost
Failed: XML_ResponseStatus
Table A-219 PUT /ISAPI/AccessControl/ReaderAcrossHost
Method PUT
Description Set the cross-controller anti-​passing back parameters of card readers.
Query None.
Request XML_ReaderAcrossHost
Response XML_ResponseStatus

A.179 /ISAPI/AccessControl/ReaderAcrossHost/capabilities
Get the configuration capability of cross-controller anti-passing back status of card readers.

Request URI Definition


Table A-220 GET /ISAPI/AccessControl/ReaderAcrossHost/capabilities
Method GET
Description Get the configuration capability of cross-controller anti-​passing back
status of card readers.
Query None.
Request None.
Response Succeeded: XML_Cap_ReaderAcrossHost
Failed: XML_ResponseStatus

185
Intelligent Security API (Person-Based Access Control) Developer Guide

A.180 /ISAPI/AccessControl/remoteCheck/capabilities?format=json
Get the capability of verifying the access control event remotely.

Request URI Definition


Table A-221 GET /ISAPI/AccessControl/remoteCheck/capabilities?format=json
Method GET
Description Get the capability of verifying the access control event remotely.
Query format: determine the format of request or response message.
Request None.
Response Succeeded: JSON_Cap_RemoteCheck
Failed: JSON_ResponseStatus

A.181 /ISAPI/AccessControl/remoteCheck?format=json
Verify the access control event remotely.

Request URI Definition


Table A-222 PUT /ISAPI/AccessControl/remoteCheck?format=json
Method PUT
Description Verify the access control event remotely to control opening or closing
the door.
Query format: determine the format of request or response message.
Request JSON_RemoteCheck
Response JSON_ResponseStatus

A.182 /ISAPI/AccessControl/RemoteControl/buzzer/<ID>?format=json
Remotely control the buzzer of the card reader.

186
Intelligent Security API (Person-Based Access Control) Developer Guide

Request URI Definition


Table A-223 PUT /ISAPI/AccessControl/RemoteControl/buzzer/<ID>?format=json
Method PUT
Description Remotely control the buzzer of the card reader.
Query format: determine the format of request or response message.
Request JSON_RemoteControlBuzzer
Response JSON_ResponseStatus

Remarks
The <ID> in the request URI refers to the buzzer No., which is also the No. of the card reader. If the
<ID> is 65535, it refers to all buzzers (card readers).

A.183 /ISAPI/AccessControl/RemoteControl/buzzer/capabilities?
format=json
Get the capability of remotely controlling the buzzer of the card reader.

Request URI Definition


Table A-224 GET /ISAPI/AccessControl/RemoteControl/buzzer/capabilities?format=json
Method GET
Description Get the capability of remotely controlling the buzzer of the card
reader.
Query format: determine the format of request or response message.
Request None.
Response Succeeded: JSON_Cap_RemoteControlBuzzer
Failed: JSON_ResponseStatus

A.184 /ISAPI/AccessControl/RemoteControl/door/<ID>
Remotely control the door or elevator.

187
Intelligent Security API (Person-Based Access Control) Developer Guide

Request URI Definition


Table A-225 PUT /ISAPI/AccessControl/RemoteControl/door/<ID>
Method PUT
Description Remotely control the door or elevator.
Query None.
Request XML_RemoteControlDoor
Response XML_ResponseStatus

Remarks
The <ID> in the request URI refers to the door No. If the <ID> is 65535, it refers to all doors.

A.185 /ISAPI/AccessControl/RemoteControl/door/capabilities
Get the capability of remotely controlling the door or elevator.

Request URI Definition


Table A-226 GET /ISAPI/AccessControl/RemoteControl/door/capabilities
Method GET
Description Get the capability of remotely controlling the door or elevator.
Query None.
Request None.
Response Succeeded: XML_Cap_RemoteControlDoor
Failed: XML_ResponseStatus

A.186 /ISAPI/AccessControl/remoteControlPWCheck/capabilities?
format=json
Get the capability of verifying the password for remote door control.

Request URI Definition


Table A-227 GET /ISAPI/AccessControl/remoteControlPWCheck/capabilities?format=json
Method GET
Description Get the capability of verifying the password for remote door control.

188
Intelligent Security API (Person-Based Access Control) Developer Guide

Query format: determine the format of request or response message.


Request None.
Response Succeeded: JSON_Cap_RemoteControlPWCheck
Failed: JSON_ResponseStatus

A.187 /ISAPI/AccessControl/remoteControlPWCheck/door/<ID>?
format=json
Verify the password for remote door control.

Request URI Definition


Table A-228 PUT /ISAPI/AccessControl/remoteControlPWCheck/door/<ID>?format=json
Method PUT
Description Verify the password for remote door control.
Query format: determine the format of request or response message.
Request JSON_RemoteControlPWCheck
Response JSON_ResponseStatus

Remarks
The <ID> in the request URI refers to the door No.

A.188 /ISAPI/AccessControl/remoteControlPWCfg/capabilities?
format=json
Get the capability of configuring password for remote door control.

Request URI Definition


Table A-229 GET /ISAPI/AccessControl/remoteControlPWCfg/capabilities?format=json
Method GET
Description Get the capability of configuring password for remote door control.
Query format: determine the format of request or response message.
Request None.
Response Succeeded: JSON_Cap_RemoteControlPWCfg
Failed: JSON_ResponseStatus

189
Intelligent Security API (Person-Based Access Control) Developer Guide

A.189 /ISAPI/AccessControl/remoteControlPWCfg/door/<ID>?
format=json
Configure the password for remote door control.

Request URI Definition


Table A-230 PUT /ISAPI/AccessControl/remoteControlPWCfg/door/<ID>?format=json
Method PUT
Description Configure the password for remote door control.
Query format: determine the format of request or response message.
Request JSON_RemoteControlPWCfg
Response JSON_ResponseStatus

Remarks
• The <ID> in the request URI refers to the door No.
• The password for remote door control can be configured only after the password is verified by
the request URI: PUT /ISAPI/AccessControl/remoteControlPWCheck/door/<ID>?format=json .

A.190 /ISAPI/AccessControl/ServerDevice
Operation about the configuration of cross-controller anti-passing back server information.

Request URI Definition


Table A-231 GET /ISAPI/AccessControl/ServerDevice
Method GET
Description Get the information (i.e., IP address and port No.) of the cross-
controller anti-​passing back server.
Query None.
Request None.
Response Succeeded: XML_ServerDevice
Failed: XML_ResponseStatus

190
Intelligent Security API (Person-Based Access Control) Developer Guide

Table A-232 PUT /ISAPI/AccessControl/ServerDevice


Method PUT
Description Set the information (i.e., IP address and port No.) of the cross-
controller anti-​passing back server.
Query None.
Request XML_ServerDevice
Response XML_ResponseStatus

A.191 /ISAPI/AccessControl/ServerDevice/capabilities
Get the configuration capability of cross-controller anti-passing back server information.

Request URI Definition


Table A-233 GET /ISAPI/AccessControl/ServerDevice/capabilities
Method GET
Description Get the configuration capability of cross-controller anti-​passing back
server information.
Query None.
Request None.
Response Succeeded: XML_Cap_ServerDevice
Failed: XML_ResponseStatus

A.192 /ISAPI/AccessControl/SmsRelativeParam/capabilities?format=json
Get the configuration capability of the SMS (Short Message Service) function.

Request URI Definition


Table A-234 GET /ISAPI/AccessControl/SmsRelativeParam/capabilities?format=json
Method GET
Description Get the configuration capability of the SMS (Short Message Service)
function.
Query format: determine the format of request or response message.

191
Intelligent Security API (Person-Based Access Control) Developer Guide

Request None.
Response Succeeded: JSON_Cap_SmsRelativeParam
Failed: JSON_ResponseStatus

A.193 /ISAPI/AccessControl/SmsRelativeParam?format=json
Operations about the SMS (Short Message Service) function configuration.

Request URI Definition


Table A-235 GET /ISAPI/AccessControl/SmsRelativeParam?format=json
Method GET
Description Get the configuration parameters of the SMS (Short Message Service)
function.
Query format: determine the format of request or response message.
Request None.
Response Succeeded: JSON_SmsRelativeParam
Failed: JSON_ResponseStatus
Table A-236 PUT /ISAPI/AccessControl/SmsRelativeParam?format=json
Method PUT
Description Set the parameters of the SMS (Short Message Service) function.
Query format: determine the format of request or response message.
Request JSON_SmsRelativeParam
Response JSON_ResponseStatus

A.194 /ISAPI/AccessControl/SnapConfig
Get capture triggering parameters.

Request URI Definition


Table A-237 GET /ISAPI/AccessControl/SnapConfig
Method GET
Description Get capture triggering parameters.
Query None.

192
Intelligent Security API (Person-Based Access Control) Developer Guide

Request None.
Response Succeeded: XML_SnapConfig
Failed: XML_ResponseStatus

A.195 /ISAPI/AccessControl/SnapConfig/capabilities
Get capability of getting capture triggering parameters.

Request URI Definition


Table A-238 GET /ISAPI/AccessControl/SnapConfig/capabilities
Method GET
Description Get capability of getting capture triggering parameters.
Query None.
Request None.
Response Succeeded: XML_Cap_SnapConfig
Failed: XML_ResponseStatus

A.196 /ISAPI/AccessControl/StartReaderInfo
Operations about first card reader configurations.

Request URI Definition


Table A-239 GET /ISAPI/AccessControl/StartReaderInfo
Method GET
Description Get the configuration parameters of first card reader.
Query None.
Request None.
Response XML_StartReaderInfo
Table A-240 PUT /ISAPI/AccessControl/StartReaderInfo
Method PUT
Description Set the parameters of first card reader.
Query None.

193
Intelligent Security API (Person-Based Access Control) Developer Guide

Request XML_StartReaderInfo
Response XML_ResponseStatus

A.197 /ISAPI/AccessControl/StartReaderInfo/capabilities
Get the configuration capability of the first card reader.

Request URI Definition


Table A-241 GET /ISAPI/AccessControl/StartReaderInfo/capabilities
Method GET
Description Get the configuration capability of the first card reader.
Query None.
Request None.
Response Succeeded: XML_Cap_StartReaderInfo
Failed: XML_ResponseStatus

A.198 /ISAPI/AccessControl/SubmarineBack
Operations about the configuration of the cross-controller anti-passing back server.

Request URI Definition


Table A-242 GET /ISAPI/AccessControl/SubmarineBack
Method GET
Description Get the configuration parameters of the cross-controller anti-​passing
back server.
Query None.
Request None.
Response Succeeded: XML_SubmarineBack
Failed: XML_ResponseStatus
Table A-243 PUT /ISAPI/AccessControl/SubmarineBack
Method PUT
Description Set the parameters of the cross-controller anti-​passing back server.
Query None.

194
Intelligent Security API (Person-Based Access Control) Developer Guide

Request XML_SubmarineBack
Response XML_ResponseStatus

A.199 /ISAPI/AccessControl/SubmarineBack/capabilities
Get the configuration capability of the cross-controller anti-passing back server.

Request URI Definition


Table A-244 GET /ISAPI/AccessControl/SubmarineBack/capabilities
Method GET
Description Get the configuration capability of the cross-controller anti-​passing
back server.
Query None.
Request None.
Response Succeeded: XML_Cap_SubmarineBack
Failed: XML_ResponseStatus

A.200 /ISAPI/AccessControl/SubmarineBackHostInfo/capabilities
Get the configuration capability of access controllers for cross-controller anti-passing back.

Request URI Definition


Table A-245 GET /ISAPI/AccessControl/SubmarineBackHostInfo/capabilities
Method GET
Description Get the configuration capability of access controllers for cross-
controller anti-​passing back.
Query None.
Request None.
Response Succeeded: XML_Cap_SubmarineBackHostInfo
Failed: XML_ResponseStatus

A.201 /ISAPI/AccessControl/SubmarineBackHostInfo/ConfigureNo/<ID>
Operations about the configuration of access controllers for cross-controller anti-passing back.

195
Intelligent Security API (Person-Based Access Control) Developer Guide

Request URI Definition


Table A-246 GET /ISAPI/AccessControl/SubmarineBackHostInfo/ConfigureNo/<ID>
Method GET
Description Get the parameters of access controllers for cross-controller anti-
passing back.
Query None.
Request None.
Response Succeeded: XML_SubmarineBackHostInfo
Failed: XML_ResponseStatus
Table A-247 PUT /ISAPI/AccessControl/SubmarineBackHostInfo/ConfigureNo/<ID>
Method PUT
Description Set the parameters of access controllers for cross-controller anti-
passing back.
Query None.
Request XML_SubmarineBackHostInfo
Response XML_ResponseStatus

Remarks
The <ID> in the request URI refers to the configuration No., which is between 1 and 4. More
specifically, 1 refers to device No.1 to device No.16, 2refers to device No.17 to device No.32, 3
refers to device No.33 to device No.48, and 4 refers to device No.49 to device No.64.

A.202 /ISAPI/AccessControl/SubmarineBackMode
Operations about the configuration of cross-controller anti-passing back mode and rule.

Request URI Definition


Table A-248 GET /ISAPI/AccessControl/SubmarineBackMode
Method GET
Description Get the parameters of cross-controller anti-​passing back mode and
rule.
Query None.

196
Intelligent Security API (Person-Based Access Control) Developer Guide

Request None.
Response Succeeded: XML_SubmarineBackMode
Failed: XML_ResponseStatus
Table A-249 PUT /ISAPI/AccessControl/SubmarineBackMode
Method PUT
Description Set the parameters of cross-controller anti-​passing back mode and
rule.
Query None.
Request XML_SubmarineBackMode
Response XML_ResponseStatus

A.203 /ISAPI/AccessControl/SubmarineBackMode/capabilities
Get the configuration capability of cross-controller anti-passing back mode and rule.

Request URI Definition


Table A-250 GET /ISAPI/AccessControl/SubmarineBackMode/capabilities
Method GET
Description Get the configuration capability of cross-controller anti-​passing back
mode and rule.
Query None.
Request None.
Response Succeeded: XML_Cap_SubmarineBackMode
Failed: XML_ResponseStatus

A.204 /ISAPI/AccessControl/SubmarineBackReader/capabilities
Get the configuration capability of card readers for cross-controller anti-passing back.

197
Intelligent Security API (Person-Based Access Control) Developer Guide

Request URI Definition


Table A-251 GET /ISAPI/AccessControl/SubmarineBackReader/capabilities
Method GET
Description Get the configuration capability of card readers for cross-controller
anti-​passing back.
Query None.
Request None.
Response Succeeded: XML_Cap_SubmarineBackReader
Failed: XML_ResponseStatus

A.205 /ISAPI/AccessControl/SubmarineBackReader/ConfigureNo/<ID>
Operations about the configuration of card readers for cross-controller anti-passing back.

Request URI Definition


Table A-252 GET /ISAPI/AccessControl/SubmarineBackReader/ConfigureNo/<ID>
Method GET
Description Get the parameters of card readers for cross-controller anti-​passing
back.
Query None.
Request None.
Response Succeeded: XML_SubmarineBackReader
Failed: XML_ResponseStatus
Table A-253 PUT /ISAPI/AccessControl/SubmarineBackReader/ConfigureNo/<ID>
Method PUT
Description Set the parameters of card readers for cross-controller anti-​passing
back.
Query None.
Request XML_SubmarineBackReader
Response XML_ResponseStatus

Remarks
The <ID> in the request URI refers to the configuration No., which is between 1 and 128.

198
Intelligent Security API (Person-Based Access Control) Developer Guide

A.206 /ISAPI/AccessControl/userData?secretkey=
Import or export person permission data securely.

Request URI Definition


Table A-254 GET /ISAPI/AccessControl/userData?secretkey=
Method GET
Description Export person permission data securely.
Query secretkey: the verification key, it is provided by the upper layer. It
should be encrypted for exporting and recorded for importing.
security: the version No. of encryption scheme. When security does
not exist, it indicates that the data is not encrypted; when security is
1, it indicates that the nodes of sensitive information in the message
are encrypted in AES128 CBC mode; when security is 2, it indicates
that the nodes of sensitive information in the message are encrypted
in AES256 CBC mode.
iv: the initialization vector, and it is required when security is 1 or 2.
Request None.
Response Succeeded: Opaque data.
Failed: XML_ResponseStatus
Table A-255 POST /ISAPI/AccessControl/userData?secretkey=
Method POST
Description Import person permission data securely.
Query secretkey: the verification key, it must be the same as the exported
one and should be encrypted for importing.
security: the version No. of encryption scheme. When security does
not exist, it indicates that the data is not encrypted; when security is
1, it indicates that the nodes of sensitive information in the message
are encrypted in AES128 CBC mode; when security is 2, it indicates
that the nodes of sensitive information in the message are encrypted
in AES256 CBC mode.
iv: the initialization vector, and it is required when security is 1 or 2.
Request Opaque data.
Response XML_ResponseStatus

199
Intelligent Security API (Person-Based Access Control) Developer Guide

Remarks
The person permission data include permission data of the person's card, face, fingerprint, etc.

A.207 /ISAPI/AccessControl/UserInfo/capabilities?format=json
Get the person management capability.

Request URI Definition


Table A-256 GET /ISAPI/AccessControl/UserInfo/capabilities?format=json
Method GET
Description Get the person management capability.
Query format: determine the format of request or response message.
terminalNo: dependent, int, terminal No., starts from 1. It is required
for information release system integration. The No. is generated after
information release terminal is registered to the central management
server, and you can call "/ISAPI/Publish/TerminalMgr/
terminalSearch" by POST method to get the generated terminal No.
Request None.
Response Succeeded: JSON_Cap_UserInfo
Failed: JSON_ResponseStatus

A.208 /ISAPI/AccessControl/UserInfo/Count?format=json
Get the total number of the added persons.

Request URI Definition


Table A-257 GET /ISAPI/AccessControl/UserInfo/Count?format=json
Method GET
Description Get the total number of the added persons.
Query format: determine the format of request or response message.
terminalNo: dependent, int, terminal No., starts from 1. It is required
for information release system integration. The No. is generated after
information release terminal is registered to the central management
server, and you can call "/ISAPI/Publish/TerminalMgr/
terminalSearch" by POST method to get the generated terminal No.

200
Intelligent Security API (Person-Based Access Control) Developer Guide

Request None.
Response Succeeded: JSON_UserInfoCount
Failed: JSON_ResponseStatus

Remarks
This URI is not supported by integration of information release system.

A.209 /ISAPI/AccessControl/UserInfo/Delete?format=json
Delete person information only.

Request URI Definition


Table A-258 PUT /ISAPI/AccessControl/UserInfo/Delete?format=json
Method PUT
Description Delete person information only.
Query format: determine the format of request or response message.
Request JSON_UserInfoDelCond
Response JSON_ResponseStatus

A.210 /ISAPI/AccessControl/UserInfo/Modify?format=json
Edit person information.

Request URI Definition


Table A-259 PUT /ISAPI/AccessControl/UserInfo/Modify?format=json
Method PUT
Description Edit person information.
Query format: determine the format of request or response message.
Request JSON_UserInfo
Response JSON_ResponseStatus

A.211 /ISAPI/AccessControl/UserInfo/Record?format=json
Add a person.

201
Intelligent Security API (Person-Based Access Control) Developer Guide

Request URI Definition


Table A-260 POST /ISAPI/AccessControl/UserInfo/Record?format=json
Method POST
Description Add a person.
Query format: determine the format of request or response message.
Request JSON_UserInfo
Response JSON_ResponseStatus

A.212 /ISAPI/AccessControl/UserInfo/Search?format=json
Search for person information.

Request URI Definition


Table A-261 POST /ISAPI/AccessControl/UserInfo/Search?format=json
Method POST
Description Search for person information.
Query format: determine the format of request or response message.
terminalNo: dependent, int, terminal No., starts from 1. It is required
for information release system integration. The No. is generated after
information release terminal is registered to the central management
server, and you can call "/ISAPI/Publish/TerminalMgr/
terminalSearch" by POST method to get the generated terminal No.
Request JSON_UserInfoSearchCond
Response JSON_UserInfoSearch

Remarks
The Request (user information search condition JSON_UserInfoSearchCond ) depends on the user
information capability JSON_Cap_UserInfo (related node: <UserInfoSearchCond>).

A.213 /ISAPI/AccessControl/UserInfo/SetUp?format=json
Set person information.

202
Intelligent Security API (Person-Based Access Control) Developer Guide

Request URI Definition


Table A-262 PUT /ISAPI/AccessControl/UserInfo/SetUp?format=json
Method PUT
Description Set person information.
Query format: determine the format of request or response message.
Request JSON_UserInfo
Response JSON_ResponseStatus

Remarks
• If the device has checked that the person does not exist according to the employee No. (person
ID), the person information will be added.
• If the device has checked that the person already exists according to the employee No. (person
ID), the person information will be edited.
• If a person needs to be deleted, the deleteUser in the message JSON_UserInfo should be set to
"true", and the success response message will be returned no matter whether the person
information exists or not. Deleting the person will only delete the person's information and will
not delete the linked cards, fingerprints, and face information.

A.214 /ISAPI/AccessControl/UserInfoDetail/Delete/capabilities?
format=json
Get the capability of deleting person information (including linked cards, fingerprints, and faces)
and permissions.

Request URI Definition


Table A-263 GET /ISAPI/AccessControl/UserInfoDetail/Delete/capabilities?format=json
Method GET
Description Get the capability of deleting person information (including linked
cards, fingerprints, and faces) and permissions.
Query format: determine the format of request or response message.
terminalNo: dependent, int, terminal No., starts from 1. It is required
for information release system integration. The No. is generated after
information release terminal is registered to the central management
server, and you can call "/ISAPI/Publish/TerminalMgr/terminalSearch"
by POST method to get the generated terminal No.

203
Intelligent Security API (Person-Based Access Control) Developer Guide

Request None.
Response Succeeded: JSON_Cap_UserInfoDetail
Failed: JSON_ResponseStatus

Remarks
This URI is not supported by integration of information release system.

A.215 /ISAPI/AccessControl/UserInfoDetail/Delete?format=json
Start deleting all person information and permissions by employee No.

Request URI Definition


Table A-264 PUT /ISAPI/AccessControl/UserInfoDetail/Delete?format=json
Method PUT
Description Start deleting all person information (including linked cards,
fingerprints, and faces) and permissions by employee No.
Query format: determine the format of request or response message.
Request JSON_UserInfoDetail
Response JSON_ResponseStatus

Remarks
• This URI is only used to start deleting. To check whether the deleting is completed, you should
call the request URI /ISAPI/AccessControl/UserInfoDetail/DeleteProcess?format=json by GET
method to get the deleting status.
• This URI is not supported by integration of information release system.

A.216 /ISAPI/AccessControl/UserInfoDetail/DeleteProcess?format=json
Get the status of deleting all person information and permissions by employee No.

Request URI Definition


Table A-265 GET /ISAPI/AccessControl/UserInfoDetail/DeleteProcess?format=json
Method GET
Description Get the status of deleting all person information (including linked
cards, fingerprints, and faces) and permissions by employee No.
Query format: determine the format of request or response message.

204
Intelligent Security API (Person-Based Access Control) Developer Guide

terminalNo: dependent, int, terminal No., starts from 1. It is


required for information release system integration. The No. is
generated after information release terminal is registered to the
central management server, and you can call "/ISAPI/Publish/
TerminalMgr/terminalSearch" by POST method to get the generated
terminal No.
Request None.
Response Succeeded: JSON_UserInfoDetailDeleteProcess
Failed: JSON_ResponseStatus

Remarks
• When starting deleting all person information (including linked cards, fingerprints, and faces)
and permissions by employee No., this URI will be repeatedly called to get the deleting status
until "success" or "failed" is returned by the parameter status in the message
JSON_UserInfoDetailDeleteProcess .
• This URI is not supported by integration of information release system.

A.217 /ISAPI/AccessControl/UserRightHolidayPlanCfg/capabilities?
format=json
Get the holiday schedule configuration capability of the access permission control.

Request URI Definition


Table A-266 GET /ISAPI/AccessControl/UserRightHolidayPlanCfg/capabilities?format=json
Method GET
Description Get the holiday schedule configuration capability of the access
permission control.
Query format: determine the format of request or response message.
terminalNo: dependent, int, terminal No., starts from 1. It is required
for information release system integration. The No. is generated after
information release terminal is registered to the central management
server, and you can call "/ISAPI/Publish/TerminalMgr/
terminalSearch" by POST method to get the generated terminal No.
Request None.
Response Succeeded: JSON_Cap_UserRightHolidayPlanCfg
Failed: JSON_ResponseStatus

205
Intelligent Security API (Person-Based Access Control) Developer Guide

Remarks
This URI is not supported by integration of information release system.

A.218 /ISAPI/AccessControl/UserRightWeekPlanCfg/capabilities?
format=json
Get the week schedule configuration capability of the access permission control.

Request URI Definition


Table A-267 GET /ISAPI/AccessControl/UserRightWeekPlanCfg/capabilities?format=json
Method GET
Description Get the week schedule configuration capability of the access
permission control.
Query format: determine the format of request or response message.
terminalNo: dependent, int, terminal No., starts from 1. It is
required for information release system integration. The No. is
generated after information release terminal is registered to the
central management server, and you can call "/ISAPI/Publish/
TerminalMgr/terminalSearch" by POST method to get the
generated terminal No.
Request None.
Response Succeeded: JSON_Cap_UserRightWeekPlanCfg
Failed: JSON_ResponseStatus

Remarks
This URI is not supported by integration of information release system.

A.219 /ISAPI/AccessControl/UserRightHolidayGroupCfg/<GroupNo>?
format=json
Operations about the holiday group configuration of the access permission control schedule.

206
Intelligent Security API (Person-Based Access Control) Developer Guide

Request URI Definition


Table A-268 GET /ISAPI/AccessControl/UserRightHolidayGroupCfg/<GroupNo>?format=json
Method GET
Description Get the holiday group configuration parameters of the access
permission control schedule.
Query format: determine the format of request or response message.
terminalNo: dependent, int, terminal No., starts from 1. It is required
for information release system integration. The No. is generated after
information release terminal is registered to the central management
server, and you can call "/ISAPI/Publish/TerminalMgr/terminalSearch"
by POST method to get the generated terminal No.
<GroupNo>: int, holiday group ID, start from 1.
Request None.
Response Succeeded: JSON_UserRightHolidayGroupCfg
Failed: JSON_ResponseStatus
Table A-269 PUT /ISAPI/AccessControl/UserRightHolidayGroupCfg/<GroupNo>?format=json
Method PUT
Description Set the holiday group parameters of the access permission control
schedule.
Query format: determine the format of request or response message.
<GroupNo>: int, holiday group ID, start from 1.
Request JSON_UserRightHolidayGroupCfg
Response JSON_ResponseStatus

Remarks
• The <GroupNo> in the request URI refers to the holiday group No. which starts from 1, and you
can get the maximum number of the holiday groups supported by the device from the holiday
group configuration capability of the access permission control schedule
( JSON_Cap_UserRightHolidayGroupCfg ).
• This URI is not supported by integration of information release system.

A.220 /ISAPI/AccessControl/UserRightHolidayGroupCfg/capabilities?
format=json
Get the holiday group configuration capability of the access permission control schedule.

207
Intelligent Security API (Person-Based Access Control) Developer Guide

Request URI Definition


Table A-270 GET /ISAPI/AccessControl/UserRightHolidayGroupCfg/capabilities?format=json
Method GET
Description Get the holiday group configuration capability of the access
permission control schedule.
Query format: determine the format of request or response message.
terminalNo: dependent, int, terminal No., starts from 1. It is required
for information release system integration. The No. is generated after
information release terminal is registered to the central management
server, and you can call "/ISAPI/Publish/TerminalMgr/terminalSearch"
by POST method to get the generated terminal No.
Request None.
Response Succeeded: JSON_Cap_UserRightHolidayGroupCfg
Failed: JSON_ResponseStatus

Remarks
This URI is not supported by integration of information release system.

A.221 /ISAPI/AccessControl/UserRightHolidayPlanCfg/<PlanNo>?
format=json
Operations about the holiday schedule configuration of the access permission control.

Request URI Definition


Table A-271 GET /ISAPI/AccessControl/UserRightHolidayPlanCfg/<PlanNo>?format=json
Method GET
Description Get the holiday schedule configuration parameters of the access
permission control.
Query format: determine the format of request or response message.
terminalNo: dependent, int, terminal No., starts from 1. It is required
for information release system integration. The No. is generated after
information release terminal is registered to the central management
server, and you can call "/ISAPI/Publish/TerminalMgr/terminalSearch"
by POST method to get the generated terminal No.
<PlanNo>: int, holiday schedule ID.

208
Intelligent Security API (Person-Based Access Control) Developer Guide

Request None.
Response Succeeded: JSON_UserRightHolidayPlanCfg
Failed: JSON_ResponseStatus
Table A-272 PUT /ISAPI/AccessControl/UserRightHolidayPlanCfg/<PlanNo>?format=json
Method PUT
Description Set the holiday schedule parameters of the access permission control.
Query format: determine the format of request or response message.
<PlanNo>: int, holiday schedule ID.
Request JSON_UserRightHolidayPlanCfg
Response JSON_ResponseStatus

Remarks
• The <PlanNo> in the request URI refers to the holiday schedule No. which starts from 1, and you
can get the maximum number of the holiday schedules supported by the device from the
holiday schedule configuration capability of the access permission control
( JSON_Cap_UserRightHolidayPlanCfg ).
• This URI is not supported by integration of information release system.

A.222 /ISAPI/AccessControl/UserRightPlanTemplate/<TemplateNo>?
format=json
Operations about the schedule template configuration of the access permission control.

Request URI Definition


Table A-273 GET /ISAPI/AccessControl/UserRightPlanTemplate/<TemplateNo>?format=json
Method GET
Description Get the schedule template configuration parameters of the access
permission control.
Query format: determine the format of request or response message.
terminalNo: dependent, int, terminal No., starts from 1. It is required
for information release system integration. The No. is generated after
information release terminal is registered to the central management
server, and you can call "/ISAPI/Publish/TerminalMgr/terminalSearch"
by POST method to get the generated terminal No.
<TemplateNo>: int, schedule template ID, start from 1.

209
Intelligent Security API (Person-Based Access Control) Developer Guide

Request None.
Response Succeeded: JSON_UserRightPlanTemplate
Failed: JSON_ResponseStatus
Table A-274 PUT /ISAPI/AccessControl/UserRightPlanTemplate/<TemplateNo>?format=json
Method PUT
Description Set the schedule template parameters of the access permission
control.
Query format: determine the format of request or response message.
<TemplateNo>: int, schedule template ID, start from 1.
Request JSON_UserRightPlanTemplate
Response JSON_ResponseStatus

Remarks
• The <TemplateNo> in the request URI refers to the schedule template No. which starts from 1,
and you can get the maximum number of the templates supported by the device from the
schedule template configuration capability of the access permission control
( JSON_Cap_UserRightPlanTemplate ).
• This URI is not supported by integration of information release system.

A.223 /ISAPI/AccessControl/UserRightPlanTemplate/capabilities?
format=json
Get the schedule template configuration capability of the access permission control.

Request URI Definition


Table A-275 GET /ISAPI/AccessControl/UserRightPlanTemplate/capabilities?format=json
Method GET
Description Get the schedule template configuration capability of the access
permission control.
Query format: determine the format of request or response message.
terminalNo: dependent, int, terminal No., starts from 1. It is required
for information release system integration. The No. is generated after
information release terminal is registered to the central management
server, and you can call "/ISAPI/Publish/TerminalMgr/terminalSearch"
by POST method to get the generated terminal No.

210
Intelligent Security API (Person-Based Access Control) Developer Guide

Request None.
Response Succeeded: JSON_Cap_UserRightPlanTemplate
Failed: JSON_ResponseStatus

Remarks
This URI is not supported by integration of information release system.

A.224 /ISAPI/AccessControl/UserRightWeekPlanCfg/<PlanNo>?
format=json
Operations about the week schedule configuration of the access permission control.

Request URI Definition


Table A-276 GET /ISAPI/AccessControl/UserRightWeekPlanCfg/<PlanNo>?format=json
Method GET
Description Get the week schedule configuration parameters of the access
permission control.
Query format: determine the format of request or response message.
terminalNo: dependent, int, terminal No., starts from 1. It is required
for information release system integration. The No. is generated after
information release terminal is registered to the central management
server, and you can call "/ISAPI/Publish/TerminalMgr/terminalSearch"
by POST method to get the generated terminal No.
<PlanNo>: int, week schedule ID.
Request None.
Response Succeeded: JSON_UserRightWeekPlanCfg
Failed: JSON_ResponseStatus
Table A-277 PUT /ISAPI/AccessControl/UserRightWeekPlanCfg/<PlanNo>?format=json
Method PUT
Description Set the week schedule parameters of the access permission control.
Query format: determine the format of request or response message.
<PlanNo>: int, week schedule ID.
Request JSON_UserRightWeekPlanCfg
Response JSON_ResponseStatus

211
Intelligent Security API (Person-Based Access Control) Developer Guide

Remarks
• The <PlanNo> in the request URI refers to the week schedule No. which starts from 1, and you
can get the maximum number of the week schedules supported by the device from the week
schedule configuration capability of the access permission control
( JSON_Cap_UserRightWeekPlanCfg ).
• This URI is not supported by integration of information release system.

A.225 /ISAPI/AccessControl/Verification/ttsText/capabilities?
format=json
Get the text configuration capability of the audio prompt for the authentication results.

Request URI Definition


Table A-278 GET /ISAPI/AccessControl/Verification/ttsText/capabilities?format=json
Method GET
Description Get the text configuration capability of the audio prompt for the
authentication results.
Query format: determine the format of request or response message.
Request None.
Response Succeeded: JSON_TTSTextCap
Failed: JSON_ResponseStatus

A.226 /ISAPI/AccessControl/Verification/ttsText?format=json
Get or set the text parameters of the audio prompt for the authentication results.

Request URI Definition


Table A-279 GET /ISAPI/AccessControl/Verification/ttsText?format=json
Method GET
Description Get the text parameters of the audio prompt for the authentication
results.
Query format: determine the format of request or response message.
Request None.
Response Succeeded: JSON_TTSText

212
Intelligent Security API (Person-Based Access Control) Developer Guide

Failed: JSON_ResponseStatus
Table A-280 PUT /ISAPI/AccessControl/Verification/ttsText?format=json
Method PUT
Description Set the text parameters of the audio prompt for the authentication
results.
Query format: determine the format of request or response message.
Request JSON_TTSText
Response JSON_ResponseStatus

Remarks
The configured text will be converted to a audio prompt.

A.227 /ISAPI/AccessControl/VerifyHolidayGroupCfg/<GroupNo>?
format=json
Operations about the holiday group configuration of the control schedule of the card reader
authentication mode.

Request URI Definition


Table A-281 GET /ISAPI/AccessControl/VerifyHolidayGroupCfg/<GroupNo>?format=json
Method GET
Description Get the holiday group configuration parameters of the control schedule
of the card reader authentication mode.
Query format: determine the format of request or response message.
Request None.
Response Succeeded: JSON_VerifyHolidayGroupCfg
Failed: JSON_ResponseStatus
Table A-282 PUT /ISAPI/AccessControl/VerifyHolidayGroupCfg/<GroupNo>?format=json
Method PUT
Description Set the holiday group parameters of the control schedule of the card
reader authentication mode.
Query format: determine the format of request or response message.

213
Intelligent Security API (Person-Based Access Control) Developer Guide

Request JSON_VerifyHolidayGroupCfg
Response JSON_ResponseStatus

Remarks
The <GroupNo> in the request URI refers to the holiday group No. which starts from 1, and you can
get the maximum number of the holiday groups supported by the device from the holiday group
configuration capability of the control schedule of the card reader authentication mode
( JSON_Cap_VerifyHolidayGroupCfg ).

A.228 /ISAPI/AccessControl/VerifyHolidayGroupCfg/capabilities?
format=json
Get the holiday group configuration capability of the control schedule of the card reader
authentication mode.

Request URI Definition


Table A-283 GET /ISAPI/AccessControl/VerifyHolidayGroupCfg/capabilities?format=json
Method GET
Description Get the holiday group configuration capability of the control schedule
of the card reader authentication mode.
Query format: determine the format of request or response message.
Request None.
Response Succeeded: JSON_Cap_VerifyHolidayGroupCfg
Failed: JSON_ResponseStatus

A.229 /ISAPI/AccessControl/VerifyHolidayPlanCfg/<PlanNo>?
format=json
Operations about the holiday schedule configuration of the card reader authentication mode.

Request URI Definition


Table A-284 GET /ISAPI/AccessControl/VerifyHolidayPlanCfg/<PlanNo>?format=json
Method GET
Description Get the holiday schedule configuration parameters of the card
reader authentication mode.

214
Intelligent Security API (Person-Based Access Control) Developer Guide

Query format: determine the format of request or response message.


Request None.
Response Succeeded: JSON_VerifyHolidayPlanCfg
Failed: JSON_ResponseStatus
Table A-285 PUT /ISAPI/AccessControl/VerifyHolidayPlanCfg/<PlanNo>?format=json
Method PUT
Description Set the holiday schedule parameters of the card reader
authentication mode.
Query format: determine the format of request or response message.
Request JSON_VerifyHolidayPlanCfg
Response JSON_ResponseStatus

Remarks
The <PlanNo> in the request URI refers to the holiday schedule No. which starts from 1, and you
can get the maximum number of the holiday schedules supported by the device from the holiday
schedule configuration capability of the card reader authentication mode
( JSON_Cap_VerifyHolidayPlanCfg ).

A.230 /ISAPI/AccessControl/VerifyHolidayPlanCfg/capabilities?
format=json
Get the holiday schedule configuration capability of the card reader authentication mode.

Request URI Definition


Table A-286 GET /ISAPI/AccessControl/VerifyHolidayPlanCfg/capabilities?format=json
Method GET
Description Get the holiday schedule configuration capability of the card reader
authentication mode.
Query format: determine the format of request or response message.
Request None.
Response Succeeded: JSON_Cap_VerifyHolidayPlanCfg
Failed: JSON_ResponseStatus

215
Intelligent Security API (Person-Based Access Control) Developer Guide

A.231 /ISAPI/AccessControl/VerifyPlanTemplate/<TemplateNo>?
format=json
Operations about the schedule template configuration of the card reader authentication mode.

Request URI Definition


Table A-287 GET /ISAPI/AccessControl/VerifyPlanTemplate/<TemplateNo>?format=json
Method GET
Description Get the schedule template configuration parameters of the card reader
authentication mode.
Query format: determine the format of request or response message.
Request None.
Response Succeeded: JSON_VerifyPlanTemplate
Failed: JSON_ResponseStatus
Table A-288 PUT /ISAPI/AccessControl/VerifyPlanTemplate/<TemplateNo>?format=json
Method PUT
Description Set the schedule template parameters of the card reader
authentication mode.
Query format: determine the format of request or response message.
Request JSON_VerifyPlanTemplate
Response JSON_ResponseStatus

Remarks
The <TemplateNo> in the request URI refers to the schedule template No. which starts from 1, and
you can get the maximum number of the templates supported by the device from the schedule
template configuration capability of the card reader authentication mode
( JSON_Cap_VerifyPlanTemplate ).

A.232 /ISAPI/AccessControl/VerifyPlanTemplate/capabilities?
format=json
Get the schedule template configuration capability of the card reader authentication mode.

216
Intelligent Security API (Person-Based Access Control) Developer Guide

Request URI Definition


Table A-289 GET /ISAPI/AccessControl/VerifyPlanTemplate/capabilities?format=json
Method GET
Description Get the schedule template configuration capability of the card reader
authentication mode.
Query format: determine the format of request or response message.
Request None.
Response Succeeded: JSON_Cap_VerifyPlanTemplate
Failed: JSON_ResponseStatus

A.233 /ISAPI/AccessControl/VerifyWeekPlanCfg/<PlanNo>?format=json
Operations about the week schedule configuration of the card reader authentication mode.

Request URI Definition


Table A-290 GET /ISAPI/AccessControl/VerifyPlanTemplate/capabilities?format=json
Method GET
Description Get the week schedule configuration parameters of the card reader
authentication mode.
Query format: determine the format of request or response message.
Request None.
Response Succeeded: JSON_VerifyWeekPlanCfg
Failed: JSON_ResponseStatus
Table A-291 PUT /ISAPI/AccessControl/VerifyPlanTemplate/capabilities?format=json
Method PUT
Description Set the week schedule parameters of the card reader authentication
mode.
Query format: determine the format of request or response message.
Request JSON_VerifyWeekPlanCfg
Response JSON_ResponseStatus

217
Intelligent Security API (Person-Based Access Control) Developer Guide

Remarks
The <PlanNo> in the request URI refers to the week schedule No. which starts from 1, and you can
get the maximum number of the week schedules supported by the device from the week schedule
configuration capability of the card reader authentication mode ( JSON_Cap_VerifyWeekPlanCfg ).

A.234 /ISAPI/AccessControl/VerifyWeekPlanCfg/capabilities?
format=json
Get the week schedule configuration capability of the card reader authentication mode.

Request URI Definition


Table A-292 GET /ISAPI/AccessControl/VerifyWeekPlanCfg/capabilities?format=json
Method GET
Description Get the week schedule configuration capability of the card reader
authentication mode.
Query format: determine the format of request or response message.
Request None.
Response Succeeded: JSON_Cap_VerifyWeekPlanCfg
Failed: JSON_ResponseStatus

A.235 /ISAPI/AccessControl/WiegandCfg/capabilities
Get the Wiegand configuration capability.

Request URI Definition


Table A-293 GET /ISAPI/AccessControl/WiegandCfg/capabilities
Method GET
Description Get the Wiegand configuration capability.
Query None.
Request None.
Response Succeeded: XML_Cap_WiegandCfg
Failed: XML_ResponseStatus

218
Intelligent Security API (Person-Based Access Control) Developer Guide

A.236 /ISAPI/AccessControl/WiegandCfg/wiegandNo/<ID>
Get or set Wiegand parameters.

Request URI Definition


Table A-294 GET /ISAPI/AccessControl/WiegandCfg/wiegandNo/<ID>
Method GET
Description Get Wiegand parameters.
Query None.
Request None.
Response Succeeded: XML_WiegandCfg
Failed: XML_ResponseStatus
Table A-295 PUT /ISAPI/AccessControl/WiegandCfg/wiegandNo/<ID>
Method PUT
Description Set Wiegand parameters.
Query None.
Request XML_WiegandCfg
Response XML_ResponseStatus

A.237 /ISAPI/AccessControl/WiegandRuleCfg
Operations about the configuration of the custom Wiegand rule.

Request URI Definition


Table A-296 GET /ISAPI/AccessControl/WiegandRuleCfg
Method GET
Description Get the configuration parameters of the custom Wiegand rule.
Query None.
Request None.
Response Succeeded: XML_WiegandRuleCfg
Failed: XML_ResponseStatus

219
Intelligent Security API (Person-Based Access Control) Developer Guide

Table A-297 PUT /ISAPI/AccessControl/WiegandRuleCfg


Method PUT
Description Set the parameters of the custom Wiegand rule.
Query None.
Request XML_WiegandRuleCfg
Response XML_ResponseStatus

A.238 /ISAPI/AccessControl/WiegandRuleCfg/capabilities
Get the configuration capability of the custom Wiegand rule.

Request URI Definition


Table A-298 GET /ISAPI/AccessControl/WiegandRuleCfg/capabilities
Method GET
Description Get the configuration capability of the custom Wiegand rule.
Query None.
Request None.
Response Succeeded: XML_Cap_WiegandRuleCfg
Failed: XML_ResponseStatus

A.239 /ISAPI/Event/notification/alertStream
Get the uploaded heartbeat or alarm/event information.

Request URI Definition


Table A-299 GET /ISAPI/Event/notification/alertStream
Method GET
Description Get the heartbeat or uploaded alarm/event information.
Query None.
Request None.
Response Option 1: XML_EventNotificationAlert_AlarmEventInfo or
XML_EventNotificationAlert_HeartbeatInfo
Option 2: JSON_EventNotificationAlert_Alarm/EventInfo

220
Intelligent Security API (Person-Based Access Control) Developer Guide

Note
The messages here only show the format of alarm/event
information to be uploaded. For details, refer to the corresponding
alarm/event configuration chapters.

Remarks
• After calling this URI, a persistent connection is set up between the device and the platform, and
the alarm or event information will be uploaded from device continuously once the alarm is
triggered or event occurred.
• You can check if the XML response message is the heartbeat information according to the nodes
<eventType> and <eventState>. If the values of these two node are "videoloss" and "inactive",
respectively, the returned message is the heartbeat information.

A.240 /ISAPI/Event/notification/httpHosts
Get or set parameters of all HTTP listening servers, add a HTTP listening server, and delete all HTTP
listening servers.

Request URI Definition


Table A-300 GET /ISAPI/Event/notification/httpHosts
Method GET
Description Get parameters of all HTTP listening servers.
Query security: the version No. of encryption scheme. When security does
not exist, it indicates that the data is not encrypted; when security is
1, it indicates that the nodes of sensitive information in the message
are encrypted in AES128 CBC mode; when security is 2, it indicates
that the nodes of sensitive information in the message are encrypted
in AES256 CBC mode.
Request None
Response Succeeded: XML_HttpHostNotificationList
Failed: XML_ResponseStatus
Table A-301 PUT /ISAPI/Event/notification/httpHosts
Method PUT
Description Set parameters of all HTTP listening servers.
Query security: the version No. of encryption scheme. When security does
not exist, it indicates that the data is not encrypted; when security is

221
Intelligent Security API (Person-Based Access Control) Developer Guide

1, it indicates that the nodes of sensitive information in the message


are encrypted in AES128 CBC mode; when security is 2, it indicates
that the nodes of sensitive information in the message are encrypted
in AES256 CBC mode.
Request XML_HttpHostNotificationList
Response XML_ResponseStatus
Table A-302 POST /ISAPI/Event/notification/httpHosts
Method POST
Description Add a HTTP listening server.
Query security: the version No. of encryption scheme. When security does
not exist, it indicates that the data is not encrypted; when security is
1, it indicates that the nodes of sensitive information in the message
are encrypted in AES128 CBC mode; when security is 2, it indicates
that the nodes of sensitive information in the message are encrypted
in AES256 CBC mode.
Request XML_HttpHostNotification
Response XML_ResponseStatus
Table A-303 DELETE /ISAPI/Event/notification/httpHosts
Method DELETE
Description Delete all HTTP listening servers.
Query None
Request None
Response XML_ResponseStatus

A.241 /ISAPI/Event/notification/httpHosts/<ID>/test
Check whether the HTTP listening server is working normally.

Request URI Definition


Table A-304 POST /ISAPI/Event/notification/httpHosts/<ID>/test
Method POST
Description Check whether the HTTP listening server is working normally.
Query None

222
Intelligent Security API (Person-Based Access Control) Developer Guide

Request XML_HttpHostNotification
Response Succeeded: XML_HttpHostTestResult
Failed: XML_ResponseStatus

Remarks
The <ID> in the request URI refers to the HTTP listening server ID.

A.242 /ISAPI/Event/notification/httpHosts/capabilities
Get the configuration capabilities of all HTTP listening servers.

Request URI Definition


Table A-305 GET /ISAPI/Event/notification/httpHosts/capabilities
Method GET
Description Get the configuration capabilities of all HTTP listening servers.
Query None
Request None
Response Succeeded: XML_HttpHostNotificationCap
Failed: XML_ResponseStatus

A.243 /ISAPI/Intelligent/FDLib/capabilities?format=json
Get face picture library capability.

Request URI Definition


Table A-306 GET /ISAPI/Intelligent/FDLib/capabilities?format=json
Method GET
Description Get face picture library capability.
Query format: determine the format of request or response message.
terminalNo: int, terminal No., starts from 1.
Request None.
Response Succeeded: JSON_FPLibCap
Failed: JSON_ResponseStatus

223
Intelligent Security API (Person-Based Access Control) Developer Guide

A.244 /ISAPI/Intelligent/FDLib/Count?format=json
Get the total number of face records in all face picture libraries.

Request URI Definition


Table A-307 GET /ISAPI/Intelligent/FDLib/Count?format=json
Method GET
Description Get the total number of face records in all face picture libraries.
Query format: determine the format of request or response message.
terminalNo: dependent, int, terminal No., starts from 1. It is required
for information release system integration. The No. is generated after
information release terminal is registered to the central management
server, and you can call "/ISAPI/Publish/TerminalMgr/
terminalSearch" by POST method to get the generated terminal No.
Request None
Response Succeeded: JSON_FaceRecordNumInAllFPLib
Failed: JSON_ResponseStatus

Remarks
This URI is not supported by integration of information release system.

A.245 /ISAPI/Intelligent/FDLib/Count?
format=json&FDID=&faceLibType=
Get the number of face records in a specific face picture library.

Request URI Definition


Table A-308 GET /ISAPI/Intelligent/FDLib/Count?format=json&FDID=&faceLibType=
Method GET
Description Get the number of face records in a specific face picture library.
Query format: determine the format of request or response message.
FDID: face picture library ID.
faceLibType: face picture library type, which can equal to "blackFD"
(list library) and "staticFD" (static library).

224
Intelligent Security API (Person-Based Access Control) Developer Guide

terminalNo: dependent, int, terminal No., starts from 1. It is required


for information release system integration. The No. is generated after
information release terminal is registered to the central management
server, and you can call "/ISAPI/Publish/TerminalMgr/
terminalSearch" by POST method to get the generated terminal No.
Request None
Response Succeeded: JSON_FaceRecordNumInOneFPLib
Failed: JSON_ResponseStatus

Remarks
• In the URI, to specify a face picture library, both the library ID (FDID) and library type
(faceLibType) are required, e.g., /ISAPI/Intelligent/FDLib/Count?
format=json&FDID=1223344455566788&faceLibType=blackFD.
• This URI is not supported by integration of information release system.

A.246 /ISAPI/Intelligent/FDLib/FaceDataRecord?format=json
Add the face record (face picture and person information) to a face picture library or multiple face
picture libraries.

Request URI Definition


Table A-309 POST /ISAPI/Intelligent/FDLib/FaceDataRecord?format=json
Method POST
Description Add a face record (including face picture and person information) to
the face picture library.
Query format: determine the format of request or response message.
Request JSON_AddFaceRecordCond
Response Succeeded: JSON_AddFaceRecordResult
Failed: JSON_ResponseStatus

Remarks
• The face picture in the face record supports URL and binary data format. If the JSON message
about adding condition parameters ( JSON_AddFaceRecordCond ) contains node "faceURL", the
picture should be uploaded in URL format; otherwise, the picture should be uploaded in binary
data format.
• Currently, the picture URL refers to the URL generated when the picture is stored in the storage
server of central management server. Before using picture URL, you should generate the URL via

225
Intelligent Security API (Person-Based Access Control) Developer Guide

the cloud storage server of storage service component of ISUP (Intelligent Security Uplink
Protocol).

A.247 /ISAPI/Intelligent/FDLib/FDModify?format=json
Edit face records in the face picture library in a batch.

Request URI Definition


Table A-310 PUT /ISAPI/Intelligent/FDLib/FDModify?format=json
Method PUT
Description Edit face records in the face picture library in a batch.
Query format: determine the format of request or response message.
Request JSON_BatchEditFaceRecord
Response JSON_ResponseStatus

A.248 /ISAPI/Intelligent/FDLib/FDSearch/Delete?
format=json&FDID=&faceLibType=
Delete the face record(s) in a specific face picture library.

Request URI Definition


Table A-311 PUT /ISAPI/Intelligent/FDLib/FDSearch/Delete?format=json&FDID=&faceLibType=
Method PUT
Description Delete the face record(s) in the face picture library.
Query format: determine the format of request or response message.
FDID: face picture library ID
faceLibType: face picture library type
Request JSON_DelFaceRecord
Response JSON_ResponseStatus

Remarks
In the URI, to specify a face picture library, both the library ID (FDID) and library type (faceLibType)
are required.

226
Intelligent Security API (Person-Based Access Control) Developer Guide

A.249 /ISAPI/Intelligent/FDLib/FDSearch?format=json
Search for the face records in the face picture library.

Request URI Definition


Table A-312 POST /ISAPI/Intelligent/FDLib/FDSearch?format=json
Method POST
Description Search for the face records in the a face picture library or multiple
face picture libraries. Fuzzy search is also supported.
Query format: determine the format of request or response message.
terminalNo: int, terminal No., starts from 1.
Request JSON_SearchFaceRecordCond
Response Succeeded: JSON_SearchFaceRecordResult
Failed: JSON_ResponseStatus

A.250 /ISAPI/Intelligent/FDLib/FDSearch?
format=json&FDID=&FPID=&faceLibType=
Edit a face record in a specific face picture library.

Request URI Definition


Table A-313 PUT /ISAPI/Intelligent/FDLib/FDSearch?format=json&FDID=&FPID=&faceLibType=
Method PUT
Description Edit a face record in a specific face picture library.
Query format: determine the format of request or response message.
FDID: face picture library ID
FPID: face record ID
faceLibType: face picture library type, which can be "blackFD" (list
library) or "staticFD" (static library).
Request JSON_EditFaceRecord
Response JSON_ResponseStatus

Remarks
In the URI, to specify a face picture library, both the library ID (FDID) and library type (faceLibType)
are required.

227
Intelligent Security API (Person-Based Access Control) Developer Guide

A.251 /ISAPI/Intelligent/FDLib/FDSetUp?format=json
Set the face record (including face picture, person information, etc.) in the face picture library.

Request URI Definition


Table A-314 PUT /ISAPI/Intelligent/FDLib/FDSetUp?format=json
Method PUT
Description Set the face record (including face picture, person information, etc.)
in the face picture library.
Query format: determine the format of request or response message.
Request JSON_SetFaceRecord
Response JSON_ResponseStatus

Remarks
• If the face picture with the employee No. (person ID) does not exist, the face record will be
added.
• If the face picture with the employee No. (person ID) exists, the face record will be overwritten.
• When deleting the face record, the faceLibType, FDID, FPID, and deleteFP in the request
message JSON_SetFaceRecord should be configured, and the success response message will be
returned no matter whether deleting succeeded or not.
• The employee No. is required.

A.252 /ISAPI/Intelligent/FDLib?format=json
Operations about the face picture library.

Request URI Definition


Table A-315 POST /ISAPI/Intelligent/FDLib?format=json
Method POST
Description Create a face picture library
Query format: determine the format of request or response message.
terminalNo: dependent, int, terminal No., starts from 1. It is required
for information release system integration. The No. is generated after
information release terminal is registered to the central management
server, and you can call "/ISAPI/Publish/TerminalMgr/
terminalSearch" by POST method to get the generated terminal No.

228
Intelligent Security API (Person-Based Access Control) Developer Guide

Request JSON_CreateFPLibCond
Response Succeeded: JSON_CreateFPLibResult
Failed: JSON_ResponseStatus
Table A-316 GET /ISAPI/Intelligent/FDLib?format=json
Method GET
Description Get the information, including library ID, library type, name, and
custom information, of all face picture libraries.
Query format: determine the format of request or response message.
terminalNo: dependent, int, terminal No., starts from 1. It is required
for information release system integration. The No. is generated after
information release terminal is registered to the central management
server, and you can call "/ISAPI/Publish/TerminalMgr/
terminalSearch" by POST method to get the generated terminal No.
Request None
Response Succeeded: JSON_FPLibListInfo
Failed: JSON_ResponseStatus
Table A-317 DELETE /ISAPI/Intelligent/FDLib?format=json
Method DELETE
Description Delete all face picture libraries.
Query format: determine the format of request or response message.
terminalNo: dependent, int, terminal No., starts from 1. It is required
for information release system integration. The No. is generated after
information release terminal is registered to the central management
server, and you can call "/ISAPI/Publish/TerminalMgr/
terminalSearch" by POST method to get the generated terminal No.
Request None
Response JSON_ResponseStatus

Remarks
• After a face picture library is created, the face picture library ID will be returned. Each face
picture library ID of the same library type is unique.
• The POST and DELETE operation methods are not supported by integration of information
release system.

229
Intelligent Security API (Person-Based Access Control) Developer Guide

A.253 /ISAPI/Intelligent/FDLib?format=json&FDID=&faceLibType=
Operations about the management of a specific face picture library.

Request URI Definition


Table A-318 GET /ISAPI/Intelligent/FDLib?format=json&FDID=&faceLibType=
Method GET
Description Get the information, including library ID, library type, name, and
custom information, of a specific face picture library.
Query format: determine the format of request or response message.
FDID: face picture library ID.
faceLibType: face picture library type.
terminalNo: dependent, int, terminal No., starts from 1. It is required
for information release system integration. The No. is generated after
information release terminal is registered to the central management
server, and you can call "/ISAPI/Publish/TerminalMgr/
terminalSearch" by POST method to get the generated terminal No.
Request None.
Response Succeeded: JSON_SingleFPLibInfo
Failed: JSON_ResponseStatus
Table A-319 PUT /ISAPI/Intelligent/FDLib?format=json&FDID=&faceLibType=
Method PUT
Description Edit the information of a specific face picture library information,
including name and custom information.
Query format: determine the format of request or response message.
FDID: face picture library ID
faceLibType: face picture library type
terminalNo: dependent, int, terminal No., starts from 1. It is required
for information release system integration. The No. is generated after
information release terminal is registered to the central management
server, and you can call "/ISAPI/Publish/TerminalMgr/
terminalSearch" by POST method to get the generated terminal No.
Request JSON_EditFPlibInfo
Response JSON_ResponseStatus

230
Intelligent Security API (Person-Based Access Control) Developer Guide

Table A-320 DELETE /ISAPI/Intelligent/FDLib?format=json&FDID=&faceLibType=


Method DELETE
Description Delete a specific face picture library.
Query format: determine the format of request or response message.
FDID: face picture library ID
faceLibType: face picture library type
terminalNo: dependent, int, terminal No., starts from 1. It is required
for information release system integration. The No. is generated after
information release terminal is registered to the central management
server, and you can call "/ISAPI/Publish/TerminalMgr/
terminalSearch" by POST method to get the generated terminal No.
Request None.
Response JSON_ResponseStatus

Remarks
• In the URI, to specify a face picture library, both the library ID (FDID) and library type
(faceLibType) are required.
• This URI is not supported by integration of information release system.

A.254 /ISAPI/System/capabilities
Get device capability.

Request URI Definition


Table A-321 GET /ISAPI/System/capabilities
Method GET
Description Get device capability.
Query None
Request None.
Response Succeeded: XML_DeviceCap
Failed: XML_ResponseStatus

A.255 /ISAPI/System/PictureServer/capabilities?format=json
Get the picture storage server capability.

231
Intelligent Security API (Person-Based Access Control) Developer Guide

Request URI Definition


Table A-322 GET /ISAPI/System/PictureServer/capabilities?format=json
Method GET
Description Get the picture storage server capability.
Query format: determine the format of request or response message.
Request None.
Response Succeeded: JSON_Cap_PictureServerInformation
Failed: JSON_ResponseStatus

A.256 /ISAPI/System/PictureServer?format=json
Operations about the picture storage server configuration parameters.

Request URI Definition


Table A-323 GET /ISAPI/System/PictureServer?format=json
Method GET
Description Get the picture storage server parameters.
Query format: determine the format of request or response message.
security: the version No. of encryption scheme. When security does
not exist, it indicates that the data is not encrypted; when security is
1, it indicates that the nodes of sensitive information in the message
are encrypted in AES128 CBC mode; when security is 2, it indicates
that the nodes of sensitive information in the message are encrypted
in AES256 CBC mode.
iv: the initialization vector, and it is required when security is 1 or 2.
Request None.
Response Succeeded: JSON_PictureServerInformation
Failed: JSON_ResponseStatus
Table A-324 PUT /ISAPI/System/PictureServer?format=json
Method PUT
Description Set the picture storage server parameters.
Query format: determine the format of request or response message.

232
Intelligent Security API (Person-Based Access Control) Developer Guide

security: the version No. of encryption scheme. When security does


not exist, it indicates that the data is not encrypted; when security is
1, it indicates that the nodes of sensitive information in the message
are encrypted in AES128 CBC mode; when security is 2, it indicates
that the nodes of sensitive information in the message are encrypted
in AES256 CBC mode.
iv: the initialization vector, and it is required when security is 1 or 2.
Request JSON_PictureServerInformation
Response JSON_ResponseStatus

A.257 http://<ipAddress>:<portNo>/<url>
HTTP listening sever sends alarm information to alarm center.

Request URL Definition


Table A-325 POST http://<ipAddress>:<portNo>/<url>
Method POST
Description HTTP listening sever sends alarm information to alarm center.
Query None
Request None
Response Succeeded: XML_EventNotificationAlert_AlarmEventInfo or
JSON_EventNotificationAlert_Alarm/EventInfo
Failed: XML_ResponseStatus

Remarks
• The <ipAddress> in the request URL refers to the IP address or domain name of HTTP listening
server, the <portNo> is the port No. of HTTP listening server, and the <url> represents the
streaming URL, which is configured via the HTTP listening server.
• The default port No. is 80, so the request URL without port No. is also valid.

233
Intelligent Security API (Person-Based Access Control) Developer Guide

Appendix B. Appendixes

B.1 Request and Response Messages

B.1.1 JSON Messages

JSON_AcsCfg
AcsCfg message in JSON format
{
"AcsCfg":{
"RS485Backup": ,
/*optional, boolean, whether to enable downstream RS-485 communication redundancy: "true"-yes, "false"-no*/
"showCapPic": ,
/*optional, boolean, whether to display the captured picture: "true"-yes, "false"-no*/
"showUserInfo": ,
/*optional, boolean, whether to display user information: "true"-yes, "false"-no*/
"overlayUserInfo": ,
/*optional, boolean, whether to overlay user information: "true"-yes, "false"-no*/
"voicePrompt": ,
/*optional, boolean, whether to enable audio announcement: "true"-yes, "false"-no*/
"uploadCapPic": ,
/*optional, boolean, whether to upload the picture from linked capture: "true"-yes, "false"-no*/
"saveCapPic": ,
/*optional, boolean, whether to save the captured picture: "true"-yes, "false"-no*/
"inputCardNo": ,
/*optional, boolean, whether to allow inputting card No. on keypad: "true"-yes, "false"-no*/
"enableWifiDetect": ,
/*optional, boolean, whether to enable Wi-Fi probe: "true"-yes, "false"-no*/
"enable3G4G": ,
/*optional, boolean, whether to enable 3G/4G: "true"-yes, "false"-no*/
"protocol":"",
/*optional, string, communication protocol type of the card reader: "Private"-private protocol, "OSDP"-OSDP
protocol*/
"showPicture": ,
/*optional, boolean, whether to display the authenticated picture: true-display, false-not display*/
"showEmployeeNo": ,
/*optional, boolean, whether to display the authenticated employee ID: true-display, false-not display*/
"showName": ,
/*optional, boolean, whether to display the authenticated name: true-display, false-not display*/
"thermalEnabled": true,
/*optional, boolean, whether to enable thermography: true-enable (default), false-disable*/
"thermalMode": true,
/*optional, boolean, whether to enable thermography-only mode: true-enable (only for thermography), false-disable
(default)*/

234
Intelligent Security API (Person-Based Access Control) Developer Guide

"thermalPictureEnabled": true,
/*optional, boolean, whether to enable uploading visible light pictures in thermography-only mode: true-enable, false-
disable (default). This field is used to control uploading captured pictures and visible light pictures*/
"thermalIp": "192.168.1.1",
/*optional, string, IP address of the thermography device. For access control devices, each device only requires one IP
address; for metal detector doors, this field does not need to be configured*/
"highestThermalThreshold": 37.3,
/*optional, float, upper limit of the temperature threshold which is accurate to one decimal place, unit: Celsius. The
default value of this field is 37.3 °C. This field is used to check whether to open the door when the temperature is
above the upper limit*/
"lowestThermalThreshold": ,
/*optional, float, lower limit of the temperature threshold which is accurate to one decimal place, unit: Celsius. This
field is used to check whether to open the door when the temperature is below the lower limit*/
"thermalDoorEnabled": false,
/*optional, boolean, whether to open the door when the temperature is above the upper limit
(highestThermalThreshold) or below the lower limit (lowestThermalThreshold) of the threshold: true-open the door,
false-not open the door (default)*/
"QRCodeEnabled": false,
/*optional, boolean, whether to enable QR code function: true-enable, false-disable (default)*/
"remoteCheckDoorEnabled": false,
/*optional, boolean, whether to enable controlling the door by remote verification: true-control, false-not control
(default)*/
"checkChannelType": "",
/*dependent, string, verification channel type: "Ezviz"-EZVIZ channel, "ISUP"-ISUP channel, "ISAPI"-ISAPI channel,
"PrivateSDK"-private SDK channel. This field is valid when remoteCheckDoorEnabled is true*/
"channelIp": ""
/*dependent, string, IP address of the verification channel. This field is valid when checkChannelType is
"PrivateSDK"*/
}
}

JSON_AcsEvent
AcsEvent message in JSON format
{
"AcsEvent":{
"searchID": "",
/*required, string type, search ID, which is used to confirm the upper-level platform or system. If the platform or the
system is the same one during two searching, the search history will be saved in the memory to speed up next
searching*/
"responseStatusStrg": "",
/*required, string, search status: "OK"-searching completed, "MORE"-searching for more results, "NO MATCH"-no
matched results*/
"numOfMatches": "",
/*required, integer, number of returned results*/
"totalMatches": "",
/*required, integer, total number of matched results*/
"InfoList": [{
/*optional, event details*/
"major": ,

235
Intelligent Security API (Person-Based Access Control) Developer Guide

/*required, integer, major alarm/event types (the type value should be transformed to the decimal number), see
Access Control Event Types for details*/
"minor": ,
/*required, integer, minor alarm/event types (the type value should be transformed to the decimal number), see
Access Control Event Types for details*/
"time": "",
/*required, string, time (UTC time), e.g., "2016-12-12T17:30:08+08:00"*/
"netUser": "",
/*optional, string, user name*/
"remoteHostAddr": "",
/*optional, string, remote host address*/
"cardNo": "",
/*optional, string, card No.*/
"cardType": ,
/*optional, integer, card types: 1-normal card, 2-disabled card, 3-blocklist card, 4-patrol card, 5-duress card, 6-super
card, 7-visitor card, 8-dismiss card*/
"name": "",
/*optional, string, person name*/
"whiteListNo": ,
/*optional, integer, allowlist No., which is between 1 and 8*/
"reportChannel": ,
/*optional, integer, channel type for uploading alarm/event: 1-for uploading arming information, 2-for uploading by
central group 1, 3-for uploading by central group 2*/
"cardReaderKind": ,
/*optional, integer, authentication unit type: 1-IC card reader, 2-ID card reader, 3-QR code scanner, 4-fingerprint
module*/
"cardReaderNo": ,
/*Optional, integer, authentication unit No.*/
"doorNo": ,
/*optional, integer, door or floor No.*/
"verifyNo": ,
/*optional, integer, multiple authentication No.*/
"alarmInNo": ,
/*optional, integer, alarm input No.*/
"alarmOutNo": ,
/*optional, integer, alarm output No.*/
"caseSensorNo": ,
/*optional, integer, event trigger No.*/
"RS485No": ,
/*optional, integer, RS-485 channel No.*/
"multiCardGroupNo": ,
/*optional, integer, group No.*/
"accessChannel": ,
/*optional, integer, swing barrier No.*/
"deviceNo": ,
/*optional, integer, device No.*/
"distractControlNo": ,
/*optional, integer, distributed controller No.*/
"employeeNoString": "",
/*optional, integer, employee No. (person ID)*/
"localControllerID": ,
/*optional, integer, distributed access controller No.: 0-access controller, 1 to 64-distributed access controller No.1 to

236
Intelligent Security API (Person-Based Access Control) Developer Guide

distributed access controller No.64*/


"InternetAccess": ,
/*optional, integer, network interface No.: 1-upstream network interface No.1, 2-upstream network interface No.2, 3-
downstream network interface No.1*/
"type": ,
/*optional, integer, zone type: 0-instant alarm zone, 1-24-hour alarm zone, 2-delayed zone, 3-internal zone, 4-key
zone, 5-fire alarm zone, 6-perimeter protection, 7-24-hour silent alarm zone, 8-24-hour auxiliary zone, 9-24-hour
shock alarm zone, 10-emergency door open alarm zone, 11-emergency door closed alarm zone, 255-none*/
"MACAddr": "",
/*optional, string, physical address*/
"swipeCardType": ,
/*optional, integer, card swiping types: 0-invalid, 1-QR code*/
"serialNo": ,
/*optional, integer, event serial No., which is used to judge whether the event loss occurred*/
"channelControllerID": ,
/*optional, integer, lane controller No.: 1-master lane controller, 2-slave lane controller*/
"channelControllerLampID": ,
/*optional, integer, light board No. of lane controller, which is between 1 and 255*/
"channelControllerIRAdaptorID": ,
/*optional, integer, IR adapter No. of lane controller, which is between 1 and 255*/
"channelControllerIREmitterID": ,
/*optional, integer, active infrared intrusion detector No. of lane controller, which is between 1 and 255*/
"userType": "",
/*optional, string, person type: "normal"-normal person (household), "visitor"-visitor, "blacklist"-person in blocklist,
"administrators"-administrator*/
"currentVerifyMode": "",
/*optional, string, authentication mode: "cardAndPw"-card+password, "card", "cardOrPw"-card or password, "fp"-
fingerprint, "fpAndPw"-fingerprint+password, "fpOrCard"-fingerprint or card, "fpAndCard"-fingerprint+card,
"fpAndCardAndPw"-fingerprint+card+password, "faceOrFpOrCardOrPw"-face or fingerprint or card or password,
"faceAndFp"-face+fingerprint, "faceAndPw"-face+password, "faceAndCard"-face+card, "face", "employeeNoAndPw"-
employee No.+password, "fpOrPw"-fingerprint or password, "employeeNoAndFp"-employee No.+fingerprint,
"employeeNoAndFpAndPw"-employee No.+fingerprint+password, "faceAndFpAndCard"-face+fingerprint+card,
"faceAndPwAndFp"-face+password+fingerprint, "employeeNoAndFace"-employee No.+face, "faceOrfaceAndCard"-
face or face+card, "fpOrface"-fingerprint or face, "cardOrfaceOrPw"-card or face or password, "cardOrFpOrPw"-card
or fingerprint or password*/
"thermometryUnit": "",
/*optional, string, temperature unit: "celsius"-Celsius (default), "fahrenheit"-Fahrenheit, "kelvin"-Kelvin*/
"currTemperature": ,
/*optional, float, face temperature which is accurate to one decimal place*/
"isAbnomalTemperature": ,
/*optional, boolean, whether the face temperature is abnormal: true-yes, false-no*/
"RegionCoordinates":{
/*optional, face temperature's coordinates*/
"positionX": ,
/*optional, int, normalized X-coordinate which is between 0 and 1000*/
"positionY":
/*optional, int, normalized Y-coordinate which is between 0 and 1000*/
},
"picEnable": ,
/*optional, boolean, whether contains picture*/
"attendanceStatus":"",
/*optional, string, attendance status: "undefined", "checkIn"-check in, "checkOut"-check out, "breakOut"-break out,

237
Intelligent Security API (Person-Based Access Control) Developer Guide

"breakIn"-break in, "overtimeIn"-overtime in, "overTimeOut"-overtime out*/


"statusValue": ,
/*optional, integer, status value*/
"label":"",
/*optional, string, custom attendance name*/
"filename": ,
/*optional, string, file name. If multiple pictures are returned at a time, filename of each picture should be unique*/
"mask": "",
/*optional, string, whether the person is wearing mask: "unknown", "yes"-wearing mask, "no"-not wearing mask*/
"pictureURL": "",
/*optional, string, picture URL*/
"helmet": ""
/*optional, string, whether the person is wearing hard hat: "unknown", "yes"-wearing hard hat, "no"-not wearing
hard hat*/
}],
"picturesNumber":
/*optional, integer, number of captured pictures if the capture linkage action is configured. This node will be 0 or not
be returned if there is no picture*/
}
}

See Also
Access Control Event Types

JSON_AcsEventCond
AcsEventCond message in JSON format
{
"AcsEventCond": {
"searchID": "",
/*required, string type, search ID, which is used to confirm the upper-level platform or system. If the platform or the
system is the same one during two searching, the search history will be saved in the memory to speed up next
searching*/
"searchResultPosition": "",
/*required, integer, the start position of the search result in the result list. When there are multiple records and you
cannot get all search results at a time, you can search for the records after the specified position next time*/
"maxResults": "",
/*required, integer, maximum number of search results. If maxResults exceeds the range returned by the device
capability, the device will return the maximum number of search results according to the device capability and will not
return error message*/
"major": ,
/*required, integer, major alarm/event types (the type value should be transformed to the decimal number), see
Access Control Alarm Types for details*/
"minor": ,
/*required, integer, minor alarm/event types (the type value should be transformed to the decimal number), see
Access Control Alarm Types for details*/
"startTime": "",
/*optional, string, start time (UTC time), e.g., 2016-12-12T17:30:08+08:00*/
"endTime": "",

238
Intelligent Security API (Person-Based Access Control) Developer Guide

/*optional, string, end time (UTC time), e.g.,2017-12-12T17:30:08+08:00*/


"cardNo": "",
/*optional, string, card No.*/
"name": "",
/*optional, string,cardholder name*/
"picEnable": ,
/*optional, boolean, whether to contain pictures: "false"-no, "true"-yes*/
"beginSerialNo": ,
/*optional, integer, start serial No.*/
"endSerialNo": ,
/*optional, integer, end serial No.*/
"employeeNoString":"",
/*optional, string, employee No. (person ID)*/
"eventAttribute":"",
/*optional, string, event attribute: "attendance"-valid authentication, "other"*/
"employeeNo":"",
/*optional, string, employee No. (person ID)*/
"timeReverseOrder":
/*optional, boolean, whether to return events in descending order of time (later events will be returned first): true-
yes, false or this node is not returned-no*/
}
}

See Also
Access Control Event Types

JSON_AcsEventTotalNum
AcsEventTotalNum message in JSON format
{
"AcsEventTotalNum":{
"totalNum":
/*required, integer, total number of events that match the search conditions*/
}
}

JSON_AcsEventTotalNumCond
AcsEventTotalNumCond message in JSON format
{
"AcsEventTotalNumCond":{
"major": ,
/*required, integer, major type (the type value should be transformed to the decimal number), refer to Access Control
Event Types for details*/
"minor": ,
/*required, integer, minor type (the type value should be transformed to the decimal number), refer to Access Control
Event Types for details*/

239
Intelligent Security API (Person-Based Access Control) Developer Guide

"startTime":"",
/*optional, string, start time (UTC time), e.g., "2016-12-12T17:30:08+08:00"*/
"endTime":"",
/*optional, string, end time (UTC time), e.g., "2017-12-12T17:30:08+08:00"*/
"cardNo":"",
/*optional, string, card No.*/
"name":"",
/*optional, string, cardholder name*/
"picEnable": ,
/*optional, boolean, whether to contain pictures: "true"-yes, "false"-no*/
"beginSerialNo": ,
/*optional, integer, start serial No.*/
"endSerialNo": ,
/*optional, integer, end serial No.*/
"employeeNoString":"",
/*optional, string, employee No. (person ID)*/
"eventAttribute":""
/*optional, string, event attribute: "attendance"-valid authentication, "other"*/
}
}

See Also
Access Control Event Types

JSON_AcsWorkStatus
AcsWorkStatus message in JSON format
{
"AcsWorkStatus":{
"doorLockStatus": ,
/*optional, array, door lock status (relay status): 0-normally close, 1-normally open, 2-short-circuit alarm, 3-broken-
circuit alarm, 4-exception alarm. For example, [1,2,1,2] indicates that door lock 1 is normally open, door lock 2 triggers
short-circuit alarm, door lock 3 is normally open, and door lock 4 triggers short-circuit alarm*/
"doorStatus": ,
/*optional, array, door (floor) status: 1-sleep, 2-remain unlocked (free), 3-remain locked (disabled), 4-normal status
(controlled). For example, [1,2,1,2] indicates that door 1 is sleeping, door 2 remains unlocked, door 3 is sleeping, and
door 4 remains unlocked*/
"magneticStatus": ,
/*optional, array, magnetic contact status: 0-normally close, 1-normally open, 2-short-circuit alarm, 3-broken-circuit
alarm, 4-exception alarm. For example, [1,2,1,2] indicates that magnetic contact No.1 is normally open, magnetic
contact No.2 triggers short-circuit alarm, magnetic contact No.3 is normally open, and magnetic contact No.4 triggers
short-circuit alarm*/
"caseStatus": ,
/*optional, array, event trigger status, e.g., [1,3,5] indicates that event trigger No.1, No.3, and No.5 have input*/
"batteryVoltage": ,
/*optional, integer, storage battery power voltage, the actual value will be 10 times of this value, unit: Volt*/
"batteryLowVoltage": ,
/*optional, boolean, whether the storage battery is in low voltage status: "true"-yes, "false"-no*/
"powerSupplyStatus":"",

240
Intelligent Security API (Person-Based Access Control) Developer Guide

/*optional, string, device power supply status: "ACPowerSupply"-alternative current, "BatteryPowerSupply"-storage


battery power supply*/
"multiDoorInterlockStatus":"",
/*optional, string, multi-door interlocking status: "close"-disabled, "open"-enabled*/
"antiSneakStatus":"",
/*optional, string, anti-passback status: "close"-disabled, "open"-enabled*/
"hostAntiDismantleStatus":"",
/*optional, string, tampering status of the access control device: "close"-disabled, "open"-enabled*/
"indicatorLightStatus":"",
/*optional, string, indicator status: "offLine"-offline, "onLine"-online*/
"cardReaderOnlineStatus": ,
/*optional, array, online status of the authentication unit, e.g., [1,3,5] indicats that authentication unit No.1, No.3, and
No.5 are online*/
"cardReaderAntiDismantleStatus": ,
/*optional, array, tampering status of the authentication unit, e.g., [1,3,5] indicates that the tampering function of
authentication unit No.1, No.3, and No.5 is enabled*/
"cardReaderVerifyMode": ,
/*optional, array, current authentication mode of the authentication unit: 1-sleep, 2-card+password, 3-card, 4-card or
password, 5-fingerprint, 6-fingerprint+password, 7-fingerprint or card, 8-fingerprint+card, 9-fingerprint+card
+password, 10-face or fingerprint or card or password, 11-face+fingerprint, 12-face+password, 13-face+card, 14-face,
15-employee No.+password, 16-fingerprint or password, 17-employee No.+fingerprint, 18-employee No.+fingerprint
+password, 19-face+fingerprint+card, 20-face+password+fingerprint, 21-employee No.+face, 22-face or face+card, 23-
fingerprint or face, 24-card or face or password, 25-card or face, 26-card or face or fingerprint, 27-card or fingerprint
or password. For example, [3,5,3,5] indicates that the authentication mode of authentication unit 1 is "card", the
authentication mode of authentication unit 2 is "fingerprint", the authentication mode of authentication unit 3 is
"card", and the authentication mode of authentication unit 4 is "fingerprint"*/
"setupAlarmStatus": ,
/*optional, array, No. of armed input port, e.g., [1,3,5] indicates that input port No.1, No.3, and No.5 are armed*/
"alarmInStatus": ,
/*optional, array, No. of input port with alarms, e.g., [1,3,5] indicates that input port No.1, No.3, and No.5 trigger
alarms*/
"alarmOutStatus": ,
/*optional, array, No. of output port with alarms, e.g., [1,3,5] indicates that output port No.1, No.3, and No.5 trigger
alarms*/
"cardNum": ,
/*optional, integer, number of added cards*/
"fireAlarmStatus":"",
/*optional, string, fire alarm status: "normal", "shortCircuit"-short-circuit alarm, "brokenCircuit"-broken-circuit alarm*/
"batteryChargeStatus":"",
/*optional, string, battery charging status: "charging", "uncharged"*/
"masterChannelControllerStatus":"",
/*optional, string, online status of the master lane controller: "offLine"-offline, "onLine"-online*/
"slaveChannelControllerStatus":"",
/*optional, string, online status of the slave lane controller: "offLine"-offline, "onLine"-online*/
"antiSneakServerStatus":""
/*optional, string, anti-passback server status: "disable"-disabled, "normal", "disconnect"-disconnected*/
}
}

241
Intelligent Security API (Person-Based Access Control) Developer Guide

JSON_AddFaceRecordCond
Message about conditions of adding a face record, it is in JSON format
{
"faceURL": "",
/*optional, string type, picture storage URL inputted when uploading the face picture by URL, the maximum length is
256 bytes*/
"faceLibType": "",
/*required, face picture library type: "blackFD"-list library, "staticFD"-static library, string type, the maximum size is 32
bytes*/
"FDID": "",
/*required, face picture library ID, string type, the maximum size is 63 bytes*/
"FPID": "",
/*optional, string type, face record ID, it can be generated by device or inputted. If it is inputted, it should be the
unique ID with the combination of letters and digits, and the maximum length is 63 bytes; if it is generated by the
device automatically, it is the same as the employee No. (person ID)*/
"name": "",
/*required, name of person in the face picture, string type, the maximum size is 96 bytes*/
"gender": "",
/*optional, gender of person in the face picture: male, female, unknown, string type, the maximum size is 32 bytes*/
"bornTime": "",
/*required, birthday of person in the face picture, ISO8601 time format, string type, the maximum size is 20 bytes*/
"city": "",
/*optional, city code of birth for the person in the face picture, string type, the maximum size is 32 bytes*/
"certificateType": "",
/*optional, string type, the max. size is 10 bytes, certificate type: "officerID"-officer ID, "ID"-identify card, passport,
other*/
"certificateNumber": "",
/*optional, certificate No., string, the max. size is 32 bytes*/
"caseInfo": "",
/*optional, case information, string type, the max. size is 192 bytes, it is valid when faceLibType is "blackFD".*/
"tag": "",
/*optional, custom tag, up to 4 tags, which are separated by commas, string type, the max. size is 195 bytes, it is valid
when faceLibType is "blackFD".*/
"address": "",
/*optional, person address, string type, the max. size is 192 bytes, it is valid when faceLibType is "staticFD".*/
"customInfo": "",
/*optional, custom information, string type, the max. size is 192 bytes, it is valid when faceLibType is "staticFD".*/
"modelData":""
/*optional, string type, target model data, non-modeled binary data needs to be encrypted by Base64 during
transmission*/
"transfer":true,
/*optional, boolean, whether to enable transfer*/
"operateType": "byTerminal",
/*optional, string, operation type: "byTerminal"-by terminal*/
"terminalNoList": [1],
/*optional, array, terminal ID list, this node is required when operation type is "byTerminal"; currently, only one
terminal is supported*/
"PicFeaturePoints":[{
/*optional, array of object, feature points to be applied. If the device only supports three types of feature points,

242
Intelligent Security API (Person-Based Access Control) Developer Guide

when the platform applies more than three types of feature points, the device will not return error information*/
"featurePointType":"face",
/*required, string, feature point type: "face", "leftEye" (left eye), "rightEye" (right eye), "leftMouthCorner" (left corner
of mouth), "rightMouthCorner" (right corner of mouth), "nose"*/
"coordinatePoint":{
/*required, object, coordinates of the feature point*/
"x":1,
/*required, int, normalized X-coordinate which is between 0 and 1000*/
"y":1,
/*required, int, normalized Y-coordinate which is between 0 and 1000*/
"width":1,
/*required, int, width which is between 0 and 1000. This node is required when featurePointType is "face"*/
"height":1
/*required, int, height which is between 0 and 1000. This node is required when featurePointType is "face"*/
}
}]
}

Remarks
If the field "faceURL" exists in the message, it indicates that the picture is uploaded via URL, and
the "faceURL" of message should be set to picture URL. Otherwise, the picture is uploaded as
binary data, which can be followed the message in JSON format, and separated by "boundary". See
the example below.
Example
Add Face Record When Binary Picture is Uploaded in Form Format
1) POST /ISAPI/Intelligent/FDLib/FaceDataRecord?format=json
2) Accept: text/html, application/xhtml+xml,
3) Accept-Language: us-EN
4) Content-Type: multipart/form-data; boundary=---------------------------7e13971310878
5) User-Agent: Mozilla/5.0 (compatible; MSIE 9.0; Windows NT 6.1; WOW64; Trident/5.0)
6) Accept-Encoding: gzip, deflate
7) Host: 10.10.36.29:8080
8) Content-Length: 9907
9) Connection: Keep-Alive
10) Cache-Control: no-cache
11)
12) -----------------------------7e13971310878
13) Content-Disposition: form-data; name="FaceDataRecord";
14) Content-Type: application/json
15) Content-Length: 9907
16)
17) {
a) "faceLibType": "blackFD",
b) "FDID": "1223344455566788",
c) "FPID": "11111aa",
d) "name": "Eric",
e) "gender": "male",
f) "bornTime": "2004-05-03",
g) "city": “130100”,

243
Intelligent Security API (Person-Based Access Control) Developer Guide

h) "certificateType": "officerID",
i) "certificateNumber": "",
j) "caseInfo": "",
k) "tag": "aa,bb,cc,dd",
l) "address": "",
m) "customInfo": ""
18) }
19) -----------------------------7e13971310878
20) Content-Disposition: form-data; name="FaceImage";
21) Content-Type: image/jpeg
22) Content-Length: 9907
23)
24) ......JFIF.....`.`.....C........... .
25) ..
26) ................. $.' ",#..(7),01444.'9=82<.342...C. ....
27) -----------------------------7e13971310878--

Note
• In line 4, "Content-Type: multipart/form-data" indicates that the data is sent in form format. The
"boundary" is a delimiter, you can assign value to it for distinguishing other ones.
• In line 12, the request body consists of multiple same parts, and each part starts with "-" and
from the customized "boundary" delimiter, the contents after the delimiter is the description of
this part.
• In line 13, "Content-Disposition" refers to condition parameters, when adding face record, the
"name" must be set to "FaceDataRecord".
• In line 14, "Content-Type" refers to JSON format, which based on UTF-8 character set.
• In line 15, "Content-Length" refers to the size of data (contains the "\r\n" escape characters)
from line 16 to line 18.
• In line 16, the "\r\n\r\n" escape characters must be entered.
• Line 19 is the start delimiter of next part.
• Line 20 is the binary picture data, and the "name" must be set to "FaceImage".
• Line 21 is the format of the binary picture data. Here, "image/jpeg" indicates that the following
contents are JPEG format picture data.
• In line 23, the "\r\n\r\n" escape characters must be entered.
• In line 27, the customized "boundary" indicates the end of request body.

JSON_AddFaceRecordResult
Message about the result of adding the face record to face picture library, it is in JSON format.
{
"requestURL": "",
"statusCode": "",
"statusString": "",
"subStatusCode": "",
"errorCode": "",

244
Intelligent Security API (Person-Based Access Control) Developer Guide

"errorMsg": "",
/*see the description of this node and above nodes in the message of JSON_ResponseStatus*/
"FPID": ""
/*optional, string type, face record ID returned when the face record is added, it is unique, and the maximum size is
63 bytes. This node is valid when errorCode is "1" and errorMsg is "ok"*/
}

See Also
JSON_ResponseStatus

JSON_AntiSneakCfg
AntiSneakCfg message in JSON format
{
"AntiSneakCfg": {
"enable": ,
/*required, boolean, whether to enable anti-passing back*/
"startCardReaderNo":
/*optional, integer, first card reader No., 0-no first card reader*/
}
}

JSON_Attendance
JSON message about the parameters of attendance check by pressing the key
{
"Attendance": {
"enable": true,
/*required, boolean, whether to enable*/
"attendanceStatus": "",
/*optional, string, attendance status: "checkIn"-check in, "checkOut"-check out, "breakOut"-break out, "breakIn"-
break in, "overtimeIn"-overtime in, "overtimeOut"-overtime out*/
"label":""
/*optional, string, custom name*/
}
}

JSON_AttendanceCap
JSON message about the configuration capability of attendance check by pressing the key
{
"AttendanceCap":{
"id":{
/*required, int, key No. range*/

245
Intelligent Security API (Person-Based Access Control) Developer Guide

"@min":0,
"@max":0
},
"enable":{
/*required, boolean, whether to enable*/
"@opt":[true, false]
},
"label":{
/*optional, string, custom name*/
"@min":0,
"@max":0
},
"attendanceStatus":{
/*optional, string, attendance status*/
"@opt":["checkIn", "checkOut", "breakOut", "breakIn", "overtimeIn", "overtimeOut"]
}
}
}

JSON_AttendanceList
JSON message about the attendance parameter list
{
"AttendanceList":[{
"enable":true,
/*required, boolean, whether to enable*/
"attendanceStatus":"",
/*optional, string, attendance status: "checkIn"-check in, "checkOut"-check out, "breakOut"-break out, "breakIn"-
break in, "overtimeIn"-overtime in, "overtimeOut"-overtime out*/
"label":""
/*optional, string, custom name*/
}]
}

JSON_AttendanceMode
JSON message about the attendance mode parameters
{
"AttendanceMode":{
"mode":"",
/*optional, string, attendance mode: "disable", "manual", "auto"-automatic, "manualAndAuto"-manual and
automatic*/
"attendanceStatusTime": 0,
/*optional, int, attendance status duration, unit: second. This node is valid when mode is "manual" or
"manualAndAuto"*/
"reqAttendanceStatus": true
/*optional, boolean, whether the attendance status is required*/

246
Intelligent Security API (Person-Based Access Control) Developer Guide

}
}

JSON_AttendancePlanTemplate
JSON message about the parameters of the attendance schedule template
{
"AttendancePlanTemplate":{
"enable":true,
/*required, boolean, whether to enable: true-enable, false-disable*/
"property":"check",
/*required, string, attendance attribute: "check"-check in and check out, "break"-break out and break in, "overtime"-
overtime in and overtime out. Only one attendance attribute can be configured for each template*/
"templateName":"",
/*required, string, template name*/
"weekPlanNo":1
/*required, int, week schedule No.*/
}
}

JSON_AttendancePlanTemplateCap
JSON message about the configuration capability of the attendance schedule template
{
"AttendancePlanTemplateCap":{
"templateNo ":{
/*schedule template No.*/
"@min":1,
"@max":16
},
"property":{
/*required, attendance attribute: "check"-check in and check out, "break"-break out and break in, "overtime"-
overtime in and overtime out*/
"@opt":["check", "break", "overtime"]
},
"enable":{
/*whether to enable: true-enable, false-disable*/
"@opt":[true, false]
},
"templateName":{
/*template name*/
"@min":1,
"@max":32
},
"weekPlanNo":{
/*week schedule No.*/
"@min":1,

247
Intelligent Security API (Person-Based Access Control) Developer Guide

"@max":16
},
"holidayGroupNo":{
/*holiday group No.*/
"@min":1,
"@max":16
}
}
}

JSON_AttendancePlanTemplateList
JSON message about the list of attendance schedule templates
{
"AttendancePlanTemplateList":[{
"templateNo":1,
/*required, int, schedule template No.*/
"enable":true,
/*required, boolean, whether to enable: true-enable, false-disable*/
"templateName":"",
/*required, string, template name*/
"weekPlanNo":1
/*required, int, week schedule No.*/
}]
}

JSON_AttendanceWeekPlan
JSON message about the parameters of the week attendance schedule
{
"AttendanceWeekPlan":{
"enable":true,
/*required, boolean, whether to enable: true-enable, false-disable*/
"WeekPlanCfg":[{
/*required, week schedule parameters*/
"id":1,
/*required, int, time period No.*/
"week":"Monday",
/*required, string, day of the week: "Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday", "Sunday"*/
"enable":true,
/*required, boolean, whether to enable: true-enable, false-disable*/
"TimeSegment":{
"beginTime":"10:10:00",
/*required, string, start time (device's local time)*/
"endTime":"12:10:00"
/*required, string, end time (device's local time)*/
}

248
Intelligent Security API (Person-Based Access Control) Developer Guide

}]
}
}

JSON_AttendanceWeekPlanCap
JSON message about the configuration capability of the week attendance schedule
{
"AttendanceWeekPlanCap":{
"planNo":{
/*week attendance schedule No.*/
"@min":1,
"@max":16
},
"enable":{
/*boolean, whether to enable: true-enable, false-disable*/
"@opt":[true, false]
},
"WeekPlanCfg":{
/*week schedule parameters*/
"maxSize":5,
"id":{
"@min":1,
"@max":8
},
"week":{
"@opt":["Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday", "Sunday"]
},
"enable":{
/*boolean, whether to enable: true-enable, false-disable*/
"@opt":[true, false]
},
"TimeSegment":{
"beginTime":"",
/*start time (device's local time)*/
"endTime":"",
/*end time (device's local time)*/
"validUnit":"second"
/*time accuracy: "hour", "minute", "second". If this node is not returned, the time accuracy is "minute"*/
}
}
}
}

249
Intelligent Security API (Person-Based Access Control) Developer Guide

JSON_BatchEditFaceRecord
Message about the condition of editing face records in the face picture library in a batch, and it is
in JSON format.
{
"faceURL":"",
/*optional, string type, picture storage URL inputted when uploading the face picture by URL, the maximum length is
256 bytes*/
"faceLibType":"",
/*required, string type, face picture library type: "blackFD"-list library, "staticFD"-static library, the maximum length is
32 bytes*/
"FDID":"",
/*required, string type, face picture library ID, the maximum length is 63 bytes, multiple face picture libraries should
be separated by commas*/
"FPID":"",
/*optional, string type, face record ID, it can be generated by the device or inputted. If it is inputted, it should be the
unique ID with the combination of letters and digits, and the maximum length is 63 bytes; if it is generated by the
device automatically, it is the same as the employee No. (person ID)*/
"name":"",
/*required, string type, name of the person in the face picture, the maximum length is 96 bytes*/
"gender":"",
/*optional, string type, gender of the person in the face picture: "male", "female", "unknown", the maximum length is
32 bytes*/
"bornTime":"",
/*required, string type, date of birth of the person in the face picture in ISO8601 time format, the maximum length is
20 bytes*/
"city":"",
/*optional, string type, code of the city of birth for the person in the face picture, the maximum length is 32 bytes*/
"certificateType ":"",
/*optional, string type, ID type: "officerID"-officer ID, "ID"-ID card. The maximum length is 10 bytes*/
"certificateNumber":"",
/*optional, string type, ID No., the maximum length is 32 bytes*/
"caseInfo":"",
/*optional, string type, case information, the maximum length is 192 bytes, it is valid when faceLibType is "blackFD"*/
"tag":"",
/*optional, string type, custom tag, up to 4 tags can be added and they should be separated by commas, the
maximum length of each tag is 48 bytes, and the maximum length of this node is 195 bytes. It is valid when
faceLibType is "blackFD"*/
"address":"",
/*optional, string type, person address, the maximum length is 192 bytes, it is valid when faceLibType is "staticFD"*/
"customInfo":"",
/*optional, string type, custom information, the maximum length is 192 bytes, it is valid when faceLibType is
"staticFD"*/
"modelData":"",
/*optional, string type, target model data, non-modeled binary data needs to be encrypted by base64 during
transmission*/
"operateType": "byTerminal",
/*optional, string, operation type: "byTerminal"-by terminal*/
"terminalNoList": [1],
/*optional, array, terminal ID list, this node is required when operation type is "byTerminal"; currently, only one

250
Intelligent Security API (Person-Based Access Control) Developer Guide

terminal is supported*/
"PicFeaturePoints":[{
/*optional, array of object, feature points to be applied. If the device only supports three types of feature points,
when the platform applies more than three types of feature points, the device will not return error information*/
"featurePointType":"face",
/*required, string, feature point type: "face", "leftEye" (left eye), "rightEye" (right eye), "leftMouthCorner" (left corner
of mouth), "rightMouthCorner" (right corner of mouth), "nose"*/
"coordinatePoint":{
/*required, object, coordinates of the feature point*/
"x":1,
/*required, int, normalized X-coordinate which is between 0 and 1000*/
"y":1,
/*required, int, normalized Y-coordinate which is between 0 and 1000*/
"width":1,
/*required, int, width which is between 0 and 1000. This node is required when featurePointType is "face"*/
"height":1
/*required, int, height which is between 0 and 1000. This node is required when featurePointType is "face"*/
}
}]
}

JSON_Cap_AcsCfg
AcsCfg capability message in JSON format
{
"AcsCfg":{
"RS485Backup":"true,false",
/*optional, boolean, whether to enable downstream RS-485 communication redundancy: "true"-yes, "false"-no*/
"showCapPic":"true,false",
/*optional, boolean, whether to display the captured picture: "true"-yes, "false"-no*/
"showUserInfo":"true,false",
/*optional, boolean, whether to display user information: "true"-yes, "false"-no*/
"overlayUserInfo":"true,false",
/*optional, boolean, whether to overlay user information: "true"-yes, "false"-no*/
"voicePrompt":"true,false",
/*optional, boolean, whether to enable audio announcement: "true"-yes, "false"-no*/
"uploadCapPic":"true,false",
/*optional, boolean, whether to upload the picture from linked capture: "true"-yes, "false"-no*/
"saveCapPic":"true,false",
/*optional, boolean, whether to save the capture picture: "true"-yes, "false"-no*/
"inputCardNo":"true,false",
/*optional, boolean, whether to allow inputting card No. on keypad: "true"-yes, "false"-no*/
"enableWifiDetect":"true,false",
/*optional, boolean, whether to enable Wi-Fi probe: "true"-yes, "false"-no*/
"enable3G4G":"true,false",
/*optional, boolean, whether to enable 3G/4G: "true"-yes, "false"-no*/
"protocol":{
/*optional, string, communication protocol type of the card reader: "Private"-private protocol, "OSDP"-OSDP
protocol*/
"@opt":"Private,OSDP"

251
Intelligent Security API (Person-Based Access Control) Developer Guide

},
"showPicture":"true,false",
/*optional, boolean, whether to display the authenticated picture: "true"-display, "false"-not display*/
"showEmployeeNo":"true,false",
/*optional, boolean, whether to display the authenticated employee ID: "true"-display, "false"-not display*/
"showName":"true,false",
/*optional, boolean, whether to display the authenticated name: "true"-display, "false"-not display*/
"thermalEnabled": {
/*optional, boolean, whether to enable thermography: true-enable (default), false-disable*/
"@opt": [true,false]
},
"thermalMode": {
/*optional, boolean, whether to enable thermography-only mode: true-enable (only for thermography), false-disable
(default)*/
"@opt": [true,false]
},
"thermalPictureEnabled": {
/*optional, boolean, whether to enable uploading visible light pictures in thermography-only mode: true-enable, false-
disable (default). This field is used to control uploading captured pictures and visible light pictures*/
"@opt": [true,false]
},
"isSupportThermalIp": true,
/*optional, boolean, whether it supports configuring IP address of the thermography device: true-yes, this field is not
returned-no*/
"highestThermalThreshold": {
/*optional, float, upper limit of the temperature threshold which is accurate to one decimal place, unit: Celsius*/
"@min": ,
"@max":
},
"lowestThermalThreshold": {
/*optional, float, lower limit of the temperature threshold which is accurate to one decimal place, unit: Celsius*/
"@min": ,
"@max":
},
"thermalDoorEnabled": {
/*optional, boolean, whether to open the door when the temperature is above the upper limit
(highestThermalThreshold) or below the lower limit (lowestThermalThreshold) of the threshold: true-open the door,
false-not open the door (default)*/
"@opt": [true,false]
},
"QRCodeEnabled": {
/*optional, boolean, whether to enable QR code function: true-enable, false-disable (default)*/
"@opt": [true,false]
},
"remoteCheckDoorEnabled": {
/*optional, boolean, whether to enable controlling the door by remote verification: true-control, false-not control
(default)*/
"@opt": [true,false]
},
"checkChannelType": {
/*dependent, string, verification channel type: "Ezviz"-EZVIZ channel, "ISUP"-ISUP channel, "ISAPI"-ISAPI channel,
"PrivateSDK"-private SDK channel. This field is valid when remoteCheckDoorEnabled is true*/

252
Intelligent Security API (Person-Based Access Control) Developer Guide

"@opt": ["Ezviz","ISUP","ISAPI","PrivateSDK"]
},
"isSupportChannelIp": true
/*optional, boolean, whether it supports configuring IP address of the verification channel: true-yes, this field is not
returned-no*/
}
}

JSON_Cap_AcsEvent
AcsEvent capability message in JSON format
{
"AcsEvent":{
"AcsEventCond":{
/*optional, search conditions*/
"searchID":{
/*required, string type, search ID, which is used to confirm the upper-level platform or system. If the platform or the
system is the same one during two searching, the search history will be saved in the memory to speed up next
searching*/
"@min": ,
"@max":
},
"searchResultPosition":{
/*required, integer, the start position of the search result in the result list. When there are multiple records and you
cannot get all search results at a time, you can search for the records after the specified position next time*/
"@min": ,
"@max":
},
"maxResults":{
/*required, integer, maximum number of search results*/
"@min": ,
"@max":
},
"major":{
/*required, integer, major alarm/event types (the type value should be transformed to the decimal number), refer to
Access Control Event Types for details*/
"@opt": "0,1,2,3,5"
},
"minorAlarm":{
/*required, integer, minor alarm type (the type value should be transformed to the decimal number), refer to Access
Control Event Types for details*/
"@opt": "1024,1025,1026,1027…"
},
"minorException":{
/*required, integer, minor exception type (the type value should be transformed to the decimal number), refer to
Access Control Event Types for details*/
"@opt": "39,58,59,1024…"
},
"minorOperation":{
/*required, integer, minor operation type (the type value should be transformed to the decimal number), refer to

253
Intelligent Security API (Person-Based Access Control) Developer Guide

Access Control Event Types for details*/


"@opt": "80,90,112,113…"
},
"minorEvent":{
/*required, integer, minor event type (the type value should be transformed to the decimal number), refer to Access
Control Event Types for details*/
"@opt": "1,2,3,4…"
},
"startTime":{
/*optional, string, start time (UTC time)*/
"@min": ,
"@max":
},
"endTime":{
/*optional, string, end time (UTC time)*/
"@min": ,
"@max":
},
"cardNo":{
/*optional, string, card No.*/
"@min": ,
"@max":
},
"name":{
/*optional, string,cardholder name*/
"@min": ,
"@max":
},
"picEnable": "true,false",
/*optional, boolean, whether to contain pictures: "false"-no, "true"-yes*/
"beginSerialNo":{
/*optional, integer, start serial No.*/
"@min": ,
"@max":
},
"endSerialNo":{
/*optional, integer, end serial No.*/
"@min": ,
"@max":
},
"employeeNoString":{
/*optional, string, employee No. (person ID)*/
"@min": ,
"@max":
},
"eventAttribute":{
/*optional, string, event attribute: "attendance"-valid authentication, "other"*/
"@opt":"attendance,other"
},
"employeeNo": {
/*optional, string, employee No. (person ID)*/
"@min": ,

254
Intelligent Security API (Person-Based Access Control) Developer Guide

"@max":
},
"timeReverseOrder": "true,false"
/*optional, boolean, whether to return events in descending order of time (later events will be returned first): true-
yes, false or this node is not returned-no*/
},
"InfoList":{
/*optional, event details*/
"maxSize": 10,
"time":{
/*required, string, time (UTC time)*/
"@min": ,
"@max":
},
"netUser":{
/*optional, string, user name*/
"@min": ,
"@max":
},
"remoteHostAddr":{
/*optional, string, remote host address*/
"@min": ,
"@max":
},
"cardNo":{
/*optional, string, card No.*/
"@min": ,
"@max":
},
"cardType":{
/*optional, integer, card type: "1"-normal card, "2"-disabled card, "3"-blocklist card, "4"-patrol card, "5"-duress card,
"6"-super card, "7"-visitor card, "8"-dismiss card*/
"@opt": "1,2,3,4,5,6,7,8"
},
"whiteListNo":{
/*optional, integer, allowlist No., which is between 1 and 8*/
"@min": ,
"@max":
},
"reportChannel":{
/*optional, integer, channel type for uploading alarm/event: "1"-for uploading arming information, "2"-for uploading
by central group 1, "3"-for uploading by central group 2*/
"@opt": "1,2,3"
},
"cardReaderKind":{
/*optional, integer, authentication unit type: "1"-IC card reader, "2"-ID card reader, "3"-QR code scanner, "4"-
fingerprint module*/
"@opt": "1,2,3,4"
},
"cardReaderNo":{
/*Optional, integer, authentication unit No.*/
"@min": ,

255
Intelligent Security API (Person-Based Access Control) Developer Guide

"@max":
},
"doorNo":{
/*optional, integer, door or floor No.*/
"@min": ,
"@max":
},
"verifyNo":{
/*optional, integer, multiple authentication No.*/
"@min": ,
"@max":
},
"alarmInNo":{
/*optional, integer, alarm input No.*/
"@min": ,
"@max":
},
"alarmOutNo":{
/*optional, integer, alarm output No.*/
"@min": ,
"@max":
},
"caseSensorNo":{
/*optional, integer, event trigger No.*/
"@min": ,
"@max":
},
"RS485No":{
/*optional, integer, RS-485 channel No.*/
"@min": ,
"@max":
},
"multiCardGroupNo":{
/*optional, integer, group No.*/
"@min": ,
"@max":
},
"accessChannel":{
/*optional, integer, swing barrier No.*/
"@min": ,
"@max":
},
"deviceNo":{
/*ptional, integer, device No.*/
"@min": ,
"@max":
},
"distractControlNo":{
/*optional, integer, distributed access controller No.*/
"@min": ,
"@max":
},

256
Intelligent Security API (Person-Based Access Control) Developer Guide

"employeeNo":{
/*optional, string, employee No. (person ID)*/
"@min": ,
"@max":
},
"localControllerID":{
/*optional, integer, distributed access controller No.: "0"-access controller, "1" to "64"-distributed access controller
No.1 to distributed access controller No.64*/
"@min": ,
"@max":
},
"InternetAccess":{
/*optional, integer, network interface No.: "1"-upstream network interface No.1, "2"-upstream network interface No.
2, "3"-downstream network interface No.1*/
"@min": ,
"@max":
},
"type":{
/*optional, integer, zone type: "0"-instant alarm zone, "1"-24-hour alarm zone, "2"-delayed zone, "3"-internal zone,
"4"-key zone, "5"-fire alarm zone, "6"-perimeter protection, "7"-24-hour slient alarm zone, "8"-24-hour auxiliary zone,
"9"-24-hour shock alarm zone, "10"-emergency door open alarm zone, "11"-emergency door closed alarm zone,
"255"-none*/
"@opt": "0,1,2,3,4,5,6,7,8,9,10,11,255"
},
"MACAddr":{
/*optional, string, physical address*/
"@min": ,
"@max":
},
"swipeCardType":{
/*optional, integer, card swiping type: "0"-invalid, "1"-QR code*/
"@opt": "0,1"
},
"serialNo":{
/*optional, integer, event serial No., which is used to judge whether the event loss occurred*/
"@min": ,
"@max":
},
"channelControllerID":{
/*optional, integer, lane controller No.: "1"-master lane controller, "2"-slave lane controller*/
"@opt": "0,1"
},
"channelControllerLampID":{
/*optional, integer, light board No. of lane controller, which is between 1 and 255*/
"@min": ,
"@max":
},
"channelControllerIRAdaptorID":{
/*optional, integer, IR adapter No. of lane controller, which is between 1 and 255*/
"@min": ,
"@max":
},

257
Intelligent Security API (Person-Based Access Control) Developer Guide

"channelControllerIREmitterID":{
/*optional, integer, active infrared intrusion detector No. of lane controller, which is between 1 and 255*/
"@min": ,
"@max":
},
"userType":{
/*optional, string, person types: "normal"-normal person (household), "visitor"-visitor, "blacklist"-person in blocklist,
"administrators"-administrator*/
"@opt": "normal,visitor,blackList,administrators"
},
"currentVerifyMode": {
/*optional, string, authentication modes: "cardAndPw"-card+password, "card", "cardOrPw"-card or password, "fp"-
fingerprint, "fpAndPw"-fingerprint+password, "fpOrCard"-fingerprint or card, "fpAndCard"-fingerprint+card,
"fpAndCardAndPw"-fingerprint+card+password, "faceOrFpOrCardOrPw"-face or fingerprint or card or password,
"faceAndFp"-face+fingerprint, "faceAndPw"-face+password, "faceAndCard"-face+card, "face", "employeeNoAndPw"-
employee No.+password, "fpOrPw"-fingerprint or password, "employeeNoAndFp"-employee No.+fingerprint,
"employeeNoAndFpAndPw"-employee No.+fingerprint+password, "faceAndFpAndCard"-face+fingerprint+card,
"faceAndPwAndFp"-face+password+fingerprint, "employeeNoAndFace"-employee No.+face, "faceOrfaceAndCard"-
face or face+card, "fpOrface"-fingerprint or face, "cardOrfaceOrPw"-card or face or password, "cardOrFpOrPw"-card
or fingerprint or password*/
"@opt":
"cardAndPw,card,cardOrPw,fp,fpAndPw,fpOrCard,fpAndCard,fpAndCardAndPw,faceOrFpOrCardOrPw,faceAndFp,faceA
ndPw,faceAndCard,face,employeeNoAndPw,fpOrPw,employeeNoAndFp,employeeNoAndFpAndPw,faceAndFpAndCard,
faceAndPwAndFp,employeeNoAndFace,faceOrfaceAndCard,fpOrface,cardOrfaceOrPw,cardOrFpOrPw"
},
"thermometryUnit": {
/*optional, string, temperature unit: "celsius"-Celsius (default), "fahrenheit"-Fahrenheit, "kelvin"-Kelvin*/
"@opt": ["celsius","fahrenheit","kelvin"]
},
"currTemperature": {
/*optional, float, face temperature which is accurate to one decimal place*/
"@min":1 ,
"@max":1
},
"isAbnomalTemperature": {
/*optional, boolean, whether the face temperature is abnormal: true-yes, false-no*/
"@opt": [true,false]
},
"RegionCoordinates": {
/*optional, face temperature's coordinates*/
"positionX": {
/*optional, int, normalized X-coordinate which is between 0 and 1000*/
"@min": 0,
"@max": 1000
},
"positionY": {
/*optional, int, normalized Y-coordinate which is between 0 and 1000*/
"@min": 0,
"@max": 1000
}
},
"picEnable": "true,false"

258
Intelligent Security API (Person-Based Access Control) Developer Guide

/*optional, boolean, whether to contain pictures*/


"picturesNumber":{
/*optional, integer, number of captured pictures if the capture linkage action is configured. This node will be 0 or not
be returned if there is no picture*/
"@min": ,
"@max":
},
"filename": {
/*optional, string, file name. If multiple pictures are returned at a time, the file name of each picture should be
unique, and the value of this node should be the same as the following one*/
"@min": ,
"@max":
},
"attendanceStatus":{
/*optional, string, attendance status: "undefined", "checkIn"-check in, "checkOut"-check out, "breakOut"-break out,
"breakIn"-break in, "overtimeIn"-overtime in, "overTimeOut"-overtime out*/
"@opt":"undefined,checkIn,checkOut,breakOut,breakIn,overtimeIn,overtimeOut"
},
"label":{
/*optional, string, custom attendance name*/
"@min": ,
"@max":
},
"statusValue":{
/*optional, integer, status value*/
"@min":0,
"@max":255
},
"mask": {
/*optional, string, whether the person is wearing mask: "unknown", "yes"-wearing mask, "no"-not wearing mask*/
"@opt": "unknown,yes,no"
},
"helmet": {
/*optional, string, whether the person is wearing hard hat: "unknown", "yes"-wearing hard hat, "no"-not wearing
hard hat*/
"@opt": "unknown,yes,no"
}
}
}
}

See Also
Access Control Event Types

JSON_Cap_AcsEventTotalNum
AcsEventTotalNum capability message in JSON format
{
"AcsEvent":{

259
Intelligent Security API (Person-Based Access Control) Developer Guide

"AcsEventTotalNumCond":{
/*optional, search conditions*/
"major":{
/*required, integer type, major type (the type value should be transformed to the decimal number): 0-all, 1-major
alarm type, 2-major exception type, 3-major operation type, 5-major event type, refer to
Access Control Event Types
for details*/
"@opt":"0,1,2,3,5"
},
"minorAlarm":{
/*required, integer, minor alarm type (the type value should be transformed to the decimal number), refer to Access
Control Event Types for details*/
"@opt":"1024,1025,1026,1027…"
},
"minorException":{
/*required, integer, minor exception type (the type value should be transformed to the decimal number), refer to
Access Control Event Types for details*/
"@opt":"39,58,59,1024…"
},
"minorOperation":{
/*required, integer, minor operation type (the type value should be transformed to the decimal number), refer to
Access Control Event Types for details*/
"@opt":"80,90,112,113…"
},
"minorEvent":{
/*required, integer, minor event type (the type value should be transformed to the decimal number), refer to Access
Control Event Types for details*/
"@opt":"1,2,3,4…"
},
"startTime":{
/*optional, string, start time (UTC time)*/
"@min": ,
"@max":
},
"endTime":{
/*optional, string, end time (UTC time)*/
"@min": ,
"@max":
},
"cardNo":{
/*optional, string, card No.*/
"@min": ,
"@max":
},
"name":{
/*optional, string, cardholder name*/
"@min": ,
"@max":
},
"picEnable":"true,false",
/*optional, boolean, whether to contain pictures: "false"-no, "true"-yes*/
"beginSerialNo":{

260
Intelligent Security API (Person-Based Access Control) Developer Guide

/*optional, integer, start serial No.*/


"@min": ,
"@max":
},
"endSerialNo":{
/*optional, integer, end serial No.*/
"@min": ,
"@max":
},
"employeeNoString":{
/*optional, string, employee No. (person ID)*/
"@min": ,
"@max":
},
"eventAttribute":{
/*optional, string, event attribute: "attendance"-valid authentication, "other"*/
"@opt":"attendance,other"
}
},
"totalNum":{
/*required, integer, total number of events that match the search conditions*/
"@min": ,
"@max":
}
}
}

See Also
Access Control Event Types

JSON_Cap_AcsWorkStatus
AcsWorkStatus capability message in JSON format
{
"AcsWorkStatus":{
"doorLockStatus":{
/*optional, array, door lock status (relay status): 0-normally close, 1-normally open, 2-short-circuit alarm, 3-broken-
circuit alarm, 4-exception alarm*/
"@opt":"0,1,2,3,4"
},
"doorStatus":{
/*optional, array, door (floor) status: 1-sleep, 2-remain unlocked (free), 3-remain locked (disabled), 4-normal status
(controlled)*/
"@opt":"1,2,3,4"
},
"magneticStatus":{
/*optional, array, magnetic contact status: 0-normally close, 1-normally open, 2-short-circuit alarm, 3-broken-circuit
alarm, 4-exception alarm*/
"@opt":"0,1,2,3,4"

261
Intelligent Security API (Person-Based Access Control) Developer Guide

},
"caseStatus":{
/*optional, array, event trigger status*/
"@min": ,
"@max":
},
"batteryVoltage":{
/*optional, integer, storage battery power voltage, the actual value will be 10 times of this value, unit: Volt*/
"@min": ,
"@max":
},
"batteryLowVoltage":"true,false",
/*optional, boolean, whether the storage battery is in low voltage status: "true"-yes, "false"-no*/
"powerSupplyStatus":{
/*optional, string, device power supply status: "ACPowerSupply"-alternative current, "BatteryPowerSupply"-storage
battery power supply*/
"@opt":"ACPowerSupply,BatteryPowerSupply"
},
"multiDoorInterlockStatus":{
/*optional, string, multi-door interlocking status: "close"-disabled, "open"-enabled*/
"@opt":"close,open"
},
"antiSneakStatus":{
/*optional, string, anti-passback status: "close"-disabled, "open"-enabled*/
"@opt":"close,open"
},
"hostAntiDismantleStatus":{
/*optional, string, tampering status of the access control device: "close"-disabled, "open"-enabled*/
"@opt":"close,open"
},
"indicatorLightStatus":{
/*optional, string, indicator status: "offLine"-offline, "onLine"-online*/
"@opt":"offLine,onLine"
},
"cardReaderOnlineStatus":{
/*optional, array, online status of the authentication unit*/
"@min": ,
"@max":
},
"cardReaderAntiDismantleStatus":{
/*optional, array, tampering status of the authentication unit*/
"@min": ,
"@max":
},
"cardReaderVerifyMode":{
/*optional, array, current authentication mode of the authentication unit: 1-sleep, 2-card+password, 3-card, 4-card or
password, 5-fingerprint, 6-fingerprint+password, 7-fingerprint or card, 8-fingerprint+card, 9-fingerprint+card
+password, 10-face or fingerprint or card or password, 11-face+fingerprint, 12-face+password, 13-face+card, 14-face,
15-employee No.+password, 16-fingerprint or password, 17-employee No.+fingerprint, 18-employee No.+fingerprint
+password, 19-face+fingerprint+card, 20-face+password+fingerprint, 21-employee No.+face, 22-face or face+card, 23-
fingerprint or face, 24-card or face or password, 25-card or face, 26-card or face or fingerprint, 27-card or fingerprint
or password*/

262
Intelligent Security API (Person-Based Access Control) Developer Guide

"@opt":"1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27"
},
"setupAlarmStatus":{
/*optional, array, No. of armed input port*/
"@min": ,
"@max":
},
"alarmInStatus":{
/*optional, array, No. of input port with alarms*/
"@min": ,
"@max":
},
"alarmOutStatus":{
/*optional, array, No. of output port with alarms*/
"@min": ,
"@max":
},
"cardNum":{
/*optional, integer, number of added cards*/
"@min": ,
"@max":
},
"fireAlarmStatus":{
/*optional, string, fire alarm status: "normal", "shortCircuit"-short-circuit alarm, "brokenCircuit"-broken-circuit alarm*/
"@opt":"normal,shortCircuit,brokenCircuit"
},
"batteryChargeStatus":{
/*optional, string, battery charging status: "charging", "uncharged"*/
"@opt":"charging,uncharged"
},
"masterChannelControllerStatus":{
/*optional, string, online status of the master lane controller: "offLine"-offline, "onLine"-online*/
"@opt":"offLine,onLine"
},
"slaveChannelControllerStatus":{
/*optional, string, online status of the slave lane controller: "offLine"-offline, "onLine"-online*/
"@opt":"offLine,onLine"
},
"antiSneakServerStatus":{
/*optional, string, anti-passback server status: "disable"-disabled, "normal", "disconnect"-disconnected*/
"@opt":"disable,normal,disconnect"
}
}
}

JSON_Cap_AntiSneakCfg
AntiSneakCfg capability message in JSON format
{
"AntiSneakCfg": {

263
Intelligent Security API (Person-Based Access Control) Developer Guide

"enable": "true,false",
/*required, boolean, whether to enable anti-passing back*/
"startCardReaderNo": {
/*optional, integer, first card reader No., 0-no first card reader*/
"@min": 1,
"@max": 4
}
}
}

JSON_Cap_AttendanceMode
JSON message about the configuration capability of the attendance mode
{
"AttendanceMode":{
"mode":{
/*optional, string, attendance mode: "disable", "manual", "auto"-automatic, "manualAndAuto"-manual and
automatic*/
"@opt":["disable", "manual", "auto", "manualAndAuto"]
},
"attendanceStatusTime":{
/*optional, int, attendance status duration, unit: second. This node is valid when mode is "manual" or
"manualAndAuto"*/
"@min":0,
"@max":0
}
}
}

JSON_Cap_CardInfo
CardInfo capability message in JSON format
{
"CardInfo":{
"supportFunction":{
/*required, supported functions of adding, editing, deleting, searching for card information, and getting the total
number of added cards: "post"-add, "delete", "put"-edit, "get"-search, "setUp"-set*/
"@opt":"post,delete,put,get,setUp"
},
"CardInfoSearchCond":{
/*optional, search conditions*/
"searchID":{
/*required, string type, search ID, which is used to check the upper-level platform or system. If the platform or the
system is the same one during two searching, the search history will be saved in the memory to speed up next
searching*/
"@min":1,
"@max":36

264
Intelligent Security API (Person-Based Access Control) Developer Guide

},
"maxResults":{
/*required, integer32, maximum number of obtained records*/
"@min":1,
"@max":30
},
"EmployeeNoList":{
/*optional, person ID list*/
"maxSize":56,
"employeeNo":{
/*optional, string, employee No. (person ID)*/
"@min": ,
"@max":
}
},
"CardNoList":{
/*optional, card No. list*/
"maxSize":56,
"cardNo":{
/*optional, string, card No.*/
"@min":1,
"@max":32
}
}
},
"CardInfoDelCond":{
/*optional, deleting conditions*/
"EmployeeNoList":{
/*optional, person ID list*/
"maxSize":56,
"employeeNo":{
/*optional, string, employee No. (person ID)*/
"@min": ,
"@max":
}
},
"CardNoList":{
/*optional, card No. list*/
"maxSize":56,
"cardNo":{
/*optional, string, card No.*/
"@min":1,
"@max":32
}
}
},
"cardNo":{
/*required, string, card No.*/
"@min":1,
"@max":32
},
"employeeNo":{

265
Intelligent Security API (Person-Based Access Control) Developer Guide

/*required, string, employee No. (person ID)*/


"@min": ,
"@max":
},
"cardType":{
/*required, string, card type: "normalCard"-normal card, "patrolCard"-patrol card, "hijackCard"-duress card,
"superCard"-super card, "dismissingCard"-dismiss card, "emergencyCard"-emergency card (it is used to assign
permission to a temporary card, but it cannot open the door)*/
"@opt":"normalCard,patrolCard,hijackCard,superCard,dismissingCard,emergencyCard"
},
"leaderCard":{
/*optional, string, whether to support first card authentication function*/
"@min":1,
"@max":32
},
"checkCardNo":"true,false",
/*optional, boolean, whether to enable duplicated card verification: "false"-disable, "true"-enable. If this node is not
configured, the device will verify the duplicated card by default. When there is no card information, you can set
checkCardNo to "false" to speed up data applying; otherwise, it is not recommended to configure this node*/
"checkEmployeeNo":"true,false",
/*optional, boolean, whether to check the existence of the employee No. (person ID): "false"-no, "true"-yes. If this
node is not configured, the device will judge the existence of the employee No. (person ID) by default. If this node is
set to "false", the device will not judge the existence of the employee No. (person ID) to speed up data applying; if this
node is set to "true" or NULL, the device will judge the existence of the employee No. (person ID), and it is
recommended to set this node to "true" or NULL if there is no need to speed up data applying*/
"addCard":"true,false",
/*optional, boolean type, whether to add the card if the card information being edited does not exist: "false"-no (if
the device has checked that the card information being edited does not exist, the failure response message will be
returned along with the error code), "true"-yes (if the device has checked that the card information being edited does
not exist, the success response message will be returned, and the card will be added). If this node is not configured,
the card will not be added by default*/
"maxRecordNum":
/*required, integer type, supported maximum number of records (card records)*/
}
}

JSON_Cap_CardReaderAntiSneakCfg
CardReaderAntiSneakCfg capability message in JSON format
{
"CardReaderAntiSneakCfg": {
"cardReaderNo": {
/optional, string, card reader No.*/
"@min": ,
"@max":
}
"enable": "true,false",
/*equired, boolean, whether to enable the anti-passing back function of the card reader: "true"-enable, "false"-
disable*/
"followUpCardReader": {

266
Intelligent Security API (Person-Based Access Control) Developer Guide

/*optional, array, following card reader No. after the first card reader*/
"@min": ,
"@max":
}
}
}

JSON_Cap_CardReaderCfg
CardReaderCfg capability message in JSON format
{
"CardReaderCfg":{
"cardReaderNo":{
/*optional, integer, card reader No.*/
"@min": ,
"@max":
},
"enable":"true,false",
/*required, boolean, whether to enable: "true"-yes, "false"-no*/
"okLedPolarity":{
/*optional, string, OK LED polarity: "cathode", "anode"*/
"@opt":"cathode,anode"
},
"errorLedPolarity":{
/*optional, string, error LED polarity: "cathode", "anode"*/
"@opt":"cathode,anode"
},
"buzzerPolarity":{
/*optional, string, buzzer polarity: "cathode", "anode"*/
"@opt":"cathode,anode"
},
"swipeInterval":{
/*optional, integer, time interval of repeated authentication, which is valid for authentication modes such as
fingerprint, card, face, etc., unit: second*/
"@min":1,
"@max":255
},
"pressTimeout":{
/*optional, integer, timeout to reset entry on keypad, unit: second*/
"@min":1,
"@max":255
},
"enableFailAlarm":"true,false",
/*optional, boolean, whether to enable excessive failed authentication attempts alarm*/
"maxReadCardFailNum":{
/*optional, integer, maximum number of failed authentication attempts*/
"@min":1,
"@max":255
},
"enableTamperCheck":"true,false",

267
Intelligent Security API (Person-Based Access Control) Developer Guide

/*optional, boolean, whether to enable tampering detection*/


"offlineCheckTime":{
/*optional, integer, time to detect after the card reader is offline, unit: second*/
"@min":1,
"@max":255
},
"fingerPrintCheckLevel":{
/*optional, integer, fingerprint recognition level: 1-1/10 false acceptance rate (FAR), 2-1/100 false acceptance rate
(FAR), 3-1/1000 false acceptance rate (FAR), 4-1/10000 false acceptance rate (FAR), 5-1/100000 false acceptance rate
(FAR), 6-1/1000000 false acceptance rate (FAR), 7-1/10000000 false acceptance rate (FAR), 8-1/100000000 false
acceptance rate (FAR), 9-3/100 false acceptance rate (FAR), 10-3/1000 false acceptance rate (FAR), 11-3/10000 false
acceptance rate (FAR), 12-3/100000 false acceptance rate (FAR), 13-3/1000000 false acceptance rate (FAR),
14-3/10000000 false acceptance rate (FAR), 15-3/100000000 false acceptance rate (FAR), 16-Automatic Normal, 17-
Automatic Secure, 18-Automatic More Secure (currently not support)*/
"@opt":"1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18"
},
"useLocalController":"true,false",
/*ro, opt, boolean, whether it is connected to the distributed controller*/
"localControllerID":{
/*ro, opt, integer, distributed controller No., which is between 1 and 64, 0-unregistered. This field is valid only when
useLocalController is "true"*/
"@min":0,
"@max":64
},
"localControllerReaderID":{
/*ro, opt, integer, card reader ID of the distributed controller, 0-unregistered. This field is valid only when
useLocalController is "true"*/
"@min":0,
"@max":4
},
"cardReaderChannel":{
/*ro, opt, integer, communication channel No. of the card reader: 0-Wiegand or offline, 1-RS-485A, 2-RS-485B. This
field is valid only when useLocalController is "true"*/
"@opt":"0,1,2"
},
"fingerPrintImageQuality":{
/*opt, integer, fingerprint image quality: 1-low quality (V1), 2-medium quality (V1), 3-high quality (V1), 4-highest
quality (V1), 5-low quality (V2), 6-medium quality (V2), 7-high quality (V2), 8-highest quality (V2)*/
"@opt":"1,2,3,4,5,6,7,8"
},
"fingerPrintContrastTimeOut":{
/*optional, integer, fingerprint comparison timeout, which is between 1 and 20, unit: second, 255-infinite*/
"@min":0,
"@max":20
},
"fingerPrintRecogizeInterval":{
/*optional, integer, fingerprint scanning interval, which is between 1 and 10, unit: second, 255-no delay*/
"@min":0,
"@max":10
},
"fingerPrintMatchFastMode":{
/*optional, integer, fingerprint matching quick mode: 1-quick mode 1, 2-quick mode 2, 3-quick mode 3, 4-quick mode

268
Intelligent Security API (Person-Based Access Control) Developer Guide

4, 5-quick mode 5, 255-automatic*/


"@min":0,
"@max":5
},
"fingerPrintModuleSensitive":{
/*optional, integer, fingerprint module sensitivity, which is between 1 and 8*/
"@min":1,
"@max":8
},
"fingerPrintModuleLightCondition":{
/*optional, string, fingerprint module light condition: "outdoor", "indoor"*/
"@opt":"outdoor,indoor"
},
"faceMatchThresholdN":{
/*optional, integer, threshold of face picture 1:N comparison, which is between 0 and 100*/
"@min":0,
"@max":100
},
"faceQuality":{
/*optional, integer, face picture quality, which is between 0 and 100*/
"@min":0,
"@max":100
},
"faceRecogizeTimeOut":{
/*optional, integer, face recognition timeout, which is between 1 and 20, unit: second, 255-infinite*/
"@min":0,
"@max":20
},
"faceRecogizeInterval":{
/*optional, integer, face recognition interval, which is between 1 and 10, unit: second, 255-no delay*/
"@min":0,
"@max":10
},
"cardReaderFunction":{
/*ro, opt, array, card reader type: "fingerPrint"-fingerprint, "face", "fingerVein"-finger vein*/
"@opt":"fingerPrint,face,fingerVein"
},
"cardReaderDescription":{
/*ro, opt, card reader description. If the card reader is the Wiegand card reader or if offline, this field will be set to
"Wiegand" or "485Offline"*/
"@min":1,
"@max":16
},
"faceImageSensitometry":{
/*ro, opt, integer, face picture exposure, which is between 0 and 65535*/
"@min":0,
"@max":65535
},
"livingBodyDetect":"true,false",
/*optional, boolean, whether to enable human detection*/
"faceMatchThreshold1":{
/*optional, integer, threshold of face picture 1:1 comparison, which is between 0 and 100*/

269
Intelligent Security API (Person-Based Access Control) Developer Guide

"@min":0,
"@max":100
},
"buzzerTime":{
/*optional, integer, buzzing duration, which is between 0 and 5999, unit: second, 0-long buzzing*/
"@min":0,
"@max":5999
},
"faceMatch1SecurityLevel":{
/*optional, integer, security level of face 1:1 recognition: 1-normal, 2-high, 3-higher*/
"@opt":"1,2,3"
},
"faceMatchNSecurityLevel":{
/*optional, integer, security level of face 1:N recognition: 1-normal, 2-high, 3-higher*/
"@opt":"1,2,3"
},
"envirMode":{
/*optional, string, environment mode of face recognition: "indoor", "other"*/
"@opt":"indoor,other"
},
"liveDetLevelSet":{
/*optional, string, threshold level of liveness detection: "low", "middle"-medium, "high"*/
"@opt":"low,middle,high"
},
"liveDetAntiAttackCntLimit":{
/*optional, integer, number of anti-attacks of liveness detection, which is between 1 and 255. This value should be
configured as the same one on both client and device*/
"@min":1,
"@max":255
},
"enableLiveDetAntiAttack":"true,false",
/*optional, boolean, whether to enable anti-attack for liveness detection*/
"supportDelFPByID":"true,false",
/*ro, opt, boolean, whether the card reader supports deleting fingerprint by fingerprint ID: "true"-yes, "false"-no*/
"fingerPrintCapacity":{
/*ro, opt, integer, maximum number of fingerprints that can be added*/
"@min": ,
"@max":
},
"fingerPrintNum":{
/*ro, opt, integer, number of added fingerprints*/
"@min": ,
"@max":
},
"defaultVerifyMode":{
/*ro, opt, string, default authentication mode of the card reader (factory defaults): "cardAndPw"-card+password,
"card", "cardOrPw"-card or password, "fp"-fingerprint, "fpAndPw"-fingerprint+password, "fpOrCard"-fingerprint or
card, "fpAndCard"-fingerprint+card, "fpAndCardAndPw"-fingerprint+card+password, "faceOrFpOrCardOrPw"-face or
fingerprint or card or password, "faceAndFp"-face+fingerprint, "faceAndPw"-face+password, "faceAndCard"-face
+card, "face", "employeeNoAndPw"-employee No.+password, "fpOrPw"-fingerprint or password,
"employeeNoAndFp"-employee No.+fingerprint, "employeeNoAndFpAndPw"-employee No.+fingerprint+password,
"faceAndFpAndCard"-face+fingerprint+card, "faceAndPwAndFp"-face+password+fingerprint, "employeeNoAndFace"-

270
Intelligent Security API (Person-Based Access Control) Developer Guide

employee No.+face, "faceOrfaceAndCard"-face or face+card, "fpOrface"-fingerprint or face, "cardOrfaceOrPw"-card or


face or password, "cardOrFace"-card or face, "cardOrFaceOrFp"-card or face or fingerprint*/

"@opt":"cardAndPw,card,cardOrPw,fp,fpAndPw,fpOrCard,fpAndCard,fpAndCardAndPw,faceOrFpOrCardOrPw,faceAnd
Fp,faceAndPw,faceAndCard,face,employeeNoAndPw,fpOrPw,employeeNoAndFp,employeeNoAndFpAndPw,faceAndFp
AndCard,faceAndPwAndFp,employeeNoAndFace,faceOrfaceAndCard,fpOrface,cardOrfaceOrPw,cardOrFace,cardOrFac
eOrFp"
},
"faceRecogizeEnable":{
/*optional, integer, whether to enable facial recognition: 1-enable, 2-disable, 3-attendence checked in/out by
recognition of multiple faces*/
"@opt": "1,2,3"
},
"FPAlgorithmVersion":{
/*optional, string, read-only, fingerprint algorithm library version*/
"@min": ,
"@max":
},
"cardReaderVersion":{
/*optional, string, read-only, card reader version*/
"@min": ,
"@max":
}
"enableReverseCardNo": "true,false",
/*optional, boolean, whether to enable reversing the card No.*/
"independSwipeIntervals": {
/*optional, int, time interval of person authentication, unit: second. This time interval is calculated for each person
separately and is different from swipeInterval*/
"@min": ,
"@max":
},
"maskFaceMatchThresholdN": {
/*optional, int, 1:N face picture (face with mask and normal background) comparison threshold, value range: [0,100]*/
"@min": ,
"@max":
}
}
}

JSON_Cap_CardReaderPlan
CardReaderPlan capability message in JSON format
{
"CardReaderPlan": {
"cardReaderNo ": {
/*authentication unit (card reader, fingerprint module, etc.) No.*/
"@min": 1,
"@max": 4
},
"templateNo": {

271
Intelligent Security API (Person-Based Access Control) Developer Guide

/required, integer, schedule template No.: 0-cancel linking the template to the schedule and restore to the default
status (normal status)*/
"@min": 1,
"@max": 16
}
}
}

JSON_Cap_ClearAntiSneak
ClearAntiSneak capability message in JSON format
{
"ClearAntiSneak": {
"clearAll": "true,false",
/*required, boolean, whether to clear all anti-passing back records: "true"-yes, "false"-no. Clearing all anti-passing
back records is not supported by access control devices version 2.1*/
"EmployeeNoList" : {
/*optional, person ID list, this node is valid when clearAll is "false"*/
"maxSize": ,
"employeeNo": {
/*optional, string, employee No. (person ID)*/
"@min": ,
"@max":
}
}
}
}

JSON_Cap_ClearAntiSneakCfg
ClearAntiSneakCfg capability message in JSON format
{
"ClearAntiSneakCfg": {
"ClearFlags": {
"antiSneak": "true,false"
/*required, boolean, whether to clear the anti-passing back parameter*/
}
}
}

JSON_Cap_ClearEventCardLinkageCfg
ClearEventCardLinkageCfg capability message in JSON format

272
Intelligent Security API (Person-Based Access Control) Developer Guide

{
"ClearEventCardLinkageCfg": {
"ClearFlags": {
"eventCardLinkage": "true,false"
/*required, boolean, whether to clear event and card linkage parameters: "true"-yes, "false"-no*/
}
}
}

JSON_Cap_ClearGroupCfg
ClearGroupCfg capability message in JSON format
{
"ClearGroupCfg":{
"ClearFlags":{
"groupCfg":"true,false"
/*required, boolean, group parameters*/
}
}
}

JSON_Cap_ClearPlansCfg
ClearPlansCfg capability message in JSON format
{
"ClearPlansCfg":{
"ClearFlags":{
"doorStatusWeekPlan": "true,false",
/*optional, boolean, whether to clear the week schedule of the door control*/
"cardReaderWeekPlan": "true,false",
/*optional, boolean, whether to clear the week schedule of the card reader authentication mode control*/
"userRightWeekPlan": "true,false",
/*optional, boolean, whether to clear the week schedule of the access permission control*/
"doorStatusHolidayPlan": "true,false",
/*optional, boolean, whether to clear the holiday schedule of the door control*/
"cardReaderHolidayPlan": "true,false",
/*optional, boolean, whether to clear the holiday schedule of the card reader authentication mode control*/
"userRightHolidayPlan": "true,false",
/*optional, boolean, whether to clear the holiday schedule of the access permission control*/
"doorStatusHolidayGroup": "true,false",
/*optional, boolean, whether to clear the holiday group of the door control*/
"cardReaderHolidayGroup": "true,false",
/*optional, boolean, whether to clear the holiday group of the card reader authentication mode control*/
"userRightHolidayGroup": "true,false",
/*optional, boolean, whether to clear the holiday group of the access permission control*/
"doorStatusTemplate": "true,false",

273
Intelligent Security API (Person-Based Access Control) Developer Guide

/*optional, boolean, whether to clear the schedule template of the door control*/
"cardReaderTemplate": "true,false",
/*optional, boolean, whether to clear the control schedule template of the card reader authentication mode*/
"userRightTemplate": "true,false"
/*optional, boolean, whether to clear the schedule template of the access permission control*/
}
}
}

JSON_Cap_DoorStatusHolidayGroupCfg
DoorStatusHolidayGroupCfg capability message in JSON format
{
"DoorStatusHolidayGroupCfg": {
"groupNo": {
/*holiday group No.*/
"@min": 1,
"@max": 16
},
"enable": "true,false",
/*whether to enable: "true"-enable, "false"-disable*/
"groupName": {
/*holiday group name*/
"@min": 1,
"@max": 32
},
"holidayPlanNo" : {
/*holiday group schedule No.*/
"@min": 1,
"@max": 16
}
}
}

JSON_Cap_DoorStatusHolidayPlanCfg
DoorStatusHolidayPlanCfg capability message in JSON format
{
"DoorStatusHolidayPlanCfg": {
"planNo": {
/*holiday schedule No.*/
"@min": 1,
"@max": 16
},
"enable": "true,false",
/*whether to enable: "true"-enable, "false"-disable*/
"beginDate": "",

274
Intelligent Security API (Person-Based Access Control) Developer Guide

/*start date of the holiday*/


"endDate": "",
/*end date of the holiday*/
"HolidayPlanCfg" : {
/*holiday schedule parameters*/
"maxSize": 8,
"id": {
/*time period No.*/
"@min": 1,
"@max": 8
},
"enable": "true,false",
/*whether to enable: "true"-enable, "false"-disable*/
"doorStatus": {
/*door status: "remainOpen"-remain open (access without authentication), "remainClosed"-remain closed (access is
not allowed), "normal"-access by authentication, "sleep", "invalid"*/
"@opt": "remainOpen,remainClosed,normal,sleep,invalid"
},
"TimeSegment": {
"beginTime": "",
/*start time of the time period (device local time)*/
"endTime": "",
/*end time of the time period (device local time)*/
"validUnit":
/*time accuracy: "hour", "minute", "second". If this node is not returned, it indicates that the time accuracy is
"minute"*/
}
}
}
}

JSON_Cap_DoorStatusPlan
DoorStatusPlan capability message in JSON format
{
"DoorStatusPlan": {
"doorNo": {
/*door No.*/
"@min": 1,
"@max": 4
},
"templateNo": {
/*required, integer, schedule template No.: 0-cancel linking the template with the schedule and restore to the default
status (normal status)*/
"@min": 1,
"@max": 16
}
}
}

275
Intelligent Security API (Person-Based Access Control) Developer Guide

JSON_Cap_DoorStatusPlanTemplate
DoorStatusPlanTemplate capability message in JSON format
{
"DoorStatusPlanTemplate": {
"templateNo ": {
/*schedule template No.*/
"@min": 1,
"@max": 16
},
"enable": "true,false",
/*required, boolean, whether to enable: "true"-enable, "false"-disable*/
"templateName": {
/*required, string, template name*/
"@min": 1,
"@max": 32
},
"weekPlanNo":{
/*required, integer, week schedule No.*/
"@min": 1,
"@max": 16
},
"holidayGroupNo" : {
/*required, integer, holiday group No.*/
"@min": 1,
"@max": 16
}
}
}

JSON_Cap_DoorStatusWeekPlanCfg
DoorStatusWeekPlanCfg capability message in JSON format
{
"DoorStatusWeekPlanCfg":{
"planNo":{
/*week schedule No.*/
"@min":1,
"@max":16
},
"enable":"true,false",
/*whether to enable: "true"-enable, "false"-disable*/
"WeekPlanCfg":{
/*week schedule parameters*/
"maxSize":56,
"week":{
"@opt":"Monday,Tuesday,Wednesday,Thursday,Friday,Saturday,Sunday"

276
Intelligent Security API (Person-Based Access Control) Developer Guide

},
"id":{
"@min":1,
"@max":8
},
"enable":"true,false",
/*whether to enable: "true"-enable, "false"-disable*/
"doorStatus":{
/*door status: "remainOpen"-remain open (access without authentication), "remainClosed"-remain closed (access is
not allowed), "normal"-access by authentication, "sleep", "invalid"*/
"@opt":"remainOpen,remainClosed,normal,sleep,invalid"
},
"TimeSegment":{
"beginTime":"",
/*start time of the time period (device local time)*/
"endTime":"",
/*end time of the time period (device local time)*/
"validUnit":
/*time accuracy: "hour", "minute", "second". If this node is not returned, it indicates that the time accuracy is
"minute"*/
}
}
}
}

JSON_Cap_EventCardLinkageCfg
EventCardLinkageCfg capability message in JSON format
{
"EventCardLinkageCfg":{
"eventID":{
/*optional, integer, event ID*/
"@min": ,
"@max":
},
"proMode":{
/*required, string, linkage type: "event"-event linkage, "card"-card linkage, "mac"-MAC address linkage, "employee"-
employee No. (person ID)*/
"@opt": "event,card,mac,employee"
},
"EventLinkageInfo":{
/*optional, event linkage parameters, it is valid when proMode is "event"*/
"mainEventType":{
/*optional, integer, major event type: 0-device event, 1-alarm input event, 2-access control point event, 3-
authentication unit (card reader, fingerprint module) event*/
"@opt": "0,1,2,3"
},
"devSubEventType":{
/*optional, integer, minor type of device event, refer to Event Linkage Types for details*/
"@opt": "0,1,2,3..."

277
Intelligent Security API (Person-Based Access Control) Developer Guide

},
"alarmSubEventType": {
/*optional, integer, minor type of alarm input event, refer to Event Linkage Types for details*/
"@opt": "0,1,2,3…"
},
"doorSubEventType": {
/*optional, integer, minor type of access control point event, refer to Event Linkage Types for details*/
"@opt": "0,1,2,3…"
},
"cardReaderSubEventType":{
/*optional, integer, minor type of authentication unit event, refer to Event Linkage Types for details*/
"@opt": "0,1,2,3…"
}
},
"CardNoLinkageInfo":{
/*optional, card linkage parameters, it is valid when proMode is "card"*/
"cardNo":{
/*optional, string, card No.*/
"@min": ,
"@max":
}
},
"MacAddrLinkageInfo":{
/*optional, MAC address linkage parameters, it is valid when proMode is "mac"*/
"MACAddr":{
/*optional, string, physical MAC address*/
"@min": ,
"@max":
}
},
"EmployeeInfo":{
/*optional, employee No. (person ID) linkage parameters, it is valid when proMode is "employee"*/
"employeeNo":{
/*optional, string, employee ID (person ID)*/
"@min": ,
"@max":
}
},
"eventSourceID":{
/*optional, integer, event source ID, it is valid when proMode is "event", 65535-all. For device event (mainEventType
is 0), this field is invalid; for access control point event (mainEventType is 2), this field refers to the access control
point No.; for authentication unit event (mainEventType is 3, this field refers to the authentication unit No.; for alarm
input event (mainEventType is 1), this field refers to the zone alarm input ID or the event alarm input ID*/
"@min": ,
"@max":
},
"alarmout":{
/*optional, array, linked alarm output No.*/
"@min": ,
"@max":
},
"openDoor":{

278
Intelligent Security API (Person-Based Access Control) Developer Guide

/*optional, array, linked door No. to open*/


"@min": ,
"@max":
},
"closeDoor":{
/*optional, array, linked door No. to close*/
"@min": ,
"@max":
},
"alwaysOpen":{
/*optional, array, linked door No. to remain unlocked*/
"@min": ,
"@max":
},
"alwaysClose":{
/*optional, array, linked door No. to remain locked*/
"@min": ,
"@max":
},
"mainDevBuzzer": "true,false",
/*optional, boolean, whether to enable buzzer linkage of the access controller (start buzzing): "false"-no, "true"-yes*/
"capturePic": "true,false",
/*optional, boolean, whether to enable capture linkage: "false"-no, "true"-yes*/
"recordVideo": "true,false",
/*optional, boolean, whether to enable recording linkage: "false"-no, "true"-yes*/
"mainDevStopBuzzer": "true,false",
/*optional, boolean, whether to enable buzzer linkage of the access controller (stop buzzing): "false"-no, "true"-yes*/
"audioDisplayID": {
/*optional, integer, linked audio announcement ID, which is between 1 and 32: 0-not link*/
"@min": ,
"@max":
},
"audioDisplayMode": {
/*optional, integer, linked audio announcement mode: "close", "single", "loop"*/
"@min": "close,single,loop"
},
"readerBuzzer": {
/*optional, array, linked buzzer No.*/
"@min": ,
"@max":
},
"alarmOutClose": {
/*optional, array, linked alarm output No.*/
"@min": ,
"@max":
},
"alarmInSetup": {
/*optional, array, linked zone No. to arm*/
"@min": ,
"@max":
},
"alarmInClose": {

279
Intelligent Security API (Person-Based Access Control) Developer Guide

/*optional, array, linked zone No. to disarm*/


"@min": ,
"@max":
},
"readerStopBuzzer": {
/*optional, array, linked buzzer No. to stop buzzing*/
"@min": ,
"@max":
},
"purePwdVerifyEnable":
/*optional, boolean, whether the device supports opening the door only by password: true-yes, this node is not
returned-no. The password used to open the door is the value of the node password in the message JSON_UserInfo.*/
/*For opening the door only by password: 1. The password in "XXX or password" in the authentication mode refers to
the person's password (the value of the node password in JSON_UserInfo); 2. The device will not check the
duplication of the password, and the upper platform should ensure that the password is unique; 3. The password
cannot be added, deleted, edited, or searched for on the device locally.*/
}
}

See Also
Event Linkage Types

JSON_Cap_EventCardNoList
EventCardNoList capability message in JSON format
{
"EventCardNoList":{
"id":{
/*optional, range of event ID that can be configured*/
"@min": ,
"@max":
}
}
}

JSON_Cap_EventOptimizationCfg
EventOptimizationCfg capability message in JSON format
{
"EventOptimizationCfg":{
"enable":"true,false",
/*optional, boolean, whether to enable event optimization: "true"-yes (default), "false"-no*/
"isCombinedLinkageEvents": "true,false"
/*optional, boolean, whether to enable linked event combination: "true"-yes (default), "false"-no*/
}
}

280
Intelligent Security API (Person-Based Access Control) Developer Guide

JSON_Cap_FaceRecognizeMode
FaceRecognizeMode capability message in JSON format
{
"FaceRecognizeMode":{
"mode":{
/*optional, string type, facial recognition mode: "normalMode"-normal mode, "deepMode"-deep mode*/
"@opt":"normalMode,deepMode"
}
}
}

JSON_Cap_FingerPrintCfg
FingerPrintCfg capability message in JSON format
{
"FingerPrintCfg":{
"searchID":{
/*required, string type, search ID*/
"@min":1,
"@max":36
},
"employeeNo":{
/*required, string, employee No. (person ID) linked with the fingerprint*/
"@min": ,
"@max":
},
"enableCardReader":{
/*required, array, fingerprint module to apply fingerprint data to*/
"@min": ,
"@max":
},
"fingerPrintID":{
/*required, integer, fingerprint No., which is between 1 and 10*/
"@min":1,
"@max":10
},
"fingerType":{
/*required, string, fingerprint type: "normalFP"-normal fingerprint, "hijackFP"-duress fingerprint, "patrolFP"-patrol
fingerprint, "superFP"-super fingerprint, "dismissingFP"-dismiss fingerprint*/
"@opt":"normalFP,hijackFP,patrolFP,superFP,dismissingFP"
},
"leaderFP":{
/*optional, array, whether to support first time authentication function*/
"@min":1,
"@max":32
},

281
Intelligent Security API (Person-Based Access Control) Developer Guide

"checkEmployeeNo":"true,false",
/*optional, boolean, whether to judge the existence of the employee No. (person ID): "false"-no, "true"-yes. If this
node is not configured, the device will judge the existence of the employee No. (person ID) by default. If this node is
set to "false", the device will not judge the existence of the employee No. (person ID) to speed up data applying; if this
node is set to "true" or NULL, the device will judge the existence of the employee No. (person ID), and it is
recommended to set this node to "true" or NULL if there is no need to speed up data applying*/
"callbackMode":"allRetrun,partReturn",
/*optional, string, device callback mode: "allRetrun"-return when applying to all fingerprint modules completed
(blocking); "partReturn"-return when applying to a part of fingerprint modules completed (unblocking). If this node is
set to NULL, blocking mode will be adopted*/
/*when blocking mode is adopted, the totalStatus must be 1 after FingerPrintStatus is returned, which indicates that
the fingerprint information is applied; when unblocking mode is adopted, if the totalStatus is 0 after FingerPrintStatus
is returned, you should repeatedly call the URI /ISAPI/AccessControl/FingerPrintProgress?format=json to get the
applying progress (which is also returned in FingerPrintStatus) until totalStatus equals to 1 (the fingerprint
information is applied)*/
"StatusList":{
/*optional, status list*/
"id":{
/*optional, integer, fingerprint module No.*/
"@min": ,
"@max":
},
"cardReaderRecvStatus":{
/*optional, integer, fingerprint module status: 0-connecting failed, 1-connected, 2-the fingerprint module is offline, 3-
the fingerprint quality is poor, try again, 4-the memory is full, 5-the fingerprint already exists, 6-the fingerprint ID
already exists, 7-invalid fingerprint ID, 8-this fingerprint module is already configured, 10-the fingerprint module
version is too old to support the employee No.*/
"@opt": "0,1,2,3,4,5,6,7,8,10"
},
"errorMsg":{
/*optional, string, error information*/
"@min": ,
"@max":
}
},
"totalStatus":{
/*required, integer, applying status: 0-applying, 1-applied*/
"@opt":"0,1"
},
"isSupportFingerCover":true,
/*whether to support overwriting the original fingerprint when applying new fingerprint linked with the same person
ID or employee No. If it is supported, this node will be set to "true"; otherwise, this node will not be returned*/
"isSupportSetUp":true
/*whether to support setting fingerprint parameters. If it is supported, this node will be set to "true"; otherwise, this
node will not be returned*/
}
}

282
Intelligent Security API (Person-Based Access Control) Developer Guide

JSON_Cap_FingerPrintDelete
FingerPrintDelete capability message in JSON format
{
"FingerPrintDelete":{
"mode":{
/*required, string, deleting mode: "byEmployeeNo"-delete by employee No. (person ID), "byCardReader"-delete by
fingerprint module*/
"@opt":"byEmployeeNo,byCardReader"
},
"EmployeeNoDetail":{
/*optional, delete by employee No. (person ID), this node is valid when mode is "byEmployeeNo"*/
"employeeNo":{
/*optional, string, employee No. (person ID) linked with the fingerprint*/
"@min": ,
"@max":
},
"enableCardReader":{
/*optional, array, fingerprint module whose fingerprints should be deleted*/
"@min": ,
"@max":
},
"fingerPrintID":{
/*optional, array, No. of fingerprint to be deleted*/
"@min": ,
"@max":
},
},
"CardReaderDetail":{
/*optional, delete by fingerprint module, this node is valid when mode is "byCardReader"*/
"cardReaderNo":{
/*optional, integer, fingerprint module No.*/
"@min": ,
"@max":
},
"clearAllCard":"true,false",
/*optional, boolean, whether to delete the fingerprint information of all cards: "false"-no (delete by employee No.),
"true"-yes (delete the fingerprint information of all employee No.)*/
"employeeNo":{
/*optional, string, employee No. (person ID) linked with the fingerprint, this node is valid when clearAllCard is
"false"*/
"@min": ,
"@max":
}
}
}
}

283
Intelligent Security API (Person-Based Access Control) Developer Guide

JSON_Cap_GroupCfg
GroupCfg capability message in JSON format
{
"GroupCfg":{
"groupNo":{
/*optional, integer, group No.*/
"@min": ,
"@max":
},
"enable":"true,false",
/*required, boolean, whether to enable the group*/
"ValidPeriodCfg":{
/*required, effective period parameters of the group*/
"enable":"true,false",
/*required, boolean, whether to enable the effective period: "true"-yes, "false"-no. If the effective period is not
enabled, it indicates that the group is permanently valid*/
"beginTime":{
/*required, start time of the effective period (UTC time)*/
"@min":1,
"@max":32
},
"endTime":{
/*required, end time of the effective period (UTC time)*/
"@min":1,
"@max":32
}
},
"groupName ":{
/*optional, string, group name*/
"@min":1,
"@max":32
}
}
}

JSON_Cap_LogModeCfg
LogModeCfg capability message in JSON format
{
"LogModeCfg":{
"type":{
/*optional, integer, log mode: 1-16 bytes (the host log can be stored by 25w, and the employee No. can be stored by
16 bytes), 2-12 bytes (the host log can be stored by 25w, and the employee No. can be stored by 12 bytes). This node
will be set to 1 by default*/
"@opt":"1,2"
}

284
Intelligent Security API (Person-Based Access Control) Developer Guide

}
}

JSON_Cap_MultiCardCfg
MultiCardCfg capability message in JSON format
{
"MultiCardCfg":{
"doorNo":{
/*optional, integer, door No.*/
"@min": ,
"@max":
},
"enable":"true,false",
/*required, boolean, whether to enable multi-factor authentication*/
"swipeIntervalTimeout":{
/*optional, integer, timeout of swiping (authentication) interval, which is between 1 and 255, and the default value is
10, unit: second*/
"@min":1,
"@max":255
},
"GroupCfg":{
/*optional, multi-factor authentication parameters*/
"maxSize":20,
"id":{
/*optional, integer, multi-factor authentication No., which is between 1 and 20*/
"@min":1,
"@max":20
},
"enable":"true,false",
/*optional, boolean, whether to enable the multi-factor authentication*/
"enableOfflineVerifyMode":"true,false",
/*optional, boolean, whether to enable verification mode when the access control device is offline (the super
password will replace opening door remotely)*/
"templateNo":{
/*optional, integer, schedule template No. to enable the multi-factor authentication*/
"@min":1,
"@max":20
},
"GroupCombination":{
/*optional, parameters of the multi-factor authentication group*/
"maxSize":8,
"enable":"true,false",
/*optional, integer, whether to enable the multi-factor authentication group*/
"memberNum":{
/*optional, integer, number of members swiping cards*/
"@min":1,
"@max":20
},
"sequenceNo":{

285
Intelligent Security API (Person-Based Access Control) Developer Guide

/*optional, integer, serial No. of swiping cards of the multi-factor authentication group, which is between 1 and 8*/
"@min":1,
"@max":8
},
"groupNo":{
/*optional, integer, group No., 65534-super password, 65535-remotely open door. 65534 and 65535 do not need to
be returned by the device capability. If the device returns groupNo node, it indicates that the device supports 65534
and 65535*/
"@min":1,
"@max":20
}
}
}
}
}

JSON_Cap_MultiDoorInterLockCfg
MultiDoorInterLockCfg capability message in JSON format
{
"MultiDoorInterLockCfg":{
"enable":"true,false",
/*required, boolean, whether to enable multi-door interlocking: "true"-yes, "false"-no*/
"MultiDoorGroup":{
/*optional, parameters of the multi-door interlocking group*/
"maxSize":8,
"id":{
/*optional, integer, multi-door interlocking No., which is between 1 and 8*/
"@min":1,
"@max":8
},
"doorNoList":{
/*optional, array, door No. list of multi-door interlocking (range of each door No. in the list), which is between 1 and
8*/
"@min":1,
"@max":8
},
"doorNoListLen":{
/*optional, range of the list length of multi-door interlocking, e.g., the list length of [1,3,5] is 3*/
"@min":1,
"@max":8
}
}
}
}

286
Intelligent Security API (Person-Based Access Control) Developer Guide

JSON_Cap_OSDPModify
OSDPModify capability message in JSON format
{
"OSDPModify":{
"id":{
/*required, integer, range of the original OSDP card reader ID*/
"@min": ,
"@max":
},
"newID":{
/*required, integer, new ID of the OSDP card reader*/
"@min": ,
"@max":
}
}
}

JSON_Cap_OSDPStatus
OSDPStatus capability message in JSON format
{
"OSDPStatus":{
"id":{
/*required, integer, range of the OSDP card reader ID*/
"@min": ,
"@max":
},
"status":"online,offline"
/*required, string, online status: "online", "offline"*/
}
}

JSON_Cap_PhoneDoorRightCfg
PhoneDoorRightCfg capability message in JSON format
{
"PhoneDoorRightCfg":{
"phoneNo":{
/*optional, integer, No. of the mobile phone number allowlist*/
"@min": ,
"@max":
},
"openRight":{
/*optional, array, whether to have permission to open the door*/

287
Intelligent Security API (Person-Based Access Control) Developer Guide

"@min": ,
"@max":
},
"closeRight":{
/*optional, array, whether to have permission to close the door*/
"@min": ,
"@max":
},
"alwaysOpenRight":{
/*optional, array, whether to have permission to remain the door unlocked*/
"@min": ,
"@max":
},
"alwaysCloseRight":{
/*optional, array, whether to have permission to remain the door locked*/
"@min": ,
"@max":
},
"armRight":{
/*optional, array, whether to have permission to arm the alarm input port*/
"@min": ,
"@max":
},
"disarmRight":{
/*optional, array, whether to have permission to disarm the alarm input port*/
"@min": ,
"@max":
}
}
}

JSON_Cap_PictureServerInformation
PictureServerInformation capability message in JSON format
{
"PictureServerInformation":{
"pictureServerType":{
/*required, string type, picture storage server type: "tomact", "VRB", "cloudStorage"-cloud storage, "KMS"*/
"@opt":"tomact,VRB,cloudStorage,KMS",
"#text":""
},
"addressingFormatType":{
/*required, string type, format type of the picture storage server address: "ipaddress"-IP address (default),
"hostname"-host name*/
"@opt":"ipaddress,hostname",
"#text":""
},
"hostName":{
/*string type, domain name of the picture storage server, the string length is between 0 and 64. This field is valid
when addressingFormatType is "hostname"*/

288
Intelligent Security API (Person-Based Access Control) Developer Guide

"@min":0,
"@max":64,
"#text":""
},
"ipv4Address":{
/*string type, IPv4 address of the picture storage server, the string length is between 0 and 64. This field is valid when
addressingFormatType is "ipaddress"*/
"@min":0,
"@max":64,
"#text":""
},
"ipv6Address":{
/*string type, IPv6 address of the picture storage server, the string length is between 0 and 128. This field is valid
when addressingFormatType is "ipaddress"*/
"@min":0,
"@max":128,
"#text":""
},
"portNo":{
/*required, integer type, port No. of the picture storage server, which is between 1024 and 65535*/
"@min":1024,
"@max":65535,
"#text":
},
"underlyingProtocol":{
/*optional, string, bottom-level protocol of the picture storage server: "HTTP", "HTTPS". This field is valid when
pictureServerType contains "cloudStorage"*/
"@opt":["http","https"]
},
"cloudStorage":{
/*parameters of the clould storage server, which is valid when pictureServerType is "cloudStorage"*/
"cloudManageHttpPort":{
/*required, integer type, HTTP port No. for central management of the cloud storage server, which is between 1024
and 65535*/
"@min":1024,
"@max":65535,
"#text":
},
"cloudTransDataPort":{
/*required, integer type, data transmission port No. of the cloud storage server, which is between 1024 and 65535*/
"@min":1024,
"@max":65535,
"#text":
},
"cloudCmdPort":{
/*required, integer type, signaling port No. of the cloud storage server, which is between 1024 and 65535*/
"@min":1024,
"@max":65535,
"#text":
},
"cloudHeartBeatPort":{
/*required, integer type, heartbeat port No. of the cloud storage server, which is between 1024 and 65535*/

289
Intelligent Security API (Person-Based Access Control) Developer Guide

"@min":1024,
"@max":65535,
"#text":
},
"cloudStorageHttpPort":{
/*required, integer type, HTTP port No. of the cloud storage server, which is between 1024 and 65535*/
"@min":1024,
"@max":65535,
"#text":
},
"cloudUsername":{
/*required, string type, user name of the cloud storage server, the string length is between 0 and 32*/
"@min":0,
"@max":32,
"#text":""
},
"cloudPassword":{
/*required, string type, password of the cloud storage server, the string length is between 0 and 32*/
"@min":0,
"@max":32,
"#text":""
},
"cloudPoolId":{
/*required, integer type, cloud storage pool ID, which is between 1 and 4294967295. If this field is not configured by
the upper-level, this field will be set to 1 by default*/
"@min":1,
"@max":4294967295,
"#text":
},
"cloudPoolIdEx":{
/*optional, string, cloud storage pool ID, this node is valid when cloud storage pool ID of type string is supported*/
"@min":0,
"@max":0,
"#text":""
},
"clouldProtocolVersion":{
/*required, string type, protocol version of the cloud storage server, the string length is between 0 and 32*/
"@min":0,
"@max":32,
"#text":""
},
"clouldAccessKey":{
/*string type, cloud storage server access_key, the string length is between 0 and 64. This field is valid when
clouldProtocolVersion is "V2.0"*/
"@min":0,
"@max":64
},
"clouldSecretKey":{
/*string type, cloud storage server secret_key, the string length is between 0 and 64. This field is valid when
clouldProtocolVersion is "V2.0"*/
"@min":0,
"@max":64

290
Intelligent Security API (Person-Based Access Control) Developer Guide

}
}
}
}

JSON_Cap_PrinterCfg
PrinterCfg capability message in JSON format
{
"PrinterCfg":{
"enable":{
/*required, boolean, whether to enable the printer*/
"@opt":"true,false"
},
"printFormat":{
"vistorPic":{
/*optional, visitor picture*/
"enable":{
/*required, boolean, whether to print visitor picture*/
"@opt":"true,false"
},
"lineNo":{
/*required, integer, line No.*/
"@min": 1,
"@max": 255,
}
},
"vistorName":{
/*optional, visitor name*/
"enable":{
/*required, boolean, whether to print visitor name*/
"@opt":"true,false"
},
"lineNo":{
/*required, integer, line No.*/
"@min": 1,
"@max": 255,
}
},
"certificateNumber":{
/*optional, visitor's certificate No.*/
"enable":{
/*required, boolean, whether to print visitor's certificate No.*/
"@opt":"true,false"
},
"lineNo":{
/*required, integer, line No.*/
"@min": 1,
"@max": 255,
}

291
Intelligent Security API (Person-Based Access Control) Developer Guide

},
"address":{
/*optional, visitor's address*/
"enable":{
/*required, boolean, whether to print visitor's address*/
"@opt":"true,false"
},
"lineNo":{
/*required, integer, line No.*/
"@min": 1,
"@max": 255,
}
},
"validity":{
/*optional, expiry date*/
"enable":{
/*required, whether to print the expiry date*/
"@opt":"true,false"
},
"lineNo":{
/*required, integer, line No.*/
"@min": 1,
"@max": 255,
}
},
"receptionDepartment":{
/*optional, reception department*/
"enable": {
/*required, boolean, whether to print the reception department*/
"@opt":"true,false"
},
"lineNo":{
/*required, integer, line No.*/
"@min": 1,
"@max": 255,
}
},
"receptionStaff":{
/*optional, receptionist information*/
"enable":{
/*required, boolean, whether to print the receptionist information*/
"@opt":"true,false"
},
"lineNo":{
/*required, integer, line No.*/
"@min": 1,
"@max": 255,
}
},
"registrationTime":{
/*optional, registered time*/
"enable":{

292
Intelligent Security API (Person-Based Access Control) Developer Guide

/*optional, whether to print the registered time*/


"@opt":"true,false"
},
"lineNo":{
/*required, integer, line No.*/
"@min": 1,
"@max": 255,
}
},
}
}
}

JSON_Cap_RemoteCheck
Message about the capability of verifying the access control event remotely in JSON format.
{
"RemoteCheck":{
"serialNo":{
/*required, int, event serial No. which should be the same as that in the event information message for uploading*/
"@min":1,
"@max":2000000000
},
"checkResult":{
/*required, string, verification result: "success"-verified, "failed"-verification failed*/
"@opt":["success", "failed"]
},
"info":{
/*optional, string, additional information*/
"@min":1,
"@max":
}
}
}

JSON_Cap_RemoteControlBuzzer
RemoteControlBuzzer capability message in JSON format
{
"RemoteControlBuzzer":{
"cardReaderNo":{
/*optional, integer, card reader No. (buzzer No.)*/
"@min": ,
"@max":
},
"cmd":{
/*required, string, command: "start"-start buzzing, "stop"-stop buzzing*/

293
Intelligent Security API (Person-Based Access Control) Developer Guide

"@opt":"start,stop"
}
}
}

JSON_Cap_RemoteControlPWCfg
RemoteControlPWCfg capability message in JSON format
{
"RemoteControlPWCfg":{
"password":{
/*optional, string type, password for remote door control. The password must contain 6 digits and it ranges from
000000 to 999999*/
"@min":000000,
"@max":999999
}
}
}

JSON_Cap_RemoteControlPWCheck
RemoteControlPWCheck capability message in JSON format
{
"RemoteControlPWCfg":{
"password":{
/*optional, string type, password for remote door control (or EZVIZ verification code). The password must contain 6
digits and it ranges from 000000 to 999999*/
"@min":000000,
"@max":999999
}
}
}

JSON_Cap_SmsRelativeParam
SmsRelativeParam capability message in JSON format
{
"SmsRelativeParam":{
"WhiteList":{
/*required, mobile phone number allowlist*/
"maxSize":32,
/*maximum number of mobile phone number allowlists*/
"id":{
/*required, integer, No. of mobile phone number allowlist*/

294
Intelligent Security API (Person-Based Access Control) Developer Guide

"@min": ,
"@max":
},
"phoneNo":{
/*required, string, mobile phone number*/
"@min": ,
"@max":
},
"doorControl":"true,false",
/*optional, boolean, whether to support door operation control: "true"-yes, "false"-no*/
"acsPassword":{
/*optional, string, command to open the door*/
"@min": ,
"@max":
}
}
}
}

JSON_TTSTextCap
JSON message about the text configuration capability of the audio prompt for the authentication
results
{
"TTSTextCap":{
"enable":[true, false],
/*required, boolean, whether to enable: true-enable, false-disable*/
"prefix":["name", "lastname", "none"],
/*optional, string, whether to play the audio with "user name" or "honorific and last name of the user" as the prefix:
"name"-play the audio with "user name" (e.g., "Jack Smith" will be played), "lastname"-play the audio with "honorific
and last name of the user" (e.g., "Mr. Smith" will be played), "none" (default)*/
"Success":{
"maxSize":4,
"TimeSegment":{
"beginTime":"",
/*required, string, start time, which is between 00:00:00 and 23:59:59*/
"endTime":"",
/*required, string, end time, which is between 00:00:00 and 23:59:59*/
"validUnit":""
/*optional, string, time accuracy: "hour", "minute", "second". If this field is not returned, it indicates that the default
time accuracy is "minute"*/
},
"language":{
/*optional, string, language: "SimChinese", "TraChinese", "English"*/
"@opt":["SimChinese", "TraChinese", "English"]
},
"text":{
/*required, string, text of the audio prompt*/
"@min": ,

295
Intelligent Security API (Person-Based Access Control) Developer Guide

"@max":
}
},
"Failure":{
"maxSize":4,
"TimeSegment":{
"beginTime":"",
/*required, string, start time, which is between 00:00:00 and 23:59:59*/
"endTime":"",
/*required, string, end time, which is between 00:00:00 and 23:59:59*/
"validUnit":""
/*optional, string, time accuracy: "hour", "minute", "second". If this field is not returned, it indicates that the default
time accuracy is "minute"*/
},
"language":{
/*optional, string, language: "SimChinese", "TraChinese", "English"*/
"@opt":["SimChinese", "TraChinese", "English"]
},
"text":{
/*required, string, text of the audio prompt*/
"@min": ,
"@max":
}
}
}
}

JSON_Cap_UserInfo
UserInfo capability message in JSON format
{
"UserInfo":{
"supportFunction":{
/*required, supported function of adding, deleting, editing, searching for person information, and getting total
number of the added persons: "post"-add, "delete", "put"-edit, "get"-search, "setUp"-set*/
"@opt":"post,delete,put,get,setUp"
},
"UserInfoSearchCond":{
/*optional, search conditions*/
"searchID":{
/*required, string type, search ID, which is used to check the upper-level platform or system. If the platform or the
system is the same one during two searching, the search history will be saved in the memory to speed up next
searching*/
"@min":1,
"@max":36
},
"maxResults":{
/*required, integer32, maximum number of search results*/
"@min":1,
"@max":30

296
Intelligent Security API (Person-Based Access Control) Developer Guide

},
"EmployeeNoList":{
/*optional, person ID list*/
"maxSize":56,
"employeeNo":{
/*optional, string, employee No. (person ID)*/
"@min": ,
"@max":
}
},
"fuzzySearch":{
/*optional, string, keywords for fuzzy search*/
"@min": ,
"@max":
},
"isSupportNumOfFace":0,
/*optional, integer, whether it supports number of linked face pictures when searching. If this field is not returned, it
indicates that this function is not supported*/
"isSupportNumOfFP":0,
/*optional, integer, whether it supports number of linked fingerprints when searching. If this field is not returned, it
indicates that this function is not supported*/
"isSupportNumOfCard":0
/*optional, integer, whether it supports number of linked cards when searching. If this field is not returned, it
indicates that this function is not supported*/
},
"UserInfoDelCond":{
/*optional, deleting conditions*/
"EmployeeNoList":{
/*optional, person ID list (if this node does not exist, it indicates deleting all person information)*/
"maxSize":56,
"employeeNo":{
/*optional, string, employee No. (person ID)*/
"@min": ,
"@max":
}
}
},
"employeeNo":{
/*required, string, employee No. (person ID)*/
"@min": ,
"@max":
},
"name":{
/*optional, string, name*/
"@min":1,
"@max":32
},
"userType":{
/*required, string, person type: "normal"-normal person (household), "visitor", "blackList"-person in blocklist*/
"@opt":"normal,visitor,blackList"
},
"closeDelayEnabled":"true,false",

297
Intelligent Security API (Person-Based Access Control) Developer Guide

/*optional, boolean, whether to enable door close delay: "true"-yes, "false"-no*/


"Valid":{
/*required, parameters of the effective period*/
"enable":"true, false",
/*required, boolean, whether to enable the effective period: "false"-disable, "true"-enable. If this node is set to
"false", the effective period is permanent*/
"beginTime":{
/*required, start time of the effective period (if timeType does not exist or is "local", the beginTime is the device local
time, e.g.,: 2017-08-01T17:30:08; if timeType is "UTC", the beginTime is UTC time, e.g.,:
2017-08-01T17:30:08+08:00)*/
"@min":1,
"@max":32
},
"endTime":{
/*required, end time of the effective period (if timeType does not exist or is "local", the endTime is the device local
time, e.g.,: 2017-08-01T17:30:08; if timeType is "UTC", the endTime is UTC time, e.g.,: 2017-08-01T17:30:08+08:00)*/
"@min":1,
"@max":32
},
"timeRangeBegin":"",
/*optional, string, start time that can be configured for beginTime. If the device does not return this node, the default
start time that can be configured for beginTime is "1970-01-01T00:00:00"*/
"timeRangeEnd":"",
/*optional, string, end time that can be configured for endTime. If the device does not return this node, the default
end time that can be configured for endTime is "2037-12-31T23:59:59"*/
"timeType":{
/*optional, string, time type: "local"- device local time, "UTC"- UTC time*/
"@opt":"local,UTC"
}
},
"maxBelongGroup":4,
/*optional, integer, maximum number of groups that a person can belong to*/
"belongGroup":{
/*optional, string, group*/
"@min":1,
"@max":32
},
"password":{
/*optional, string, password*/
"@min":1,
"@max":32
},
"doorRight":{
/*optional, string, No. of door or lock that has access permission*/
"@min":1,
"@max":32
},
"RightPlan":{
/*optional, door permission schedule (lock permission schedule)*/
"maxSize":32,
"doorNo":{
/*optional, integer, door No. (lock ID)*/

298
Intelligent Security API (Person-Based Access Control) Developer Guide

"@min":1,
"@max":32
},
"maxPlanTemplate":4,
/*optional, integer, maximum number of schedule templates that can be configured for one door*/
"planTemplateNo":{
/*optional, string, schedule template No.*/
"@min":1,
"@max":32
}
},
"maxOpenDoorTime":{
/*optional, integer, maximum authentication attempts, 0-unlimited*/
"@min":0,
"@max":100
},
"openDoorTime":{
/*optional, integer, read-only, authenticated attempts*/
"@min":0,
"@max":100
},
"roomNumber":{
/*optional, integer, room No.*/
"@min":0,
"@max":100
},
"floorNumber":{
/*optional, integer, floor No.*/
"@min":0,
"@max":100
},
"doubleLockRight":"true, false",
/*optional, boolean, whether to have the permission to open the double-locked door: "true"-yes, "false"-no*/
"localUIRight":"true, false",
/*optional, boolean, whether to have the permission to access the device local UI: "true"-yes, "false"-no*/
"userVerifyMode":{
/*optional, string, person authentication mode: "cardAndPw"-card+password, "card"-card, "cardOrPw"-card or
password, "fp"-fingerprint, "fpAndPw"-fingerprint+password, "fpOrCard"-fingerprint or card, "fpAndCard"-fingerprint
+card, "fpAndCardAndPw"-fingerprint+card+password, "faceOrFpOrCardOrPw"-face or fingerprint or card or
password, "faceAndFp"-face+fingerprint, "faceAndPw"-face+password, "faceAndCard"-face+card, "face"-face,
"employeeNoAndPw"-employee No.+password, "fpOrPw"-fingerprint or password, "employeeNoAndFp"-employee
No.+fingerprint, "employeeNoAndFpAndPw"-employee No.+fingerprint+password, "faceAndFpAndCard"-face
+fingerprint+card, "faceAndPwAndFp"-face+password+fingerprint, "employeeNoAndFace"-employee No.+face,
"faceOrfaceAndCard"-face or face+card, "fpOrface"-fingerprint or face, "cardOrfaceOrPw"-card or face or password,
"cardOrFace"-card or face, "cardOrFaceOrFp"-card or face or fingerprint, "cardOrFpOrPw"-card or fingerprint or
password. The priority of the person authentication mode is higher than that of the card reader authentication
mode*/

"@opt":"cardAndPw,card,cardOrPw,fp,fpAndPw,fpOrCard,fpAndCard,fpAndCardAndPw,faceOrFpOrCardOrPw,faceAnd
Fp,faceAndPw,faceAndCard,face,employeeNoAndPw,fpOrPw,employeeNoAndFp,employeeNoAndFpAndPw,faceAndFp
AndCard,faceAndPwAndFp,employeeNoAndFace,faceOrfaceAndCard,fpOrface,cardOrfaceOrPw,cardOrFace,cardOrFac
eOrFp,cardOrFpOrPw"

299
Intelligent Security API (Person-Based Access Control) Developer Guide

},
"checkUser":"true, false",
/*optional, boolean, whether to verify the duplicated person information: "false"-no, "true"-yes. If checkUser is not
configured, the device will verify the duplicated person information by default. When there is no person information,
you can set checkUser to "false" to speed up data applying; otherwise, it is not recommended to configure this node*/
"addUser": "true,false",
/*optional, boolean type, whether to add the person if the person information being edited does not exist: "false"-no
(if the device has checked that the person information being edited does not exist, the failure response message will
be returned along with the error code), "true"-yes (if the device has checked that the person information being edited
does not exist, the success response message will be returned, and the person will be added). If this node is not
configured, the person will not be added by default*/
"maxRecordNum": ,
/*required, integer type, supported maximum number of records (person records)*/
"callNumbers": {
/*optional, string type, room No. list to be called, which is extended from roomNumber and it is in higher priority; by
default, the No. format is X-X-X-X, e.g., 1-1-1-401, and for standard SIP, it can be the SIP number; this node must be
configured together with roomNumber*/
"maxSize": ,
/*range of members in the array*/
"@min": 0,
/*minimum string length*/
"@max": 100
/*maximum string length*/
},
"floorNumbers": {
/*optional, integer type, floor No. list, which is extended from floorNumber and it is in higher priority; this node must
be configured together with floorNumber*/
"maxSize": ,
/*range of members in the array*/
"@min": 0,
/*minimum floor No.*/
"@max": 100
/*maximum floor No.*/
},
"gender":{
/*optional, string, gender of the person in the face picture: "male", "female", "unknown"*/
"@opt":"male,female,unknown"
},
"PersonInfoExtends": {
/*optional, additional person information*/
"maxSize":3,
/*required, integer, supported maximum number of extension fields*/
"id":{
/*optional, int, ID of the additional person information, it corresponds to the id in the message of the request URI /
ISAPI/AccessControl/personInfoExtendName?format=json*/
"@min": 1,
"@max": 1
},
"value":{
/*optional, string, content of the additional person information*/
"@min": 0,
"@max": 100

300
Intelligent Security API (Person-Based Access Control) Developer Guide

}
},
"purePwdVerifyEnable":
/*optional, boolean, whether the device supports opening the door only by password: true-yes, this node is not
returned-no. The password used to open the door is the value of the node password in the message JSON_UserInfo.*/
/*For opening the door only by password: 1. The password in "XXX or password" in the authentication mode refers to
the person's password (the value of the node password in JSON_UserInfo); 2. The device will not check the
duplication of the password, and the upper platform should ensure that the password is unique; 3. The password
cannot be added, deleted, edited, or searched for on the device locally.*/
}
}

JSON_Cap_UserInfoDetail
UserInfoDetail capability message in JSON format
{
"UserInfoDetail":{
"mode":{
"@opt":"all,byEmployeeNo"
/*required, string type, deleting mode: "all"-delete all, "byEmployeeNo"-delete by employee No. (person ID)*/
},
"EmployeeNoList":{
/*optional, person ID list*/
"maxSize": ,
"employeeNo":{
/*optional, string type, employee No. (person ID), it is valid when mode is "byEmployeeNo"*/
"@min": ,
"@max":
}
}
}
}

JSON_Cap_UserRightHolidayGroupCfg
UserRightHolidayGroupCfg capability message in JSON format
{
"UserRightHolidayGroupCfg": {
"groupNo": {
/*holiday group No.*/
"@min": 1,
"@max": 16
},
"enable": "true,false",
/*whether to enable: "true"-enable, "false"-disable*/
"groupName": {
/*holiday group name*/

301
Intelligent Security API (Person-Based Access Control) Developer Guide

"@min": 1,
"@max": 32
},
"holidayPlanNo": {
/*holiday group schedule No.*/
"@min": 1,
"@max": 16
}
}
}

JSON_Cap_UserRightHolidayPlanCfg
UserRightHolidayPlanCfg capability message in JSON format
{
"UserRightHolidayPlanCfg": {
"planNo": {
/*holiday schedule No.*/
"@min": 1,
"@max": 16
},
"enable": "true,false",
/*whether to enable: "true"-enable, "false"-disable*/
"beginDate": "",
/*start date of the holiday (device local time)*/
"endDate": "",
/*end date of the holiday (device local time)*/
"HolidayPlanCfg": {
/*holiday schedule parameter*/
"maxSize": 8,
"id": {
/*time period No.*/
"@min": 1,
"@max": 8
},
"enable": "true,false",
/*whether to enable: "true"-enable, "false"-disable*/
"TimeSegment": {
"beginTime": "",
/*start time of the time period (device local time)*/
"endTime": "",
/*end time of the time period (device local time)*/
"validUnit":
/*time accuracy: "hour", "minute", "second". If this node is not returned, it indicates that the time accuracy is
"minute"*/
}
}
}
}

302
Intelligent Security API (Person-Based Access Control) Developer Guide

JSON_Cap_UserRightPlanTemplate
UserRightPlanTemplate capability message in JSON format
{
"UserRightPlanTemplate": {
"templateNo": {
/*schedule template No.*/
"@min": 1,
"@max": 16
},
"enable": "true,false",
/*whether to enable: "true"-enable, "false"-disable*/
"templateName": {
/*template name*/
"@min": 1,
"@max": 32
},
"weekPlanNo" : {
/*week schedule No.*/
"@min": 1,
"@max": 16
},
"holidayGroupNo": {
/*holiday group No.*/
"@min": 1,
"@max": 16
}
}
}

JSON_Cap_UserRightWeekPlanCfg
UserRightWeekPlanCfg capability message in JSON format
{
"UserRightWeekPlanCfg":{
"planNo":{
/*week schedule No.*/
"@min":1,
"@max":16
},
"enable":"true,false",
/*whether to enable: "true"-enable, "false"-disable*/
"WeekPlanCfg":{
/*week schedule parameter*/
"maxSize":56,
"week":{
"@opt":"Monday,Tuesday,Wednesday,Thursday,Friday,Saturday,Sunday"

303
Intelligent Security API (Person-Based Access Control) Developer Guide

},
"id":{
"@min":1,
"@max":8
},
"enable":"true,false",
/*whether to enable: "true"-enable, "false"-disable*/
"TimeSegment":{
"beginTime":"",
/*start time of the time period (device local time)*/
"endTime":"",
/*end time of the time period (device local time)*/
"validUnit":
/*time accuracy: "hour", "minute", "second". If this node is not returned, it indicates that the time accuracy is
"minute"*/
}
}
}
}

JSON_Cap_VerifyHolidayGroupCfg
VerifyHolidayGroupCfg capability message in JSON format
{
"VerifyHolidayGroupCfg ": {
"groupNo": {
/*holiday group No.*/
"@min": 1,
"@max": 16
},
"enable": "true,false",
/*whether to enable: "true"-enable, "false"-disable*/
"groupName": {
/*holiday group name*/
"@min": 1,
"@max": 32
},
"holidayPlanNo": {
/*holiday group schedule No.*/
"@min": 1,
"@max": 16
}
}
}

304
Intelligent Security API (Person-Based Access Control) Developer Guide

JSON_Cap_VerifyHolidayPlanCfg
VerifyHolidayPlanCfg capability message in JSON format
{
"VerifyHolidayPlanCfg": {
"planNo": {
/*holiday schedule template No.*/
"@min": 1,
"@max": 16
},
"enable": "true,false",
/*whether to enable: "true"-enable, "false"-disable*/
"beginDate": "",
/*start date of the holiday (device local time)*/
"endDate": "",
/*end date of the holiday (device local time)*/
"HolidayPlanCfg": {
/*holiday schedule parameters*/
"maxSize": 8,
"id": {
/*time period No.*/
"@min": 1,
"@max": 8
},
"enable": "true, false",
/*whether to enable: "true"-enable, "false"-disable*/
"verifyMode": {
/*authentication mode: "cardAndPw"-card+password, "card", "cardOrPw"-card or password, "fp"-fingerprint,
"fpAndPw"-fingerprint+password, "fpOrCard"-fingerprint or card, "fpAndCard"-fingerprint+card, "fpAndCardAndPw"-
fingerprint+card+password, "faceOrFpOrCardOrPw"-face or fingerprint or card or password, "faceAndFp"-face
+fingerprint, "faceAndPw"-face+password, "faceAndCard"-face+card, "face", "employeeNoAndPw"-employee No.
+password, "fpOrPw"-fingerprint or password, "employeeNoAndFp"-employee No.+fingerprint,
"employeeNoAndFpAndPw"-employee No.+fingerprint+password, "faceAndFpAndCard"-face+fingerprint+card,
"faceAndPwAndFp"-face+password+fingerprint, "employeeNoAndFace"-employee No.+face, "faceOrfaceAndCard"-
face or face+card, "fpOrface"-fingerprint or face, "cardOrfaceOrPw"-card or face or password, "cardOrFace"-card or
face, "cardOrFaceOrFp"-card or face or fingerprint, "cardOrFpOrPw"-card or fingerprint or password, "sleep",
"invalid"*/
"@opt":
"cardAndPw,card,cardOrPw,fp,fpAndPw,fpOrCard,fpAndCard,fpAndCardAndPw,faceOrFpOrCardOrPw,faceAndFp,faceA
ndPw,faceAndCard,face,employeeNoAndPw,fpOrPw,employeeNoAndFp,employeeNoAndFpAndPw,faceAndFpAndCard,
faceAndPwAndFp,employeeNoAndFace,faceOrfaceAndCard,fpOrface,cardOrfaceOrPw,cardOrFace,cardOrFaceOrFp,car
dOrFpOrPw,sleep,invalid"
},
"TimeSegment": {
"beginTime": "",
/*start time of the time period (device local time)
"endTime": "",
/*end time of the time period (device local time)
"validUnit":
/*time accuracy: "hour", "minute", "second". If this node is not returned, it indicates that the time accuracy is

305
Intelligent Security API (Person-Based Access Control) Developer Guide

"minute"*/
}
},
"purePwdVerifyEnable":
/*optional, boolean, whether the device supports opening the door only by password: true-yes, this node is not
returned-no. The password used to open the door is the value of the node password in the message JSON_UserInfo.*/
/*For opening the door only by password: 1. The password in "XXX or password" in the authentication mode refers to
the person's password (the value of the node password in JSON_UserInfo); 2. The device will not check the
duplication of the password, and the upper platform should ensure that the password is unique; 3. The password
cannot be added, deleted, edited, or searched for on the device locally.*/
}
}

JSON_Cap_VerifyPlanTemplate
VerifyPlanTemplate capability message in JSON format
{
"VerifyPlanTemplate": {
"templateNo": {
/*schedule template No.*/
"@min": 1,
"@max": 16
},
"enable": "true,false",
/*whether to enable: "true"-enable, "false"-disable*/
"templateName": {
/*template name*/
"@min": 1,
"@max": 32
},
"weekPlanNo": {
/*week schedule No.*/
"@min": 1,
"@max": 16
},
"holidayGroupNo": {
/*holiday group No.*/
"@min": 1,
"@max": 16
}
}
}

JSON_Cap_VerifyWeekPlanCfg
VerifyWeekPlanCfg capability message in JSON format

306
Intelligent Security API (Person-Based Access Control) Developer Guide

{
"VerifyWeekPlanCfg":{
"planNo":{
/*week schedule No.*/
"@min":1,
"@max":16
},
"enable":"",
/*whether to enable: "true"-enable, "false"-disable*/
"WeekPlanCfg":{
/*week schedule parameters*/
"maxSize":56,
"week":{
"@opt":"Monday,Tuesday,Wednesday,Thursday,Friday,Saturday,Sunday"
},
"id":{
"@min":1,
"@max":8
},
"enable":"true, false",
/*whether to enable: "true"-enable, "false"-disable*/
"verifyMode":{
/*authentication mode: "cardAndPw"-card+password, "card", "cardOrPw"-card or password, "fp"-fingerprint,
"fpAndPw"-fingerprint+password, "fpOrCard"-fingerprint or card, "fpAndCard"-fingerprint+card, "fpAndCardAndPw"-
fingerprint+card+password, "faceOrFpOrCardOrPw"-face or fingerprint or card or password, "faceAndFp"-face
+fingerprint, "faceAndPw"-face+password, "faceAndCard"-face+card, "face", "employeeNoAndPw"-employee No.
+password, "fpOrPw"-fingerprint or password, "employeeNoAndFp"-employee No.+fingerprint,
"employeeNoAndFpAndPw"-employee No.+fingerprint+password, "faceAndFpAndCard"-face+fingerprint+card,
"faceAndPwAndFp"-face+password+fingerprint, "employeeNoAndFace"-employee No.+face, "faceOrfaceAndCard"-
face or face+card, "fpOrface"-fingerprint or face, "cardOrfaceOrPw"-card or face or password, "cardOrFace"-card or
face, "cardOrFaceOrFp"-card or face or fingerprint, "cardOrFpOrPw"-card or fingerprint or password, "sleep",
"invalid"*/

"@opt":"cardAndPw,card,cardOrPw,fp,fpAndPw,fpOrCard,fpAndCard,fpAndCardAndPw,faceOrFpOrCardOrPw,faceAnd
Fp,faceAndPw,faceAndCard,face,employeeNoAndPw,fpOrPw,employeeNoAndFp,employeeNoAndFpAndPw,faceAndFp
AndCard,faceAndPwAndFp,employeeNoAndFace,faceOrfaceAndCard,fpOrface,cardOrfaceOrPw,cardOrFace,cardOrFac
eOrFp,cardOrFpOrPw,sleep,invalid"
},
"TimeSegment":{
"beginTime":"",
/*start time of the time period (device local time)*/
"endTime":"",
/*end time of the time period (device local time)*/
"validUnit":
/*time accuracy: "hour", "minute", "second". If this node is not returned, it indicates that the time accuracy is
"minute"*/
}
},
"purePwdVerifyEnable":
/*optional, boolean, whether the device supports opening the door only by password: true-yes, this node is not
returned-no. The password used to open the door is the value of the node password in the message JSON_UserInfo.*/
/*For opening the door only by password: 1. The password in "XXX or password" in the authentication mode refers to

307
Intelligent Security API (Person-Based Access Control) Developer Guide

the person's password (the value of the node password in JSON_UserInfo); 2. The device will not check the
duplication of the password, and the upper platform should ensure that the password is unique; 3. The password
cannot be added, deleted, edited, or searched for on the device locally.*/
}
}

JSON_CapturePreset
CapturePreset message in JSON format
{
"CapturePreset":{
"name":""
/*optional, string, name, the maximum size is 128 bytes by default. This field is NULL by default*/
}
}

JSON_CapturePresetCap
CapturePresetCap capability message in JSON format
{
"CapturePresetCap":{
"name":{
/*optional, string, name*/
"@min":0,
"@max":0
}
}
}

JSON_CaptureProgress
CaptureProgress message in JSON format
{
"CaptureProgress":{
"reqCaptureNum": ,
/*optional, integer, total number of person to be collected*/
"completelyCaptureNum": ,
/*optional, integer, number of completely collected persons*/
"partiallyCaptureNum": ,
/*optional, integer, number of partially collected persons*/
"reqFaceNum": ,
/*optional, integer, number of faces to be collected*/
"faceNum": ,
/*optional, integer, number of collected faces*/

308
Intelligent Security API (Person-Based Access Control) Developer Guide

"reqFingerprintNum": ,
/*optional, integer, number of fingerprints to be collected*/
"fingerprintNum": ,
/*optional, integer, number of collected fingerprints*/
"reqCardNum": ,
/*optional, integer, number of cards to be collected*/
"cardNum": ,
/*optional, integer, number of collected cards*/
"reqIDCardNum": ,
/*optional, integer, number of ID cards to be collected*/
"IDCardNum": ,
/*optional, integer, number of collected ID cards*/
"reqIssueNum": ,
/*optional, int, number of persons to be issued with smart cards*/
"IssuedNum":
/*optional, int, number of persons that have been issued with smart cards*/
}
}

JSON_CaptureRule
CaptureRule message in JSON format
{
"CaptureRule":{
"enableCardNoLenAuto": ,
/*optional, boolean, whether to enable length self-adaption of the card serial No.*/
"cardNoLen": ,
/*dependency, integer, length of the card serial No.: 3, 4, 7, 10, unit: byte. This field is valid when
enableCardNoLenAuto is "false". If this field is set to 3, it refers to Wiegand 26*/
"cardTimeout":
/*optional, integer, card collection timeout, unit: ms*/
}
}

JSON_CaptureRuleCap
CaptureRuleCap capability message in JSON format
{
"CaptureRuleCap":{
"enableCardNoLenAuto":[true,flase],
/*optional, boolean, whether to enable length self-adaption of the card serial No.*/
"cardNoLen":{
/*dependency, integer, length of the card serial No.: 3, 4, 7, 10*/
"@opt":[3,4,7,10]
},
"cardTimeout":{
/*optional, integer, card collection timeout, unit: ms*/

309
Intelligent Security API (Person-Based Access Control) Developer Guide

"@min":0,
"@max":0
}
}
}

JSON_CardEncryption
JSON message about card encryption parameters
{
"CardEncryption": {
"cardType": "",
/*required, string type, card types: "blank"-blank card, "private"-private CPU card, encrypted-other encrypted cards*/
"keyLen":,
/*depend, integer, size of key for external authentication, this field is valid only when cardType is set to "encrypted"*/
"key": ""
/*required, hexadecimal string, a 16-byte key content for external authentication*/
}
}

JSON_CardInfo
JSON message about card information
{
"CardInfo":{
"employeeNo":"",
/*required, string, employee No. (person ID)*/
"cardNo":"",
/*required, string, card No.*/
"deleteCard": ,
/*optional, boolean, whether to delete the card: "true"-yes. This node is required only when the card needs to be
deleted; for adding or editing card information, this node can be set to NULL*/
"cardType":"",
/*optional, string, card type: "normalCard"-normal card, "patrolCard"-patrol card, "hijackCard"-duress card,
"superCard"-super card, "dismissingCard"-dismiss card, "emergencyCard"-emergency card (it is used to assign
permission to a temporary card, but it cannot open the door)*/
"leaderCard":"",
/*optional, string, whether to support first card authentication function, e.g., the value "1,3,5" indicates that the
access control points No.1, No.3, and No.5 support first card authentication function*/
"checkCardNo":"",
/*optional, boolean, whether to enable duplicated card verification: "false"-disable, "true"-enable. If this node is not
configured, the device will verify the duplicated card by default. When there is no card information, you can set
checkCardNo to "false" to speed up data applying; otherwise, it is not recommended to configure this node*/
"checkEmployeeNo": ,
/*optional, boolean, whether to check the existence of the employee No. (person ID): "false"-no, "true"-yes. If this
node is not configured, the device will check the existence of the employee No. (person ID) by default. If this node is
set to "false", the device will not check the existence of the employee No. (person ID) to speed up data applying; if this

310
Intelligent Security API (Person-Based Access Control) Developer Guide

node is set to "true" or NULL, the device will check the existence of the employee No. (person ID), and it is
recommended to set this node to "true" or NULL if there is no need to speed up data applying*/
"addCard": ,
/*optional, boolean, whether to add the card if the card information being edited does not exist: "false"-no (if the
device has checked that the card information being edited does not exist, the failure response message will be
returned along with the error code), "true"-yes (if the device has checked that the card information being edited does
not exist, the success response message will be returned, and the card will be added). If this node is not configured,
the card will not be added by default*/
"operateType": "byTerminal",
/*optional, string, operation type: "byTerminal"-by terminal*/
"terminalNoList": [1]
/*optional, array, terminal ID list, this node is required when operation type is "byTerminal"; currently, only one
terminal is supported*/
}
}

Remarks
The employeeNo and cardNo cannot be edited. If you need to edit the cardNo, you should delete
the previous card and create a new card.

JSON_CardInfo_Collection
CardInfo message in JSON format
{
"CardInfo":{
"cardNo":"",
/*required, string, card No.*/
"cardType":""
/*optional, string, card type: "TypeA_M1", "TypeA_CPU", "TypeB", "ID_125K", "FelicaCard"-FeliCa card, "DesfireCard"-
DESFire card*/
}
}

JSON_CardInfoCap
CardInfoCap capability message in JSON format
{
"CardInfoCap":{
"cardNo":{
/*required, string, card No.*/
"@min":1,
"@max":32
},
"cardType": ["TypeA_M1","TypeA_CPU","TypeB","ID_125K","FelicaCard","DesfireCard"]
/*optional, string, card type: "TypeA_M1", "TypeA_CPU", "TypeB", "ID_125K", "FelicaCard"-FeliCa card, "DesfireCard"-
DESFire card*/

311
Intelligent Security API (Person-Based Access Control) Developer Guide

}
}

JSON_CardInfoCount
CardInfoCount message in JSON format
{
"CardInfoCount":{
"cardNumber":
/*number of cards*/
}
}

JSON_CardInfoDelCond
JSON message about card information to be deleted
{
"CardInfoDelCond":{
"EmployeeNoList" :[{
/*optional, person ID list, if this node does not exist or is set to NULL, it indicates deleting all cards*/
"employeeNo":""
/*optional, string, employee No. (person ID)*/
}],
"CardNoList":[{
/*optional, card No. list (this node cannot exist together with the EmployeeNoList, and if this node does not exist or is
set to NULL, it indicates deleting all cards)*/
"cardNo":""
/*optional, string, card No.*/
}],
"operateType": "byTerminal",
/*optional, string, operation type: "byTerminal"-by terminal*/
"terminalNoList": [1]
/*optional, array, terminal ID list, this node is required when operation type is "byTerminal"; currently, only one
terminal is supported*/
}
}

JSON_CardInfoSearch
CardInfoSearch message in JSON format
{
"CardInfoSearch":{
"searchID":"",
/*required, string, search ID, which is used to confirm the upper-level platform or system. If the platform or the

312
Intelligent Security API (Person-Based Access Control) Developer Guide

system is the same one during two searching, the search history will be saved in the memory to speed up next
searching*/
"responseStatusStrg":"",
/*required, string, search status: "OK"-searching completed, "NO MATCH"-no matched results, "MORE"-searching for
more results*/
"numOfMatches": ,
/*required, integer32, number of returned results*/
"totalMatches": ,
/*required, integer32, total number of matched results*/
"CardInfo":[{
/*optional, person information*/
"employeeNo":"",
/*required, string, employee No. (person ID)*/
"cardNo":"",
/*required, string, card No.*/
"cardType":"",
/*required, string, card type: "normalCard"-normal card, "patrolCard"-patrol card, "hijackCard"-duress card,
"superCard"-super card, "dismissingCard"-dismiss card, "emergencyCard"-emergency card (it is used to assign
permission to a temporary card, but it cannot open the door)*/
"leaderCard":"",
/*optional, string, whether to support first card authentication function, e.g., the value "1,3,5" indicates that the
access control points No.1, No.3, and No.5 support first card authentication function*/
}]
}
}

JSON_CardInfoSearchCond
CardInfoSearchCond message in JSON format
{
"CardInfoSearchCond":{
"searchID":"",
/*required, string, search ID, which is used to confirm the upper-level platform or system. If the platform or the
system is the same one during two searching, the search history will be saved in the memory to speed up next
searching*/
"searchResultPosition": ,
/*required, integer32, the start position of the search result in the result list. When there are multiple records and you
cannot get all search results at a time, you can search for the records after the specified position next time. For
example, if the maximum total number of matched results (totalMatches) supported by the device is M and the total
number of matched results (totalMatches) stored in the device currently is N (here N is smaller than M), the valid
range of this field is from 0 to N-1*/
"maxResults": ,
/*required, integer32, maximum number of search results. If maxResults exceeds the range returned by the device
capability, the device will return the maximum number of search results according to the device capability and will not
return error message*/
"EmployeeNoList":[{
/*optional, person ID list (if this node does not exist or is set to NULL, it indicates searching for all cards)*/
"employeeNo":""
/*optional, string, employee No. (person ID)*/
}],

313
Intelligent Security API (Person-Based Access Control) Developer Guide

"CardNoList":[{
/*optional, card No. list (this node cannot exist together with EmployeeNoList, and if this node does not exist or is set
to NULL, it indicates searching for all cards)*/
"cardNo":""
/*optional, string, card No.*/
}]
}
}

JSON_CardIssueStatus
JSON message about the smart card issuing status
{
"CardIssueStatus":{
"status":"ok",
/*required, string, card issuing status: "ok"-succeeded, "failed"-operation failed, "timeout"-timed out, "verifiyFailure"-
authentication failed, "noCard"-no card detected, "processing"*/
"cardNo":"",
/*optional, string, issued card No.*/
"cardErrorCode":0,
/*dependent, int, internal error code of card operation. This node is valid when the value of status is "failed"*/
"face":true,
/*optional, boolean, issuing status of the card containing the face picture: true-issued, false-not issued*/
"fingprint1":true,
/*optional, boolean, issuing status of the card containing fingerprint 1: true-issued, false-not issued*/
"fingprint2":true,
/*optional, boolean, issuing status of the card containing fingerprint 2: true-issued, false-not issued*/
"customData":true
/*optional, boolean, issuing status of the card containing custom information: true-issued, false-not issued*/
}
}

JSON_CardOperationsCap
JSON message about card operation capability
{
"CardOperationsCap":{
"SectionEncryption":{
"supportFunction":{
/*required, string, supported methods*/
"@opt": ["put", "get", "delete", "post"]
},
"sectionNo":{
/*required, integer, section No.*/
"@min": 0,
"@max": 0
},

314
Intelligent Security API (Person-Based Access Control) Developer Guide

"keyType":{
/*required, string, verification key types: "private"-private key, "normal"-other valid keys*/
"@opt": ["private", "normal"]
},
"password":{
/*optional, string, a hexadecimal verification key, this field is valid only when keyType is set to "nomal"*/
"@min": 0,
"@max": 0
},
"newKeyType":{
/*required, string, new key types: "private"-private key, "normal"-other valid keys*/
"@opt": ["private", "normal"]
},
"KeyA":{
/*optional, string, a hexadecimal key A password*/
"@min": 0,
"@max": 0
},
"KeyB":{
/*optional, string, a hexadecimal key B password*/
"@min": 0,
"@max": 0
},
"controlBits":{
/*optional, string, a hexadecimal control bit*/
"@min": 0,
"@max": 0
}
},
"Verification":{
"supportFunction":{
/*required, string, supported methods*/
"@opt": ["put", "get", "delete", "post"]
},
"sectionNo":{
/*required, integer, section No.*/
"@min": 0,
"@max": 0
},
"passwordType":{
/*optional, password types: "KeyA" (default), "KeyB"*/
"@opt": ["KeyA", "KeyB"]
},
"password":{
/*optional, string, a hexadecimal password*/
"@min": 0,
"@max": 0
}
},
"DataBlock":{
"supportFunction":{
/*required, string, supported methods*/

315
Intelligent Security API (Person-Based Access Control) Developer Guide

"@opt":["put", "get", "delete", "post"]


},
"addressOfBlock":{
/*optional, integer, block address*/
"@min": 0,
"@max": 0
},
"data":{
/*required, a hexBinary string, e.g., "f2345678abf2345678abf2345678abf2"*/
"@min": 0,
"@max": 0
},
},
"DataBlockCtrl":{
"supportFunction":{
/*required, string, supported methods*/
"@opt":["put", "get", "delete", "post"]
},
"addressOfBlock":{
/*required, integer, block address*/
"@min": 0,
"@max": 0
},
"command":{
/*required, string, control commands*/
"@opt": ["add", "minus", "copy", "paste"]
},
"value":{
/*depend, integer, relative value to be changed, this field is valid only when the command is set to "add" or "minus"*/
"@min": 0,
"@max": 0
},
},
"ControlBlock":{
"supportFunction":{
/*required, string, supported methods*/
"@opt": ["put", "get", "delete", "post"]
},
"sectionNo":{
/*required, integer, section No.*/
"@min": 0,
"@max": 0
},
"KeyA":{
/*optional, string, a hexadecimal key A*/
"@min": 0,
"@max": 0
},
"KeyB":{
/*optional, string, a hexadecimal key B*/
"@min": 0,
"@max": 0

316
Intelligent Security API (Person-Based Access Control) Developer Guide

},
"controlBits":{
/*optional, string, a hexadecimal control bit*/
"@min": 0,
"@max": 0
}
},
"CardProto":{
"supportFunction":{
/*required, string, supported methods*/
"@opt":["put", "get", "delete", "post"]
},
"protocol":{
/*required, string, operation protocol types*/
"@opt": ["TypeA", "TypeB", "TypeAB", "125K", "all"]
}
},
"CardEncryption":{
"supportFunction":{
/*required, string, supported methods*/
"@opt": ["put", "get", "delete", "post"]
},
"cardType":{
/*required, string, card types: "blank"-blank card, "private"-private CPU card, "encrypted"-other encrypted card*/
"@opt":[ "blank","private","encrypted"]
}
"keyLen":{
/*depend, integer, size of key for external authentication, this field is valid only when cardType is set to "encrypted"*/
"@min": 0,
"@max": 0
},
"key": {
/*required, hexadecimal string, a 16-byte key content for external authentication*/
"@min": 0,
"@max": 0
}
},
"CardParam":{
"supportFunction":{
/*required, string, supported methods*/
"@opt": ["put", "get", "delete", "post"]
},
"type":{
/*required, string, card types*/
"@opt": ["CPU1356", "PSAM1", "PSAM2","PSAM3","PSAM4"]
},
"protocol":{
/*required, string, card protocol types*/
"@opt": ["T0", "T1"]
}
},
"CardResetResponse":{

317
Intelligent Security API (Person-Based Access Control) Developer Guide

"supportFunction":{
/*required, string, supported methods*/
"@opt": ["put", "get", "delete", "post"]
},
"data":{
/*required, string, resetting response information (usually, it is manufacturer, which is encoded by Base64 and
specified by device*/
"@min": 0,
"@max": 0
}
},
"DataTrans":{
"supportFunction":{
/*required, string, supported methods*/
"@opt": ["put", "get", "delete", "post"]
},
"content":{
/*required, string, data to be passed through, which is encoded in Base64*/
"@min": 0,
"@max": 0
}
},
"Issue":{
/*capability of sending a request for card issuing and getting the current card issuing status and real-time card issuing
results, related URIs: /ISAPI/AccessControl/CardOperations/localIssueRequest?format=json and /ISAPI/AccessControl/
CardOperations/localIssueStatus?format=json*/
"supportFunction":{
/*required, string, supported methods. The actually supported methods will be returned*/
"@opt":["put", "get", "delete", "post"]
},
"LocalIssueRequest":{
"operation":{
/*required, string, operation type: "face"-issue card to be enrolled with face picture, "fingerprint"-issue card to be
enrolled with fingerprint*/
"@opt":["face", "fingerprint"]
},
"FPIndex":{
/*optional, int, fingerprint storage index (card storage area). This field is valid when operation is "fingerprint"*/
"@min":0,
"@max":0
},
"facePic":{
/*optional, string, face picture type: "visible"-visible light picture, "infrared"-IR light picture. This field is valid when
operation is "face"*/
"@opt":["visible", "infrared"]
}
},
"LocalIssueRes":{
"status":{
/*required, string, card issuing status: "ok"-succeeded, "failed"-card operation failed, "timeout"-timed out,
"verifiyFailure"-authentication failed, "noCard"-no card detected, "processing"-processing*/
"@opt":["ok", "failed", "processing", "timeout", "verifiyFailure", "noCard"]

318
Intelligent Security API (Person-Based Access Control) Developer Guide

},
"cardNo":{
/*optional, string, issued card No.*/
"@min":0
},
"cardErrorCode":{
/*dependent, string, internal error code of card operation returned by the device*/
"@opt":
}
}
},
"localIssueCfg":{
/*capability of configuring rule parameters for issuing smart cards, related URI: /ISAPI/AccessControl/CardOperations/
localIssueCfg?format=json*/
"validFP":{
/*optional, array of int, valid fingerprint ID. This field is valid for applying fingerprint to the card*/
"@size":2,
"@min":1,
"@max":10
},
"validFacePicture":{
/*optional, string, valid face picture type: "visible"-visible light picture, "infrared"-IR light picture. This field is valid for
applying face picture to the card*/
"@opt":["visible", "infrared"]
}
},
"ClearData":{
/*capability of deleting data from the card, related URI: /ISAPI/AccessControl/CardOperations/clearData?
format=json*/
"supportFunction":{
/*required, string, supported methods. The actually supported methods will be returned*/
"@opt":["put", "get", "delete", "post"]
},
"checkAll":{
/*optional, boolean, whether to delete all data*/
"@opt":[true, false]
},
"checkFingerprint":{
/*optional, boolean, whether to delete fingerprint data. This field is valid when checkAll is false or does not exist*/
"@opt":[true, false]
},
"fingerprints":{
/*optional, array of int, list of addresses whether the fingerprints to be deleted are stored. This field is valid when
checkFingerprint exists. If this field does not exist, it indicates deleting all fingerprints*/
"@size":2,
"@min":0,
"@max":0
},
"checkFacePicture":{
/*optional, boolean, whether to delete face data. This field is valid when checkAll is false or does not exist*/
"@opt":[true, false]
},

319
Intelligent Security API (Person-Based Access Control) Developer Guide

"checkCustom":{
/*optional, boolean, whether to delete custom data. This field is valid when checkAll is false or does not exist*/
"@opt":[true, false]
},
"ClearDataRes":{
"status":{
/*required, string, card issuing status: "ok"-succeeded, "failed"-operation failed, "timeout"-timed out, "verifiyFailure"-
authentication failed, "noCard"-no card detected, "processing"-processing*/
"@opt":["ok", "failed", "processing", "timeout", "verifiyFailure", "noCard"]
},
"cardErrorCode":{
/*dependent, int, internal error code of card operation*/
"@opt":
}
}
},
"CustomData":{
/*capability of setting custom card information, related URI: /ISAPI/AccessControl/CardOperations/customData?
format=json*/
"supportFunction":{
/*required, string, supported methods. The actually supported methods will be returned*/
"@opt":["put", "get", "delete", "post"]
},
"address":{
/*optional, int, start address for writing. By default the data will be written from the start address*/
"@min":0,
"@max":0
},
"length":{
/*optional, int, length of source data to be written, it is 0 by default, unit: byte*/
"@min":0,
"@max":0
},
"data":{
/*required, string, custom information encoded by Base64*/
"@min":0,
"@max":0
},
"CustomDataRes":{
"status":{
/*required, string, card issuing status: "ok"-succeeded, "failed"-operation failed, "timeout"-timed out, "verifiyFailure"-
authentication failed, "noCard"-no card detected, "processing"-processing*/
"@opt":["ok", "failed", "processing", "timeout", "verifiyFailure", "noCard"]
},
"cardErrorCode":{
/*dependent, int, internal error code of card operation*/
"@opt":
}
}
},
"CustomDataSearchCond":{
/*condition configuration capability of searching for custom card information, related URI: /ISAPI/AccessControl/

320
Intelligent Security API (Person-Based Access Control) Developer Guide

CardOperations/customData/searchTask?format=json*/
"address":{
/*optional, int, start address for reading. By default the data will be read from the start address*/
"@min":0,
"@max":0
},
"length":{
/*optional, int, length of data to be read, it is 0 by default, unit: byte*/
"@min":0,
"@max":0
}
},
"CustomDataResult":{
/*result capability of searching for custom card information, related URI: /ISAPI/AccessControl/CardOperations/
customData/searchTask?format=json*/
"length":{
/*required, int, length of data that has been read, unit: byte*/
"@min":0,
"@max":0
},
"data":{
/*required, string, card information encoded by Base64*/
"@min":0,
"@max":0
},
"status":{
/*required, string, card issuing status: "ok"-succeeded, "failed"-operation failed, "timeout"-timed out, "verifiyFailure"-
authentication failed, "noCard"-no card detected, "processing"-processing*/
"@opt":["ok", "failed", "processing", "timeout", "verifiyFailure", "noCard"]
},
"cardErrorCode":{
/*required, int, internal error code of card operation*/
"@opt":
}
},
"CardIssueStatus":{
/*capability of getting the smart card issuing status, related URI: /ISAPI/AccessControl/CardOperations/
cardIssueStatus?format=json*/
"status":{
/*required, string, card issuing status: "ok"-succeeded, "failed"-operation failed, "timeout"-timed out, "verifiyFailure"-
authentication failed, "noCard"-no card detected, "processing"-processing*/
"@opt":["ok", "failed", "processing", "timeout", "verifiyFailure", "noCard"]
},
"cardNo":{
/*optional, string, issued card No.*/
"@min":0,
"@max":0
},
"cardErrorCode":{
/*dependent, int, internal error code of card operation*/
"@opt":
},

321
Intelligent Security API (Person-Based Access Control) Developer Guide

"face":{
/*optional, boolean, issuing status of the card containing the face picture: true-issued, false-not issued*/
"@opt":[true, false]
},
"fingprint1":{
/*optional, boolean, issuing status of the card containing fingerprint 1: true-issued, false-not issued*/
"@opt":[true, false]
},
"fingprint2":{
/*optional, boolean, issuing status of the card containing fingerprint 2: true-issued, false-not issued*/
"@opt":[true, false]
},
"customData":{
/*optional, boolean, issuing status of the card containing custom information: true-issued, false-not issued*/
"@opt":[true, false]
}
}
}
}

JSON_CardParam
JSON message about card parameters
{
"CardParam": {
"type": ""
/*required, string, card types: " CPU1356,PSAM1,PSAM2,PSAM3,PSAM4"*/
"protocol": ""
/*required, string, card protocol types: "T0,T1"*/
}
}

JSON_CardProto
JSON message about operation protocol types of card
{
"CardProto": {
"protocol": "TypeA"
/*required, string, operation protocol types: "TypeA,TypeB,TypeAB,125K,all"*/
}
}

JSON_CardReaderAntiSneakCfg
CardReaderAntiSneakCfg message in JSON format

322
Intelligent Security API (Person-Based Access Control) Developer Guide

{
"CardReaderAntiSneakCfg": {
"enable": ,
/*required, boolean, whether to enable the anti-passing back function of the card reader: "true"-enable, "false"-
disable*/
"followUpCardReader":
/*optional, array, following card reader No. after the first card reader, e.g., [2,3,4] indicates that card reader No. 2, No.
3, and No. 4 can be swiped after the first card reader*/
}
}

JSON_CardReaderCfg
CardReaderCfg message in JSON format
{
"CardReaderCfg":{
"enable": ,
/*required, boolean, whether to enable: "true"-yes, "false"-no*/
"okLedPolarity":"",
/*optional, string, OK LED polarity: "cathode", "anode"*/
"errorLedPolarity":"",
/*optional, string, error LED polarity: "cathode", "anode"*/
"buzzerPolarity":"",
/*optional, string, buzzer polarity: "cathode", "anode"*/
"swipeInterval": ,
/*optional, integer, time interval of repeated authentication, which is valid for authentication modes such as
fingerprint, card, face, etc., unit: second*/
"pressTimeout": ,
/*optional, integer, timeout to reset entry on keypad, unit: second*/
"enableFailAlarm": ,
/*optional, boolean, whether to enable excessive failed authentication attempts alarm*/
"maxReadCardFailNum": ,
/*optional, integer, maximum number of failed authentication attempts*/
"enableTamperCheck": ,
/*optional, boolean, whether to enable tampering detection*/
"offlineCheckTime": ,
/*optional, integer, time to detect after the card reader is offline, unit: second*/
"fingerPrintCheckLevel": ,
/*optional, integer, fingerprint recognition level: 1-1/10 false acceptance rate (FAR), 2-1/100 false acceptance rate
(FAR), 3-1/1000 false acceptance rate (FAR), 4-1/10000 false acceptance rate (FAR), 5-1/100000 false acceptance rate
(FAR), 6-1/1000000 false acceptance rate (FAR), 7-1/10000000 false acceptance rate (FAR), 8-1/100000000 false
acceptance rate (FAR), 9-3/100 false acceptance rate (FAR), 10-3/1000 false acceptance rate (FAR), 11-3/10000 false
acceptance rate (FAR), 12-3/100000 false acceptance rate (FAR), 13-3/1000000 false acceptance rate (FAR),
14-3/10000000 false acceptance rate (FAR), 15-3/100000000 false acceptance rate (FAR), 16-Automatic Normal, 17-
Automatic Secure, 18-Automatic More Secure (currently not support)*/
"useLocalController": ,
/*ro, opt, boolean, whether it is connected to the distributed controller*/
"localControllerID": ,
/*ro, opt, integer, distributed controller No., which is between 1 and 64, 0-unregistered. This field is valid only when

323
Intelligent Security API (Person-Based Access Control) Developer Guide

useLocalController is "true"*/
"localControllerReaderID": ,
/*ro, opt, integer, card reader ID of the distributed controller, 0-unregistered. This field is valid only when
useLocalController is "true"*/
"cardReaderChannel": ,
/*ro, opt, integer, communication channel No. of the card reader: 0-Wiegand or offline, 1-RS-485A, 2-RS-485B. This
field is valid only when useLocalController is "true"*/
"fingerPrintImageQuality": ,
/*opt, integer, fingerprint image quality: 1-low quality (V1), 2-medium quality (V1), 3-high quality (V1), 4-highest
quality (V1), 5-low quality (V2), 6-medium quality (V2), 7-high quality (V2), 8-highest quality (V2)*/
"fingerPrintContrastTimeOut": ,
/*optional, integer, fingerprint comparison timeout, which is between 1 and 20, unit: second, 255-infinite*/
"fingerPrintRecogizeInterval": ,
/*optional, integer, fingerprint scanning interval, which is between 1 and 10, unit: second, 255-no delay*/
"fingerPrintMatchFastMode": ,
/*optional, integer, fingerprint matching quick mode: 1-quick mode 1, 2-quick mode 2, 3-quick mode 3, 4-quick mode
4, 5-quick mode 5, 255-automatic*/
"fingerPrintModuleSensitive": ,
/*optional, integer, fingerprint module sensitivity, which is between 1 and 8*/
"fingerPrintModuleLightCondition":"",
/*optional, string, fingerprint module light condition: "outdoor", "indoor"*/
"faceMatchThresholdN": ,
/*optional, integer, threshold of face picture 1:N comparison, which is between 0 and 100*/
"faceQuality": ,
/*optional, integer, face picture quality, which is between 0 and 100*/
"faceRecogizeTimeOut": ,
/*optional, integer, face recognition timeout, which is between 1 and 20, unit: second, 255-infinite*/
"faceRecogizeInterval": ,
/*optional, integer, face recognition interval, which is between 1 and 10, unit: second, 255-no delay*/
"cardReaderFunction": ,
/*ro, opt, array, card reader type: "fingerPrint"-fingerprint, "face", "fingerVein"-finger vein. For example,
["fingerPrint","face"] indicates that the card reader supports both fingerprint and face*/
"cardReaderDescription":"",
/*ro, opt, string, card reader description. If the card reader is the Wiegand card reader or if offline, this field will be set
to "Wiegand" or "485Offline"*/
"faceImageSensitometry": ,
/*ro, opt, integer, face picture exposure, which is between 0 and 65535*/
"livingBodyDetect": ,
/*optional, boolean, whether to enable human detection*/
"faceMatchThreshold1": ,
/*optional, integer, threshold of face picture 1:1 comparison, which is between 0 and 100*/
"buzzerTime": ,
/*optional, integer, buzzing duration, which is between 0 and 5999, unit: second, 0-long buzzing*/
"faceMatch1SecurityLevel": ,
/*optional, integer, security level of face 1:1 recognition: 1-normal, 2-high, 3-higher*/
"faceMatchNSecurityLevel": ,
/*optional, integer, security level of face 1:N recognition: 1-normal, 2-high, 3-higher*/
"envirMode":"",
/*optional, string, environment mode of face recognition: "indoor", "other"*/
"liveDetLevelSet":"",
/*optional, string, threshold level of liveness detection: "low", "middle"-medium, "high"*/
"liveDetAntiAttackCntLimit": ,

324
Intelligent Security API (Person-Based Access Control) Developer Guide

/*optional, integer, number of anti-attacks of liveness detection, which is between 1 and 255. This value should be
configured as the same one on both client and device*/
"enableLiveDetAntiAttack": ,
/*optional, boolean, whether to enable anti-attack for liveness detection*/
"supportDelFPByID": ,
/*ro, opt, boolean, whether the card reader supports deleting fingerprint by fingerprint ID: "true"-yes, "false"-no*/
"fingerPrintCapacity": ,
/*ro, opt, integer, fingerprint capacity, which is the maximum number of fingerprints that can be added*/
"fingerPrintNum": ,
/*ro, opt, integer, number of added fingerprints*/
"defaultVerifyMode":"",
/*ro, opt, string, default authentication mode of the fingerprint and card reader (factory defaults): "cardAndPw"-card
+password, "card", "cardOrPw"-card or password, "fp"-fingerprint, "fpAndPw"-fingerprint+password, "fpOrCard"-
fingerprint or card, "fpAndCard"-fingerprint+card, "fpAndCardAndPw"-fingerprint+card+password,
"faceOrFpOrCardOrPw"-face or fingerprint or card or password, "faceAndFp"-face+fingerprint, "faceAndPw"-face
+password, "faceAndCard"-face+card, "face", "employeeNoAndPw"-employee No.+password, "fpOrPw"-fingerprint or
password, "employeeNoAndFp"-employee No.+fingerprint, "employeeNoAndFpAndPw"-employee No.+fingerprint
+password, "faceAndFpAndCard"-face+fingerprint+card, "faceAndPwAndFp"-face+password+fingerprint,
"employeeNoAndFace"-employee No.+face, "faceOrfaceAndCard"-face or face+card, "fpOrface"-fingerprint or face,
"cardOrfaceOrPw"-card or face or password, "cardOrFace"-card or face, "cardOrFaceOrFp"-card or face or fingerprint*/
"faceRecogizeEnable": ,
/*optional, integer, whether to enable facial recognition: 1-enable, 2-disable, 3-attendence checked in/out by
recognition of multiple faces*/
"FPAlgorithmVersion":"",
/*optional, string, read-only, fingerprint algorithm library version*/
"cardReaderVersion":"",
/*optional, string, read-only, card reader version*/
"enableReverseCardNo": true,
/*optional, boolean, whether to enable reversing the card No.*/
"independSwipeIntervals": 0,
/*optional, int, time interval of person authentication, unit: second. This time interval is calculated for each person
separately and is different from swipeInterval*/
"maskFaceMatchThresholdN":
/*optional, int, 1:N face picture (face with mask and normal background) comparison threshold, value range: [0,100]*/
}
}

JSON_CardReaderPlan
CardReaderPlan message in JSON format
{
"CardReaderPlan": {
"templateNo":
/required, integer, schedule template No.: 0-cancel linking the template to the schedule and restore to the default
status (normal status)*/
}
}

325
Intelligent Security API (Person-Based Access Control) Developer Guide

JSON_CardResetResponse
JSON message about card resetting response
{
"CardResetResponse": {
"data": ""
/*required, string, resetting response information (usually, it is manufacturer, which is encoded by Base64 and
specified by device*/
}
}

JSON_CardVerificationRule
JSON message about the parameters of card No. authentication mode
{
"CardVerificationRule":{
"cardNoLenMode":"full"
/*required, string, length mode of card No. authentication (comparison): "full", "3Bytes", "4Bytes". After the card No.
authentication (comparison) mode is switched, the device should check the card No. compatibility*/
}
}

JSON_CardVerificationRuleCap
JSON message about the configuration capability of the card No. authentication mode
{
"CardVerificationRuleCap":{
"cardNoLenMode":{
/*required, string, length mode of card No. authentication (comparison): "full", "3Bytes", "4Bytes". After the card No.
authentication (comparison) mode is switched, the device should check the compatibility of the card No.*/
"@opt":["full", "3Bytes", "4Bytes"]
},
"CardVerificationRuleRes":{
"checkStatus":{
/*required, string, status of switching card No. authentication (comparison) mode: "continue"-switching result can be
searched for later, "ok"-switching completed, "duplicate"-duplicate data exist and switching failed*/
"@opt":["continue", "ok", "duplicate"]
},
"progress":{
/*optional, int, switching progress in percentage which is between 0 and 100, and 100 indicates that the card No.
authentication (comparison) mode is switched*/
"@min":0,
"@max":0
}
}

326
Intelligent Security API (Person-Based Access Control) Developer Guide

}
}

JSON_CardVerificationRuleRes
JSON message about the switching progress and configuration result of card No. authentication
mode
{
"CardVerificationRuleRes":{
"checkStatus":"continue",
/*required, string, status of switching card No. authentication (comparison) mode: "continue"-switching result can be
searched for later, "ok"-switching succeeded, "duplicate"-duplicate data exist and switching failed*/
"progress":0
/*optional, int, switching progress in percentage which is between 0 and 100, and 100 indicates that card No.
authentication (comparison) mode is switched*/
}
}

JSON_ClearAntiSneak
ClearAntiSneak message in JSON format
{
"ClearAntiSneak": {
"clearAll": ,
/*required, boolean, whether to clear all anti-passing back records: "true"-yes, "false"-no. Clearing all anti-passing
back records is not supported by access control devices version 2.1*/
"EmployeeNoList" : [{
/*optional, person ID list, this node is valid when clearAll is "false". For access control devices version 2.1, if this node
is not configured, failure response message will be returned*/
"employeeNo":""
/*optional, string, employee No. (person ID)*/
}]
}
}

JSON_ClearAntiSneakCfg
ClearAntiSneakCfg message in JSON format
{
"ClearAntiSneakCfg":{
"ClearFlags":{
"antiSneak":
/*required, boolean, whether to clear the anti-passing back parameters*/
}

327
Intelligent Security API (Person-Based Access Control) Developer Guide

}
}

JSON_ClearAttendancePlan
JSON message about the parameters for clearing the attendance schedule
{
"ClearAttendancePlan":{
"ClearFlags":{
"attendanceWeekPlan":true,
/*optional, boolean, whether to clear the week attendance schedule*/
"attendanceTemplate":true
/*optional, boolean, whether to clear the parameters of the attendance schedule template*/
}
}
}

JSON_ClearData
JSON message about the conditions of deleting data from the card
{
"ClearData":{
"checkAll":true,
/*optional, boolean, whether to delete all data*/
"checkFingerprint":true,
/*optional, boolean, whether to delete fingerprint data. This node is valid when the value of checkAll is false or the
node checkAll does not exist*/
"fingerprints":[1, 2],
/*optional, array of int, address list of storage areas where the fingerprints to be deleted are stored. This node is valid
when the node checkFingerprint exists. If this node does not exist, it indicates deleting all fingerprints*/
"checkFacePicture":true,
/*optional, boolean, whether to delete face data. This node is valid when the value of checkAll is false or the node
checkAll does not exist*/
"checkCustom":true
/*optional, boolean, whether to delete custom data. This node is valid when the value of checkAll is false or the node
checkAll does not exist*/
}
}

JSON_ClearDataRes
JSON message about the result parameters of deleting data from the card
{
"ClearDataRes":{

328
Intelligent Security API (Person-Based Access Control) Developer Guide

"status":"ok",
/*required, string, card issuing status: "ok"-succeeded, "failed"-operation failed, "timeout"-timed out, "verifiyFailure"-
authentication failed, "noCard"-no card detected, "processing"-processing*/
"cardErrorCode":
/*dependent, int, internal error code of card operation*/
}
}

JSON_ClearEventCardLinkageCfg
ClearEventCardLinkageCfg message in JSON format
{
"ClearEventCardLinkageCfg":{
"ClearFlags":{
"eventCardLinkage":
/*required, boolean, whether to clear event and card linkage parameters: "true"-yes, "false"-no*/
}
}
}

JSON_ClearGroupCfg
ClearGroupCfg message in JSON format
{
"ClearGroupCfg":{
"ClearFlags":{
"groupCfg":
/*required, boolean, group parameters*/
}
}
}

JSON_ClearPictureCfg
JSON message about the parameters of clearing all pictures in the device
{
"ClearPictureCfg":{
"ClearFlags":{
"facePicture":true,
/*optional, boolean, whether it supports clearing registered face pictures in the device*/
"capOrVerifyPicture":true
/*optional, boolean, whether it supports clearing authenticated or captured face pictures in the device*/
}

329
Intelligent Security API (Person-Based Access Control) Developer Guide

}
}

JSON_ClearPictureCfgCap
JSON message about the capability of clearing all pictures in the device
{
"ClearPictureCfgCap":{
"ClearFlags":{
"facePicture":{
/*optional, boolean, whether it supports clearing registered face pictures*/
"@opt":[true, false]
},
"capOrVerifyPicture":{
/*optional, boolean, whether it supports clearing authenticated or captured face pictures*/
"@opt":[true, false]
}
}
}
}

JSON_ClearPlansCfg
ClearPlansCfg message in JSON format
{
"ClearPlansCfg":{
"ClearFlags":{
"doorStatusWeekPlan": ,
/*optional, boolean, whether to clear the week schedule of the door control: "true"-yes, "false"-no*/
"cardReaderWeekPlan": ,
/*optional, boolean, whether to clear the week schedule of the card reader authentication mode control: "true"-yes,
"false"-no*/
"userRightWeekPlan": ,
/*optional, boolean, whether to clear the week schedule of the access permission control: "true"-yes, "false"-no*/
"doorStatusHolidayPlan": ,
/*optional, boolean, whether to clear the holiday schedule of the door control: "true"-yes, "false"-no*/
"cardReaderHolidayPlan": ,
/*optional, boolean, whether to clear the holiday schedule of the card reader authentication mode control: "true"-
yes, "false"-no*/
"userRightHolidayPlan": ,
/*optional, boolean, whether to clear the holiday schedule of the access permission control: "true"-yes, "false"-no*/
"doorStatusHolidayGroup": ,
/*optional, boolean, whether to clear the holiday group of the door control: "true"-yes, "false"-no*/
"cardReaderHolidayGroup": ,
/*optional, boolean, whether to clear the holiday group of the card reader authentication mode control: "true"-yes,
"false"-no*/
"userRightHolidayGroup": ,

330
Intelligent Security API (Person-Based Access Control) Developer Guide

/*optional, boolean, whether to clear the holiday group of the access permission control: "true"-yes, "false"-no*/
"doorStatusTemplate": ,
/*optional, boolean, whether to clear the schedule template of the door control: "true"-yes, "false"-no*/
"cardReaderTemplate": ,
/*optional, boolean, whether to clear the control schedule template of card reader authentication mode: "true"-yes,
"false"-no*/
"userRightTemplate":
/*optional, boolean, whether to clear the schedule template of access permission control: "true"-yes, "false"-no*/
}
}
}

JSON_ControlBlock
JSON message about the control block parameters of a specific section.
{
"ControlBlock": {
"sectionNo": ,
/*required, integer, section No.*/
"KeyA": "",
/*optional, string type, a hexadecimal key A password*/
"KeyB": "",
/*optional, string type, a hexadecimal key B password*/
"controlBits":""
/*optional, string type, a hexadecimal control bit*/
}
}

JSON_CreateFPLibCond
Message about the conditions of creating face picture library, and it is in JSON format.
{
"faceLibType": "",
/*required, string type, face picture library type: "infraredFD"-infrared face picture library, "blackFD"-list library,
"staticFD"-static library, the maximum size is 32 bytes*/
"name": "",
/*required, string type, face picture library name, it cannot be duplicated, the maximum size is 48 bytes*/
"customInfo": "",
/*optional, string type, custom information, it is used to indicate the data property or uniqueness, the maximum size
is 192 bytes*/
}

JSON_CreateFPLibResult
Message about the results of creating face picture library, and it is in JSON format.

331
Intelligent Security API (Person-Based Access Control) Developer Guide

{
"requestURL": "",
"statusCode": "",
"statusString": "",
"subStatusCode": "",
"errorCode": "",
"errorMsg": "",
/*see the description of this node and above nodes in the message of JSON_ResponseStatus*/
"FDID": ""
/*optional, string type, returned face picture library ID when it created, the library ID of the same type is unique, the
maximum length is 63 bytes. This node is valid when errorCode is 1 and errorMsg is "ok"*/
}

See Also
JSON_ResponseStatus

JSON_CustomData
JSON message about the conditions of setting custom card information
{
"CustomData":{
"address":1,
/*optional, int, start address for writing. By default the data will be written from the start address*/
"length":1,
/*optional, int, length of the source data to be written, it is 0 by default, unit: byte*/
"data":""
/*required, string, custom information encoded by Base64*/
}
}

JSON_CustomDataRes
JSON message about the result parameters of setting custom card information
{
"CustomDataRes":{
"status":"ok",
/*required, string, card issuing status: "ok"-succeeded, "failed"-operation failed, "timeout"-timed out, "verifiyFailure"-
authentication failed, "noCard"-no card detected, "processing"-processing*/
"cardErrorCode":
/*dependent, int, internal error code of card operation*/
}
}

332
Intelligent Security API (Person-Based Access Control) Developer Guide

JSON_CustomDataResult
JSON message about the results of searching for custom card information
{
"CustomDataResult":{
"status":"ok",
/*required, string, card issuing status: "ok"-succeeded, "failed"-operation failed, "timeout"-timed out, "verifiyFailure"-
authentication failed, "noCard"-no card detected, "processing"-processing*/
"cardErrorCode":0,
/*dependent, int, internal error code of card operation. This node is valid when the value of status is "failed"*/
"length":1,
/*dependent, int, length of the source data that has been read, unit: byte. This node is valid when the value of status
is "ok"*/
"data":""
/*dependent, string, card information encoded by Base64. This node is valid when the value of status is "ok"*/
}
}

JSON_CustomDataSearchCond
JSON message about condition parameters of searching for custom card information
{
"CustomDataSearchCond":{
"address":1,
/*optional, int, start address for reading data. By default the data will be read from the start address*/
"length":1
/*optional, int, length of the data that can be read, it is 0 by default, unit: byte*/
}
}

JSON_DataBlock
JSON message about data block details
{
"DataBlock": {
"addressOfBlock": ,
/*optional, integer, block address*/
"data": "",
/*required, string, a hexBinary character string, i.e., "f2345678abf2345678abf2345678abf2"*/
}
}

333
Intelligent Security API (Person-Based Access Control) Developer Guide

JSON_DataBlockCtrl
JSON message about operation parameters of data block
{
"DataBlockCtrl": {
"addressOfBlock": ,
/*required, integer, block address*/
"command":"",
/*required, string, control commands: "add, minus, copy, paste"*/
"value":,
/*depend, integer, relative value to be changed, this field is value only when the command is set to "add" or "minus"*/
}
}

JSON_DataCollections
JSON message about the parameters of downloaded data collected offline
{
"DataCollections":{
"dataType ":"binary",
/*required, string, data type of the file: "url"-URL, "binary"-binary data*/
"progress":0,
/*required, int, file preparation progress. When it is 100, the data or the field fileUrl will be parsed*/
"fileUrl":""
/*dependent, string, file URL, this field is valid when the value of dataType is "url"*/
}
}

JSON_DataCollectionsCond
JSON message about the conditions of downloading data collected offline
{
"DataCollectionsCond":{
"id":"",
/*required, string, downloading ID, which is used to check whether it is the same request*/
"dataType ":"binary",
/*required, string, data type of the file: "url", "binary"-binary data*/
"password ":""
/*required, string, password*/
}
}

334
Intelligent Security API (Person-Based Access Control) Developer Guide

JSON_DataOutputCfg
DataOutputCfg message in JSON format
{
"DataOutputCfg":{
"password":"",
/*required, string, password for exporting*/
"type":""
/*optional, string, exporting type: "UsbDisk"-exporting via USB flash drive, "UsbPrivate"-exporting via private USB,
"ISAPI"-exporting via ISAPI*/
}
}

JSON_DataOutputProgress
DataOutputProgress message in JSON format
{
"DataOutputProgress":{
"progress":
/*required, integer, exporting progress*/
}
}

JSON_DataTrans
JSON message about data package to be passed through
{
"DataTrans": {
"content": ""
/*required, string, data to be passed through, which is encoded by Base64*/
}
}

JSON_RuleInfo
RuleInfo message in JSON format
{
"RuleInfo":{
"reqAdminRights": ,
/*required, boolean, whether the administrator permission is required: "true"-yes, "false"-no*/
"enableCardNoLenAuto": ,
/*optional, boolean, whether to enable length self-adaption of the card serial No. The priority of this field is higher

335
Intelligent Security API (Person-Based Access Control) Developer Guide

than len*/
"RuleList":[{
/*rule list, which contains rules for collecting different types of data*/
"dataType":"",
/*required, string, data type: "name", "employeeNo"-employee No., "IDCardNo"-ID card No., "IDCardSerialNo"-ID
card serial No., "IDCardDetails"-ID card details, "card", "fingprint"-fingerprint, "face"*/
"enable": ,
/*required, boolean, whether to collect and display: "true"-collect and display, "false"-not collect and display*/
"uniqueCheck": ,
/*dependency, boolean, whether to enable uniqueness verification: "true"-yes, "false" (default) or this field is not
returned-no. This field is valid when dataType is "name". For other data types, this field is the read-only optional
parameter*/
"len": ,
/*dependency, integer, data length, this field is valid when dataType is "name", "enployeeNo" or "card". The default
data length of name is 128. For other data types, this field is the read-only optional parameter. If it is not supported,
this field will not be returned*/
"num": ,
/*dependency, integer, number of collected data, this field is valid when dataType is "fingerprint" or "card"*/
"fingerprintIDs":
/*dependency, integer, ID list of fingerprints that need to be collected, this field is valid when dataType is
"fingerprint"*/
}],
"enableLocalIssueCard": true,
/*optional, boolean, whether to enable issuing smart cards locally*/
"isLocalStorage": false
/*optional, boolean, whether to store face picture and fingerprint information in the device locally*/
}
}

JSON_DelFaceRecord
JSON message about the parameters of deleting face records
{
"FPID":[{
/*array, list of face record ID, it is the same as the employee No. (person ID). Deleting multiple face records in a batch
is supported*/
"value":""
/*required, string type, face record ID, the maximum length is 63 bytes*/
}]
"operateType": "byTerminal",
/*optional, string, operation type: "byTerminal"-by terminal*/
"terminalNoList": [1]
/*optional, array, terminal ID list, this node is required when operation type is "byTerminal"; currently, only one
terminal is supported*/
}

336
Intelligent Security API (Person-Based Access Control) Developer Guide

JSON_DoorStatusHolidayGroupCfg
DoorStatusHolidayGroupCfg message in JSON format
{
"DoorStatusHolidayGroupCfg": {
"enable": ,
/*required, boolean, whether to enable: "true"-enable, "false"-disable*/
"groupName": "",
/*required, string, holiday group name*/
"holidayPlanNo" : ""
/*required, string, holiday group schedule No.*/
}
}

JSON_DoorStatusHolidayPlanCfg
DoorStatusHolidayPlanCfg message in JSON format
{
"DoorStatusHolidayPlanCfg":{
"enable": ,
/*required, boolean, whether to enable: "true"-enable, "false"-disable*/
"beginDate":"",
/*required, start date of the holiday*/
"endDate":"",
/*required, end data of the holiday*/
"HolidayPlanCfg":[{
/*required, holiday schedule parameters*/
"id": ,
/required, integer, time period No., which is between 1 and 8*/
"enable": ,
/*required, boolean, whether to enable: "true"-enable, "false"-disable*/
"doorStatus":"",
/*required, string, door status: "remainOpen"-remain open (access without authentication), "remainClosed"-remain
closed (access is not allowed), "normal"-access by authentication, "sleep", "invalid"*/
"TimeSegment":{
"beginTime":"",
/*required, start time of the time period (device local time)*/
"endTime":""
/*required, end time of the time period (device local time)*/
}
}]
}
}

337
Intelligent Security API (Person-Based Access Control) Developer Guide

JSON_DoorStatusPlan
DoorStatusPlan message in JSON format
{
"DoorStatusPlan": {
"templateNo":
/*required, integer, schedule template No.: 0-cancel linking the template with the schedule and restore to the default
status (normal status)*/
}
}

JSON_DoorStatusPlanTemplate
DoorStatusPlanTemplate message in JSON format
{
"DoorStatusPlanTemplate": {
"enable": ,
/*required, boolean, whether to enable: "true"-enable, "false"-disable*/
"templateName": "",
/*required, string, template name*/
"weekPlanNo" : ,
/*required, integer, week schedule No.*/
"holidayGroupNo" : ""
/*required, string, holiday group No.*/
}
}

JSON_DoorStatusWeekPlanCfg
DoorStatusWeekPlanCfg message in JSON format
{
"DoorStatusWeekPlanCfg":{
"enable": ,
/*required, boolean, whether to enable: "true"-enable, "false"-disable*/
"WeekPlanCfg":[{
/*required, week schedule parameters*/
"week":"",
/*required, string, days of the week: "Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday",
"Sunday"*/
"id": ,
/*required, integer, time period No., which is between 1 and 8*/
"enable": ,
/*required, boolean, whether to enable: "true"-enable, "false"-disable*/
"doorStatus":"",
/*required, sting, door status: "remainOpen"-remain open (access without authentication), "remainClosed"-remain

338
Intelligent Security API (Person-Based Access Control) Developer Guide

closed (access is not allowed), "normal"-access by authentication, "sleep", "invalid"*/


"TimeSegment":{
"beginTime":"",
/*required, start time of the time period (device local time)*/
"endTime":""
/*required, end time of the time period (device local time)*/
}
}]
}
}

JSON_EditFaceRecord
Message about the condition message of editing a face record, and it is in JSON format.
{
"faceURL": "",
/*optional, face picture URL, string type, the maximum size is 256 bytes*/
"name": "",
/*required, name of person in the face picture, string type, the maximum size is 96 bytes*/
"gender": "",
/*optional, gender of person in the face picture: male, female, unknown, string type, the maximum size is 32 bytes*/
"bornTime": "",
/*required, birthday of person in the face picture, ISO8601 time format, string type, the maximum size is 20 bytes*/
"city": "",
/*optional, city code of birth for the person in the face picture, string type, the maximum size is 32 bytes*/
"certificateType": "",
/*optional, string type, the maximum size is 10 bytes, certificate type: "officerID"-officer ID, "ID"-identify card,
passport, other*/
"certificateNumber": "",
/*optional, certificate No., string, the maximum size is 32 bytes*/
"caseInfo": "",
/*optional, case information, string type, the maximum size is 192 bytes, it is valid when faceLibType is blackFD*/
"tag": "",
/*optional, custom tag, up to 4 tags, which are separated by commas, string type, the maximum size is 195 bytes. It is
valid when faceLibType is blackFD*/
"address": "",
/*optional, person address, string type, the maximum size is 192 bytes, it is valid when faceLibType is staticFD.*/
"customInfo": "",
/*optional, custom information, string type, the maximum size is 192 bytes, it is valid when faceLibType is staticFD.*/
"modelData":""
/*optional, string type, target model data, non-modeled binary data needs to be encrypted by base64 during
transmission*/
"rowKey ":"",
/*optional, string type, face picture library main key. Search by rowKey can be more efficient, the maximum size is 64
bytes*/
"transfer":true,
/*optional, boolean type, whether to enable transfer*/
"PicFeaturePoints":[{
/*optional, array of object, feature points to be applied. If the device only supports three types of feature points,
when the platform applies more than three types of feature points, the device will not return error information*/

339
Intelligent Security API (Person-Based Access Control) Developer Guide

"featurePointType":"face",
/*required, string, feature point type: "face", "leftEye" (left eye), "rightEye" (right eye), "leftMouthCorner" (left corner
of mouth), "rightMouthCorner" (right corner of mouth), "nose"*/
"coordinatePoint":{
/*required, object, coordinates of the feature point*/
"x":1,
/*required, int, normalized X-coordinate which is between 0 and 1000*/
"y":1,
/*required, int, normalized Y-coordinate which is between 0 and 1000*/
"width":1,
/*required, int, width which is between 0 and 1000. This node is required when featurePointType is "face"*/
"height":1
/*required, int, height which is between 0 and 1000. This node is required when featurePointType is "face"*/
}
}]
}

JSON_EditFPlibInfo
Message about the editing information of face picture library, and it is in JSON format.
{
"name": "",
/*optional, face picture library name, string type, the max. string length is 48 bytes*/
"customInfo": ""
/*optional, custom information, it is used to indicate the data property or uniqueness, string type, the max. string
length is 192 bytes*/
}

JSON_EventCardLinkageCfg
EventCardLinkageCfg message in JSON format
{
"EventCardLinkageCfg": {
"proMode": "",
/*required, string, linkage type: "event"-event linkage, "card"-card linkage, "mac"-MAC address linkage, "employee"-
employee No. (person ID)*/
"EventLinkageInfo":{
/*optional, event linage parameters, it is valid when proMode is "event"*/
"mainEventType": ,
/*optional, integer, major event type: 0-device event, 1-alarm input event, 2-access control point event, 3-
authentication unit (card reader, fingerprint module) event*/
"subEventType":
/*optional, integer, minor event type, refer to Event Linkage Types for details*/
},
"CardNoLinkageInfo": {
/*optional, card linkage parameters, it is valid when proMode is "card"*/
"cardNo": ""

340
Intelligent Security API (Person-Based Access Control) Developer Guide

/*optional, string, card No.*/


},
"MacAddrLinkageInfo": {
/*optional, MAC address linkage parameters, it is valid when proMode is "mac"*/
"MACAddr": ""
/*optional, string, physical MAC address*/
},
"EmployeeInfo": {
/*optional, employee No. (person ID) linkage parameters, it is valid when proMode is "employee"*/
"employeeNo":""
/*optional, string, employee No. (person ID)*/
},
"eventSourceID": ,
/*optional, integer, event source ID, it is valid when proMode is "event", 65535-all. For device event (mainEventType
is 0), this field is invalid; for access control point event (mainEventType is 2), this field refers to the access control
point No.; for authentication unit event (mainEventType is 3, this field refers to the authentication unit No.; for alarm
input event (mainEventType is 1), this field refers to the zone alarm input ID or the event alarm input ID*/
"alarmout": ,
/*optional, array, linked alarm output No., e.g., [1,3,5]: 1-linked alarm output No.1; 3-linked alarm output No.3; 5-
linked alarm output No.5*/
"openDoor": ,
/*optional, array, linked door No. to open, e.g., [1,3,5]: 1-linked door No.1; 3-linked door No.3; 5-linked door No.5*/
"closeDoor": ,
/*optional, array, linked door No. to close, e.g., [1,3,5]: 1-linked door No.1; 3-linked door No.3; 5-linked door No.5*/
"alwaysOpen": ,
/*optional, array, linked door No. to remain unlocked, e.g., [1,3,5]: 1-linked door No.1; 3-linked door No.3; 5-linked
door No.5*/
"alwaysClose": ,
/*optional, array, linked door No. to remain locked, e.g., [1,3,5]: 1-linked door No.1; 3-linked door No.3; 5-linked door
No.5*/
"mainDevBuzzer": ,
/*optional, boolean, whether to enable buzzer linkage of the access controller (start buzzing): "false"-no, "true"-yes*/
"capturePic": ,
/*optional, boolean, whether to enable capture linkage: "false"-no, "true"-yes*/
"recordVideo": ,
/*optional, boolean, whether to enable recording linkage: "false"-no, "true"-yes*/
"mainDevStopBuzzer": ,
/*optional, boolean, whether to enable buzzer linkage of access controller (stop buzzing): "false"-no, "true"-yes*/
"audioDisplayID": ,
/*optional, integer, linked audio announcement ID, which is between 1 and 32: 0-not link*/
"audioDisplayMode": "",
/*optional, integer, linked audio announcement mode: "close", "single", "loop"*/
"readerBuzzer": ,
/*optional, array, linked buzzer No., e.g, [1,3,5]: 1-buzzer No.1, 3-buzzer No.3, 5-buzzer No.5*/
"alarmOutClose": ,
/*optional, array, linked alarm output No. to disable, e.g, [1,3,5]: 1-alarm output No.1, 3-alarm output No.3, 5-alarm
output No.5*/
"alarmInSetup": ,
/*optional, array, linked zone No. to arm, e.g, [1,3,5]: 1-zone No.1, 3-zone No.3, 5-zone No.5*/
"alarmInClose": ,
/*optional, array, linked zone No. to disarm, e.g, [1,3,5]: 1-zone No.1, 3-zone No.3, 5-zone No.5*/
"readerStopBuzzer": ,

341
Intelligent Security API (Person-Based Access Control) Developer Guide

/*optional, array, linked buzzer No. to stop buzzing, e.g, [1,3,5]: 1-buzzer No.1, 3-buzzer No.3, 5-buzzer No.*/
}
}

See Also
Event Linkage Types

JSON_EventCardNoList
EventCardNoList message in JSON format
{
"EventCardNoList":{
"id":
/*required, array, list of configured event and card linkage ID, e.g., [1,2,3] indicates that the device is configured with
event linkage 1, 2, and 3*/
}
}

JSON_EventNotificationAlert_AccessControlEventMsg
The access control event information is uploaded in JSON format of EventNotificationAlert
message.

Access Control Event Message With Binary Picture Data


Content-Type:multipart/form-data;boundary=MIME_boundary
--MIME_boundary
Content-Type: application/json
Content-Length:480
{
"ipAddress": "",
/*required, string, IP address of the alarm device, the maximum size is 32 bytes*/
"ipv6Address": "",
/*optional, string, IPv6 address of the alarm device, the maximum size is 128 bytes*/
"portNo": ,
/*optional, integer32, port No. of the alarm device*/
"protocol": "",
/*optional, string, protocol type: "HTTP", "HTTPS", the maximum size is 32 bytes*/
"macAddress": "",
/*optional, string, MAC address, the maximum size is 32 bytes*/
"channelID": ,
/*optional, integer32, device channel No. that triggered the alarm*/
"dateTime": "",
/*required, string, time when the alarm is triggered (UTC time), the maximum size is 32 bytes*/
"activePostCount": ,
/*required, integer32, number of times that the same alarm has been uploaded*/
"eventType": "",

342
Intelligent Security API (Person-Based Access Control) Developer Guide

/*required, string, triggered event type, here it should be set to "AccessControllerEvent", and the maximum size is 128
bytes*/
"eventState": "",
/*required, string, event triggering status: "active"-triggered, "inactive"-not triggered, the maximum size is 32 bytes*/
"eventDescription": "",
/*required, string, event description*/
"deviceID": "",
/*optional, string, device No.*/
"AccessControllerEvent":{
"deviceName": "",
/*optional, string, device name*/
"majorEventType": ,
/*required, int, major alarm/event types (the type value should be converted to a decimal number for transmission),
see Access Control Event Types for details*/
"subEventType": ,
/*required, int, minor alarm/event types (the type value should be converted to a decimal number for transmission),
see Access Control Event Types for details*/
"inductiveEventType": "",
/*optional, string, inductive event type. This field is used by storage devices; for access control devices, this field is
invalid*/
"netUser": "",
/*optional, string, user name for network operations*/
"remoteHostAddr": "",
/*optional, string, remote host address*/
"cardNo": "",
/*optional, string, card No.*/
"cardType": ,
/*optional, int, card type: 1-normal card, 2-disability card, 3-blocklist card, 4-patrol card, 5-duress card, 6-super card, 7-
visitor card, 8-dismiss card*/
"name": "",
/*optional, string, person name*/
"whiteListNo": ,
/*optional, int, allowlist No., which is between 1 and 8*/
"reportChannel": ,
/*optional, int, alarm/event uploading channel type: 1-uploading in arming mode, 2-uploading by central group 1, 3-
uploading by central group 2*/
"cardReaderKind": ,
/*optional, int, reader type: 1-IC card reader, 2-ID card reader, 3-QR code scanner, 4-fingerprint module*/
"cardReaderNo": ,
/*optional, int, reader No.*/
"doorNo": ,
/*optional, int, door or floor No.*/
"verifyNo": ,
/*optional, int, multiple authentication No.*/
"alarmInNo": ,
/*optional, int, alarm input No.*/
"alarmOutNo": ,
/*optional, int, alarm output No.*/
"caseSensorNo": ,
/*optional, int, event trigger No.*/
"RS485No": ,
/*optional, int, RS-485 channel No.*/

343
Intelligent Security API (Person-Based Access Control) Developer Guide

"multiCardGroupNo": ,
/*optional, int, group No.*/
"accessChannel": ,
/*optional, int, turnstile No.*/
"deviceNo": ,
/*optional, int, device No.*/
"distractControlNo": ,
/*optional, int, distributed access controller No.*/
"employeeNo": ,
/*optional, int, employee No. (person ID)*/
"employeeNoString": "",
/*optional, string, employee No. (person ID). If the field employeeNo exists or the value of employeeNoString can be
converted to that of employeeNo, this field is required. For the upper-layer platform or client software, the field
employeeNoString will be parsed in prior; if employeeNoString is not configured, the field employeeNo will be
parsed*/
"localControllerID": ,
/*optional, int, distributed access controller No.: 0-access controller, 1 to 64-distributed access controller No. 1 to
distributed access controller No. 64*/
"InternetAccess": ,
/*optional, int, network interface No.: 1-upstream network interface No. 1, 2-upstream network interface No. 2, 3-
downstream network interface No. 1*/
"type": ,
/*optional, int, zone type: 0-instant zone, 1-24-hour zone, 2-delayed zone, 3-internal zone, 4-key zone, 5-fire alarm
zone, 6-perimeter zone, 7-24-hour silent zone, 8-24-hour auxiliary zone, 9-24-hour shock zone, 10-emergency door
open zone, 11-emergency door closed zone, 255-none*/
"MACAddr": "",
/*optional, string, physical address*/
"swipeCardType": ,
/*optional, int, card swiping types: 0-invalid, 1-QR code*/
"serialNo": ,
/*optional, int, event serial No., which is used to check whether the event loss occurred*/
"channelControllerID": ,
/*optional, int, lane controller ID: 1-master lane controller, 2-slave lane controller*/
"channelControllerLampID": ,
/*optional, int, light board ID of the lane controller, which is between 1 and 255*/
"channelControllerIRAdaptorID": ,
/*optional, int, IR adaptor ID of the lane controller, which is between 1 and 255*/
"channelControllerIREmitterID": ,
/*optional, int, active infrared intrusion detector No. of the lane controller, which is between 1 and 255*/
"userType": "",
/*optional, string, person type: "normal"-normal person (resident), "visitor"-visitor, "blacklist"-person in the blocklist,
"administrators"-administrator*/
"currentVerifyMode": ,
/*optional, string, current authentication mode of the reader: "cardAndPw"-card+password, "card"-card, "cardOrPw"-
card or password, "fp"-fingerprint, "fpAndPw"-fingerprint+password, "fpOrCard"-fingerprint or card, "fpAndCard"-
fingerprint+card, "fpAndCardAndPw"-fingerprint+card+password, "faceOrFpOrCardOrPw"-face or fingerprint or card
or password, "faceAndFp"-face+fingerprint, "faceAndPw"-face+password, "faceAndCard"-face+card, "face"-face,
"employeeNoAndPw"-employee No.+password, "fpOrPw"-fingerprint or password, "employeeNoAndFp"-employee
No.+fingerprint, "employeeNoAndFpAndPw"-employee No.+fingerprint+password, "faceAndFpAndCard"-face
+fingerprint+card, "faceAndPwAndFp"-face+password+fingerprint, "employeeNoAndFace"-employee No.+face,
"faceOrfaceAndCard"-face or face+card, "fpOrface"-fingerprint or face, "cardOrfaceOrPw"-card or face or password,
"cardOrFace"-card or face, "cardOrFaceOrFp"-card or face or fingerprint, "cardOrFpOrPw"-card or fingerprint or

344
Intelligent Security API (Person-Based Access Control) Developer Guide

password*/
"currentEvent": ,
/*optional, boolean, whether it is a real-time event: true-yes (real-time event), false-no (offline event)*/
"QRCodeInfo":"",
/*optional, string, QR code information*/
"thermometryUnit":"",
/*optional, string, temperature unit: "celsius"-Celsius (default), "fahrenheit"-Fahrenheit, "kelvin"-Kelvin*/
"currTemperature": ,
/*optional, float, face temperature which is accurate to one decimal place*/
"isAbnomalTemperature": ,
/*optional, boolean, whether the face temperature is abnormal: true-yes, false-no*/
"RegionCoordinates":{
/*optional, face temperature's coordinates*/
"positionX": ,
/*optional, int, normalized X-coordinate which is between 0 and 1000*/
"positionY":
/*optional, int, normalized Y-coordinate which is between 0 and 1000*/
},
"remoteCheck":,
/*optional, boolean, whether remote verification is required: true-yes, false-no (default)*/
"mask":"",
/*optional, string, whether the person is wearing mask or not: "unknown", "yes"-wearing mask, "no"-not wearing
mask*/
"helmet": "",
/*optional, string, whether the person is wearing hard hat: "unknown", "yes"-wearing hard hat, "no"-not wearing
hard hat*/
"frontSerialNo": ,
/*optional, int, the previous event's serial No. If this field does not exist, the platform will check whether the event
loss occurred according to the field serialNo. If both the serialNo and frontSerialNo are returned, the platform will
check whether the event loss occurred according to both fields. It is mainly used to solve the problem that the
serialNo is inconsistent after subscribing events or alarms*/
"deviceId": ,
/*optional, string, device's long No., e.g., "10000000101"*/
"attendanceStatus":"",
/*optional, string, attendance status: "undefined", "checkIn"-check in, "checkOut"-check out, "breakOut"-break out,
"breakIn"-break in, "overtimeIn"-overtime in, "overTimeOut"-overtime out*/
"statusValue": ,
/*optional, int, status value*/
"label":"",
/*optional, string, custom attendance name*/
"picturesNumber": ,
/*optional, int, number of captured pictures if the capture linkage action is configured. This field will be 0 or not be
returned if there is no picture*/
"purePwdVerifyEnable":
/*optional, boolean, whether the device supports opening the door only by password: true-yes, this field is not
returned-no. The password used to open the door is the value of the field password in the message
JSON_UserInfo
*/
/*For opening the door only by password: 1. The password in "XXX or password" in the authentication mode refers to
the person's password (the value of the field password in
JSON_UserInfo
); 2. The device will not check the duplication of the password, and the upper platform

345
Intelligent Security API (Person-Based Access Control) Developer Guide

should ensure that the password is unique; 3. The password cannot be added, deleted, edited, or searched for on the
device locally*/
}
}
--MIME_boundary
Content-Disposition: form-data; name="Picture"; filename="Picture.jpg"; //Captured picture data
Content-Type: image/jpeg
Content-Length: 516876
Content-ID: pictureImage

fefefwageegfqaeg…
--MIME_boundary
Content-Disposition: form-data; name="VisibleLight"; filename="VisibleLight.jpg"; //Data of the visible light picture
captured by the thermal camera
Content-Type: image/jpeg
Content-Length: 516876
Content-ID: visibleLight_image

fefefwageegfqaeg…
--MIME_boundary
Content-Disposition: form-data; name="Thermal"; filename="Thermal.jpg"; //Thermal picture data
Content-Type: image/jpeg
Content-Length: 516876
Content-ID: thermal_image

fefefwageegfqaeg…
--MIME_boundary

Access Control Event Message With Picture URL


{
"ipAddress": "",
/*required, string, IP address of the alarm device, the maximum size is 32 bytes*/
"ipv6Address": "",
/*optional, string, IPv6 address of the alarm device, the maximum size is 128 bytes*/
"portNo": ,
/*optional, integer32, port No. of the alarm device*/
"protocol": "",
/*optional, string, protocol type: "HTTP", "HTTPS", the maximum size is 32 bytes*/
"macAddress": "",
/*optional, string, MAC address, the maximum size is 32 bytes*/
"channelID": ,
/*optional, integer32, device channel No. that triggered the alarm*/
"dateTime": "",
/*required, string, time when the alarm is triggered (UTC time), the maximum size is 32 bytes*/
"activePostCount": ,
/*required, integer32, number of times that the same alarm has been uploaded*/
"eventType": "",
/*required, string, triggered event type, here it should be set to "AccessControllerEvent", and the maximum size is 128
bytes*/
"eventState": "",
/*required, string, event triggering status: "active"-triggered, "inactive"-not triggered, the maximum size is 32 bytes*/

346
Intelligent Security API (Person-Based Access Control) Developer Guide

"eventDescription": "",
/*required, string, event description*/
"deviceID": "",
/*optional, string, device No.*/
"AccessControllerEvent":{
"deviceName": "",
/*optional, string, device name*/
"majorEventType": ,
/*required, int, major alarm/event types (the type value should be converted to a decimal number for transmission),
see Access Control Event Types for details*/
"subEventType": ,
/*required, int, minor alarm/event types (the type value should be converted to a decimal number for transmission),
see Access Control Event Types for details*/
"inductiveEventType": "",
/*optional, string, inductive event type. This field is used by back-end devices; for access control devices, this field is
invalid*/
"netUser": "",
/*optional, string, user name for network operations*/
"remoteHostAddr": "",
/*optional, string, remote host address*/
"cardNo": "",
/*optional, string, card No.*/
"cardType": ,
/*optional, int, card type: 1-normal card, 2-disability card, 3-blocklist card, 4-patrol card, 5-duress card, 6-super card, 7-
visitor card, 8-dismiss card*/
"name": "",
/*optional, string, person name*/
"whiteListNo": ,
/*optional, int, allowlist No., which is between 1 and 8*/
"reportChannel": ,
/*optional, int, alarm/event uploading channel type: 1-uploading in arming mode, 2-uploading by central group 1, 3-
uploading by central group 2*/
"cardReaderKind": ,
/*optional, int, reader type: 1-IC card reader, 2-ID card reader, 3-QR code scanner, 4-fingerprint module*/
"cardReaderNo": ,
/*optional, int, reader No.*/
"doorNo": ,
/*optional, int, door or floor No.*/
"verifyNo": ,
/*optional, int, multiple authentication No.*/
"alarmInNo": ,
/*optional, int, alarm input No.*/
"alarmOutNo": ,
/*optional, int, alarm output No.*/
"caseSensorNo": ,
/*optional, int, event trigger No.*/
"RS485No": ,
/*optional, int, RS-485 channel No.*/
"multiCardGroupNo": ,
/*optional, int, group No.*/
"accessChannel": ,
/*optional, int, turnstile No.*/

347
Intelligent Security API (Person-Based Access Control) Developer Guide

"deviceNo": ,
/*optional, int, device No.*/
"distractControlNo": ,
/*optional, int, distributed access controller No.*/
"employeeNo": ,
/*optional, int, employee No. (person ID)*/
"employeeNoString": "",
/*optional, string, employee No. (person ID). If the field employeeNo exists or the value of employeeNoString can be
converted to that of employeeNo, this field is required. For the upper-layer platform or client software, the field
employeeNoString will be parsed in prior; if employeeNoString is not configured, the field employeeNo will be
parsed*/
"localControllerID": ,
/*optional, int, distributed access controller No.: 0-access controller, 1 to 64-distributed access controller No. 1 to
distributed access controller No. 64*/
"InternetAccess": ,
/*optional, int, network interface No.: 1-upstream network interface No. 1, 2-upstream network interface No. 2, 3-
downstream network interface No. 1*/
"type": ,
/*optional, int, zone type: 0-instant zone, 1-24-hour zone, 2-delayed zone, 3-internal zone, 4-key zone, 5-fire alarm
zone, 6-perimeter zone, 7-24-hour slient zone, 8-24-hour auxiliary zone, 9-24-hour shock zone, 10-emergency door
open zone, 11-emergency door closed zone, 255-none*/
"MACAddr": "",
/*optional, string, physical address*/
"swipeCardType": ,
/*optional, int, card swiping types: 0-invalid, 1-QR code*/
"serialNo": ,
/*optional, int, event serial No., which is used to check whether the event loss occurred*/
"channelControllerID": ,
/*optional, int, lane controller ID: 1-master lane controller, 2-slave lane controller*/
"channelControllerLampID": ,
/*optional, int, light board ID of the lane controller, which is between 1 and 255*/
"channelControllerIRAdaptorID": ,
/*optional, int, IR adaptor ID of the lane controller, which is between 1 and 255*/
"channelControllerIREmitterID": ,
/*optional, int, active infrared intrusion detector No. of the lane controller, which is between 1 and 255*/
"userType": "",
/*optional, string, person type: "normal"-normal person (resident), "visitor"-visitor, "blacklist"-person in the blocklist,
"administrators"-administrator*/
"currentVerifyMode": ,
/*optional, string, current authentication mode of the reader: "cardAndPw"-card+password, "card"-card, "cardOrPw"-
card or password, "fp"-fingerprint, "fpAndPw"-fingerprint+password, "fpOrCard"-fingerprint or card, "fpAndCard"-
fingerprint+card, "fpAndCardAndPw"-fingerprint+card+password, "faceOrFpOrCardOrPw"-face or fingerprint or card
or password, "faceAndFp"-face+fingerprint, "faceAndPw"-face+password, "faceAndCard"-face+card, "face"-face,
"employeeNoAndPw"-employee No.+password, "fpOrPw"-fingerprint or password, "employeeNoAndFp"-employee
No.+fingerprint, "employeeNoAndFpAndPw"-employee No.+fingerprint+password, "faceAndFpAndCard"-face
+fingerprint+card, "faceAndPwAndFp"-face+password+fingerprint, "employeeNoAndFace"-employee No.+face,
"faceOrfaceAndCard"-face or face+card, "fpOrface"-fingerprint or face, "cardOrfaceOrPw"-card or face or password,
"cardOrFace"-card or face, "cardOrFaceOrFp"-card or face or fingerprint, "cardOrFpOrPw"-card or fingerprint or
password*/
"currentEvent": ,
/*optional, boolean, whether it is a real-time event: true-yes (real-time event), false-no (offline event)*/
"QRCodeInfo":"",

348
Intelligent Security API (Person-Based Access Control) Developer Guide

/*optional, string, QR code information*/


"thermometryUnit":"",
/*optional, string, temperature unit: "celsius"-Celsius (default), "fahrenheit"-Fahrenheit, "kelvin"-Kelvin*/
"currTemperature": ,
/*optional, float, face temperature which is accurate to one decimal place*/
"isAbnomalTemperature": ,
/*optional, boolean, whether the face temperature is abnormal: true-yes, false-no*/
"RegionCoordinates":{
/*optional, face temperature's coordinates*/
"positionX": ,
/*optional, int, normalized X-coordinate which is between 0 and 1000*/
"positionY":
/*optional, int, normalized Y-coordinate which is between 0 and 1000*/
},
"remoteCheck":,
/*optional, boolean, whether remote verification is required: true-yes, false-no (default)*/
"mask":"",
/*optional, string, whether the person is wearing mask or not: "unknown", "yes"-wearing mask, "no"-not wearing
mask*/
"helmet": "",
/*optional, string, whether the person is wearing hard hat: "unknown", "yes"-wearing hard hat, "no"-not wearing
hard hat*/
"frontSerialNo": ,
/*optional, int, the previous event's serial No. If this field does not exist, the platform will check whether the event
loss occurred according to the field serialNo. If both the serialNo and frontSerialNo are returned, the platform will
check whether the event loss occurred according to both fields. It is mainly used to solve the problem that the
serialNo is inconsistent after subscribing events or alarms*/
"attendanceStatus":"",
/*optional, string, attendance status: "undefined", "checkIn"-check in, "checkOut"-check out, "breakOut"-break out,
"breakIn"-break in, "overtimeIn"-overtime in, "overTimeOut"-overtime out*/
"statusValue": ,
/*optional, int, status value*/
"label":"",
/*optional, string, custom attendance name*/
"pictureURL": "",
/*optional, string, captured picture URL*/
"deviceId": ,
/*optional, string, device's long No., e.g., "10000000101"*/
"visibleLightURL": "",
/*optional, string, URL of the visible light picture captured by the thermal camera*/
"thermalURL": "",
/*optional, string, thermal picture URL*/
"picturesNumber": ,
/*optional, int, number of captured pictures if the capture linkage action is configured. This field will be 0 or not be
returned if there is no picture*/
"purePwdVerifyEnable":
/*optional, boolean, whether the device supports opening the door only by password: true-yes, this field is not
returned-no. The password used to open the door is the value of the field password in the message
JSON_UserInfo
*/
/*For opening the door only by password: 1. The password in "XXX or password" in the authentication mode refers to
the person's password (the value of the field password in

349
Intelligent Security API (Person-Based Access Control) Developer Guide

JSON_UserInfo
); 2. The device will not check the duplication of the password, and the upper platform
should ensure that the password is unique; 3. The password cannot be added, deleted, edited, or searched for on the
device locally*/
}
}

See Also
Access Control Event Types
Example
Interaction Example of Uploading Access Control Event with Pictures in Arming Mode
HTTP/1.1 200 OK
MIME-Version: 1.0
Connection: close
Content-Type:multipart/form-data;boundary=MIME_boundary

--MIME_boundary
Content-Type: application/json
Content-Length:480

<alarm message in JSON format>


--MIME_boundary
Content-Disposition: form-data; name="Picture"; filename="Picture.jpg"; //Captured picture data
Content-Type:image/jpeg
Content-Length:516876
Content-ID: pictureImage

fefefwageegfqaeg…
--MIME_boundary
Content-Type: application/json
Content-Length:480

<next alarm message in JSON format>


--MIME_boundary
Content-Disposition: form-data; name="Picture"; filename="Picture.jpg"
Content-Type:image/jpeg
Content-Length:516876

fefefwageegfqaeg…
--MIME_boundary
Content-Disposition: form-data; name="VisibleLight"; filename="VisibleLight.jpg"; //Data of the visible light picture
captured by the thermal camera
Content-Type: image/jpeg
Content-Length: 516876
Content-ID: visibleLight_image

fefefwageegfqaeg…
--MIME_boundary
Content-Disposition: form-data; name="Thermal"; filename="Thermal.jpg"; //Thermal picture data
Content-Type: image/jpeg

350
Intelligent Security API (Person-Based Access Control) Developer Guide

Content-Length: 516876
Content-ID: thermal_image

fefefwageegfqaeg…
--MIME_boundary

JSON_EventNotificationAlert_Alarm/EventInfo
EventNotificationAlert message with alarm or event information in JSON format.
{
"ipAddress": "",
/*required, device IPv4 address , string, the maximum size is 32 bytes*/
"ipv6Address": "",
/*optional, device IPv6 address, string, the maximum size is 128 bytes*/
"portNo": ,
/*optional, device port No., integer32*/
"protocol": "",
/*optional, protocol type, "HTTP, HTTPS", string, the maximum size is 32 bytes*/
"macAddress": "",
/*optional, MAC address, string, the maximum size is 32 bytes, e.g., 01:17:24:45:D9:F4*/
"channelID": "",
/*optional, device channel No., integer32*/
"dateTime": "",
/*optional, string, alarm/event triggered or occurred time based on ISO8601, the maximum size is 32 bytes, e.g.,
2009-11-14T15:27Z*/
"activePostCount": "",
/*required, alarm/event frequency, integer32*/
"eventType": "",
/*required, alarm/event type, "captureResult, faceCapture,...", string, the maximum size is 128 bytes*/
"eventState": "",
/*required, string, the maximum size is 32 bytes, durative alarm/event status: "active"-valid, "inactive"-invalid*/
"eventDescription": "",
/*required, event description, string, the maximum size is 128 bytes*/
"deviceID":"",
/*string type, device ID*/
"uuid":"",
/*string type, event UUID, which is used to uniquely identify an event, the standard UUID format is xxxxxxxx-xxxx-xxxx-
xxxx-xxxxxxxxxxxx*/
...
/*optional, for different alarm/event types, the nodes are different, see the message examples in different
applications*/
}

JSON_EventNotificationAlert_FaceThermographyEventMsg
The face thermography event information is uploaded in JSON format of EventNotificationAlert
message.

351
Intelligent Security API (Person-Based Access Control) Developer Guide

Face Thermography Event Message with Binary Picture Data


{
"ipAddress":"",
/*required, string, IP address of the alarm device, the maximum size is 32 bytes*/
"ipv6Address":"",
/*optional, string, IPv6 address of the alarm device, the maximum size is 128 bytes*/
"portNo": ,
/*optional, integer32, port No. of the alarm device*/
"protocol":"",
/*optional, string, protocol type: "HTTP", "HTTPS", the maximum size is 32 bytes*/
"macAddress":"",
/*optional, string, MAC address, the maximum size is 32 bytes*/
"channelID": ,
/*optional, integer32, device channel No. that triggered the alarm*/
"dateTime":"",
/*required, string, time when the alarm is triggered (UTC time), the maximum size is 32 bytes*/
"activePostCount": ,
/*required, integer32, number of times that the same alarm has been uploaded*/
"eventType":"",
/*required, string, triggered event type, here it should be set to "FaceTemperatureMeasurementEvent", the maximum
size is 128 bytes*/
"eventState":"",
/*required, string, event triggering status: "active"-triggered, "inactive"-not triggered, the maximum size is 32 bytes*/
"eventDescription":"",
/*required, string, event description*/
"FaceTemperatureMeasurementEvent":{
"deviceName":"",
/*optional, string, device name*/
"serialNo": ,
/*optional, int, event serial No.*/
"currentEvent": ,
/*optional, boolean, whether it is a real-time event: true-yes (real-time event), false-no (offline event)*/
"thermometryUnit":"",
/*optional, string, temperature unit: "celsius"-Celsius (default), "fahrenheit"-Fahrenheit, "kelvin"-Kelvin*/
"currTemperature": ,
/*optional, float, face temperature which is accurate to one decimal place*/
"isAbnomalTemperature": ,
/*optional, boolean, whether the face temperature is abnormal: true-yes, false-no*/
"RegionCoordinates":{
/*optional, face temperature's coordinates*/
"positionX": ,
/*optional, int, normalized X-coordinate which is between 0 and 1000*/
"positionY":
/*optional, int, normalized Y-coordinate which is between 0 and 1000*/
},
"remoteCheck": ,
/*optional, boolean, whether remote verification is required: true-yes, false-no (default)*/
"mask":""
/*optional, string, whether the person is wearing mask or not: "unknown", "yes"-wearing mask, "no"-not wearing
mask*/
}

352
Intelligent Security API (Person-Based Access Control) Developer Guide

}
--MIME_boundary
Content-Disposition: form-data; name="VisibleLight"; filename="VisibleLight.jpg"; //Data of the visible light picture
captured by the thermal camera
Content-Type: image/jpeg
Content-Length: 516876
Content-ID: visibleLight_image

fefefwageegfqaeg…
--MIME_boundary
Content-Disposition: form-data; name="Thermal"; filename="Thermal.jpg"; //Thermal picture data
Content-Type: image/jpeg
Content-Length: 516876
Content-ID: thermal_image

fefefwageegfqaeg…
--MIME_boundaryContent-Disposition: form-data; name="Picture"; filename="Picture.jpg"; //Captured picture data
Content-Type: image/jpeg
Content-Length: 516876
Content-ID: picture_image

fefefwageegfqaeg…
--MIME_boundary

Face Thermography Event Message with Picture URL


{
"ipAddress":"",
/*required, string, IP address of the alarm device, the maximum size is 32 bytes*/
"ipv6Address":"",
/*optional, string, IPv6 address of the alarm device, the maximum size is 128 bytes*/
"portNo": ,
/*optional, integer32, port No. of the alarm device*/
"protocol":"",
/*optional, string, protocol type: "HTTP", "HTTPS", the maximum size is 32 bytes*/
"macAddress":"",
/*optional, string, MAC address, the maximum size is 32 bytes*/
"channelID": ,
/*optional, integer32, device channel No. that triggered the alarm*/
"dateTime":"",
/*required, string, time when the alarm is triggered (UTC time), the maximum size is 32 bytes*/
"activePostCount": ,
/*required, integer32, number of times that the same alarm has been uploaded*/
"eventType":"",
/*required, string, triggered event type, here it should be set to "FaceTemperatureMeasurementEvent", the maximum
size is 128 bytes*/
"eventState":"",
/*required, string, event triggering status: "active"-triggered, "inactive"-not triggered, the maximum size is 32 bytes*/
"eventDescription":"",
/*required, string, event description*/
"FaceTemperatureMeasurementEvent":{
"deviceName":"",

353
Intelligent Security API (Person-Based Access Control) Developer Guide

/*optional, string, device name*/


"serialNo": ,
/*optional, int, event serial No.*/
"currentEvent": ,
/*optional, boolean, whether it is a real-time event: true-yes (real-time event), false-no (offline event)*/
"thermometryUnit":"",
/*optional, string, temperature unit: "celsius"-Celsius (default), "fahrenheit"-Fahrenheit, "kelvin"-Kelvin*/
"currTemperature": ,
/*optional, float, face temperature which is accurate to one decimal place*/
"isAbnomalTemperature": ,
/*optional, boolean, whether the face temperature is abnormal: true-yes, false-no*/
"RegionCoordinates":{
/*optional, face temperature's coordinates*/
"positionX": ,
/*optional, int, normalized X-coordinate which is between 0 and 1000*/
"positionY":
/*optional, int, normalized Y-coordinate which is between 0 and 1000*/
},
"remoteCheck": ,
/*optional, boolean, whether remote verification is required: true-yes, false-no (default)*/
"mask":"",
/*optional, string, whether the person is wearing mask or not: "unknown", "yes"-wearing mask, "no"-not wearing
mask*/
"visibleLightURL": "",
/*optional, string, URL of the visible light picture captured by the thermal camera*/
"thermalURL": "",
/*optional, string, thermal picture URL*/
"pictureURL": ""
/*optional, string, captured picture URL*/
}
}

JSON_EventNotificationAlert_IDCardSwipingEventMsg
The event information of swiping ID card is uploaded in JSON format of EventNotificationAlert
message.

Event Message of Swiping ID Card with Binary Picture Data


{
"ipAddress":"",
/*required, string, IPv4 address of the alarm device, the maximum size is 32 bytes*/
"ipv6Address":"",
/*optional, string, IPv6 address of the alarm device, the maximum size is 128 bytes*/
"portNo": ,
/*optional, integer32, port No. of the alarm device*/
"protocol":"",
/*optional, string, protocol type: "HTTP", "HTTPS", the maximum size is 32 bytes*/
"macAddress":"",
/*optional, string, MAC address, the maximum size is 32 bytes*/

354
Intelligent Security API (Person-Based Access Control) Developer Guide

"channelID": ,
/*optional, integer32, device channel No. that triggered alarm*/
"dateTime":"",
/*required, string, time when the alarm is triggered (UTC time), the maximum size is 32 bytes*/
"activePostCount": ,
/*required, integer32, times that the same alarm has been uploaded*/
"eventType":"",
/*required, string, triggered event type, here it should be set to "IDCardInfoEvent", the maximum size is 128 bytes*/
"eventState":"",
/*required, string, event triggering status: "active"-triggered, "inactive"-not triggered, the maximum size is 32 bytes*/
"eventDescription":"",
/*required, event description*/
"IDCardInfoEvent":{
"deviceName":"",
/*optional, string, device name*/
"majorEventType": ,
/*required, int, major alarm type, the type value should be converted to a decimal number, see Access Control Event
Types for details*/
"subEventType": ,
/*required, int, minor alarm type, the type value should be converted to a decimal number, see Access Control Event
Types for details*/
"inductiveEventType":"",
/*optional, string, inductive event type. This field is used by back-end devices; for access control devices, this field is
invalid*/
"netUser":"",
/*optional, string, user name for network operations*/
"remoteHostAddr":"",
/*optional, string, remote host address*/
"cardType": ,
/*optional, int, card type: 1-normal card, 2-disability card, 3-blocklist card, 4-patrol card, 5-duress card, 6-super card, 7-
visitor card, 8-dismiss card*/
"cardReaderNo": ,
/*optional, int, card reader No.*/
"doorNo": ,
/*optional, int, door No. (floor No.)*/
"deviceNo": ,
/*optional, int, device No.*/
"serialNo": ,
/*optional, int, event serial No.*/
"currentEvent": ,
/*optional, boolean, whether it is a real-time event: true-yes (real-time event), false-no (offline event)*/
"QRCodeInfo":"",
/*optional, string, QR code information*/
"thermometryUnit":"",
/*optional, string, temperature unit: "celsius"-Celsius (default), "fahrenheit"-Fahrenheit, "kelvin"-Kelvin*/
"currTemperature": ,
/*optional, float, face temperature which is accurate to one decimal place*/
"isAbnomalTemperature": ,
/*optional, boolean, whether the face temperature is abnormal: true-yes, false-no*/
"RegionCoordinates":{
/*optional, face temperature's coordinates*/
"positionX": ,

355
Intelligent Security API (Person-Based Access Control) Developer Guide

/*optional, int, normalized X-coordinate which is between 0 and 1000*/


"positionY":
/*optional, int, normalized Y-coordinate which is between 0 and 1000*/
},
"remoteCheck": ,
/*optional, boolean, whether remote verification is required: true, false (default)*/
"mask":"",
/*optional, string, whether the person is wearing mask or not: "unknown", "yes"-wearing mask, "no"-not wearing
mask*/
"frontSerialNo": ,
/*optional, int, the previous event's serial No. If this field does not exist, the platform will check whether the event
loss occurred according to the field serialNo. If both the serialNo and frontSerialNo are returned, the platform will
check whether the event loss occurred according to both fields. It is mainly used to solve the problem that the
serialNo is inconsistent after subscribing events or alarms*/
"IDCardInfo":{
"name":"",
/*optional, string, name*/
"sex":"",
/*optional, string, gender: "male", "female"*/
"birth":"",
/*optional, string, date of birth, e.g., "1990-02-24"*/
"addr":"",
/*optional, string, address*/
"IDCardNo":"",
/*optional, string, ID card No.*/
"issuingAuthority":"",
/*optional, string, issuing authority*/
"startDate":"",
/*optional, string, start date of the effective period*/
"endDate":"",
/*optional, string, end date of the effective period*/
"isLongTermEffective":
/*optional, boolean, whether the effective period is permanent*/
},
"picturesNumber":
/*optional, int, number of pictures. If there is no picture, this node is set to 0 or is not returned*/
}
}
--MIME_boundary
Content-Disposition: form-data; name="Picture"; filename="Picture.jpg"; //Captured picture data
Content-Type: image/jpeg
Content-Length: 516876
Content-ID: pictureImage

fefefwageegfqaeg…
--MIME_boundary
Content-Disposition: form-data; name="IDCardPic"; filename="IDCardPic.jpg"; //ID card picture data
Content-Type: image/jpeg
Content-Length: 516876
Content-ID: IDCardPicImage

fefefwageegfqaeg…

356
Intelligent Security API (Person-Based Access Control) Developer Guide

--MIME_boundary
Content-Disposition: form-data; name="VisibleLight"; filename="VisibleLight.jpg"; //Data of the visible light picture
captured by the thermal camera
Content-Type: image/jpeg
Content-Length: 516876
Content-ID: visibleLight_image

fefefwageegfqaeg…
--MIME_boundary
Content-Disposition: form-data; name="Thermal"; filename="Thermal.jpg"; //Thermal picture data
Content-Type: image/jpeg
Content-Length: 516876
Content-ID: thermal_image

fefefwageegfqaeg…
--MIME_boundary

Event Message of Swiping ID Card with Picture URL


{
"ipAddress":"",
/*required, string, IPv4 address of the alarm device, the maximum size is 32 bytes*/
"ipv6Address":"",
/*optional, string, IPv6 address of the alarm device, the maximum size is 128 bytes*/
"portNo": ,
/*optional, integer32, port No. of the alarm device*/
"protocol":"",
/*optional, string, protocol type: "HTTP", "HTTPS", the maximum size is 32 bytes*/
"macAddress":"",
/*optional, string, MAC address, the maximum size is 32 bytes*/
"channelID": ,
/*optional, integer32, device channel No. that triggered alarm*/
"dateTime":"",
/*required, string, time when the alarm is triggered (UTC time), the maximum size is 32 bytes*/
"activePostCount": ,
/*required, integer32, times that the same alarm has been uploaded*/
"eventType":"",
/*required, string, triggered event type, here it should be set to "IDCardInfoEvent", the maximum size is 128 bytes*/
"eventState":"",
/*required, string, event triggering status: "active"-triggered, "inactive"-not triggered, the maximum size is 32 bytes*/
"eventDescription":"",
/*required, event description*/
"IDCardInfoEvent":{
"deviceName":"",
/*optional, string, device name*/
"majorEventType": ,
/*required, int, major alarm type, the type value should be converted to a decimal number, see Access Control Event
Types for details*/
"subEventType": ,
/*required, int, minor alarm type, the type value should be converted to a decimal number, see Access Control Event
Types for details*/
"inductiveEventType":"",

357
Intelligent Security API (Person-Based Access Control) Developer Guide

/*optional, string, inductive event type. This field is used by back-end devices; for access control devices, this field is
invalid*/
"netUser":"",
/*optional, string, user name for network operations*/
"remoteHostAddr":"",
/*optional, string, remote host address*/
"cardType": ,
/*optional, int, card type: 1-normal card, 2-disability card, 3-blocklist card, 4-patrol card, 5-duress card, 6-super card, 7-
visitor card, 8-dismiss card*/
"cardReaderNo": ,
/*optional, int, card reader No.*/
"doorNo": ,
/*optional, int, door No. (floor No.)*/
"deviceNo": ,
/*optional, int, device No.*/
"serialNo": ,
/*optional, int, event serial No.*/
"currentEvent": ,
/*optional, boolean, whether it is a real-time event: true-yes (real-time event), false-no (offline event)*/
"QRCodeInfo":"",
/*optional, string, QR code information*/
"thermometryUnit":"",
/*optional, string, temperature unit: "celsius"-Celsius (default), "fahrenheit"-Fahrenheit, "kelvin"-Kelvin*/
"currTemperature": ,
/*optional, float, face temperature which is accurate to one decimal place*/
"isAbnomalTemperature": ,
/*optional, boolean, whether the face temperature is abnormal: true-yes, false-no*/
"RegionCoordinates":{
/*optional, face temperature's coordinates*/
"positionX": ,
/*optional, int, normalized X-coordinate which is between 0 and 1000*/
"positionY":
/*optional, int, normalized Y-coordinate which is between 0 and 1000*/
},
"remoteCheck": ,
/*optional, boolean, whether remote verification is required: true, false (default)*/
"mask":"",
/*optional, string, whether the person is wearing mask or not: "unknown", "yes"-wearing mask, "no"-not wearing
mask*/
"frontSerialNo": ,
/*optional, int, the previous event's serial No. If this field does not exist, the platform will check whether the event
loss occurred according to the field serialNo. If both the serialNo and frontSerialNo are returned, the platform will
check whether the event loss occurred according to both fields. It is mainly used to solve the problem that the
serialNo is inconsistent after subscribing events or alarms*/
"IDCardInfo":{
"name":"",
/*optional, string, name*/
"sex":"",
/*optional, string, gender: "male", "female"*/
"birth":"",
/*optional, string, date of birth, e.g., "1990-02-24"*/
"addr":"",

358
Intelligent Security API (Person-Based Access Control) Developer Guide

/*optional, string, address*/


"IDCardNo":"",
/*optional, string, ID card No.*/
"issuingAuthority":"",
/*optional, string, issuing authority*/
"startDate":"",
/*optional, string, start date of the effective period*/
"endDate":"",
/*optional, string, end date of the effective period*/
"isLongTermEffective":
/*optional, boolean, whether the effective period is permanent*/
},
"pictureURL": "",
/*optional, string, captured picture URL*/
"IDCardPicURL": "",
/*optional, string, ID card picture URL*/
"visibleLightURL": "",
/*optional, string, URL of the visible light picture captured by the thermal camera*/
"thermalURL": "",
/*optional, string, thermal picture URL*/
"picturesNumber":
/*optional, int, number of pictures. If there is no picture, this node is set to 0 or is not returned*/
}
}

See Also
Access Control Event Types
Example
Interaction Example of Uploading ID Card Swiping Event with Binary Picture Data in Arming Mode
HTTP/1.1 200 OK
MIME-Version: 1.0
Connection: close
Content-Type:multipart/form-data;boundary=MIME_boundary

--MIME_boundary
Content-Type: application/json
Content-Length:480

<alarm message in JSON format>


--MIME_boundary
Content-Disposition: form-data; name="Picture"; filename="Picture.jpg"; //Captured picture data
Content-Type:image/jpeg
Content-Length:516876
Content-ID: pictureImage

fefefwageegfqaeg…
--MIME_boundary
Content-Disposition: form-data; name="IDCardPic"; filename="IDCardPic.jpg";//ID card picture data
Content-Type:image/jpeg
Content-Length:516876

359
Intelligent Security API (Person-Based Access Control) Developer Guide

Content-ID: IDCardPicImage

fefefwageegfqaeg…
--MIME_boundary
Content-Type: application/json
Content-Length:480

<next alarm message in JSON format>


--MIME_boundary
Content-Disposition: form-data; name="Picture"; filename="Picture.jpg"
Content-Type:image/jpeg
Content-Length:516876

fefefwageegfqaeg…
--MIME_boundary
Content-Disposition: form-data; name="IDCardPic"; filename="IDCardPic.jpg"
Content-Type:image/jpeg
Content-Length:516876

fefefwageegfqaeg…
--MIME_boundary
Content-Disposition: form-data; name="VisibleLight"; filename="VisibleLight.jpg"; //Data of the visible light picture
captured by the thermal camera
Content-Type: image/jpeg
Content-Length: 516876
Content-ID: visibleLight_image

fefefwageegfqaeg…
--MIME_boundary
Content-Disposition: form-data; name="Thermal"; filename="Thermal.jpg"; //Thermal picture data
Content-Type: image/jpeg
Content-Length: 516876
Content-ID: thermal_image

fefefwageegfqaeg…
--MIME_boundary

JSON_EventNotificationAlert_QRCodeEventMsg
The event information of scanning QR code is uploaded in JSON format of EventNotificationAlert
message.

Event Message of Scanning QR Code with Binary Picture Data


After registering personal information by scanning a fixed QR code using mobile APP, the registered
information will be sent to the central storage of the platform, and then the person information
URL will be returned which will be used to generate a dynamic QR code in the mobile APP. When a
person scans the dynamic QR code on the access control device, the QR code and temperature
information will be sent to the platform.

360
Intelligent Security API (Person-Based Access Control) Developer Guide

{
"ipAddress":"",
/*required, string, IP address of the alarm device, the maximum size is 32 bytes*/
"ipv6Address":"",
/*optional, string, IPv6 address of the alarm device, the maximum size is 128 bytes*/
"portNo": ,
/*optional, integer32, port No. of the alarm device*/
"protocol":"",
/*optional, string, protocol type: "HTTP", "HTTPS", the maximum size is 32 bytes*/
"macAddress":"",
/*optional, string, MAC address, the maximum size is 32 bytes*/
"channelID": ,
/*optional, integer32, device channel No. that triggered the alarm*/
"dateTime":"",
/*required, string, time when the alarm is triggered (UTC time), the maximum size is 32 bytes*/
"activePostCount": ,
/*required, integer32, number of times that the same alarm has been uploaded*/
"eventType":"",
/*required, string, triggered event type, here it should be set to "QRCodeEvent", the maximum size is 128 bytes*/
"eventState":"",
/*required, string, event triggering status: "active"-triggered, "inactive"-not triggered, the maximum size is 32 bytes*/
"eventDescription":"",
/*required, event description*/
"QRCodeEvent":{
"deviceName":"",
/*optional, string, device name*/
"serialNo": ,
/*optional, int, event serial No.*/
"currentEvent": ,
/*optional, boolean, whether it is a real-time event: true-yes (real-time event), false-no (offline event)*/
"QRCodeInfo":"",
/*required, string, QR code information*/
"thermometryUnit":"",
/*optional, string, temperature unit: "celsius"-Celsius (default), "fahrenheit"-Fahrenheit, "kelvin"-Kelvin*/
"currTemperature": ,
/*optional, float, face temperature which is accurate to one decimal place*/
"isAbnomalTemperature": ,
/*optional, boolean, whether the face temperature is abnormal: true-yes, false-no*/
"RegionCoordinates":{
/*optional, face temperature's coordinates*/
"positionX": ,
/*optional, int, normalized X-coordinate which is between 0 and 1000*/
"positionY":
/*optional, int, normalized Y-coordinate which is between 0 and 1000*/
},
"remoteCheck": ,
/*optional, boolean, whether remote verification is required: true-yes, false-no (default)*/
"mask":""
/*optional, string, whether the person is wearing mask or not: "unknown", "yes"-wearing mask, "no"-not wearing
mask*/
}
}

361
Intelligent Security API (Person-Based Access Control) Developer Guide

--MIME_boundary
Content-Disposition: form-data; name="VisibleLight"; filename="VisibleLight.jpg"; //Data of the visible light picture
captured by the thermal camera
Content-Type: image/jpeg
Content-Length: 516876
Content-ID: visibleLight_image

fefefwageegfqaeg…
--MIME_boundary
Content-Disposition: form-data; name="Thermal"; filename="Thermal.jpg"; //Thermal picture data
Content-Type: image/jpeg
Content-Length: 516876
Content-ID: thermal_image

fefefwageegfqaeg…
--MIME_boundary

Event Message of Scanning QR Code with Picture URL


{
"ipAddress":"",
/*required, string, IP address of the alarm device, the maximum size is 32 bytes*/
"ipv6Address":"",
/*optional, string, IPv6 address of the alarm device, the maximum size is 128 bytes*/
"portNo": ,
/*optional, integer32, port No. of the alarm device*/
"protocol":"",
/*optional, string, protocol type: "HTTP", "HTTPS", the maximum size is 32 bytes*/
"macAddress":"",
/*optional, string, MAC address, the maximum size is 32 bytes*/
"channelID": ,
/*optional, integer32, device channel No. that triggered the alarm*/
"dateTime":"",
/*required, string, time when the alarm is triggered (UTC time), the maximum size is 32 bytes*/
"activePostCount": ,
/*required, integer32, number of times that the same alarm has been uploaded*/
"eventType":"",
/*required, string, triggered event type, here it should be set to "QRCodeEvent", the maximum size is 128 bytes*/
"eventState":"",
/*required, string, event triggering status: "active"-triggered, "inactive"-not triggered, the maximum size is 32 bytes*/
"eventDescription":"",
/*required, event description*/
"QRCodeEvent":{
"deviceName":"",
/*optional, string, device name*/
"serialNo": ,
/*optional, int, event serial No.*/
"currentEvent": ,
/*optional, boolean, whether it is a real-time event: true-yes (real-time event), false-no (offline event)*/
"QRCodeInfo":"",
/*required, string, QR code information*/
"thermometryUnit":"",

362
Intelligent Security API (Person-Based Access Control) Developer Guide

/*optional, string, temperature unit: "celsius"-Celsius (default), "fahrenheit"-Fahrenheit, "kelvin"-Kelvin*/


"currTemperature": ,
/*optional, float, face temperature which is accurate to one decimal place*/
"isAbnomalTemperature": ,
/*optional, boolean, whether the face temperature is abnormal: true-yes, false-no*/
"RegionCoordinates":{
/*optional, face temperature's coordinates*/
"positionX": ,
/*optional, int, normalized X-coordinate which is between 0 and 1000*/
"positionY":
/*optional, int, normalized Y-coordinate which is between 0 and 1000*/
},
"remoteCheck": ,
/*optional, boolean, whether remote verification is required: true-yes, false-no (default)*/
"mask":"",
/*optional, string, whether the person is wearing mask or not: "unknown", "yes"-wearing mask, "no"-not wearing
mask*/
"visibleLightURL": "",
/*optional, string, URL of the visible light picture captured by the thermal camera*/
"thermalURL": ""
/*optional, string, thermal picture URL*/
}
}

JSON_EventOptimizationCfg
EventOptimizationCfg message in JSON format
{
"EventOptimizationCfg":{
"enable": ,
/*optional, boolean, whether to enable event optimization: true-yes (default), false-no*/
"isCombinedLinkageEvents":
/*optional, boolean, whether to enable linked event combination: true-enable (default), false-disable*/
}
}

JSON_EventStorageCfg
JSON message about the storage parameters of access control events
{
"EventStorageCfg":{
"mode":"regular",
/*required, string, event storage method: "regular" (delete old events periodically), "time" (delete old events by
specified time), "cycle" (overwriting)*/
"checkTime":"",
/*dependent, string, check time. Events that occurred before the check time will be deleted. The maximum size is 32
bytes. This node is valid when mode is "time"*/

363
Intelligent Security API (Person-Based Access Control) Developer Guide

"period":10
/*dependent, int, time period for deleting old events, unit: minute. This node is valid when mode is "regular"*/
}
}

JSON_EventStorageCfgCap
JSON message about the storage configuration capability of access control events
{
"EventStorageCfgCap":{
"mode":{
/*required, string, event storage method: "regular" (delete old events periodically), "time" (delete old events by
specified time), "cycle" (overwriting)*/
"@opt":["regular", "time", "cycle"]
},
"checkTime":{
/*dependent, string, check time. Events that occurred before the check time will be deleted. The maximum size is 32
bytes. This node is valid when mode is "time"*/
"@min":0,
"@max":0
},
"period":{
/*dependent, int, time period for deleting old events, unit: minute. This node is valid when mode is "regular"*/
"@min":10,
"@max":10
}
}
}

JSON_FaceRecognizeMode
FaceRecognizeMode message in JSON format
{
"FaceRecognizeMode":{
/*required, facial recognition mode: "normalMode"-normal mode, "deepMode"-deep mode*/
"mode":""
}
}

JSON_FaceRecordNumInAllFPLib
Message about the total number of face records in all face picture libraries, and it is in JSON
format.

364
Intelligent Security API (Person-Based Access Control) Developer Guide

{
"requestURL": "",
"statusCode": "",
"statusString": "",
"subStatusCode": "",
"errorCode": "",
"errorMsg": "",
/*see the description of this node and above nodes in the message of JSON_ResponseStatus*/
"FDRecordDataInfo":[{
/*optional, string type, information of face records in face picture library, this node is valid when errorCode is 1 and
errorMsg is "ok"*/
"FDID": "",
/*optional, face picture library ID, string type, the maximum size is 63 bytes*/
"faceLibType": "",
/*optional, face picture library type: "blackFD"-list library, "staticFD"-static library, string type, the maximum size is 32
bytes*/
"name": "",
/*optional, face picture library name, string type, the maximum size is 48 bytes*/
"recordDataNumber": ""
/*optional, number of records, integer32 type*/
}]
}

See Also
JSON_ResponseStatus

JSON_FaceRecordNumInOneFPLib
Message about the number of face records in a specific face picture library, and it is in JSON
format.
{
"requestURL": "",
"statusCode": "",
"statusString": "",
"subStatusCode": "",
"errorCode": "",
"errorMsg": "",
/*see the description of this node and above nodes in the message of JSON_ResponseStatus*/
"FDID": "",
/*optional, face picture library ID, string type, the max. string length is 63 bytes*/
"faceLibType": "",
/*optional, face picture library type: "blackFD"-list library, "staticFD"-static library, string type, the max. string length is
32 bytes*/
"name": "",
/*optional, face picture library name, string type, the max. string length is 48 bytes*/
"recordDataNumber": ""
/*optional, number of records, integer32 type*/
}

365
Intelligent Security API (Person-Based Access Control) Developer Guide

See Also
JSON_ResponseStatus

JSON_FingerPrintCfg
FingerPrintCfg message in JSON format
{
"FingerPrintCfg":{
"employeeNo":"",
/*required, string, employee No. (person ID) linked with the fingerprint*/
"enableCardReader": ,
/*required, array, fingerprint modules to apply fingerprint data to, e.g., [1,3,5] indicates applying fingerprint data to
fingerprint modules No.1, No.3, and No.5*/
"fingerPrintID": ,
/*required, integer, fingerprint No., which is between 1 and 10*/
"deleteFingerPrint": ,
/*optional, boolean, whether to delete the fingerprint: "true"-yes. This node is required only when the fingerprint
needs to be deleted; for adding or editing fingerprint information, this node can be set to NULL*/
"fingerType":"",
/*required, string, fingerprint type: "normalFP"-normal fingerprint, "hijackFP"-duress fingerprint, "patrolFP"-patrol
fingerprint, "superFP"-super fingerprint, "dismissingFP"-dismiss fingerprint*/
"fingerData":"",
/*required, string, fingerprint data encoded by Base64*/
"leaderFP": ,
/*optional, array, whether the access control points support first fingerprint authentication function, e.g., [1,3,5]
indicates that access control points No.1, No.3, and No.5 support first fingerprint authentication function*/
"checkEmployeeNo":
/*optional, boolean, whether to check the existence of the employee No. (person ID): "false"-no, "true"-yes. If this
node is not configured, the device will check the existence of the employee No. (person ID) by default. If this node is
set to "false", the device will not check the existence of the employee No. (person ID) to speed up data applying; if this
node is set to "true" or NULL, the device will check the existence of the employee No. (person ID), and it is
recommended to set this node to "true" or NULL if there is no need to speed up data applying*/
}
}

JSON_FingerPrintCond
FingerPrintCond message in JSON format
{
"FingerPrintCond":{
"searchID":"",
/*required, string, search ID, which is used to confirm the upper-level platform or system. If the platform or the
system is the same one during two searching, the search history will be saved in the memory to speed up next
searching*/
"employeeNo":"",
/*required, string, employee No. (person ID) linked with the fingerprint*/

366
Intelligent Security API (Person-Based Access Control) Developer Guide

"cardReaderNo": ,
/*optional, integer, fingerprint module No.*/
"fingerPrintID":
/*optional, integer, fingerprint No., which is between 1 and 10*/
}
}

JSON_FingerPrintCondAll
FingerPrintCondAll message in JSON format.
{
"FingerPrintCondAll": {
"employeeNo": ,
/*required, integer, employee ID (person ID), which is linked with the fingerprint*/
"cardReaderNo":
/*required, integer, fingerprint module No.*/
}
}

JSON_FingerPrintCountList
JSON message about the total number of fingerprints
{
"FingerPrintCountList":[{
"cardReaderNo":1,
/*optional, int, fingerprint and card reader No.*/
"numberOfFP":3,
/*required, int, number of fingerprints*/
"fingerPrintIDs":[]
/*optional, int, finger No. which is between 1 and 10*/
}]
}

JSON_FingerPrintDelete
FingerPrintDelete message in JSON format
{
"FingerPrintDelete":{
"mode":"",
/*required, string, deleting mode: "byEmployeeNo"-delete by employee No. (person ID), "byCardReader"-delete by
fingerprint module*/
"EmployeeNoDetail":{
/*optional, delete by employee No. (person ID), this node is valid when mode is "byEmployeeNo"*/
"employeeNo":"",

367
Intelligent Security API (Person-Based Access Control) Developer Guide

/*optional, string, employee No. (person ID) linked with the fingerprint*/
"enableCardReader": ,
/*optional, array, fingerprint module whose fingerprints should be deleted, e.g., [1,3,5] indicates that the fingerprints
of fingerprint modules No.1, No.3, and No.5 are deleted*/
"fingerPrintID":
/*optional, array, No. of fingerprint to be deleted, e.g., [1,3,5] indicates deleting fingerprint No.1, No.3, and No.5*/
},
"CardReaderDetail":{
/*optional, delete by fingerprint module, this node is valid when mode is "byCardReader"*/
"cardReaderNo": ,
/*optional, integer, fingerprint module No.*/
"clearAllCard": ,
/*optional, boolean, whether to delete the fingerprint information of all cards: "false"-no (delete by employee No.),
"true"-yes (delete the fingerprint information of all employee No.)*/
"employeeNo":""
/*optional, string, employee No. (person ID) linked with the fingerprint, this node is valid when clearAllCard is
"false"*/
}
}
}

JSON_FingerPrintDeleteProcess
FingerPrintDeleteProcess message in JSON format
{
"FingerPrintDeleteProcess":{
"status":""
/*required, string, deleting status: "processing"-deleting, "success"-deleted, "failed"-deleting failed*/
}
}

JSON_FingerPrintInfo
FingerPrintInfo message in JSON format
{
"FingerPrintInfo":{
"searchID":"",
/*required, string, search ID, which is used to confirm the upper-level platform or system. If the platform or the
system is the same one during two searching, the search history will be saved in the memory to speed up next
searching*/
"status":"",
/*required, string, status: "OK"-the fingerprint exists, "NoFP"-the fingerprint does not exist*/
"FingerPrintList":[{
"cardReaderNo": ,
/*required, integer, fingerprint module No.*/
"fingerPrintID": ,
/*required, integer, fingerprint No., which is between 1 and 10*/

368
Intelligent Security API (Person-Based Access Control) Developer Guide

"fingerType":"",
/*required, string, fingerprint type: "normalFP"-normal fingerprint, "hijackFP"-duress fingerprint, "patrolFP"-patrol
fingerprint, "superFP"-super fingerprint, "dismissingFP"-dismiss fingerprint*/
"fingerData":"",
/*required, string, fingerprint data encoded by Base64*/
"leaderFP":
/*optional, array, whether the access control points support first fingerprint authentication function, e.g., [1,3,5]
indicates that access control points No.1, No.3, and No.5 support first fingerprint authentication function*/
}]
}
}

JSON_FingerPrintInfoAll
FingerPrintInfoAll message in JSON format.
{
"FingerPrintInfoAll": {
"FingerPrintList": [
{
"fingerPrintID": ,
/*required, integer, fingerprint No., which is between 1 and 10*/
"fingerType": "",
/*required, string, fingerprint type: "normalFP"-normal fingerprint, "hijackFP"-duress fingerprint, "patrolFP"-patrol
fingerprint, "superFP"-super fingerprint, "dismissingFP"-dismiss fingerprint*/
"leaderFP": ,
/*optional, array, whether the access control points support first fingerprint authentication function, e.g., [1,3,5],
access control point No.1, No.3, and No.5 support first fingerprint authentication function*/
"picEnable": ,
/*optional, boolean, whether contains fingerprint data*/
}],
"picturesNumber": ,
/*optional, integer, number of fingerprint, if there is no fingerprint data, this node will be set to 0 or not be returned*/
}
}

JSON_FingerPrintModify
FingerPrintModify message in JSON format
{
"FingerPrintModify":{
"employeeNo":"",
/*required, string, employee No. (person ID) linked with the fingerprint*/
"cardReaderNo": ,
/*required, integer, fingerprint module No.*/
"fingerPrintID": ,
/*required, integer, fingerprint No., which is between 1 and 10*/
"fingerType":"",

369
Intelligent Security API (Person-Based Access Control) Developer Guide

/*required, string, fingerprint type: "normalFP"-normal fingerprint, "hijackFP"-duress fingerprint, "patrolFP"-patrol


fingerprint, "superFP"-super fingerprint, "dismissingFP"-dismiss fingerprint. If this node is not configured, the
fingerprint type will be the original type*/
"leaderFP": ,
/*optional, array, whether the access control points support first fingerprint authentication function, e.g., [1,3,5]
indicates that access control points No.1, No.3, and No.5 support first fingerprint authentication function. If this node
is not configured, the first fingerprint authentication function will remain unchanged*/
}
}

JSON_FingerPrintStatus
FingerPrintStatus message in JSON format
{
"FingerPrintStatus":{
"status":"",
/*optional, string, status: "success", "failed". This node will be returned only when editing fingerprint parameters or
deleting fingerprints; for applying fingerprint data to the fingerprint module, this node will not be returned*/
"StatusList":[{
/*optional, status list. This node will be returned only when applying fingerprint data to the fingerprint module; for
editing fingerprint parameters or deleting fingerprints, this node will not be returned*/
"id": ,
/*optional, integer, fingerprint module No.*/
"cardReaderRecvStatus": ,
/*optional, integer, fingerprint module status: 0-connecting failed, 1-connected, 2-the fingerprint module is offline, 3-
the fingerprint quality is poor, try again, 4-the memory is full, 5-the fingerprint already exists, 6-the fingerprint ID
already exists, 7-invalid fingerprint ID, 8-this fingerprint module is already configured, 10-the fingerprint module
version is too old to support the employee No.*/
"errorMsg":"",
/*optional, string, error information*/
}],
"totalStatus":
/*required, integer, applying status: 0-applying, 1-applied*/
}
}

JSON_FPLibCap
Face picture library capability message, and it is in JSON format.
{
"requestURL":"",
"statusCode": ,
"statusString":"",
"subStatusCode":"",
"errorCode": ,
"errorMsg":" ",
/*see the description of this node and the above nodes in the message of JSON_ResponseStatus*/

370
Intelligent Security API (Person-Based Access Control) Developer Guide

"FDNameMaxLen": ,
/*required, integer32 type, maximum length of face picture library name, the default value is 64 bytes*/
"customInfoMaxLen": ,
/*required, integer32 type, maximum length of custom information, the default value is 256 bytes*/
"FDMaxNum": ,
/*required, integer32 type, maximum number of face picture libraries, the default value is 3*/
"FDRecordDataMaxNum": ,
/*required, integer type, maximum face records supported by face picture library*/
"supportFDFunction":"post,delete,put,get,setUp",
/*required, the supported operations on face picture library: "post"-create, "delete"-delete, "put"-edit, "get"-search,
"setUp"-set*/
"isSuportFDSearch": ,
/*required, boolean type, whether supports searching in face picture library: "true"-yes, "false"-no*/
"isSupportFDSearchDataPackage": ,
/*required, boolean type, whether supports packaging the found data in the face picture library: "true"-yes, "false"-
no*/
"isSuportFSsearchByPic": ,
/*required, boolean type, whether supports searching by picture in the face picture library: "true"-yes, "false"-no*/
"isSuportFSsearchByPicGenerate": ,
/*required, boolean type, whether supports exporting search by picture results from the face picture library: "true"-
yes, "false"-no*/
"isSuportFDSearchDuplicate": ,
/*required, boolean type, whether supports duplication checking: "true"-yes, "false"-no*/
"isSuportFDSearchDuplicateGenerate": ,
/*required, boolean type, whether supports exporting the duplication checking results: "true"-yes, "false"-no*/
"isSuportFCSearch": ,
/*required, boolen type, whether supports searching face picture comparison alarms: "true"-yes, "false"-no*/
"isSupportFCSearchDataPackage": ,
/*required, boolean, whether supports packaging the search results of face picture comparison alarms: "true"-yes,
"false"-no*/
"isSupportFDExecuteControl": ,
/*required, boolean, whether supports creating relation between face picture libraries and cameras: "true"-yes,
"false"-no*/
"generateMaxNum": ,
/*required, integer32 type, maximum face records can be exported from face picture library*/
"faceLibType":"blackFD,staticFD,infraredFD",
/*optional, string type, face picture library types: "blackFD"-list library, "staticFD"-static library, "infraredFD"-infrared
face picture library, the maximum size of value can be assigned to this node is 32 bytes*/
"modelMaxNum": ,
/*optional, integer type, the maximum number of search results, the default value is 100*/
"isSupportModelData":true,
/*optional, boolean type, whether to support applying model data: "true"-yes, this node is not returned-no*/
"isSuportFDLibArmingType": ,
/*optional, boolean, whether it supports face picture library arming type: true, false*/
"isSuportFDLibSearch": ,
/*optional, boolean, whether it supports searching face picture library: true, false*/
"FDArmingRecordDataMaxNum": ,
/*optional, integer32, the supported maximum number of face records in the face picture arming library*/
"isSupportControlPersonRecordByHumanId": ,
/*optional, boolean, whether it supports modifying and deleting the face record by humanId: true, false*/
"isSupportControlPersonRecordByRowKey": ,
/*optional, boolean, whether it supports modifying and deleting the face record by rowKey: true, false*/

371
Intelligent Security API (Person-Based Access Control) Developer Guide

"isSupportFaceLibRebuildCfg": ,
/*optional, boolean, whether it supports recreating face picture library information and configuration: true, false*/
"isSupportFDMove": ,
/*optional, boolean, whether it supports moving face data in the face picture library in a batch: true, false. The related
URI is /ISAPI/Intelligent/FDLib/FDMove/capabilities?format=json*/
"faceURLLen": ,
/*optional, int, the maximum size of the face picture URL. If this node is not returned, the default size of the face
picture URL supported by the device is 256 bytes; otherwise, the device should support that the value of this node is
greater than or equal to 256*/
"featurePointTypeList":["face","leftEye","rightEye","leftMouthCorner","rightMouthCorner","nose"]
/*optional, array of string, feature point types of face pictures supported by the device. If this node exists, it indicates
that the device supports applying feature points of pictures, and the returned values are feature point types
supported by the device*/
}

See Also
JSON_ResponseStatus

JSON_FPLibListInfo
Message about the list of face picture libraries, and it is in JSON format.
{
"requestURL": "",
"statusCode": "",
"statusString": "",
"subStatusCode": "",
"errorCode": "",
"errorMsg": "",
/*see the description of this node and above nodes in the message of JSON_ResponseStatus*/
"FDLib":[
/*optional, face picture library information, string type, this node is valid when errorCode is 1 and errorMsg is "ok"*/
{
"FDID": "",
/*optional, face picture library ID, string type, the maximum size is 63 bytes*/
"faceLibType": "",
/*optional, face picture library type: "blackFD"-list library, "staticFD"-static library, string type, the maximum size is 32
bytes*/
"name": "",
/*optional, face picture library name, string type, the maximum size is 48 bytes*/
"customInfo": ""
/*optional, custom information, string type, the maximum size is 192 bytes*/
}
]
}

See Also
JSON_ResponseStatus

372
Intelligent Security API (Person-Based Access Control) Developer Guide

JSON_GroupCfg
GroupCfg message in JSON format
{
"GroupCfg":{
"enable": ,
/*required, boolean, whether to enable the group*/
"ValidPeriodCfg":{
/*required, effective period parameters of the group*/
"enable": ,
/*required, boolean, whether to enable the effective period: "true"-yes, "false"-no. If the effective period is not
enabled, it indicates that the group is permanently valid*/
"beginTime":"",
/*required, start time of the effective period (UTC time)*/
"endTime":""
/*required, end time of the effective period (UTC time)*/
},
"groupName ":""
/*optional, string, group name*/
}
}

JSON_IDCardInfoEvent
JSON message about the result of getting ID card events actively
{
"IDCardInfoEvent":{
"searchID":"",
/*required, string, search ID, which is used to check whether the current search requester is the same as the previous
one. If they are the same, the search record will be stored in the device to speed up the next search*/
"responseStatusStrg":"OK",
/*required, string, searching status: "OK" (searching completed), "MORE" (search for more data), "NO MATCH" (no
matched data)*/
"numOfMatches":1,
/*required, int, number of records returned this time*/
"totalMatches":1,
/*required, int, total number of matched records*/
"InfoList":[{
/*optional, event information*/
"deviceName":"",
/*optional, string, device name*/
"major":1,
/*required, int, major event type, 0 means all event types. For details, refer to Access Control Event Types. The value
of this node is in decimal format instead of hexadecimal format (for example, 1 refers to 0x1 which indicates that the
major type is MAJOR_ALARM)*/
"minor":1,
/*required, int, minor event type, 0 means all event types. For details, refer to Access Control Event Types. The value

373
Intelligent Security API (Person-Based Access Control) Developer Guide

of this node is in decimal format instead of hexadecimal format (for example, 1024 refers to 0x400 which indicates
that the minor type is MINOR_ALARMIN_SHORT_CIRCUIT)*/
"inductiveEventType":"",
/*optional, string, inductive event type (only valid for rear-end devices)*/
"netUser":"",
/*optional, string, user name for network operation*/
"remoteHostAddr":"",
/*optional, string, remote host address*/
"cardType":1,
/*optional, int, card type: 1 (normal card), 2 (disability card), 3 (blocklist card), 4 (patrol card), 5 (duress card), 6 (super
card), 7 (visitor card), 8 (dismiss card)*/
"cardReaderNo":1,
/*optional, int, card reader No.*/
"doorNo":1,
/*optional, int, door (floor) No.*/
"deviceNo":1,
/*optional, int, device No.*/
"serialNo":1,
/*optional, int, event serial No.*/
"QRCodeInfo":"",
/*optional, string, QR code information*/
"thermometryUnit":"",
/*optional, string, temperature unit: "celsius", "fahrenheit", "kelvin"*/
"currTemperature":1.0,
/*optional, float, face temperature which is accurate to one decimal place*/
"isAbnomalTemperature":true,
/*optional, boolean, whether the face temperature is abnormal: true, false*/
"RegionCoordinates":{
/*optional, coordinates of the face temperature*/
"positionX":1,
/*optional, int, normalized X-coordinate which is between 0 and 1000*/
"positionY":1
/*optional, int, normalized Y-coordinate which is between 0 and 1000*/
},
"mask":"",
/*optional, string, whether the person is wearing a mask: "unknown", "yes", "no"*/
"frontSerialNo":1,
/*optional, int, serial No. of the previous event. If this node is not returned by the device, the platform will check
whether the event is lost by serialNo; if this node is returned by the device, the platform will check whether the event
is lost by both this node and serialNo. This node is used for the problem that the serialNo is not continuous after
alarm subscription*/
"IDCardInfo":{
"name":"",
/*optional, string, name*/
"sex":"",
/*optional, string, gender: "male", "female"*/
"birth":"",
/*optional, string, date of birth, e.g., "1990-02-24"*/
"addr":"",
/*optional, string, address*/
"IDCardNo":"",
/*optional, string, ID card No.*/

374
Intelligent Security API (Person-Based Access Control) Developer Guide

"issuingAuthority":"",
/*optional, string, issuing authority*/
"startDate":"",
/*optional, string, start date of the validity period*/
"endDate":"",
/*optional, string, end date of the validity period*/
"isLongTermEffective":false
/*optional, boolean, whether it is permanently valid*/
},
"capturePicUrl":"",
/*optional, string, captured picture URL*/
"IDCardPic":"",
/*optional, string, ID card picture URL*/
"visibleLightPicUrl":"",
/*optional, string, visible light picture URL*/
"thermalPicUrl":"",
/*optional, string, thermal picture URL*/
"helmet":"",
/*optional, string, whether the person is wearing a hard hat: "unknown", "yes", "no"*/
"dateTime":"2016-12-12T17:30:08+08:00"
/*required, string, alarm triggering time (UTC time), the maximum size is 32 bytes*/
}]
}
}

See Also
Access Control Event Types

JSON_IDCardInfoEventCap
JSON message about the capability of getting the ID card events actively
{
"IDCardInfoEventCap":{
"IDCardInfoEventCond":{
"searchID":{
/*required, string, search ID, which is used to check whether the current search requester is the same as the previous
one. If they are the same, the search record will be stored in the device to speed up the next search*/
"@min":1,
"@max":1
},
"searchResultPosition":{
/*required, int, the end position of search result in result list. In a single search, if you cannot get all the records in the
result list, you can mark the end position and get the following records after the marked position in the next search.
For example, if the maximum value of totalMatches supported by the device is M, but there are N matched results
stored in the device currently (N<=M), the valid range of this node is 0 to N-1*/
"@min":1,
"@max":1
},
"maxResults":{

375
Intelligent Security API (Person-Based Access Control) Developer Guide

/*required, int, maximum number of records that can be obtained after the URI is called this time. If the value of
maxResults is larger than the value returned by the device capability, the device will return according to the maximum
value in the capability and will not return error information*/
"@min":1,
"@max":1
},
"major":{
/*required, int, major event type: 0-all, 1-alarm, 2-exception, 3-operaiton, 5-event. For details, refer to Access Control
Event Types. The value of this node is in decimal format instead of hexadecimal format*/
"@opt":[0, 1, 2, 3, 5]
},
"minorAlarm":{
/*required, int, minor alarm type. For details, refer to Access Control Event Types. The value of this node is in decimal
format instead of hexadecimal format*/
"@opt":[1024, 1025, 1026, 1027]
},
"minorException":{
/*required, int, minor exception type. For details, refer to Access Control Event Types. The value of this node is in
decimal format instead of hexadecimal format*/
"@opt":[39, 58, 59, 1024]
},
"minorOperation":{
/*required, int, minor operation type. For details, refer to Access Control Event Types. The value of this node is in
decimal format instead of hexadecimal format*/
"@opt":[80, 90, 112, 113]
},
"minorEvent":{
/*required, int, minor event type. For details, refer to Access Control Event Types. The value of this node is in decimal
format instead of hexadecimal format*/
"@opt":[1, 2, 3, 4]
},
"startTime":"1970-01-01T00:00:00+00:00",
/*optional, string, start time (UTC time)*/
"endTime":"2017-12-12T17:30:08+08:00",
/*optional, string, end time (UTC time)*/
"picEnable":{
/*optional, boolean, whether to upload events with pictures: true (yes), false (no). The default value is true*/
"@opt":[true, false]
},
"beginSerialNo":{
/*optional, int, start serial No.*/
"@min":1,
"@max":1
},
"endSerialNo":{
/*optional, int, end serial No.*/
"@min":1,
"@max":1
}
},
"InfoList":{
/*optional, event information*/

376
Intelligent Security API (Person-Based Access Control) Developer Guide

"deviceName":{
/*optional, string, device name*/
"@min":1,
"@max":1
},
"inductiveEventType":{
/*optional, string, inductive event type (only valid for rear-end devices)*/
"@min":1,
"@max":1
},
"netUser":{
/*optional, string, user name for network operation*/
"@min":1,
"@max":1
},
"remoteHostAddr":{
/*optional, string, remote host address*/
"@min":1,
"@max":1
},
"cardType":{
/*optional, int, card type: 1 (normal card), 2 (disability card), 3 (blocklist card), 4 (patrol card), 5 (duress card), 6 (super
card), 7 (visitor card), 8 (dismiss card)*/
"@opt":[1, 2, 3, 4, 5, 6, 7, 8]
},
"cardReaderNo":{
/*optional, int, card reader No.*/
"@min":1,
"@max":1
},
"doorNo":{
/*optional, int, door (floor) No.*/
"@min":1,
"@max":1
},
"deviceNo":{
/*optional, int, device No.*/
"@min":1,
"@max":1
},
"serialNo":{
/*optional, int, event serial No.*/
"@min":1,
"@max":1
},
"QRCodeInfo":{
/*optional, string, QR code information*/
"@min":1,
"@max":1
},
"thermometryUnit":{
/*optional, string, temperature unit: "celsius", "fahrenheit", "kelvin"*/

377
Intelligent Security API (Person-Based Access Control) Developer Guide

"@opt":["celsius", "fahrenheit", "kelvin"]


},
"currTemperature":{
/*optional, float, face temperature which is accurate to one decimal place*/
"@min":1.0,
"@max":1.0
},
"isAbnomalTemperature":{
/*optional, boolean, whether the face temperature is abnormal: true, false*/
"@opt":[true, false]
},
"RegionCoordinates":{
/*optional, coordinates of the face temperature*/
"positionX":{
/*optional, int, normalized X-coordinate which is between 0 and 1000*/
"@min":1,
"@max":1
},
"positionY":{
/*optional, int, normalized Y-coordinate which is between 0 and 1000*/
"@min":1,
"@max":1
}
},
"mask":{
/*optional, string, whether the person is wearing a mask: "unknown", "yes", "no"*/
"@opt":["unknown", "yes", "no"]
},
"frontSerialNo":{
/*optional, int, serial No. of the previous event. If this node is not returned by the device, the platform will check
whether the event is lost by serialNo; if this node is returned by the device, the platform will check whether the event
is lost by both this node and serialNo. This node is used for the problem that the serialNo is not continuous after
alarm subscription*/
"@min":1,
"@max":1
},
"IDCardInfo":{
"name":{
/*optional, string, name*/
"@min":1,
"@max":1
},
"sex":{
/*optional, string, gender: "male", "female"*/
"@min":1,
"@max":1
},
"birth":{
/*optional, string, date of birth, e.g., "1990-02-24"*/
"@min":1,
"@max":1
},

378
Intelligent Security API (Person-Based Access Control) Developer Guide

"addr":{
/*optional, string, address*/
"@min":1,
"@max":1
},
"IDCardNo":{
/*optional, string, ID card No.*/
"@min":1,
"@max":1
},
"issuingAuthority":{
/*optional, string, issuing authority*/
"@min":1,
"@max":1
},
"startDate":{
/*optional, string, start date of the validity period*/
"@min":1,
"@max":1
},
"endDate":{
/*optional, string, end date of the validity period*/
"@min":1,
"@max":1
},
"isLongTermEffective":{
/*optional, boolean, whether it is permanently valid*/
"@opt":[true, false]
}
},
"capturePicUrl":{
/*optional, string, captured picture URL*/
"@min":1,
"@max":1
},
"IDCardPic":{
/*optional, string, ID card picture URL*/
"@min":1,
"@max":1
},
"visibleLightPicUrl":{
/*optional, string, visible light picture URL*/
"@min":1,
"@max":1
},
"thermalPicUrl":{
/*optional, string, thermal picture URL*/
"@min":1,
"@max":1
},
"helmet":{
/*optional, string, whether the person is wearing a hard hat: "unknown", "yes", "no"*/

379
Intelligent Security API (Person-Based Access Control) Developer Guide

"@opt":["unknown", "yes", "no"]


},
"dateTime":"2016-12-12T17:30:08+08:00"
/*required, string, alarm triggering time (UTC time), the maximum size is 32 bytes*/
}
}
}

See Also
Access Control Event Types

JSON_IDCardInfoEventCond
JSON message about the condition of getting ID card events actively
{
"IDCardInfoEventCond":{
"searchID":"",
/*required, string, search ID, which is used to check whether the current search requester is the same as the previous
one. If they are the same, the search record will be stored in the device to speed up the next search*/
"searchResultPosition":0,
/*required, int, the end position of search result in result list. In a single search, if you cannot get all the records in the
result list, you can mark the end position and get the following records after the marked position in the next search.
For example, if the maximum value of totalMatches supported by the device is M, but there are N matched results
stored in the device currently (N<=M), the valid range of this node is 0 to N-1*/
"maxResults":30,
/*required, int, maximum number of records that can be obtained after the URI is called this time. If the value of
maxResults is larger than the value returned by the device capability, the device will return according to the maximum
value in the capability and will not return error information*/
"major":1,
/*optional, int, major event type, 0 means all event types. For details, refer to Access Control Event Types. The value
of this node is in decimal format instead of hexadecimal format (for example, 1 refers to 0x1 which indicates that the
major type is MAJOR_ALARM)*/
"minor":1024,
/*optional, int, minor event type, 0 means all event types. For details, refer to Access Control Event Types. The value
of this node is in decimal format instead of hexadecimal format (for example, 1024 refers to 0x400 which indicates
that the minor type is MINOR_ALARMIN_SHORT_CIRCUIT)*/
"startTime":"2016-12-12T17:30:08+08:00",
/*optional, string, start time (UTC time)*/
"endTime":"2017-12-12T17:30:08+08:00",
/*optional, string, end time (UTC time)*/
"picEnable":true,
/*optional, boolean, whether to upload events with pictures: true (yes), false (no). The default value is true*/
"beginSerialNo":1,
/*optional, int, start serial No.*/
"endSerialNo":1
/*optional, int, end serial No.*/
}
}

380
Intelligent Security API (Person-Based Access Control) Developer Guide

See Also
Access Control Event Types

JSON_IdentityInfo
IdentityInfo message in JSON format
{
"IdentityInfo":{
"chnName":"",
/*optional, string, reserved*/
"enName":"",
/*optional, string, English name*/
"sex":"",
/*optional, string, gender: "male", "female"*/
"birth":"",
/*optional, string, date of birth, e.g., 1990-02-24*/
"addr":"",
/*optional, string, address*/
"IDCardNo":"",
/*optional, string, ID card No., it is the sensitive information that should be encrypted*/
"issuingAuthority":"",
/*optional, string, authority*/
"startDate":"",
/*optional, string, start time of the validity period*/
"endDate":"",
/*optional, string, end time of the validity period*/
"passNo":"",
/*optional, string, entry-exit permit No.*/
"issueNumber":"",
/*optional, string, issuing times*/
"certificateType":"",
/*optional, string, certificate type*/
"permanentResidenceCardNo":"",
/*optional, string, permanent resident card No.*/
"nationalityOrAreaCode":"",
/*optional, string, country or region code*/
"version":"",
/*optional, string, certificate version No.*/
"receivingAuthorityCode":"",
/*optional, string, acceptance authority code*/
"FingerprintList":[{
"fingerprint":""
/*optional, string, fingerprint information, it is encoded using base64*/
}],
"pic":""
/*optional, string, ID photo information, it is encoded using base64. The encrypted data should be decrypted using
the specific decryption library*/

381
Intelligent Security API (Person-Based Access Control) Developer Guide

}
}

JSON_IdentityInfoCap
IdentityInfoCap capability message in JSON format
{
"IdentityInfoCap":{
"IdentityInfoCond":{ },
/*optional, conditions of collecting ID card information*/
"chnName":{
/*optional, string, reserved*/
"@min":0,
"@max":0
},
"enName":{
/*optional, string, English name*/
"@min":0,
"@max":0
},
"sex":{
/*optional, string, gender: "male", "female"*/
"@opt":["male", "female"]
},
"birth":{
/*optional, string, date of birth, e.g., 1990-02-24*/
"@min":0,
"@max":0
},
"addr":{
/*optional, string, address*/
"@min":0,
"@max":0
},
"IDCardNo":{
/*optional, string, ID card No.*/
"@min":0,
"@max":0
},
"issuingAuthority":{
/*optional, string, authority*/
"@min":0,
"@max":0
},
"startDate":{
/*optional, string, start time of the validity period*/
"@min":0,
"@max":0
},
"endDate":{

382
Intelligent Security API (Person-Based Access Control) Developer Guide

/*optional, string, end time of the validity period*/


"@min":0,
"@max":0
},
"passNo":{
/*optional, string, entry-exit permit No.*/
"@min":0,
"@max":0
},
"issueNumber":{
/*optional, string, issuing times*/
"@min":0,
"@max":0
},
"certificateType":{
/*optional, string, certificate type*/
"@min":0,
"@max":0
},
"permanentResidenceCardNo":{
/*optional, string, permanent resident card No.*/
"@min":0,
"@max":0
},
"nationalityOrAreaCode":{
/*optional, string, country or region code*/
"@min":0,
"@max":0
},
"version":{
/*optional, string, certificate version No.*/
"@min":0,
"@max":0
},
"receivingAuthorityCode":{
/*optional, string, acceptance authority code*/
"@min":0,
"@max":0
},
"FingerprintList":{
"maxSize":0,
"fingerprint":{
/*optional, string, fingerprint information, it is encoded using base64. This field is the data size capability*/
"@min":0,
"@max":0
}
},
"pic":{
/*optional, string, ID photo information, it is encoded using base64. This field is the data size capability*/
"@min":0,
"@max":0
}

383
Intelligent Security API (Person-Based Access Control) Developer Guide

}
}

JSON_IdentityInfoCond
IdentityInfoCond message in JSON format
{
"IdentityInfoCond":{ }
/*currently there are no condition parameters, so this field can be set to NULL*/
}

JSON_InfoFile
JSON message about the parameters of the user list file for offline collection
{
"InfoFile":{
"dataType ":"binary",
/*required, string, data type of the file: "url", "binary"-binary data*/
"fileUrl":""
/*dependent, string, file URL. This node is valid when the value of dataType is "url"*/
}
}

JSON_InfoFileProgress
JSON message about the progress of uploading the user list of offline collection
{
"InfoFileProgress":{
"percent":
/*required, int, percentage of the uploading progress*/
}
}

JSON_InfoFileTemplate
JSON message about parameters of the user list template of offline collection
{
"InfoFileTemplate":{
"dataType ":"binary",
/*required, string, data type of the file: "url", "binary"-binary data*/
"fileUrl":""
/*dependent, string, file URL, this field is valid when the value of dataType is "url"*/

384
Intelligent Security API (Person-Based Access Control) Developer Guide

}
}

JSON_InfoFileTemplateCond
JSON message about the condition parameters of downloading the user list template of offline
collection
{
"InfoFileTemplateCond":{
"dataType ":"binary"
/*required, string, data type of the file: "url"-URL, "binary"-binary data*/
}
}

JSON_IRCfg
JSON message about active infrared intrusion parameters
{
"IRCfg": {
"enable": ,
/*required, boolean, whether to enable: true (yes), false (no)*/
"distance":
/*optional, float, distance, unit: m*/
}
}

JSON_IRCfgCap
JSON message about active infrared intrusion capability
{
"IRCfgCap": {
"enable":[true,false],
/*required, boolean, whether to enable*/
"distance":{
"@opt":[0.5,1,1.5]
}
}
}

JSON_localIssueCfg
JSON message about rules for issuing smart cards

385
Intelligent Security API (Person-Based Access Control) Developer Guide

{
"localIssueCfg":{
"validFP":[1, 2],
/*optional, array of int, ID list of valid fingerprints. This node is valid for applying fingerprint(s) to the card*/
"validFacePicture":"visible"
/*optional, string, type of valid face pictures: "visible"-face picture(s) in visible light, "infrared"-face picture(s) in
infrared light. This node is valid for applying face picture(s) to the card*/
}
}

JSON_LocalIssueRequest
JSON message about the parameters of sending a request for card issuing
{
"LocalIssueRequest":{
"operation":"face",
/*required, string, operation type: "face"-issue card containing face picture information, "fingerprint"-issue card
containing fingerprint information*/
"FPIndex":1,
/*optional, int, fingerprint storage index (in the card storage area). This node is valid when the value of operation is
"fingerprint"*/
"facePic":"visible"
/*optional, string, face picture type: "visible"-face picture in visible light, "infrared"-face picture in infrared light. This
node is valid when the value of operation is "face"*/
}
}

JSON_LocalIssueRes
JSON message about the current card issuing status and real-time card issuing results
{
"LocalIssueRes":{
"status":"ok",
/*required, string, card issuing status: "ok"-succeeded, "failed"-operation failed, "timeout"-timed out, "verifiyFailure"-
authentication failed, "noCard"-no card detected, "processing"*/
"cardNo":"",
/*optional, string, issued card No.*/
"cardErrorCode":
/*dependent, int, internal error code of card operation. This node is valid when the value of status is "failed"*/
}
}

386
Intelligent Security API (Person-Based Access Control) Developer Guide

JSON_LockType
JSON message about the door lock status when the device is powered off
{
" LockType ":{
"status":""
/*required, string, door lock status when the device is powered off: "alwaysOpen"-remain open, "alwaysClose"-remain
closed*/
}
}

JSON_LockTypeCap
JSON message about the configuration capability of the door lock status when the device is
powered off
{
"LockTypeCap":{
"status":{
/*required, string, door lock status when the device is powered off: "alwaysOpen"-remain open, "alwaysClose"-remain
closed*/
"@opt":["alwaysOpen", "alwaysClose"]
}
}
}

JSON_LogModeCfg
LogModeCfg message in JSON format
{
"LogModeCfg":{
"type":
/*optional, integer, log mode: 1-16 bytes (the host log can be stored by 25w, and the employee No. can be stored by
16 bytes), 2-12 bytes (the host log can be stored by 25w, and the employee No. can be stored by 12 bytes). This node
will be set to 1 by default*/
}
}

JSON_MaskDetection
Message about the mask detection parameters in JSON format.
{
"MaskDetection":{

387
Intelligent Security API (Person-Based Access Control) Developer Guide

"enable": ,
/*optional, boolean, whether to enable mask detection: true-enable, false-disable*/
"noMaskStrategy":""
/*optional, string, door control strategy when not wearing mask is detected: "noTipsAndOpenDoor"-open the door
without prompt, "tipsAndOpenDoor"-prompt and open the door (default), "tipsAndNotOpenDoor"-prompt and not
open the door. This field is valid when enable is true*/
}
}

JSON_MaskDetectionCap
Message about the configuration capability of mask detection in JSON format.
{
"MaskDetectionCap":{
"enable":{
/*optional, boolean, whether to enable mask detection: true-enable, false-disable*/
"@opt":[true, false]
},
"noMaskStrategy":{
/*optional, string, door control strategy when not wearing mask is detected: "noTipsAndOpenDoor"-open the door
without prompt, "tipsAndOpenDoor"-prompt and open the door (default), "tipsAndNotOpenDoor"-prompt and not
open the door. This field is valid when enable is true*/
"@opt":["noTipsAndOpenDoor", "tipsAndOpenDoor", "tipsAndNotOpenDoor"]
}
}
}

JSON_MultiCardCfg
MultiCardCfg message in JSON format
{
"MultiCardCfg":{
"enable": ,
/*required, boolean, whether to enable multi-factor authentication*/
"swipeIntervalTimeout": ,
/*optional, integer, timeout of swiping (authentication) interval, which is between 1 and 255, and the default value is
10, unit: second*/
"GroupCfg":[{
/*optional, multi-factor authentication parameters*/
"id": ,
/*optional, integer, multi-factor authentication No., which is between 1 and 20*/
"enable": ,
/*optional, boolean, whether to enable the multi-factor authentication*/
"enableOfflineVerifyMode": ,
/*optional, boolean, whether to enable verification mode when the access control device is offline (the super
password will replace opening door remotely)*/
"templateNo": ,

388
Intelligent Security API (Person-Based Access Control) Developer Guide

/*optional, integer, schedule template No. to enable the multi-factor authentication*/


"GroupCombination":[{
/*optional, parameters of the multi-factor authentication group*/
"enable": ,
/*optional, integer, whether to enable the multi-factor authentication group*/
"memberNum": ,
/*optional, integer, number of members swiping cards*/
"sequenceNo": ,
/*optional, integer, serial No. of swiping cards of the multi-factor authentication group, which is between 1 and 8*/
"groupNo":
/*optional, integer, group No., 65534-super password, 65535-remotely open door*/
}]
}]
}
}

JSON_MultiDoorInterLockCfg
MultiDoorInterLockCfg message in JSON format
{
"MultiDoorInterLockCfg":{
"enable": ,
/*required, boolean, whether to enable multi-door interlocking: "true"-yes, "false"-no*/
"MultiDoorGroup":[{
/*optional, parameters of the multi-door interlocking group*/
"id": ,
/*optional, integer, multi-door interlocking No., which is between 1 and 8*/
"doorNoList":
/*optional, array, door No. list of multi-door interlocking, which is between 1 and 8. For example, [1,3,5] indicates that
door No. 1, No. 3 and No. 5 will be interlocked*/
}]
}
}

JSON_NFCCfg
NFCCfg message in JSON format
{
"NFCCfg":{
"enable":
/*required, boolean, whether to enable NFC function: "true"-yes, "false"-no*/
}
}

389
Intelligent Security API (Person-Based Access Control) Developer Guide

JSON_NFCCfgCap
NFCCfgCap capability message in JSON format
{
"NFCCfgCap":{
"enable":"true, false"
/*required, whether to enable NFC function: "true"-yes, "false"-no (default)*/
}
}

JSON_OfflineCaptureCap
OfflineCaptureCap capability message in JSON format
{
"OfflineCaptureCap":{
"isSuportDownloadOfflineCaptureInfoTemplate":true,
/*optional, whether it supports downloading template of offline user list: "true"-yes, this node is not returned-no*/
"isSuportUploadOfflineCaptureInfo":true,
/*optional, whether it supports uploading offline user list: "true"-yes, this node is not returned-no*/
"isSupportDownloadCaptureData":true,
/*optional, whether it supports downloading collected data: "true"-yes, this node is not returned-no*/
"isSupportDeleteAllData":true,
/*optional, whether it supports deleting all collected data: "true"-yes, this node is not returned-no*/
"isSupportDeleteTheData":true,
/*optional, whether it supports deleting specific collected data: "true"-yes, this node is not returned-no*/
"SearchTask":{
"supportFunction":{
/*required, string, supported methods, actually supported methods will be returned*/
"@opt":["put", "get", "delete", "post"]
},
"searchID":{
/*required, string, search ID which is used to check whether the upper-layer clients are the same one*/
"@min":0,
"@max":0
},
"maxResults":{
"@min":0,
"@max":0
},
"captureNoList":{
"maxSize":0,
"@min":0,
"@max":0
},
"searchType":{
"@opt":["new", "modified"]
},

390
Intelligent Security API (Person-Based Access Control) Developer Guide

"DataCollections":{
/*optional, array, matched data information that has been searched*/
"maxSize":0,
"captureNo":{
/*optional, integer, collection No.*/
"@min":0,
"@max":0
},
"name":{
/*optional, string, name*/
"@min":0,
"@max":0
},
"employeeNo":{
/*optional, string, employee No.*/
"@min":0,
"@max":0
},
"CardNoList":{
/*optional, string, card No. list*/
"maxSize":0,
"cardNo":{
"@min": 0,
"@max": 0
},
"cardType": {
/*optional, string, card type: "TypeA_M1", "TypeA_CPU", "TypeB", "ID_125K", "FelicaCard", "DesfireCard"*/
"@opt":["TypeA_M1","TypeA_CPU","TypeB","ID_125K","FelicaCard","DesfireCard"]
}
},
"IDCardNo":{
/*optional, string, ID card No.*/
"@min":0,
"@max":0
},
"FingerprintList":{
"fingerprintID":{
"@min":0,
"@max":0
},
"fingerprint":{
/*optional, fingerprint information, it is encoded using base64*/
"@min":0,
"@max":0
}
},
"FaceFeature":{
/*optional, string, facial feature information*/
"isSupportFaceRegion":true,
/*optional, whether it supports facial feature area*/
"isSupportCommonPoint":true
/*optional, whether it supports feature point coordinates (e.g., left eye, right eye, left mouth corner, right mouth

391
Intelligent Security API (Person-Based Access Control) Developer Guide

corner, nose)*/
},
"isSupportRiskMark":true,
/*optional, whether it supports risk data mark*/
"dataType":{
/*optional, data type*/
"@opt":["new", "modified","normal"]
},
"IdentityInfo":{
/*identity information*/
"chnName":{
/*optional, string, Chinese name*/
"@min":0,
"@max":0
},
"enName":{
/*optional, string, English name*/
"@min":0,
"@max":0
},
"sex":{
/*optional, string, gender: "male", "female"*/
"@opt":["male", "female"]
},
"birth":{
/*optional, string, data of birth, e.g., "1990-02-24"*/
"@min":0,
"@max":0
},
"addr":{
/*optional, string, address*/
"@min":0,
"@max":0
},
"IDCardNo":{
/*optional, string, ID card No.*/
"@min":0,
"@max":0
},
"issuingAuthority":{
/*optional, string, issuing authority*/
"@min":0,
"@max":0
},
"startDate":{
/*optional, string, start date of validity period*/
"@min":0,
"@max":0
},
"endDate":{
/*optional, string, end date of validity period*/
"@min":0,

392
Intelligent Security API (Person-Based Access Control) Developer Guide

"@max":0
},
"passNo":{
/*optional, string, entry-exit permit No.*/
"@min":0,
"@max":0
},
"issueNumber":{
/*optional, string, issued times*/
"@min":0,
"@max":0
},
"certificateType":{
/*optional, string, certificate type*/
"@min":0,
"@max":0
},
"permanentResidenceCardNo":{
/*optional, string, permanent resident visa No.*/
"@min":0,
"@max":0
},
"nationalityOrAreaCode":{
/*optional, string, country/region code*/
"@min":0,
"@max":0
},
"version":{
/*optional, string, certificate version No.*/
"@min":0,
"@max":0
},
"receivingAuthorityCode":{
/*optional, string, acceptance authority code*/
"@min":0,
"@max":0
},
"FingerprintList":{
"maxSize":0,
"fingerprint":{
/*optional, string, fingerprint information, which should be encoded by Base64*/
"@min":0,
"@max":0
}
},
"pic":{
/*optional, string, certificate picture information, which should be encoded by Base64, encrypted and decrypted by a
specific decryption library*/
"@min":0,
"@max":0
}
},

393
Intelligent Security API (Person-Based Access Control) Developer Guide

"CardIssueStatus":{
/*optional, issuing status list of cards containing face pictures and fingerprints*/
"@size":0,
/*optional, capability of number of elements in the array*/
"face":{
/*optional, boolean, card issuing status of the face picture: true-with card issued, false-without card issued*/
"@opt":[true, false]
},
"fingprint1":{
/*optional, boolean, card issuing status of the fingerprint 1: true-with card issued, false-without card issued*/
"@opt":[true, false]
},
"fingprint2":{
/*optional, boolean, card issuing status of the fingerprint 2: true-with card issued, false-without card issued*/
"@opt":[true, false]
}
}
}
},
"RuleInfo":{
/*rule list, which lists rules for collecting different types of data*/
"reqAdminRights":[true,false],
/*required, boolean, whether the administrator permission is required: "true"-yes, "false"-no*/
"enableCardNoLenAuto":[true,false],
/*optional, boolean, whether to enable length self-adaption of the card serial No.*/
"maxSize":0,
"supportFunction":{
/*required, string, supported methods, actually supported methods will be returned*/
"@opt":["put", "get", "delete", "post"]
},
"dataType":{
/*required, string, data type: "name", "employeeNo"-employee No., "IDCardNo"-ID card No., "IDCardSerialNo"-ID
card serial No., "IDCardDetails"-ID card details, "card", "fingprint"-fingerprint, "face"*/
"@opt":["name","employeeNo","IDCardNo","IDCardSerialNo", "IDCardDetails","card", "fingprint", "face"]
},
"enable":[true, false],
/*required, string, whether to collect and display: "true"-collect and display, "false"-not collect and display*/
"uniqueCheck":[true, false],
/*dependency, boolean, whether to enable uniqueness verification: "true"-yes, "false" (default) or this node is not
returned-no. This field is valid when dataType is "name". For other data types, the field is the read-only optional
parameter*/
"len":[{
/*dependency, integer, data length. If dataType is "name", it refers to the name length and the default value is 128.
For other data types, this field is the read-only optional parameter. This node will not be returned if it is not
supported. The capability list will be returned according to the data type*/
"dataType":"",
"@min":0,
"@max":0
}],
"num":[{
/*dependency, integer, number of collected data, this field is valid when dataType is "fingerprint" or "card". The
capability list will be returned according to the data type*/

394
Intelligent Security API (Person-Based Access Control) Developer Guide

"dataType":"",
"@min":0,
"@max":0
}],
"fingerprintIDs":{
/*dependency, integer, No. list of collected fingerprints, this field is valid when dataType is "fingerprint"*/
"maxSize":0,
"@min":0,
"@max":0
},
"enableLocalIssueCard": {
/*optional, boolean, whether to enable issuing smart cards locally*/
"@opt": [true,false]
},
"isLocalStorage": {
/*optional, boolean, whether to store face picture and fingerprint information in the device locally*/
"@opt": [true,false]
}
},
"CaptureProgress":{
"supportFunction":{
/*required, string, supported methods, actually supported methods will be returned*/
"@opt":["put", "get", "delete", "post"]
},
"reqCaptureNum":{
/*optional, integer, total number of persons to be collected*/
"@min":0,
"@max":0
},
"completelyCaptureNum":{
/*optional, integer, number of completely collected persons*/
"@min":0,
"@max":0
},
"partiallyCaptureNum":{
/*optional, integer, number of partially collected persons*/
"@min":0,
"@max":0
},
"reqFaceNum":{
/*optional, integer, number of faces to be collected*/
"@min":0,
"@max":0
},
"faceNum":{
/*optional, integer, number of collected faces*/
"@min":0,
"@max":0
},
"reqFingerprintNum":{
/*optional, integer, number of fingerprints to be collected*/
"@min":0,

395
Intelligent Security API (Person-Based Access Control) Developer Guide

"@max":0
},
"fingerprintNum":{
/*optional, integer, number of collected fingerprints*/
"@min":0,
"@max":0
},
"reqCardNum":{
/*optional, integer, number of cards to be collected*/
"@min":0,
"@max":0
},
"cardNum":{
/*optional, integer, number of collected cards*/
"@min":0,
"@max":0
},
"reqIDCardNum":{
/*optional, integer, number of ID cards to be collected*/
"@min":0,
"@max":0
},
"IDCardNum":{
/*optional, integer, number of collected ID cards*/
"@min":0,
"@max":0
},
"reqIssueNum":{
/*optional, int, number of persons to be issued with smart cards*/
"@min": 0,
"@max": 0
},
"IssuedNum":{
/*optional, int, number of persons that have been issued with smart cards*/
"@min": 0,
"@max": 0
}
},
"DataOutput":{
"supportFunction":{
/*required, string, supported methods, actually supported methods will be returned*/
"@opt":["put", "get", "delete", "post"]
},
"password":{
/*required, string, password for exporting*/
"@min":0,
"@max":0
},
"type":{
/*optional, string, exporting method, the default method is "USB"*/
"@opt":"USB"
},

396
Intelligent Security API (Person-Based Access Control) Developer Guide

"progress":{
/*required, integer, exporting progress*/
"@min":0,
"@max":0
}
}
}
}

JSON_OSDPModify
OSDPModify message in JSON format
{
"OSDPModify":{
"newID":
/*required, integer, new ID of the OSDP card reader*/
}
}

JSON_OSDPStatus
OSDPStatus message in JSON format
{
"OSDPStatus":{
"status":""
/*required, string, online status: "online", "offline"*/
}
}

JSON_PersonInfoExtendName
JSON message about the parameters of the name of the additional person information
{
"PersonInfoExtendName":{
"NameList":[{
"id":1,
/*required, int, ID of the additional person information, it corresponds to the id of PersonInfoExtends in the message
JSON_UserInfo*/
"name":"Student ID"
/*required, string, name of the additional person information*/
}]
}
}

397
Intelligent Security API (Person-Based Access Control) Developer Guide

See Also
JSON_UserInfo

JSON_PersonInfoExtendNameCap
JSON message about the configuration capability of the name of the additional person information
{
"PersonInfoExtendNameCap":{
"NameList":{
"@size":1,
/*required, int, maximum number of names that can be configured*/
"id":{
/*required, int, ID of the additional person information, it corresponds to the id of PersonInfoExtends in the message
JSON_Cap_UserInfo*/
"@min":1,
"@max":1
},
"name":{
/*required, string, name of the additional person information*/
"@min":1,
"@max":1
}
}
}
}

See Also
JSON_Cap_UserInfo

JSON_PhoneDoorRightCfg
PhoneDoorRightCfg message in JSON format
{
"PhoneDoorRightCfg":{
"openRight": ,
/*optional, array, whether to have permission to open the door. For example, [1,3,5] indicates having permission to
open the door No. 1, No. 3, and No. 5*/
"closeRight": ,
/*optional, array, whether to have permission to close the door. For example, [1,3,5] indicates having permission to
close the door No. 1, No. 3, and No. 5*/
"alwaysOpenRight": ,
/*optional, array, whether to have permission to remain the door unlocked. For example, [1,3,5] indicates having
permission to remain the door No. 1, No. 3, and No. 5 unlocked*/
"alwaysCloseRight": ,
/*optional, array, whether to have permission to remain the door locked. For example, [1,3,5] indicates having
permission to remain the door No. 1, No. 3, and No. 5 locked*/

398
Intelligent Security API (Person-Based Access Control) Developer Guide

"armRight": ,
/*optional, array, whether to have permission to arm the alarm input port. For example, [1,3,5] indicates having
permission to arm the alarm input port No. 1, No. 3, and No. 5*/
"disarmRight":
/*optional, array, whether to have permission to disarm the alarm input port. For example, [1,3,5] indicates having
permission to disarm the alarm input port No. 1, No. 3, and No. 5*/
}
}

JSON_PictureServerInformation
PictureServerInformation message in JSON format
{
"PictureServerInformation":{
"pictureServerType":"",
/*required, string type, picture storage server type: "tomact,VRB,cloudStorage,KMS"*/
"addressingFormatType":"",
/*required, string type, format type of the picture storage server address: "ipaddress"-IP address (default),
"hostname"-host name*/
"hostName":"",
/*string type, domain name of the picture storage server, the string length is between 0 and 64. This field is valid
when addressingFormatType is "hostname"*/
"ipv4Address":"",
/*string type, IPv4 address of the picture storage server, the string length is between 0 and 64. This field is valid when
addressingFormatType is "ipaddress"*/
"ipv6Address":"",
/*string type, IPv6 address of the picture storage server, the string length is between 0 and 128. This field is valid
when addressingFormatType is "ipaddress"*/
"portNo": ,
/*required, integer type, port No. of the picture storage server, which is between 1024 and 65535*/
"underlyingProtocol":"",
/*optional, string, bottom-level protocol of the picture storage server: "HTTP", "HTTPS". This field is valid when
pictureServerType contains "cloudStorage". If this field does not exist, the default bottom-level protocol is HTTP*/
"cloudStorage":{
/*parameters of the clould storage server, which is valid when pictureServerType is "cloudStorage"*/
"cloudManageHttpPort": ,
/*required, integer type, HTTP port No. for central management of the cloud storage server, which is between 1024
and 65535*/
"cloudTransDataPort": ,
/*required, integer type, data transmission port No. of the cloud storage server, which is between 1024 and 65535.
This field is not supported by access control devices*/
"cloudCmdPort": ,
/*required, integer type, signaling port No. of the cloud storage server, which is between 1024 and 65535*/
"cloudHeartBeatPort": ,
/*required, integer type, heartbeat port No. of the cloud storage server, which is between 1024 and 65535. This field
is not supported by access control devices*/
"cloudStorageHttpPort": ,
/*required, integer type, HTTP port No. of the cloud storage server, which is between 1024 and 65535. This field is not
supported by access control devices*/
"cloudUsername":"",

399
Intelligent Security API (Person-Based Access Control) Developer Guide

/*required, string type, user name of the cloud storage server, the string length is between 0 and 32. This field is not
supported by access control devices*/
"cloudPassword":"",
/*required, string type, password of the cloud storage server, the string length is between 0 and 32. This field is not
supported by access control devices*/
"cloudPoolId": ,
/*required, integer type, cloud storage pool ID, which is between 1 and 4294967295. If this field is not configured by
the upper-level, this field will be set to 1 by default*/
"cloudPoolIdEx":"",
/*optional, string type, cloud storage pool ID, this node is valid when cloud storage pool ID of type string (cloud
storage protocol in version 3.0) is supported*/
"clouldProtocolVersion":"",
/*required, string type, protocol version of the cloud storage server, the string length is between 0 and 32*/
"clouldAccessKey":"",
/*string type, cloud storage server access_key, the string length is between 0 and 64. This field is valid when
clouldProtocolVersion is "V2.0"*/
"clouldSecretKey":""
/*string type, cloud storage server secret_key, the string length is between 0 and 64. This field is valid when
clouldProtocolVersion is "V2.0"*/
}
}
}

JSON_PrinterCfg
PrinterCfg message in JSON format
{
"PrinterCfg": {
/*required, boolean, whether to enable the printer*/
"enable": ,
"printFormat": {
"vistorPic": {
/*optional, visitor picture*/
"enable": ,
/*required, boolean, whether to print visitor picture*/
"lineNo":
/*required, integer, line No.*/
},
"vistorName": {
/*optional, visitor name*/
"enable": ,
/*required, boolean, whether to print visitor name*/
"lineNo":
/*required, integer, line No.*/
},
"certificateNumber": {
/*optional, visitor's certificate No.*/
"enable": ,
/*required, boolean, whether to print visitor's certificate No.*/
"lineNo":

400
Intelligent Security API (Person-Based Access Control) Developer Guide

/*required, integer, line No.*/


},
"address": {
/*optional, visitor's address*/
"enable": ,
/*required, boolean, whether to print visitor's address*/
"lineNo":
/*required, integer, line No.*/
},
"validity": {
/*optional, expiry date*/
"enable": ,
/*required, whether to print the expiry date*/
"lineNo":
/*required, integer, line No.*/
},
"receptionDepartment": {
/*optional, reception department*/
"enable": ,
/*required, boolean, whether to print the reception department*/
"lineNo":
/*required, integer, line No.*/
},
"receptionStaff": {
/*optional, receptionist information*/
"enable": ,
/*required, boolean, whether to print the receptionist information*/
"lineNo":
/*required, integer, line No.*/
},
"registrationTime": {
/*optional, registered time*/
"enable": ,
/*optional, whether to print the registered time*/
"lineNo":
/*required, integer, line No.*/
},
}
}
}

JSON_RemoteCheck
Message about the parameters of verifying the access control event remotely in JSON format.
{
"RemoteCheck":{
"serialNo": ,
/*required, int, event serial No. which should be the same as that in the event information message for uploading*/
"checkResult":"",
/*required, string, verification result: "success"-verified, "failed"-verification failed*/

401
Intelligent Security API (Person-Based Access Control) Developer Guide

"info":""
/*optional, string, additional information*/
}
}

JSON_RemoteControlBuzzer
RemoteControlBuzzer message in JSON format
{
"RemoteControlBuzzer":{
"cmd":""
/*required, string, command: "start"-start buzzing, "stop"-stop buzzing*/
}
}

JSON_RemoteControlPWCfg
RemoteControlPWCfg message in JSON format
{
"RemoteControlPWCfg":{
"password":""
/*optional, string type, password for remote door control*/
}
}

JSON_RemoteControlPWCheck
RemoteControlPWCheck message in JSON format
{
"RemoteControlPWCheck":{
"password":""
/*optional, string type, password for remote door control (or EZVIZ verification code)*/
}
}

JSON_ResponseStatus
ResponseStatus message in JSON format.
{
"requestURL":"",
/*optional, string type, request URL*/
"statusCode": ,

402
Intelligent Security API (Person-Based Access Control) Developer Guide

/*required, integer type, status code*/


"statusString":"",
/*required, string type, status description*/
"subStatusCode":"",
/*required, string type, sub status code*/
"errorCode": ,
/*optional, integer type, error code, which corresponds to subStatusCode, this field is required when statusCode is
not 1*/
"errorMsg":"",
/*optional, string type, error details, this field is required when statusCode is not 1*/
"tryTimes":
/*optional, integer, number of retry attempts, it is returned when configuring card encryption*/
}

Note
See Response Codes of Text Protocol for details about the status codes, sub status codes, error
codes, and error descriptions.

JSON_RFCardCfg
RFCardCfg message in JSON format
{
"RFCardCfg":[{
"cardType":"",
/*required, string, card type: "EMCard"-EM card, "M1Card"-M1 card, "CPUCard"-CPU card, "IDCard"-ID card,
"DesfireCard"-DESFire card, "FelicaCard"-FeliCa card*/
"enabled":
/*required, boolean, whether to enable RF card recognition: "true"-yes, "false"-no*/
}]
}

JSON_RFCardCfgCap
RFCardCfgCap capability message in JSON format
{
"RFCardCfgCap":{
"cardType":{
/*required, string, card type: "EMCard"-EM card, "M1Card"-M1 card, "CPUCard"-CPU card, "IDCard"-ID card,
"DesfireCard"-DESFire card, "FelicaCard"-FeliCa card*/
"@opt":["EMCard","M1Card","CPUCard","IDCard"]
},
"enabled":{
/*required, boolean, whether to enable RF card recognition: "true"-yes, "false"-no*/
"@opt":[true,false]
}

403
Intelligent Security API (Person-Based Access Control) Developer Guide

}
}

JSON_RuleInfo
RuleInfo message in JSON format
{
"RuleInfo":{
"reqAdminRights": ,
/*required, boolean, whether the administrator permission is required: "true"-yes, "false"-no*/
"enableCardNoLenAuto": ,
/*optional, boolean, whether to enable length self-adaption of the card serial No. The priority of this field is higher
than len*/
"RuleList":[{
/*rule list, which contains rules for collecting different types of data*/
"dataType":"",
/*required, string, data type: "name", "employeeNo"-employee No., "IDCardNo"-ID card No., "IDCardSerialNo"-ID
card serial No., "IDCardDetails"-ID card details, "card", "fingprint"-fingerprint, "face"*/
"enable": ,
/*required, boolean, whether to collect and display: "true"-collect and display, "false"-not collect and display*/
"uniqueCheck": ,
/*dependency, boolean, whether to enable uniqueness verification: "true"-yes, "false" (default) or this field is not
returned-no. This field is valid when dataType is "name". For other data types, this field is the read-only optional
parameter*/
"len": ,
/*dependency, integer, data length, this field is valid when dataType is "name", "enployeeNo" or "card". The default
data length of name is 128. For other data types, this field is the read-only optional parameter. If it is not supported,
this field will not be returned*/
"num": ,
/*dependency, integer, number of collected data, this field is valid when dataType is "fingerprint" or "card"*/
"fingerprintIDs":
/*dependency, integer, ID list of fingerprints that need to be collected, this field is valid when dataType is
"fingerprint"*/
}],
"enableLocalIssueCard": true,
/*optional, boolean, whether to enable issuing smart cards locally*/
"isLocalStorage": false
/*optional, boolean, whether to store face picture and fingerprint information in the device locally*/
}
}

JSON_SafetyHelmetDetection
JSON message about parameters of hard hat detection
{
"SafetyHelmetDetection":{
"enable":true,

404
Intelligent Security API (Person-Based Access Control) Developer Guide

/*optional, boolean, whether to enable hard hat detection: true-yes, false-no (default)*/
"noHelmetStrategy":""
/*optional, string, door control strategy when not wearing hard hat is detected: "normal"-open the door to allow
access, "forbidden"-access is prohibited*/
}
}

JSON_SafetyHelmetDetectionCap
JSON message about the configuration capability of hard hat detection
{
"SafetyHelmetDetectionCap":{
"enable":{
/*optional, boolean, whether to enable hard hat detection: true-yes, false-no (default)*/
"@opt":[true, false]
},
"noHelmetStrategy":{
/*optional, string, door control strategy when not wearing hard hat is detected: "normal"-open the door to allow
access, "forbidden"-access is prohibited*/
"@opt":["normal", "forbidden"]
}
}
}

JSON_SearchFaceRecordCond
Message about conditions of searching for face records, and it is in JSON format.
{
"searchResultPosition": "",
/*required, initial position of search result list, integer32 type. When there are multiple records, and cannot get all
records in one time searching, you can search the records followed specified position for next search. For video
intercom devices, this field can only be set to 0 as the picture will be returned along with the message*/
"maxResults": "",
/*required, int32 type, maximum number of records for single searching. If maxResults exceeds the range defined by
the device capability, the device will return the maximum number of records according to the device capability and
will not return error. For video intercom devices, this field can only be set to 1 as the picture will be returned along
with the message*/
"faceLibType": "",
/*required, face picture library type: "blackFD"-list library, "staticFD"-static library, string type, the maximum size is 32
bytes*/
"FDID": "",
/*required, face picture library ID, string type, the maximum size is 63*/
"FPID": "",
/*optional, string type, face record ID, it can be generated by device or inputted. If it is inputted, it should be the
unique ID with the combination of letters and digits, and the maximum length is 63 bytes; if it is generated by the
device automatically, it is the same as the employee No. (person ID)*/
"startTime": "",

405
Intelligent Security API (Person-Based Access Control) Developer Guide

/*optional, start time, ISO8601 time format, string type, the maximum size is 32 bytes*/
"endTime": "",
/*optional, end time, ISO8601 time format, string type, the maximum size is 32 bytes*/
"name": "",
/*optional, name, string type, the maximum size is 96 bytes*/
"gender": "",
/*optional, gender: male, female, unknown, string type, the maximum size is 10*/
"city": "",
/*optional, city code of birth for the person in the face picture, string type, the maximum size is 32 bytes*/
"certificateType": "",
/*optional, string type, the maximum size is 10 bytes, certificate type: "officerID"-officer ID, "ID"-identify card,
passport, other*/
"certificateNumber": ""
/*optional, certificate No., string, the maximum size is 32 bytes*/
"isInLibrary": "yes",
/*optional, string type, whether the picture is in library (whether modeling is successful): unknown, no, yes*/
"isDisplayCaptureNum": true,
/*optional, boolean type, whether to display number of captured pictures, true: display, false: hide, by default it is
false*/
"rowKey ":"",
/*optional, string type, face picture library main key. Search by rowKey can be more efficient, the maximum size is 64
bytes*/
"transfer":true
/*optional, boolean type, whether to enable transfer*/
}

JSON_SearchFaceRecordResult
Message about result of searching for face record.
{
"requestURL": "",
"statusCode": "",
"statusString": "",
"subStatusCode": "",
"errorCode": "",
"errorMsg": "",
/*see the description of this node and above nodes in the message of JSON_ResponseStatus*/
"responseStatusStrg": "",
/*optional, searching status: "OK"-searching ended, "NO MATCHES"-no data found, "MORE"-searching, string type,
the max. size is 32 bytes. It is valid only when errorCode is 1 and errorMsgis ok*/
"searchResultPosition": "",
/*optional, initial position of search result list, integer32 type. It is valid only when errorCode is 1 and errorMsgis ok*/
"numOfMatches": "",
/*optional, returned number of results for current search, integer32. It is valid only when errorCode is 1 and
errorMsgis ok*/
"totalMatches": "",
/*optional, total number of matched results, integer32. It is valid only when errorCode is 1 and errorMsgis ok*/
"MatchList":[
/*optional, searched matched data information, array. It is valid only when errorCode is 1 and errorMsgis ok*/
{

406
Intelligent Security API (Person-Based Access Control) Developer Guide

"FPID":"",
/*optional, string type, face record ID (it is the same as the employee No. (person ID)), the maximum length is 63
bytes*/
"faceURL":"",
/*optional, face picture URL, string type, the maximum size is 128 bytes*/
"name":"",
/*required, name of person in the face picture, string type, the maximum size is 96 bytes*/
"gender": "",
/*optional, gender of person in the face picture: male, female, unknown, string type, the maximum size is 32 bytes*/
"bornTime": "",
/*required, birthday of person in the face picture, ISO8601 time format, string type, the maximum size is 20 bytes*/
"city": "",
/*optional, city code of birth for the person in the face picture, string type, the maximum size is 32 bytes*/
"certificateType": "",
/*optional, string type, the max. size is 10 bytes, certificate type: "officerID"-officer ID, "ID"-identify card, passport,
other*/
"certificateNumber": "",
/*optional, certificate No., string, the max. size is 32 bytes*/
"caseInfo": "",
/*optional, case information, string type, the max. size is 192 bytes, it is valid when faceLibType is blackFD.*/
"tag": "",
/*optional, custom tag, up to 4 tags, which are separated by commas, string type, the max. size is 195 bytes, it is valid
when faceLibType is blackFD.*/
"address": "",
/*optional, person address, string type, the max. size is 192 bytes, it is valid when faceLibType is staticFD.*/
"customInfo": "",
/*optional, custom information, string type, the max. size is 192 bytes, it is valid when faceLibType is staticFD.*/
"modelData":""
/*optional, string type, target model data, non-modeled binary data needs to be encrypted by base64 during
transmission*/
"isInLibrary": "yes",
/*optional, string type, whether the picture is in library (whether modeling is successful): unknown, no, yes*/
"captureNum": 12,
/*optional, int, number of captured pictures*/
"rowKey": ""
/*optional, string type, face picture library main key. Search by rowKey can be more efficient, the maximum size is 64
bytes*/
}
]
}

See Also
JSON_ResponseStatus

JSON_SearchTaskCond
SearchTaskCond message in JSON format
{
"SearchTaskCond":{

407
Intelligent Security API (Person-Based Access Control) Developer Guide

"searchID":"",
/*required, string, search ID which is used to check whether the upper-layer clients are the same one*/
"searchResultPosition": ,
/*required, integer32, the start position of the search result in the result list. When there are multiple records and you
cannot get all search results at a time, you can search for the records after the specified position next time. If the
device returns the picture along with the response message, this field should be between 0 and totalMatches*/
"maxResults": ,
/*required, integer32, the maximum number of results that can be obtained by calling the URL at a time. If the device
returns the picture along with the response message, this field can only be set to 1*/
"captureNoList": ,
/*optional, integer, collection No. list. If the collection No. is not configured, it will search all data according to
searchResultPosition*/
"searchType":""
/*optional, search type: "new"-search and only return newly added data, "modified"-search and only return edited
data. By default all data will be searched*/
}
}

JSON_SearchTaskResponse
SearchTaskResponse message in JSON format
{
"SearchTaskResponse":{
"searchID":"",
/*required, string, search ID which is used to check whether the upper-layer clients are the same one*/
"responseStatusStrg":"",
/*optional, string, searching status: "OK"-searching completed, "NO MATCH"-no matched results, "MORE"-searching
for more results*/
"numOfMatches": ,
/*optional, integer32, number of returned results this time*/
"totalMatches": ,
/*optional, integer32, total number of matched results*/
"DataCollections":[{
/*optional, array, searched matched data information*/
"lastCaptureNo": ,
/*required, integer, last collection No., it is used to check whether there is data lost*/
"captureNo": ,
/*required, integer, current collection No.*/
"name":"",
/*optional, string, name*/
"employeeNo":"",
/*optional, string, employee No.*/
"IDCardNo":"",
/*optional, string, ID card No.*/
"CardNoList":[{
/*optional, string, card No. list*/
"cardNo":"",
"cardType": "TypeA_M1"
/*optional, string, card type: "TypeA_M1", "TypeA_CPU", "TypeB", "ID_125K", "FelicaCard", "DesfireCard"*/
}],

408
Intelligent Security API (Person-Based Access Control) Developer Guide

"FingerprintList":[{
"fingerprintID": ,
/*optional, integer, fingerprint No.*/
"fingerprint":""
/*optional, string, fingerprint information which is encoded using base64*/
}],
"FaceFeature":{
/*optional, feature information of face picture matting*/
"Region":{
/*required, area coordinates of face picture matting, it is a rectangle*/
"height": ,
/*required, float, height*/
"width": ,
/*required, float, width*/
"x": ,
/*required, float, X-coordinate of the left corner*/
"y":
/*required, float, Y-coordinate of the left corner*/
},
"LeftEyePoint":{
/*optional, coordinates of the left eye*/
"x": ,
/*required, float, X-coordinate, it is between 0.000 and 1*/
"y":
/*required, float, Y-coordinate, it is between 0.000 and 1*/
},
"RightEyePoint":{
/*optional, coordiantes of the right eye*/
"x": ,
/*required, float, X-coordinate, it is between 0.000 and 1*/
"y":
/*required, float, Y-coordinate, it is between 0.000 and 1*/
},
"LeftMouthPoint":{
/*optional, coordinates of the left mouth corner*/
"x": ,
/*required, float, X-coordinate, it is between 0.000 and 1*/
"y":
/*required, float, Y-coordinate, it is between 0.000 and 1*/
},
"RightMouthPoint":{
/*optional, coordinates of the right mouth corner*/
"x": ,
/*required, float, X-coordinate, it is between 0.000 and 1*/
"y":
/*required, float, Y-coordinate, it is between 0.000 and 1*/
},
"NoseTipPoint":{
/*optional, coordinates of the nose*/
"x": ,
/*required, float, X-coordinate, it is between 0.000 and 1*/
"y":

409
Intelligent Security API (Person-Based Access Control) Developer Guide

/*required, float, Y-coordinate, it is between 0.000 and 1*/


}
},
"riskDataMark": ,
/*optional, boolean, whether to mark risk data: "true"-mark the data as the risk data and person and ID comparison
failed, "false" or this field is not returned-the data is normal*/
"dataType":"",
/*optional, string, data type and status: "new"-newly added data, "modified"-edited data, "normal"-unchanged data*/
"IdentityInfo":{
/*identity information*/
"chnName":"",
/*optional, string, Chinese name*/
"enName":"",
/*optional, string, English name*/
"sex":"",
/*optional, string, gender: "male", "female"*/
"birth":"",
/*optional, string, data of birth, e.g., "1990-02-24"*/
"addr":"",
/*optional, string, address*/
"IDCardNo":"",
/*optional, string, ID card No.*/
"issuingAuthority":"",
/*optional, string, issuing authority*/
"startDate":"",
/*optional, string, start date of validity period*/
"endDate":"",
/*optional, string, end date of validity period*/
"passNo":"",
/*optional, string, entry-exit permit No.*/
"issueNumber":"",
/*optional, string, issued times*/
"certificateType":"",
/*optional, string, certificate type*/
"permanentResidenceCardNo":"",
/*optional, string, permanent resident visa No.*/
"nationalityOrAreaCode":"",
/*optional, string, country/region code*/
"version":"",
/*optional, string, certificate version No.*/
"receivingAuthorityCode":"",
/*optional, string, acceptance authority code*/
"FingerprintList":[{
"fingerprint":""
/*optional, string, fingerprint information, which should be encoded by Base64*/
}],
"pic":""
/*optional, string, certificate picture information, which should be encoded by Base64, encrypted and decrypted by a
specific decryption library*/
},
"CardIssueStatus":[{
/*optional, issuing status list of cards containing face pictures and fingerprints*/

410
Intelligent Security API (Person-Based Access Control) Developer Guide

"cardNo":"",
/*optional, string, card information*/
"face":true,
/*optional, boolean, card issuing status of the face picture: true-with card issued, false-without card issued*/
"fingprint1":true,
/*optional, boolean, card issuing status of the fingerprint 1: true-with card issued, false-without card issued*/
"fingprint2":true
/*optional, boolean, card issuing status of the fingerprint 2: true-with card issued, false-without card issued*/
}]
}]
}
}

JSON_SectionEncryption
JSON message about section encryption parameters
{
"SectionEncryption": {
"sectionNo": ,
/*required, integer, section No.*/
"keyType": "",
/*required, string, key types: "private"-private key, "normal"-other valid keys*/
"password": ""
/*depend, string, a hexadecimal verification key, this field is valid only when the keyType is "normal"*/
"newKeyType": "",
/*required, string, new key types: "private"-private key, "normal"-other valid keys*/
"KeyA": "",
/*depend, string, a hexadecimal password of key A, this field is valid only when the keyType is "normal"*/
"KeyB": "",
/*depend, string, a hexadecimal password of key B, this field is valid only when the keyType is "normal"*/
"controlBits":
/*depend, a hexadecimal control bit, this field is valid only when the keyType is "normal"*/
}
}

JSON_SetFaceRecord
Message about the condition of setting the face record, and it is in JSON format.
{
"faceURL":"",
/*optional, string type, picture storage URL inputted when uploading the face picture by URL, the maximum length is
256 bytes*/
"faceLibType":"",
/*required, string type, face picture library type: "blackFD"-list library, "staticFD"-static library, the maximum length is
32 bytes*/
"FDID":"",
/*required, string type, face picture library ID, the maximum length is 63 bytes*/

411
Intelligent Security API (Person-Based Access Control) Developer Guide

"FPID":"",
/*optional, string type, face record ID, it can be generated by the device or inputted. If it is inputted, it should be the
unique ID with the combination of letters and digits, and the maximum length is 63 bytes; if it is generated by the
device automatically, it is the same as the employee No. (person ID)*/
"deleteFP": ,
/*optional, boolean type, whether to delete the face record: "true"-yes. This node is required when the face record
needs to be deleted; for adding or editing the face record, this node should be set to NULL*/
"name":"",
/*required, string type, name of the person in the face picture, the maximum length is 96 bytes*/
"gender":"",
/*optional, string type, gender of the person in the face picture: "male", "female", "unknown", the maximum length is
32 bytes*/
"bornTime":"",
/*required, string type, date of birth of the person in the face picture in ISO8601 time format, the maximum length is
20 bytes*/
"city":"",
/*optional, string type, code of the city of birth for the person in the face picture, the maximum length is 32 bytes*/
"certificateType ":"",
/*optional, string type, ID type: "officerID"-officer ID, "ID"-ID card. The maximum length is 10 bytes*/
"certificateNumber":"",
/*optional, string type, ID No., the maximum length is 32 bytes*/
"caseInfo":"",
/*optional, string type, case information, the maximum length is 192 bytes, it is valid when faceLibType is "blackFD"*/
"tag":"",
/*optional, string type, custom tag, up to 4 tags can be added and they should be separated by commas, the
maximum length of each tag is 48 bytes, and the maximum length of this node is 195 bytes. It is valid when
faceLibType is "blackFD"*/
"address":"",
/*optional, string type, person address, the maximum length is 192 bytes, it is valid when faceLibType is "staticFD"*/
"customInfo":"",
/*optional, string type, custom information, the maximum length is 192 bytes, it is valid when faceLibType is
"staticFD"*/
"modelData":"",
/*optional, string type, target model data, non-modeled binary data needs to be encrypted by base64 during
transmission*/
"PicFeaturePoints":[{
/*optional, array of object, feature points to be applied. If the device only supports three types of feature points,
when the platform applies more than three types of feature points, the device will not return error information*/
"featurePointType":"face",
/*required, string, feature point type: "face", "leftEye" (left eye), "rightEye" (right eye), "leftMouthCorner" (left corner
of mouth), "rightMouthCorner" (right corner of mouth), "nose"*/
"coordinatePoint":{
/*required, object, coordinates of the feature point*/
"x":1,
/*required, int, normalized X-coordinate which is between 0 and 1000*/
"y":1,
/*required, int, normalized Y-coordinate which is between 0 and 1000*/
"width":1,
/*required, int, width which is between 0 and 1000. This node is required when featurePointType is "face"*/
"height":1
/*required, int, height which is between 0 and 1000. This node is required when featurePointType is "face"*/
}

412
Intelligent Security API (Person-Based Access Control) Developer Guide

}]
}

JSON_SingleFPLibInfo
Message about the information of a face picture library, and it is in JSON format.
{
"requestURL": "",
"statusCode": "",
"statusString": "",
"subStatusCode": "",
"errorCode": "",
"errorMsg": "",
/*see the description of this node and above nodes in the message of JSON_ResponseStatus*/
"faceLibType": "",
/*optional, face picture library type: "blackFD"-list library, "staticFD"-static library, string type, the max. string length is
32 bytes*/
"name": "",
/*optional, face picture library name, string type, the max. string length is 48 bytes*/
"customInfo": ""
/*optional, custom information, string type, the max. string length is 192 bytes*/
}

See Also
JSON_ResponseStatus

JSON_SmsRelativeParam
SmsRelativeParam message in JSON format
{
"SmsRelativeParam":{
"WhiteList":[{
/*required, mobile phone number allowlist*/
"id": ,
/*required, integer, No. of mobile phone number allowlist*/
"phoneNo":"",
/*required, string, mobile phone number*/
"doorControl": ,
/*optional, boolean, whether to support door operation control: "true"-yes, "false"-no*/
"acsPassword":""
/*optional, string, command to open the door*/
}]
}
}

413
Intelligent Security API (Person-Based Access Control) Developer Guide

JSON_TTSText
JSON message about the text parameters of the audio prompt for the authentication results
{
"TTSText":{
"enable": ,
/*required, boolean, whether to enable: true-enable, false-disable*/
"prefix":"",
/*optional, string, whether to play the audio with "user name" or "honorific and last name of the user" as the prefix:
"name"-play the audio with "user name" (e.g., "Jack Smith" will be played), "lastname"-play the audio with "honorific
and last name of the user" (e.g., "Mr. Smith" will be played), "none" (default)*/
"Success":[{
"TimeSegment":{
/*optional, time period*/
"beginTime":"",
/*required, string, start time, which is between 00:00:00 and 23:59:59*/
"endTime":""
/*required, string, end time, which is between 00:00:00 and 23:59:59*/
},
"language":"",
/*optional, string, language: "SimChinese,TraChinese,English"*/
"text":""
/*required, string, text of the audio prompt*/
}],
"Failure":[{
"TimeSegment":{
/*optional, time period*/
"beginTime":"",
/*required, string, start time, which is between 00:00:00 and 23:59:59*/
"endTime":""
/*required, string, end time, which is between 00:00:00 and 23:59:59*/
},
"language":"",
/*optional, string, language: "SimChinese,TraChinese,English"*/
"text":""
/*required, string, text of the audio prompt*/
}]
}
}

JSON_UploadFailedDetails
JSON message about the details of failing to upload the user list of offline collection
{
"UploadFailedDetails ":{
"description":""
/*required, string, details of failing to uploading the user list of offline collection, including detailed error descriptions

414
Intelligent Security API (Person-Based Access Control) Developer Guide

and reports*/
}
}

JSON_UserInfo
JSON message about the person information
{
"UserInfo":{
"employeeNo":"",
/*required, string, employee No. (person ID)*/
"deleteUser": ,
/*optional, boolean, whether to delete the person: "true"-yes. This node is required only when the person needs to
be deleted; for adding or editing person information, this node can be set to NULL*/
"name":"",
/*optional, string, person name*/
"userType":"",
/*required, string, person type: "normal"-normal person (household), "visitor", "blackList"-person in blocklist*/
"closeDelayEnabled": ,
/*optional, boolean, whether to enable door close delay: "true"-yes, "false"-no*/
"Valid":{
/*required, parameters of the effective period, the effective period can be a period of time between 1970-01-01
00:00:00 and 2037-12-31 23:59:59*/
"enable": ,
/*required, boolean, whether to enable the effective period: "false"-disable, "true"-enable. If this node is set to
"false", the effective period is permanent*/
"beginTime":"",
/*required, start time of the effective period (if timeType does not exist or is "local", the beginTime is the device local
time, e.g., 2017-08-01T17:30:08; if timeType is "UTC", the beginTime is UTC time, e.g., 2017-08-01T17:30:08+08:00)*/
"endTime":"",
/*required, end time of the effective period (if timeType does not exist or is "local", the endTime is the device local
time, e.g., 2017-08-01T17:30:08; if timeType is "UTC", the endTime is UTC time, e.g., 2017-08-01T17:30:08+08:00)*/
"timeType":""
/*optional, string, time type: "local"- device local time, "UTC"- UTC time*/
},
"belongGroup":"",
/*optional, string, group*/
"password":"",
/*optional, string, password*/
"doorRight":"",
/*optional, string, No. of the door or lock that has access permission, e.g., "1,3" indicates having permission to access
door (lock) No. 1 and No. 3*/
"RightPlan":[{
/*optional, door permission schedule (lock permission schedule)*/
"doorNo": ,
/*optional, integer, door No. (lock ID)*/
"planTemplateNo":""
/*optional, string, schedule template No.*/
}],
"maxOpenDoorTime": ,

415
Intelligent Security API (Person-Based Access Control) Developer Guide

/*optional, integer, maximum authentication attempts, 0-unlimited*/


"openDoorTime": ,
/*optional, integer, read-only, authenticated attempts*/
"roomNumber": ,
/*optional, integer, room No.*/
"floorNumber": ,
/*optional, integer, floor No.*/
"doubleLockRight": ,
/*optional, boolean, whether to have the permission to open the double-locked door: "true"-yes, "false"-no*/
"localUIRight": ,
/*optional, boolean, whether to have the permission to access the device local UI: "true"-yes, "false"-no*/
"userVerifyMode":"",
/*optional, string, person authentication mode: "cardAndPw"-card+password, "card"-card, "cardOrPw"-card or
password, "fp"-fingerprint, "fpAndPw"-fingerprint+password, "fpOrCard"-fingerprint or card, "fpAndCard"-fingerprint
+card, "fpAndCardAndPw"-fingerprint+card+password, "faceOrFpOrCardOrPw"-face or fingerprint or card or
password, "faceAndFp"-face+fingerprint, "faceAndPw"-face+password, "faceAndCard"-face+card, "face"-face,
"employeeNoAndPw"-employee No.+password, "fpOrPw"-fingerprint or password, "employeeNoAndFp"-employee
No.+fingerprint, "employeeNoAndFpAndPw"-employee No.+fingerprint+password, "faceAndFpAndCard"-face
+fingerprint+card, "faceAndPwAndFp"-face+password+fingerprint, "employeeNoAndFace"-employee No.+face,
"faceOrfaceAndCard"-face or face+card, "fpOrface"-fingerprint or face, "cardOrfaceOrPw"-card or face or password,
"cardOrFace"-card or face, "cardOrFaceOrFp"-card or face or fingerprint, "cardOrFpOrPw"-card or fingerprint or
password. The priority of the person authentication mode is higher than that of the card reader authentication
mode*/
"checkUser": ,
/*optional, boolean, whether to verify the duplicated person information: "false"-no, "true"-yes. If checkUser is not
configured, the device will verify the duplicated person information by default. When there is no person information,
you can set checkUser to "false" to speed up data applying; otherwise, it is not recommended to configure this node*/
"addUser": ,
/*optional, boolean type, whether to add the person if the person information being edited does not exist: "false"-no
(if the device has checked that the person information being edited does not exist, the failure response message will
be returned along with the error code), "true"-yes (if the device has checked that the person information being edited
does not exist, the success response message will be returned, and the person will be added). If this node is not
configured, the person will not be added by default*/
"dynamicCode": "123456",
/*optional, string, dynamic permission code, this node is write-only*/
"callNumbers": ["","",""],
/*optional, string type, room No. list to be called, by default, its format is X-X-X-X (e.g., 1-1-1-401), which is extended
from roomNumber; for standard SIP, it can be the SIP number*/
"floorNumbers": [ , ],
/*optional, integer type, floor No. list, which is extended from floorNumber*/
"numOfFace": ,
/*optional, read-only, number of linked face pictures. If this field is not returned, it indicates that this function is not
supported*/
"numOfFP": ,
/*optional, read-only, number of linked fingerprints. If this field is not returned, it indicates that this function is not
supported*/
"numOfCard": ,
/*optional, read-only, number of linked cards. If this field is not returned, it indicates that this function is not
supported*/
"gender":"",
/*optional, string, gender of the person in the face picture: "male", "female", "unknown"*/
"PersonInfoExtends":[{

416
Intelligent Security API (Person-Based Access Control) Developer Guide

/*optional, additional person information*/


"id":1,
/*optional, int, ID of the additional person information, it corresponds to the id in the message of the request URI /
ISAPI/AccessControl/personInfoExtendName?format=json*/
"value":""
/*optional, string, content of the additional person information*/
}],
"operateType": "byTerminal",
/*optional, string, operation type: "byTerminal"-by terminal*/
"terminalNoList": [1]
/*optional, array, terminal ID list, this node is required when operation type is "byTerminal"; currently, only one
terminal is supported*/
}
}

JSON_UserInfoCount
UserInfoCount message in JSON format
{
"UserInfoCount":{
"userNumber":
/*required, integer, number of persons*/
}
}

JSON_UserInfoDelCond
JSON message about user information to be deleted
{
"UserInfoDelCond":{
"EmployeeNoList":[{
/*optional, person ID list (if this node does not exist or is set to NULL, it indicates deleting all person information)*/
"employeeNo":""
/*optional, string, employee No. (person ID)*/
}],
"operateType": "byTerminal",
/*optional, string, operation type: "byTerminal"-by terminal*/
"terminalNoList": [1]
/*optional, array, terminal ID list, this node is required when operation type is "byTerminal"; currently, only one
terminal is supported*/
}
}

417
Intelligent Security API (Person-Based Access Control) Developer Guide

JSON_UserInfoDetail
JSON message about user information
{
"UserInfoDetail":{
"mode":"",
/*required, string, deleting mode: "all"-delete all, "byEmployeeNo"-delete by employee No. (person ID)*/
"EmployeeNoList":[{
/*optional, person ID list, if this node does not exist or is null, it indicates deleting all person information (including
linked cards and fingerprints) and permissions*/
"employeeNo":""
/*optional, string, employee No. (person ID), it is valid when mode is "byEmployeeNo"*/
}],
"operateType": "byTerminal",
/*optional, string, operation type: "byTerminal"-by terminal, "byOrg"-by organization, "byTerminalOrg"-by terminal
organization*/
"terminalNoList": [ 1, 2, 3, 4 ],
/*optional, array, terminal ID list, this node is required when operation type is "byTerminal" or "byTerminalOrg"*/
"orgNoList": [ 1, 2, 3, 4 ]
/*optional, array, organization ID list, this node is required when operation type is "byOrg" or "byTerminalOrg"*/
}
}

JSON_UserInfoDetailDeleteProcess
UserInfoDetailDeleteProcess message in JSON format
{
"UserInfoDetailDeleteProcess":{
"status":""
/*required, string type, status: "processing", "success", "failed"*/
}
}

JSON_UserInfoSearch
UserInfoSearch message in JSON format
{
"UserInfoSearch":{
"searchID":"",
/*required, string type, search ID, which is used to confirm the upper-level platform or system. If the platform or the
system is the same one during two searching, the search history will be saved in the memory to speed up next
searching*/
"responseStatusStrg":"",
/*required, string, search status: "OK"-searching completed, "NO MATCH"-no matched results, "MORE"-searching for
more results*/

418
Intelligent Security API (Person-Based Access Control) Developer Guide

"numOfMatches": ,
/*required, integer32, number of returned results this time*/
"totalMatches": ,
/*required, integer32, total number of matched results*/
"UserInfo":[{
/*optional, person information*/
"employeeNo":"",
/*required, string, employee No. (person ID)*/
"name":"",
/*optional, string, person name*/
"userType":"",
/*required, string, person type: "normal"-normal person (household), "visitor", "blackList"-person in blocklist*/
"closeDelayEnabled": ,
/*optional, boolean, whether to enable door close delay: "true"-yes, "false"-no*/
"Valid":{
/*required, parameters of the effective period*/
"enable":"",
/*required, boolean, whether to enable the effective period: "false"-disable, "true"-enable. If this node is set to
"false", the effective period is permanent*/
"beginTime":"",
/*required, start time of the effective period (if timeType does not exist or is "local", the beginTime is the device local
time, e.g., 2017-08-01T17:30:08; if timeType is "UTC", the beginTime is UTC time, e.g., 2017-08-01T17:30:08+08:00)*/
"endTime":"",
/*required, end time of the effective period (if timeType does not exist or is "local", the endTime is the device local
time, e.g., 2017-08-01T17:30:08; if timeType is "UTC", the endTime is UTC time, e.g., 2017-08-01T17:30:08+08:00)*/
"timeType":""
/*optional, string, time type: "local"- device local time, "UTC"- UTC time*/
},
"belongGroup":"",
/*optional, string, group*/
"password":"",
/*optional, string, password*/
"doorRight":"",
/*optional, string, No. of door or lock that has access permission, e.g., "1,3" indicates having permission to access
door (lock) No. 1 and No. 3*/
"RightPlan":[{
/*optional, access permission schedule of the door or lock*/
"doorNo": ,
/*optional, integer, door No. (lock ID)*/
"planTemplateNo":""
/*optional, string, schedule template No.*/
}],
"maxOpenDoorTime": ,
/*optional, integer, the maximum authentication attempts, 0-unlimited*/
"openDoorTime": ,
/*optional, integer, read-only, authenticated attempts*/
"roomNumber": ,
/*optional, integer, room No.*/
"floorNumber": ,
/*optional, integer, floor No.*/
"doubleLockRight": ,
/*optional, boolean, whether to have the permission to open the double-locked door: "true"-yes, "false"-no*/

419
Intelligent Security API (Person-Based Access Control) Developer Guide

"localUIRight": ,
/*optional, boolean, whether to have the permission to access the device local UI: "true"-yes, "false"-no*/
"userVerifyMode":"",
/*optional, string, person authentication mode: "cardAndPw"-card+password, "card"-card, "cardOrPw"-card or
password, "fp"-fingerprint, "fpAndPw"-fingerprint+password, "fpOrCard"-fingerprint or card, "fpAndCard"-fingerprint
+card, "fpAndCardAndPw"-fingerprint+card+password, "faceOrFpOrCardOrPw"-face or fingerprint or card or
password, "faceAndFp"-face+fingerprint, "faceAndPw"-face+password, "faceAndCard"-face+card, "face"-face,
"employeeNoAndPw"-employee No.+password, "fpOrPw"-fingerprint or password, "employeeNoAndFp"-employee
No.+fingerprint, "employeeNoAndFpAndPw"-employee No.+fingerprint+password, "faceAndFpAndCard"-face
+fingerprint+card, "faceAndPwAndFp"-face+password+fingerprint, "employeeNoAndFace"-employee No.+face,
"faceOrfaceAndCard"-face or face+card, "fpOrface"-fingerprint or face, "cardOrfaceOrPw"-card or face or password,
"cardOrFace"-card or face, "cardOrFaceOrFp"-card or face or fingerprint, "cardOrFpOrPw"-card or fingerprint or
password. The priority of the person authentication mode is higher than that of the card reader authentication
mode*/
"dynamicCode": "123456",
/*optional, string, dynamic permission code, this node is write-only*/
"callNumbers": ["","",""],
/*optional, array of string, list of called numbers, the default rule is "X-X-X-X", e.g., "1-1-1-401". This node is the
extension of the node roomNumber. When the number list is supported, you need to use this node to configure
parameters*/
"floorNumbers": [1,2],
/*optional, array of int, floor No. list. This node is the extension of floorNumber. When the number list is supported,
you need to use this node to configure parameters*/
"numOfFace":0,
/*optional, int, number of linked face pictures. This node is read-only and if it is not returned, it indicates that this
function is not supported*/
"numOfFP":0,
/*optional, int, number of linked fingerprints. This node is read-only and if it is not returned, it indicates that this
function is not supported*/
"numOfCard":0,
/*optional, int, number of linked cards. This node is read-only and if it is not returned, it indicates that this function is
not supported*/
"gender":"",
/*optional, string, gender of the person in the face picture: "male", "female", "unknown"*/
"PersonInfoExtends":[{
/*optional, additional person information*/
"id":1,
/*optional, int, ID of the additional person information, it corresponds to the id in the message of the request URI /
ISAPI/AccessControl/personInfoExtendName?format=json*/
"value":""
/*optional, string, content of the additional person information*/
}]
}]
}
}

JSON_UserInfoSearchCond
UserInfoSearchCond message in JSON format

420
Intelligent Security API (Person-Based Access Control) Developer Guide

{
"UserInfoSearchCond":{
"searchID":"",
/*required, string type, search ID, which is used to confirm the upper-level platform or system. If the platform or the
system is the same one during two searching, the search history will be saved in the memory to speed up next
searching*/
"searchResultPosition": ,
/*required, integer32 type, the start position of the search result in the result list. When there are multiple records
and you cannot get all search results at a time, you can search for the records after the specified position next time*/
"maxResults": ,
/*required, integer32 type, maximum number of search results. If maxResults exceeds the range returned by the
device capability, the device will return the maximum number of search results according to the device capability and
will not return error message*/
"EmployeeNoList":[{
/*optional, person ID list (if this node does not exist or is empty, it indicates searching for all person information)*/
"employeeNo":""
/*optional, string type, employee No. (person ID)*/
}],
"fuzzySearch":""
/*optional, string, key words for fuzzy search*/
}
}

JSON_UserRightHolidayGroupCfg
UserRightHolidayGroupCfg message in JSON format
{
"UserRightHolidayGroupCfg": {
"enable": ,
/*required, boolean, whether to enable: "true"-enable, "false"-disable*/
"groupName": "",
/*required, string, holiday group name*/
"holidayPlanNo": "",
/*required, string, holiday group schedule No.*/
"operateType": "byTerminal",
/*optional, string, operation type: "byTerminal"-by terminal, "byOrg"-by organization, "byTerminalOrg"-by terminal
organization*/
"terminalNoList": [ 1, 2, 3, 4 ],
/*optional, array, terminal ID list, this node is required when operation type is "byTerminal" or "byTerminalOrg"*/
"orgNoList": [ 1, 2, 3, 4 ]
/*optional, array, organization ID list, this node is required when operation type is "byOrg" or "byTerminalOrg"*/
}
}

JSON_UserRightHolidayPlanCfg
JSON message about holiday schedule parameters of the access permission control

421
Intelligent Security API (Person-Based Access Control) Developer Guide

{
"UserRightHolidayPlanCfg": {
"enable": ,
/*required, boolean,whether to enable: "true"-enable, "false"-disable*/
"beginDate": "",
/*start date of the holiday (device local time)*/
"endDate": "",
/*end date of the holiday (device local time)*/
"HolidayPlanCfg" : [{
/*holiday schedule parameters*/
"id": ,
/*required, integer, time period No., which is between 1 and 8*/
"enable": ,
/*required, boolean,whether to enable: "true"-enable, "false"-disable*/
"TimeSegment": {
"beginTime": "",
/*required, start time of the time period (device local time)*/
"endTime": ""
/*required, end time of the time period (device local time)*/
}
}],
"operateType": "byTerminal",
/*optional, string, operation type: "byTerminal"-by terminal, "byOrg"-by organization, "byTerminalOrg"-by terminal
organization*/
"terminalNoList": [ 1, 2, 3, 4 ],
/*optional, array, terminal ID list, this node is required when operation type is "byTerminal" or "byTerminalOrg"*/
"orgNoList": [ 1, 2, 3, 4 ]
/*optional, array, organization ID list, this node is required when operation type is "byOrg" or "byTerminalOrg"*/
}
}

JSON_UserRightPlanTemplate
JSON message about schedule template configuration parameters of the access permission control
{
"UserRightPlanTemplate": {
"enable": ,
/*required, boolean,whether to enable: "true"-enable, "false"-disable*/
"templateName": "",
/*required, string, template name*/
"weekPlanNo": ,
/*required, integer, week schedule No.*/
"holidayGroupNo": "",
/*required, string, holiday group No.*/
"operateType": "byTerminal",
/*optional, string, operation type: "byTerminal"-by terminal, "byOrg"-by organization, "byTerminalOrg"-by terminal
organization*/
"terminalNoList": [ 1, 2, 3, 4 ],
/*optional, array, terminal ID list, this node is required when operation type is "byTerminal" or "byTerminalOrg"*/

422
Intelligent Security API (Person-Based Access Control) Developer Guide

"orgNoList": [ 1, 2, 3, 4 ]
/*optional, array, organization ID list, this node is required when operation type is "byOrg" or "byTerminalOrg"*/
}
}

JSON_UserRightWeekPlanCfg
JSON message about week schedule parameters of the access permission control
{
"UserRightWeekPlanCfg":{
"enable": ,
/*required, boolean, whether to enable: "true"-enable, "false"-disable*/
"WeekPlanCfg":[{
/*required, week schedule parameters*/
"week":"",
/*required, string, day of the week: "Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday", "Sunday"*/
"id": ,
/*required, integer, time period No., which is between 1 and 8*/
"enable": ,
/*required, boolean,whether to enable: "true"-enable, "false"-disable*/
"TimeSegment":{
"beginTime":"",
/*required, start time of the time period (device local time)*/
"endTime":""
/*required, end time of the time period (device local time)*/
}
}],
"operateType": "byTerminal",
/*optional, string, operation type: "byTerminal"-by terminal, "byOrg"-by organization, "byTerminalOrg"-by terminal
organization*/
"terminalNoList": [ 1, 2, 3, 4 ],
/*optional, array, terminal ID list, this node is required when operation type is "byTerminal" or "byTerminalOrg"*/
"orgNoList": [ 1, 2, 3, 4 ]
/*optional, array, organization ID list, this node is required when operation type is "byOrg" or "byTerminalOrg"*/
}
}

JSON_Verification
JSON message about verification parameters of section password.
{
"Verification": {
"sectionNo": ,
/*requried, integer, section No.*/
"passwordType": "",
/*optional, string, password types: "KeyA" (default), "KeyB"*/
"password": ""

423
Intelligent Security API (Person-Based Access Control) Developer Guide

/*optional, string, a hexadecimal key, which depends on the password type*/


}
}

JSON_VerifyHolidayGroupCfg
VerifyHolidayGroupCfg message in JSON format
{
"VerifyHolidayGroupCfg": {
"enable": ,
/*required, boolean,whether to enable: "true"-enable, "false"-disable*/
"groupName": "",
/*required, string, holiday group name*/
"holidayPlanNo": ""
/*required, string, holiday group schedule No.*/
}
}

JSON_VerifyHolidayPlanCfg
VerifyHolidayPlanCfg message in JSON format
{
"VerifyHolidayPlanCfg": {
"enable": ,
/*required, boolean, whether to enable: "true"-enable, "false"-disable*/
"beginDate": "",
/*required, start date of the holiday (device local time)*/
"endDate": "",
/*required, end date of the holiday (device local time)*/
"HolidayPlanCfg": [{
/*required, holiday schedule parameters*/
"id": ,
/*required, integer, time period No., which is between 1 and 8*/
"enable": ,
/*required, boolean, whether to enable: "true"-enable, "false"-disable*/
"verifyMode": "",
/*required, string, authentication mode: "cardAndPw"-card+password, "card", "cardOrPw"-card or password, "fp"-
fingerprint, "fpAndPw"-fingerprint+password, "fpOrCard"-fingerprint or card, "fpAndCard"-fingerprint+card,
"fpAndCardAndPw"-fingerprint+card+password, "faceOrFpOrCardOrPw"-face or fingerprint or card or password,
"faceAndFp"-face+fingerprint, "faceAndPw"-face+password, "faceAndCard"-face+card, "face", "employeeNoAndPw"-
employee No.+password, "fpOrPw"-fingerprint or password, "employeeNoAndFp"-employee No.+fingerprint,
"employeeNoAndFpAndPw"-employee No.+fingerprint+password, "faceAndFpAndCard"-face+fingerprint+card,
"faceAndPwAndFp"-face+password+fingerprint, "employeeNoAndFace"-employee No.+face, "faceOrfaceAndCard"-
face or face+card, "fpOrface"-fingerprint or face, "cardOrfaceOrPw"-card or face or password, "cardOrFace"-card or
face, "cardOrFaceOrFp"-card or face or fingerprint, "cardOrFpOrPw"-card or fingerprint or password, "sleep",
"invalid"*/
"TimeSegment": {

424
Intelligent Security API (Person-Based Access Control) Developer Guide

"beginTime": "",
/*required, start time of the time period (device local time)*/
"endTime": "",
/*required, end time of the time period (device local time)*/
}
}]
}
}

JSON_VerifyPlanTemplate
VerifyPlanTemplate message in JSON format
{
"VerifyPlanTemplate": {
"enable": ,
/*required, boolean,whether to enable: "true"-enable, "false"-disable*/
"templateName": "",
/*required, string, template name*/
"weekPlanNo": ,
/*required, integer, week schedule No.*/
"holidayGroupNo": ""
/*required, string, holiday group No.*/
}
}

JSON_VerifyWeekPlanCfg
VerifyWeekPlanCfg message in JSON format
{
"VerifyWeekPlanCfg":{
"enable": ,
/*required, boolean, whether to enable: "true"-enable, "false"-disable*/
"WeekPlanCfg":[{
/*required, week schedule parameters*/
"week":"",
/*required, string, days of the week: "Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday",
"Sunday"*/
"id": ,
/*required, integer, time period No., which is between 1 and 8*/
"enable": ,
/*required, boolean,whether to enable: "true"-enable, "false"-disable*/
"verifyMode":"",
/*required, string, authentication mode: "cardAndPw"-card+password, "card"-card, "cardOrPw"-card or password,
"fp"-fingerprint, "fpAndPw"-fingerprint+password, "fpOrCard"-fingerprint or card, "fpAndCard"-fingerprint+card,
"fpAndCardAndPw"-fingerprint+card+password, "faceOrFpOrCardOrPw"-face or fingerprint or card or password,
"faceAndFp"-face+fingerprint, "faceAndPw"-face+password, "faceAndCard"-face+card, "face"-face,
"employeeNoAndPw"-employee No.+password, "fpOrPw"-fingerprint or password, "employeeNoAndFp"-employee

425
Intelligent Security API (Person-Based Access Control) Developer Guide

No.+fingerprint, "employeeNoAndFpAndPw"-employee No.+fingerprint+password, "faceAndFpAndCard"-face


+fingerprint+card, "faceAndPwAndFp"-face+password+fingerprint, "employeeNoAndFace"-employee No.+face,
"faceOrfaceAndCard"-face or face+card, "fpOrface"-fingerprint or face, "cardOrfaceOrPw"-card or face or password,
"cardOrFace"-card or face, "cardOrFaceOrFp"-card or face or fingerprint, "cardOrFpOrPw"-card or fingerprint or
password, "sleep", "invalid"*/
"TimeSegment":{
"beginTime":"",
/*required, start time of the time period (device local time)*/
"endTime":""
/*required, end time of the time period (device local time)*/
}
}]
}
}

B.1.2 XML Messages

XML_CaptureFaceData
CaptureFaceData message in XML format
<CaptureFaceData version="2.0" xmlns="http://www.isapi.org/ver20/XMLSchema">
<faceDataUrl>
<!--dep, xs: string, face data URL, if this node does not exist, it indicates that there is no face data-->
</faceDataUrl>
<captureProgress>
<!--req, xs: integer, collection progress, which is between 0 and 100, 0-no face data collected, 100-collected, the
face data URL can be parsed only when the progress is 100-->
</captureProgress>
<isCurRequestOver>
<!--opt, xs:boolean, whether the current collection request is completed: "true"-yes, "false"-no-->
</isCurRequestOver>
<infraredFaceDataUrl>
<!--dep, xs:string, infrared face data URL, if this node does not exist, it indicates that there is no infrared face data-->
</infraredFaceDataUrl>
</CaptureFaceData>

XML_CaptureFaceDataCond
CaptureFaceDataCond message in XML format
<CaptureFaceDataCond version="2.0" xmlns="http://www.isapi.org/ver20/XMLSchema">
<captureInfrared>
<!--opt, xs:boolean, whether to collect infrared face pictures simultaneously: "true"-yes, "false"-no-->
</captureInfrared>
<dataType><!--opt, xs:string, data type of collected face pictures: "url" (default), "binary"--></dataType>
</CaptureFaceDataCond>

426
Intelligent Security API (Person-Based Access Control) Developer Guide

XML_CaptureFingerPrint
CaptureFingerPrint message in XML format
<CaptureFingerPrint version="2.0" xmlns="http://www.isapi.org/ver20/XMLSchema">
<fingerData><!--dep, xs:string, fingerprint data, which is between 1 and 768, and it should be encoded by Base64--></
fingerData>
<fingerNo><!--req, xs:integer, finger No., which is between 1 and 10--></fingerNo>
<fingerPrintQuality><!--req, xs:integer, fingerprint quality, which is between 1 and 100--></fingerPrintQuality>
</CaptureFingerPrint>

XML_CaptureFingerPrintCond
CaptureFingerPrintCond message in XML format
<CaptureFingerPrintCond version="2.0" xmlns="http://www.isapi.org/ver20/XMLSchema">
<fingerNo><!--req, xs: integer, finger No., which is between 1 and 10--></fingerNo>
</CaptureFingerPrintCond>

XML_Cap_AccessControl
AccessControl capability message in XML format
<AccessControl version="2.0" xmlns="http://www.isapi.org/ver20/XMLSchema">
<isSupportWiegandCfg>
<!--optional, xs:boolean, whether it supports Wiegand configuration-->
</isSupportWiegandCfg>
<isSupportModuleStatus>
<!--optional, xs:boolean, whether it supports getting the status of secure door control unit-->
</isSupportModuleStatus>
<isSupportSNAPConfig>
<!--optional, xs:boolean, whether it supports getting capture linkage parameters-->
</isSupportSNAPConfig>
<LocalController><!--opt-->
<isSupportLocalControllerManage>
<!--optional, xs:boolean, whether it supports distributed access controller management-->
</isSupportLocalControllerManage>
<isSupportLocalControllerControl>
<!--optional, xs:boolean, whether it supports distributed access controller control-->
</isSupportLocalControllerControl>
</LocalController>
<isSupportUSBManage>
<!--optional, xs:boolean, whether it supports USB management of access control device-->
</isSupportUSBManage>
<isSupportIdentityTerminal>
<!--optional, xs:boolean, whether it supports face recognition terminal configuration-->
</isSupportIdentityTerminal>
<isSupportDepartmentParam>

427
Intelligent Security API (Person-Based Access Control) Developer Guide

<!--optional, xs:boolean, whether it supports setting department parameters-->


</isSupportDepartmentParam>
<isSupportSchedulePlan>
<!--optional, xs:boolean, whether it supports setting shift schedule-->
</isSupportSchedulePlan>
<isSupportAttendanceRule>
<!--optional, xs:boolean, whether it supports setting time and attendance rule-->
</isSupportAttendanceRule>
<isSupportOrdinaryClass>
<!--optional, xs:boolean, whether it supports setting normal shift parameters-->
</isSupportOrdinaryClass>
<isSupportWorkingClass>
<!--optional, xs:boolean, whether it supports setting man-hour shift parameters-->
</isSupportWorkingClass>
<isSupportAttendanceHolidayGroup>
<!--optional, xs:boolean, whether it supports setting holiday group for time and attendance-->
</isSupportAttendanceHolidayGroup>
<isSupportAttendanceHolidayPlan>
<!--optional, xs:boolean, whether it supports setting holiday schedule for time and attendance-->
</isSupportAttendanceHolidayPlan>
<isSupportLadderControlRelay>
<!--optional, xs:boolean, whether it supports setting elevator controller relay-->
</isSupportLadderControlRelay>
<isSupportWiegandRuleCfg>
<!--optional, xs:boolean, whether it supports setting Wiegand rule-->
</isSupportWiegandRuleCfg>
<isSupportM1CardEncryptCfg>
<!--optional, xs:boolean, whether it supports M1 card encryption authentication-->
</isSupportM1CardEncryptCfg>
<isSupportDeployInfo>
<!--optional, xs:boolean, whether it supports getting arming information-->
</isSupportDeployInfo>
<isSupportSubmarineBack>
<!--optional, xs:boolean, whether it supports specifying anti-passing back server-->
</isSupportSubmarineBack>
<isSupportSubmarineBackHostInfo>
<!--optional, xs:boolean, whether it supports setting access controllers with anti-passing back enabled-->
</isSupportSubmarineBackHostInfo>
<isSupportStartReaderInfo>
<!--optional, xs:boolean, whether it supports setting first card reader-->
</isSupportStartReaderInfo>
<isSupportSubmarineBackReader>
<!--optional, xs:boolean, whether it supports setting anti-passing back card reader-->
</isSupportSubmarineBackReader>
<isSupportServerDevice>
<!--optional, xs:boolean, whether it supports setting anti-passing back server information-->
</isSupportServerDevice>
<isSupportReaderAcrossHost>
<!--optional, xs:boolean, whether it supports enabling cross-controller anti-passing back function of card reader-->
</isSupportReaderAcrossHost>
<isSupportClearCardRecord>
<!--optional, xs:boolean, whether it supports clearing card swiping records in anti-passing back server-->

428
Intelligent Security API (Person-Based Access Control) Developer Guide

</isSupportClearCardRecord>
<isSupportSubmarineBackMode>
<!--optional, xs:boolean, whether it supports setting anti-passing back mode-->
</isSupportSubmarineBackMode>
<isSupportClearSubmarineBack>
<!--optional, xs:boolean, whether it supports clearing cross-controller anti-passing back information-->
</isSupportClearSubmarineBack>
<isSupportFaceCompareCond><!--optional, xs:boolean, whether it supports configuring restriction condition
parameters of face picture comparison--></isSupportFaceCompareCond>
<isSupportRemoteControlDoor>
<!--optional, xs:boolean, whether it supports remote door, elevator, and lock control: "true"-yes, this node is not
returned-no-->
</isSupportRemoteControlDoor>
<isSupportUserInfo><!--optional, xs:boolean, whether it supports person management based on person--></
isSupportUserInfo>
<EmployeeNoInfo><!--dep, employee No. (person ID) information, this node is valid only when the
isSupportUserInfo is "true"-->
<employeeNo min="" max=""><!--optional, employee No. (person ID)--></employeeNo>
<characterType opt="any,number">
<!--optional, employee No. (person) ID type: "any"-any characters (default), "number"-digits (from 0 to 9), only one
value can be returned-->
</characterType>
<isSupportCompress>
<!--optional, xs:boolean, whether it supports compressing employee No. (person) ID for storage: "true"-yes, this
node is not returned-no-->
</isSupportCompress>
</EmployeeNoInfo>
<isSupportCardInfo><!--optional, xs:boolean, whether it supports card management based on person: "true"-yes,
this node is not returned-no--></isSupportCardInfo>
<isSupportFDLib><!--optional, xs:boolean, whether it supports face picture library management--></isSupportFDLib>
<isSupportUserInfoDetailDelete><!--optional, xs:boolean, whether it supports deleting person information and
permission: "true"-yes, this node is not returned-no--></isSupportUserInfoDetailDelete>
<isSupportAuthCodeInfo>
<!--optional, xs:boolean, whether it supports authentication password management: "true"-yes, this node is not
returned-no-->
</isSupportAuthCodeInfo>
<isSupportFingerPrintCfg>
<!--optional, xs:boolean, whether it supports configuring fingerprint parameters: "true"-yes, this node is not
returned-no-->
</isSupportFingerPrintCfg>
<isSupportFingerPrintDelete>
<!--optional, xs:boolean, whether it supports deleting fingerprint: "true"-yes, this node is not returned-no-->
</isSupportFingerPrintDelete>
<isSupportCaptureFingerPrint>
<!--optional, xs:boolean, whether it supports collecting fingerprint information: "true"-yes, this node is not returned-
no-->
</isSupportCaptureFingerPrint>
<isSupportDoorStatusWeekPlanCfg>
<!--optional, xs:boolean, whether it supports configuring door control week schedule: "true"-yes, this node is not
returned-no-->
</isSupportDoorStatusWeekPlanCfg>
<isSupportVerifyWeekPlanCfg>

429
Intelligent Security API (Person-Based Access Control) Developer Guide

<!--optional, xs:boolean, whether it supports configuring week schedule of the card reader authentication mode:
"true"-yes, this node is not returned-no-->
</isSupportVerifyWeekPlanCfg>
<isSupportCardRightWeekPlanCfg>
<!--optional, xs:boolean, whether it supports configuring week schedule of the access permission control: "true"-
yes, this node is not returned-no-->
</isSupportCardRightWeekPlanCfg>
<isSupportDoorStatusHolidayPlanCfg>
<!--optional, xs:boolean, whether it supports configuring door control holiday schedule: "true"-yes, this node is not
returned-no-->
</isSupportDoorStatusHolidayPlanCfg>
<isSupportVerifyHolidayPlanCfg>
<!--optional, xs:boolean, whether it supports configuring holiday schedule of the card reader authentication mode:
"true"-yes, this node is not returned-no-->
</isSupportVerifyHolidayPlanCfg>
<isSupportCardRightHolidayPlanCfg>
<!--optional, xs:boolean, whether it supports configuring holiday schedule of the access permission control: "true"-
yes, this node is not returned-no-->
</isSupportCardRightHolidayPlanCfg>
<isSupportDoorStatusHolidayGroupCfg>
<!--optional, xs:boolean, whether it supports configuring holiday group of the door control schedule: "true"-yes, this
node is not returned-no-->
</isSupportDoorStatusHolidayGroupCfg>
<isSupportVerifyHolidayGroupCfg>
<!--optional, xs:boolean, whether it supports configuring holiday group of the control schedule of the card reader
authentication mode: "true"-yes, this node is not returned-no-->
</isSupportVerifyHolidayGroupCfg>
<isSupportUserRightHolidayGroupCfg>
<!--optional, xs:boolean, whether it supports configuring holiday group of the access permission control schedule:
"true"-yes, this node is not returned-no-->
</isSupportUserRightHolidayGroupCfg>
<isSupportDoorStatusPlanTemplate>
<!--optional, xs:boolean, whether it supports configuring door control schedule template: "true"-yes, this node is
not returned-no-->
</isSupportDoorStatusPlanTemplate>
<isSupportVerifyPlanTemplate>
<!--optional, xs:boolean, whether it supports configuring schedule template of the card reader authentication
mode: "true"-yes, this node is not returned-no-->
</isSupportVerifyPlanTemplate>
<isSupportUserRightPlanTemplate>
<!--optional, xs:boolean, whether it supports configuring schedule template of the access permission control: "true"-
yes, this node is not returned-no-->
</isSupportUserRightPlanTemplate>
<isSupportDoorStatusPlan>
<!--optional, xs:boolean, whether it supports configuring door control schedule: "true"-yes, this node is not
returned-no-->
</isSupportDoorStatusPlan>
<isSupportCardReaderPlan>
<!--optional, xs:boolean, whether it supports configuring control schedule of the card reader authentication mode:
"true"-yes, this node is not returned-no-->
</isSupportCardReaderPlan>
<isSupportClearPlansCfg>

430
Intelligent Security API (Person-Based Access Control) Developer Guide

<!--optional, xs:boolean, whether it supports clearing the access control schedule parameters: "true"-yes, this node
is not returned-no-->
</isSupportClearPlansCfg>
<isSupportRemoteControlBuzzer>
<!--optional, xs:boolean, whether it supports remotely controlling the buzzer of the card reader: "true"-yes, this
node is not returned-no-->
</isSupportRemoteControlBuzzer>
<isSupportEventCardNoList>
<!--optional, xs:boolean, whether it supports getting the list of event and card linkage ID: "true"-yes, this node is not
returned-no-->
</isSupportEventCardNoList>
<isSupportEventCardLinkageCfg>
<!--optional, xs:boolean, whether it supports configuring event and card linkage parameters: "true"-yes, this node is
not returned-no-->
</isSupportEventCardLinkageCfg>
<isSupportClearEventCardLinkageCfg>
<!--optional, xs:boolean, whether it supports clearing event and card linkage parameters: "true"-yes, this node is
not returned-no-->
</isSupportClearEventCardLinkageCfg>
<isSupportAcsEvent>
<!--optional, xs:boolean, whether it supports searching for access control events: "true"-yes, this node is not
returned-no-->
</isSupportAcsEvent>
<isSupportAcsEventTotalNum>
<!--optional, xs:boolean, whether it supports getting total number of access control events by specific conditions:
"true"-yes, this node is not returned-no-->
</isSupportAcsEventTotalNum>
<isSupportDeployInfo>
<!--optional, xs:boolean, whether it supports getting the arming information: "true"-yes, this node is not returned-
no-->
</isSupportDeployInfo>
<isSupportEventOptimizationCfg>
<!--optional, xs:boolean, whether it supports configuring event optimization: "true"-yes, this node is not returned-
no-->
</isSupportEventOptimizationCfg>
<isSupportAcsWorkStatus>
<!--optional, xs:boolean, whether it supports getting working status of the access control device: "true"-yes, this
node is not returned-no-->
</isSupportAcsWorkStatus>
<isSupportDoorCfg>
<!--optional, xs:boolean, whether it supports configuring door parameters: "true"-yes, this node is not returned-no--
>
</isSupportDoorCfg>
<isSupportCardReaderCfg>
<!--optional, xs:boolean, whether it supports configuring card reader parameters: "true"-yes, this node is not
returned-no-->
</isSupportCardReaderCfg>
<isSupportAcsCfg>
<!--optional, xs:boolean, whether it supports configuring parameters of access control device: "true"-yes, this node
is not returned-no-->
</isSupportAcsCfg>
<isSupportRemoteCheck>

431
Intelligent Security API (Person-Based Access Control) Developer Guide

<!--optional, xs:boolean, whether it supports verifying access control events remotely: true-yes, this field is not
returned-no-->
</isSupportRemoteCheck>
<isSupportMaskDetection>
<!--optional, xs:boolean, whether it supports mask detection: true-yes, this field is not returned-no-->
</isSupportMaskDetection>
<isSupportGroupCfg>
<!--optional, xs:boolean, whether it supports configuring group parameters: "true"-yes, this node is not returned-
no-->
</isSupportGroupCfg>
<isSupportClearGroupCfg>
<!--optional, xs:boolean, whether it supports clearing group parameters: "true"-yes, this node is not returned-no-->
</isSupportClearGroupCfg>
<isSupportMultiCardCfg>
<!--optional, xs:boolean, whether it supports configuring multiple authentication mode: "true"-yes, this node is not
returned-no-->
</isSupportMultiCardCfg>
<isSupportMultiDoorInterLockCfg>
<!--optional, xs:boolean, whether it supports configuring multi-door interlocking parameters: "true"-yes, this node
is not returned-no-->
</isSupportMultiDoorInterLockCfg>
<isSupportAntiSneakCfg>
<!--optional, xs:boolean, whether it supports configuring anti-passing back parameters in the device: "true"-yes, this
node is not returned-no-->
</isSupportAntiSneakCfg>
<isSupportCardReaderAntiSneakCfg>
<!--optional, xs:boolean, whether it supports configuring anti-passing back parameters for the card reader in the
device: "true"-yes, this node is not returned-no-->
</isSupportCardReaderAntiSneakCfg>
<isSupportClearAntiSneakCfg>
<!--optional, xs:boolean, whether it supports clearing anti-passing back parameters: "true"-yes, this node is not
returned-no-->
</isSupportClearAntiSneakCfg>
<isSupportClearAntiSneak>
<!--optional, xs:boolean, whether it supports clearing anti-passing back records in the device: "true"-yes, this node
is not returned-no-->
</isSupportClearAntiSneak>
<isSupportSmsRelativeParam>
<!--optional, xs:boolean, whether it supports configuring message function: "true"-yes, this node is not returned-
no-->
</isSupportSmsRelativeParam>
<isSupportPhoneDoorRightCfg>
<!--optional, xs:boolean, whether it supports configuring the door permission linked to the mobile phone number:
"true"-yes, this node is not returned-no-->
</isSupportPhoneDoorRightCfg>
<isSupportOSDPStatus>
<!--optional, xs:boolean, whether it supports searching for OSDP card reader status: "true"-yes, this node is not
returned-no-->
</isSupportOSDPStatus>
<isSupportOSDPModify>
<!--optional, xs:boolean, whether it supports editing OSDP card reader ID: "true"-yes, this node is not returned-no-->
</isSupportOSDPModify>

432
Intelligent Security API (Person-Based Access Control) Developer Guide

<isSupportLogModeCfg>
<!--optional, xs:boolean, whether it supports configuring log mode: "true"-yes, this node is not returned-no-->
</isSupportLogModeCfg>
<FactoryReset>
<isSupportFactoryReset><!--optional, xs: boolean, whether it supports restoring to default settings by condition--></
isSupportFactoryReset>
<mode opt="full,basic,part"><!--optional, xs: string, conditions for restoring to default settings--></mode>
</FactoryReset>
<isSupportNFCCfg><!--optional, xs:boolean,whether it supports enabling or disabling NFC function: "true"-yes, this
node is not returned-no--></isSupportNFCCfg>
<isSupportRFCardCfg><!--optional, xs:boolean,whether it supports enabling or disabling RF card recognition: "true"-
yes, this node is not returned-no--></isSupportRFCardCfg>
<isSupportCaptureFace>
<!--optional, xs:boolean, whether it supports collecting face pictures: "true"-yes, this node is not returned-no-->
</isSupportCaptureFace>
<isSupportCaptureInfraredFace>
<!--optional, xs:boolean, whether it supports collecting infrared face pictures: "true"-yes, this node is not returned-
no-->
</isSupportCaptureInfraredFace>
<isSupportFaceRecognizeMode>
<!--optional, xs:boolean, whether it supports configuring facial recognition mode: "true"-yes, this node is not
returned-no-->
</isSupportFaceRecognizeMode>
<isSupportRemoteControlPWChcek>
<!--optional, xs:boolean, whether it supports verifying the password for remote door control: "true"-yes, this node
is not returned-no-->
</isSupportRemoteControlPWChcek>
<isSupportRemoteControlPWCfg>
<!--optional, xs:boolean, whether it supports configuring the password for remote door control: "true"-yes, this
node is not returned-no-->
</isSupportRemoteControlPWCfg>
<isSupportAttendanceStatusModeCfg>
<!--optional, xs:boolean, whether it supports configuring attendance mode: "true"-yes, this node is not returned-
no-->
</isSupportAttendanceStatusModeCfg>
<isSupportAttendanceStatusRuleCfg>
<!--optional, xs:boolean, whether it supports configuring attendance status and rule: "true"-yes, this node is not
returned-no-->
</isSupportAttendanceStatusRuleCfg>
<isSupportCaptureCardInfo>
<!--optional, xs:boolean, whether it supports collecting card information: "true"-yes, this node is not returned-no-->
</isSupportCaptureCardInfo>
<isSupportCaptureIDInfo>
<!--optional, xs:boolean, whether it supports collecting ID card information: "true"-yes, this node is not returned-
no-->
</isSupportCaptureIDInfo>
<isSupportCaptureRule>
<!--optional, xs:boolean, whether it supports configuring online collection rules: "true"-yes, this node is not
returned-no-->
</isSupportCaptureRule>
<isSupportCapturePresetParam>
<!--optional, xs:boolean, whether it supports configuring preset parameters of online collection: "true"-yes, this

433
Intelligent Security API (Person-Based Access Control) Developer Guide

node is not returned-no-->


</isSupportCapturePresetParam>
<isSupportOfflineCapture>
<!--optional, xs:boolean, whether it supports offline collection: "true"-yes, this node is not returned-no-->
</isSupportOfflineCapture>
<isSupportCardOperations>
<!--optional, xs:boolean, whether it supports card operation: "true"-yes, this node is not returned-no-->
</isSupportCardOperations>
<isSupportRightControllerAudio>
<!--optional, xs:boolean, whether it supports configuring audio file parameters of the main controller-->
</isSupportRightControllerAudio>
<isSupportChannelControllerCfg>
<!--optional, xs:boolean, whether it supports configuring lane controller-->
</isSupportChannelControllerCfg>
<isSupportGateDialAndInfo>
<!--optional, xs:boolean, whether it supports getting local DIP and information of the turnstile-->
</isSupportGateDialAndInfo>
<isSupportGateStatus>
<!--optional, xs:boolean, whether it supports getting turnstile status-->
</isSupportGateStatus>
<isSupportGateIRStatus>
<!--optional, xs:boolean, whether it supports getting the status of the active infrared intrusion detector of the
turnstile-->
</isSupportGateIRStatus>
<isSupportGateRelatedPartsStatus>
<!--optional, xs:boolean, whether it supports getting related components' status of the turnstile-->
</isSupportGateRelatedPartsStatus>
<isSupportChannelControllerAlarmLinkage>
<!--optional, xs:boolean, whether it supports configuring alarm linkage of the lane controller-->
</isSupportChannelControllerAlarmLinkage>
<isSupportChannelControllerAlarmOut>
<!--optional, xs:boolean, whether it supports configuring alarm output of the lane controller-->
</isSupportChannelControllerAlarmOut>
<isSupportChannelControllerAlarmOutControl>
<!--optional, xs:boolean, whether it supports controlling alarm output of the lane controller-->
</isSupportChannelControllerAlarmOutControl>
<isSupportChannelControllerTypeCfg>
<!--optional, xs:boolean, whether it supports configuring device type of the lane controller-->
</isSupportChannelControllerTypeCfg>
<isSupportRemoteCtrllerModeCfg>
<!--optional, xs:boolean, whether it supports configuring parameters of the keyfob control mode-->
</isSupportRemoteCtrllerModeCfg>
<isSupportTTSText><!--optional, xs:boolean, whether it supports configuring the text of the audio prompt: true-yes.
If this function is not supported, this node will be not returned--></isSupportTTSText>
<isSupportIDBlackListCfg><!--optional, xs:boolean, whether it supports applying ID card blocklist: true-yes. If this
function is not supported, this node will be not returned--></isSupportIDBlackListCfg>
<isSupportUserDataImport><!--optional, xs:boolean, whether it supports importing person permission data: true-
yes. If this function is not supported, this node will be not returned--></isSupportUserDataImport>
<isSupportUserDataExport><!--optional, xs:boolean, whether it supports exporting person permission data: true-yes.
If this function is not supported, this node will be not returned--></isSupportUserDataExport>
<isSupportMaintenanceDataExport><!--optional, xs:boolean, whether it supports exporting maintenance data: true-
yes. If this function is not supported, this node will be not returned--></isSupportMaintenanceDataExport>

434
Intelligent Security API (Person-Based Access Control) Developer Guide

<isSupportLockTypeCfg><!--optional, xs:boolean, whether it supports configuring door lock status when the device is
powered off: true-yes. If this function is not supported, this node will be not returned--></isSupportLockTypeCfg>
<isSupportSafetyHelmetDetection><!--optional, xs:boolean, whether it supports configuring hard hat detection: true-
yes, this node is not returned-no--></isSupportSafetyHelmetDetection>
<isSupportKeyCfgAttendance><!--optional, xs:boolean, whether it supports configuring parameters of attendance
check by pressing the key: true-yes, this node is not returned-no--></isSupportKeyCfgAttendance>
<isSupportIDBlackListTemplate><!--optional, xs:boolean, whether it supports downloading the ID card blocklist
template: true-yes, this node is not returned-no--></isSupportIDBlackListTemplate>
<isSupportAttendanceWeekPlan><!--optional, xs:boolean, whether it supports configuring parameters of the week
attendance schedule: true-yes, this node is not returned-no--></isSupportAttendanceWeekPlan>
<isSupportClearAttendancePlan><!--optional, xs:boolean, whether it supports clearing the week attendance
schedule: true-yes, this node is not returned-no--></isSupportClearAttendancePlan>
<isSupportAttendanceMode><!--optional, xs:boolean, whether it supports configuring the attendance mode: true-
yes, this node is not returned-no--></isSupportAttendanceMode>
<isSupportAttendancePlanTemplate><!--whether it supports configuring the attendance schedule template: true-yes,
this node is not returned-no--></isSupportAttendancePlanTemplate>
<isSupportAttendancePlanTemplateList><!--optional, xs:boolean, whether it supports getting the list of attendance
schedule templates: true-yes, this node is not returned-no--></isSupportAttendancePlanTemplateList>
<isSupportCardVerificationRule><!--optional, xs:boolean, whether it supports configuring card No. authentication
mode: true-yes, this node is not returned-no--></isSupportCardVerificationRule>
</AccessControl>

XML_Cap_CaptureFaceData
CaptureFaceData capability message in XML format
<CaptureFaceData version="2.0" xmlns="http://www.isapi.org/ver20/XMLSchema">
<CaptureFaceDataCond>
<captureInfrared opt="true,false"><!--req, xs:boolean, whether to collect infrared face data--></captureInfrared>
<dataType opt="url,binary"><!--opt, xs:string, data type of collected face pictures: "url" (default), "binary"--
><dataType>
</CaptureFaceDataCond>
<faceDataUrl min="1" max="768">
<!--dep, xs:string, face data URL, if this node does not exist, it indicates that there is no face data-->
</faceDataUrl>
<captureProgress min="0" max="100">
<!--req, xs:integer, collection progress, which is between 0 and 100, 0-no face data collected, 100-collected, the face
data URL can be parsed only when the progress is 100-->
</captureProgress>
<isCurRequestOver opt="true,false">
<!--opt, xs:boolean, whether the current collection request is completed: "true"-yes, "false"-no-->
</isCurRequestOver>
<infraredFaceDataUrl min="1" max="100">
<!--req, xs:string, infrared face picture URL, if this node does not exist, it indicates that there is no infrared face
data-->
</infraredFaceDataUrl>
</CaptureFaceData>

435
Intelligent Security API (Person-Based Access Control) Developer Guide

XML_Cap_CaptureFingerPrint
CaptureFingerPrint capability message in XML format
<CaptureFingerPrint version="2.0" xmlns="http://www.isapi.org/ver20/XMLSchema">
<CaptureFingerPrintCond><!--req, xs: integer, finger No.-->
<fingerNo min="1" max="10"></fingerNo>
</CaptureFingerPrintCond>
<fingerData min="1" max="768"><!--dep, xs:string, fingerprint data--></fingerData>
<fingerNo min="1" max="10"><!--req, xs:integer, finger No.--></fingerNo>
<fingerPrintQuality min="1" max="100"><!--req, xs:integer, fingerprint quality--></fingerPrintQuality>
</CaptureFingerPrint>

XML_Cap_ClearCardRecord
ClearCardRecord capability message in XML format
<ClearCardRecord version="2.0" xmlns="http://www.isapi.org/ver20/XMLSchema">
<clearAllCard opt="true,false">
<!--req, xs: boolean, whether to clear all card swiping records in the cross-controller anti-passing back server-->
</clearAllCard>
<CardList size="32">
<cardNo min="1" max="32"><!--opt, xs: string, card No.--></cardNo>
</CardList>
<EmployeeNoList size="32">
<employeeNo min="" max=""><!--opt, xs:string, employee No. (person ID)--></employeeNo>
</EmployeeNoList>
</ClearCardRecord>

XML_Cap_ClearSubmarineBack
ClearSubmarineBack capability message in XML format
<ClearSubmarineBack version="2.0" xmlns="http://www.isapi.org/ver20/XMLSchema">
<clearHostInfo opt="true,false"><!--opt, xs: boolean, whether to clear access controller information--></
clearHostInfo>
<clearReaderInfo opt="true,false"><!--opt, xs: boolean, whether to clear card reader information--></
clearReaderInfo>
<clearSubmarineBack opt="true,false"><!--opt, xs: boolean, whether to clear anti-passing back server parameters--
></clearSubmarineBack>
<clearSubmarineBackHostInfo opt="true,false">
<!--opt, xs: boolean, whether to clear cross-controller anti-passing back parameters of access controllers-->
</clearSubmarineBackHostInfo>
<clearStartReaderInfo opt="true,false"><!--opt, xs: boolean, whether to clear first card reader parameters--></
clearStartReaderInfo>
<clearSubmarineBackReader opt="true,false">
<!--opt, xs: boolean, whether to clear cross-controller anti-passing back parameters of card readers-->
</clearSubmarineBackReader>

436
Intelligent Security API (Person-Based Access Control) Developer Guide

<clearSubmarineBackMode opt="true,false">
<!--opt, xs: boolean, whether to clear the cross-controller anti-passing back mode parameters-->
</clearSubmarineBackMode>
<clearServerDevice opt="true,false"><!--opt, xs: boolean, whether to clear the parameters of cross-controller anti-
passing back server--></clearServerDevice>
<clearReaderAcrossHost opt="true,false">
<!--opt, xs: boolean, whether to clear the cross-controller anti-passing back status of card readers-->
</clearReaderAcrossHost>
</ClearSubmarineBack>

XML_Cap_DeployInfo
DeployInfo capability message in XML format
<DeployInfo version="2.0" xmlns="http://www.isapi.org/ver20/XMLSchema">
<DeployList size="5">
<Content>
<deployNo min="" max=""><!--req, xs: integer, arming No.--></deployNo>
<deployType opt="0,1,2"><!--req, xs: integer, arming type: 0-client arming to receive real-time or offline events via
platform or system (based on Hikvision private protocol), 1-real-time arming to receive real-time events (based on
Hikvision private protocol), 2-arm based on ISAPI protocol--></deployType>
<ipAddr min="" max=""><!--req, xs: string, IP address--></ipAddr>
</Content>
</DeployList>
</DeployInfo>

XML_Cap_DoorParam
DoorParam capability message in XML format
<DoorParam version="2.0" xmlns="http://www.isapi.org/ver20/XMLSchema">
<doorNo min="" max="">
<!--opt, xs:integer, door No.-->
</doorNo>
<doorName min="1" max="32">
<!--opt, xs:string, door name-->
</doorName>
<magneticType opt="alwaysClose,alwaysOpen">
<!--opt, xs:string, magnetic contact type: "alwaysClose"-remain locked, "alwaysOpen"-remain unlocked-->
</magneticType>
<openButtonType opt="alwaysClose,alwaysOpen">
<!--opt, xs:string, door button type: "alwaysClose"-remain locked, "alwaysOpen"-remain unlocked-->
</openButtonType>
<openDuration min="1" max="255">
<!--opt, xs:integer, door open duration (floor relay action time), unit: second-->
</openDuration>
<disabledOpenDuration min="1" max="255">
<!--opt, xs:integer, door open duration by disability card (delay duration of closing the door), unit: second-->
</disabledOpenDuration>

437
Intelligent Security API (Person-Based Access Control) Developer Guide

<magneticAlarmTimeout min="0" max="255">


<!--opt, xs:integer, alarm time of magnetic contact detection timeout, which is between 0 and 255, 0 refers to not
triggering alarm, unit: second-->
</magneticAlarmTimeout>
<enableDoorLock opt="true,false">
<!--opt, xs:boolean, whether to enable locking door when the door is closed-->
</enableDoorLock>
<enableLeaderCard opt="true,false">
<!--opt, xs:boolean, whether to enable remaining open with first card. This node is invalid when leaderCardMode is
configured-->
</enableLeaderCard>
<leaderCardMode opt="disable,alwaysOpen,authorize">
<!--opt, xs:string, first card mode: "disable", "alwaysOpen"-remain open with first card, "authorize"-first card
authentication. If this node is configured, the node <enableLeaderCard> is invalid-->
</leaderCardMode>
<leaderCardOpenDuration min="1" max="1440">
<!--opt, xs:integer, duration of remaining open with first card, unit: second-->
</leaderCardOpenDuration>
<stressPassword min="1" max="8">
<!--wo, opt, xs:string, duress password, the maximum length is 8 bytes, and the duress password should be encoded
by Base64 for transmission-->
</stressPassword>
<superPassword min="1" max="8">
<!--wo, opt, xs:string, super password, the maximum length is 8 bytes, and the super password should be encoded
by Base64 for transmission-->
</superPassword>
<unlockPassword min="1" max="8">
<!--wo, opt, xs:string, dismiss password, the maximum length is 8 bytes, and the dismiss password should be
encoded by Base64 for transmission-->
</unlockPassword>
<useLocalController opt="true,false">
<!--ro, opt, xs:boolean, whether it is connected to the distributed controller-->
</useLocalController>
<localControllerID min="0" max="64">
<!--ro, opt, xs:integer, distributed controller No., which is between 1 and 64, 0-unregistered-->
</localControllerID>
<localControllerDoorNumber min="0" max="4">
<!--ro, opt, xs:integer, distributed controller door No., which is between 1 and 4, 0-unregistered-->
</localControllerDoorNumber>
<localControllerStatus opt="0,1,2,3,4,5,6,7,8,9">
<!--ro, opt, xs:integer, online status of the distributed controller: 0-offline, 1-network online, 2-RS-485 serial port 1
on loop circuit 1, 3-RS-485 serial port 2 on loop circuit 1, 4-RS-485 serial port 1 on loop circuit 2, 5-RS-485 serial port 2
on loop circuit 2, 6-RS-485 serial port 1 on loop circuit 3, 7-RS-485 serial port 2 on loop circuit 3, 8-RS-485 serial port 1
on loop circuit 4, 9-RS-485 serial port 2 on loop circuit 4-->
</localControllerStatus>
<lockInputCheck opt="true,false">
<!--opt, xs:boolean, whether to enable door lock input detection-->
</lockInputCheck>
<lockInputType opt="alwaysClose,alwaysOpen">
<!--opt, xs:string, door lock input type: "alwaysClose"-remain locked (default), "alwaysOpen"-remain unlocked-->
</lockInputType>
<doorTerminalMode opt="preventCutAndShort,preventCutAndShort,common">

438
Intelligent Security API (Person-Based Access Control) Developer Guide

<!--opt, xs:string, working mode of door terminal: "preventCutAndShort"-prevent from broken-circuit and short-
circuit (default), "common"-->
</doorTerminalMode>
<openButton opt="true,false">
<!--opt, xs:boolean, whether to enable door button: "true"-yes (default), "false"-no-->
</openButton>
<ladderControlDelayTime min="1" max="255">
<!--opt, xs:integer, elevator control delay time (for visitor), which is between 1 and 255, unit: minute-->
</ladderControlDelayTime>
<remoteControlPWStatus opt="true,false">
<!--ro, opt, xs:boolean, whether the password has been configured for remote door control-->
</remoteControlPWStatus>
</DoorParam>

XML_Cap_FaceCompareCond
XML message about condition configuration capability of face picture comparison
<FaceCompareCond version="2.0" xmlns="http://www.isapi.org/ver20/XMLSchema">
<faceWidthLowerLimit min="" max=""><!--optional, xs:integer, face width threshold with highest priority, value
range: [0, 100], when the detected face width is larger than this threshold, the following conditions will be ignored
and the face comparison will be executed--></faceWidthLowerLimit>
<pitch min="" max=""><!--optional, xs:integer, face raising or bowing angle, value range: [0, 90], unit: degree, the
smaller the better--></pitch>
<yaw min="" max=""><!--optional, xs:integer, face siding left or right angle, value range: [0, 90], unit: degree, the
smaller the better--></yaw>
<width min="" max=""><!--optional, xs:integer, face width, value range: [0, 100]--></width>
<height min="" max=""><!--optional, xs:integer, face height, value range: [0, 100]--></height>
<leftBorder min="" max=""><!--optional, xs:integer, left border of face, value range: [0, 100]--></leftBorder>
<rightBorder min="" max=""><!--optional, xs:integer, right border of face, value range: [0, 100]--></rightBorder>
<upBorder min="" max=""><!--optional, xs:integer, top border of face, value range: [0, 100]--></upBorder>
<bottomBorder min="" max=""><!--optional, xs:integer, bottom border of face, value range: [0, 100]--></
bottomBorder>
<interorbitalDistance min="" max=""><!--optional, xs:integer, pupil distance, value range: [0, 100]--></
interorbitalDistance>
<faceScore min="" max=""><!--optional, xs:integer, face score, value range: [0, 100], the valid face score must be
larger than this score--></faceScore>
<maxDistance opt="0.5,1,1.5,2,auto"><!--optional, xs:string, maximum recognition distance: "0.5,1,1.5,2,auto", unit:
m. This node has higher priority over <interorbitalDistance>--></maxDistance>
<similarity min="0.0" max="1.0"><!--optional, xs:float, face comparison similarity--></similarity>
</FaceCompareCond>

XML_Cap_IDBlackListCfg
XML message about the parameters of ID card blocklist
<IDBlackListCfg version="2.0" xmlns="http://www.isapi.org/ver20/XMLSchema">
<blackListValid opt ="0,1">
<!--required, xs:integer, ID card blocklist status: 0-invalid, 1-valid. This node is used to delete the ID card blocklist by

439
Intelligent Security API (Person-Based Access Control) Developer Guide

ID card number. If it is 0, it indicates deleting the blocklist-->


</blackListValid>
<IDCardInfo><!—dependent-->
<name min="" max=""><!--optional, xs:string, name--></name>
<birth><!--optional, xs:string, date of birth--></birth>
<addr min="" max=""><!--optional, xs:string, address--></addr>
<IDNum min="" max=""><!--required, xs:string, ID card number--></IDNum>
<issuingAuthority min="" max=""><!--optional, xs:string, issuing authority--></issuingAuthority>
<startDate><!--optional, xs:string, start date of expiry date--></startDate>
<endDate><!--optional, xs:string, end date of expiry date--></endDate>
<termOfValidity opt ="true,false">
<!--optional, xs:boolean, whether it is permanently valid: false-no, true-yes (the <endDate> is invalid)-->
</termOfValidity>
<sex opt ="male,female"><!--optional, xs:string, gender: "male" or "female"--></sex>
</IDCardInfo>
</IDBlackListCfg>

XML_Cap_IdentityTerminal
IdentityTerminal capability message in XML format
<IdentityTerminal version="2.0" xmlns="http://www.isapi.org/ver20/XMLSchema">
<terminalMode opt="authMode,registerMode">
<!--req, xs: string, terminal mode: "authMode"-authentication mode, "registerMode"-registration mode-->
</terminalMode>
<idCardReader opt="iDR210,DS-K1F110-I,DS-K1F1110-B,DS-K1F1110-AB, none">
<!--req, xs: string,ID card reader model-->
</idCardReader>
<camera opt="C270,DS-2CS5432B-S"><!--req, xs: string, camera--></camera>
<fingerPrintModule opt="ALIWARD,HikModule"><!--req, xs: string, fingerprint module--></fingerPrintModule>
<videoStorageTime min="0" max="10"><!--req, xs: integer, time for saving video (unit: second)--></
videoStorageTime>
<faceContrastThreshold min="0" max="100"><!--req, xs: integer, face picture comparison threshold--></
faceContrastThreshold>
<twoDimensionCode opt="enable,disable"><!--req, xs: string, whether to enable QR code recognition--></
twoDimensionCod>
<blackListCheck opt="enable,disable"><!--req, xs: string, whether to enable blocklist verification--></blackListCheck>
<idCardCheckCenter opt="local,server">
<!--req, xs: string, ID card comparison mode: local-compare with ID card of local storage, server-compare with ID
card of remote server storage-->
</idCardCheckCenter>
<faceAlgorithm opt="HIK-Z,HIK-H">
<!--req, xs: string, face picture algorithm: HIK-Z-Hikviison algorithm, HIK-H-third-party algorithm-->
</faceAlgorithm>
<comNo min="1" max="9"><!--req, xs: integer, COM No.--></comNo>
<memoryLearning opt="enable,disable"><!--req, xs: string, whether to enable learning and memory function--></
memoryLearning>
<saveCertifiedImage opt="enable,disable"><!--req, xs: string, whether to enable saving authenticated picture--></
saveCertifiedImage>
<MCUVersion min="" max=""><!--opt, xs: string, MCU version information--></MCUVersion>
<usbOutput opt="enable,disable"><!--req, xs: string, whether to enable USB output of ID card reader--></

440
Intelligent Security API (Person-Based Access Control) Developer Guide

usbOutput>
<serialOutput opt="enable,disable"><!--req, xs: string, whether to enable serial port output of ID card reader--></
serialOutput>
<readInfoOfCard opt="serialNo,file"><!--opt, xs: string, set content to be read from CPU card--></readInfoOfCard>
<workMode opt="passMode,accessControlMode"><!--opt, xs: string, authentication mode--></workMode>
<ecoMode>
<eco opt="enable,disable"><!--opt, xs: string, whether to enable ECO mode--></eco>
<faceMatchThreshold1 min="" max=""><!--req, xs: integer, 1V1 face picture comparison threshold of ECO mode,
which is between 0 and 100--></faceMatchThreshold1>
<faceMatchThresholdN min="" max=""><!--req, xs: integer, 1:N face picture comparison threshold of ECO mode,
which is between 0 and 100--></faceMatchThresholdN>
<changeThreshold min="" max=""><!--opt, xs: string, switching threshold of ECO mode, which is between 0 and 8--
></changeThreshold>
<maskFaceMatchThresholdN min="" max=""><!--optional, xs:integer, 1:N face picture (face with mask and normal
background picture) comparison threshold of ECO mode, value range: [0,100]--></maskFaceMatchThresholdN>
</ecoMode>
<readCardRule opt="wiegand26,wiegand34"><!--opt, xs: string, card No. setting rule: "wiegand26", "wiegand34"--></
readCardRule>
<enableScreenOff opt="true,false"><!--optional, xs:boolean, whether the device enters the sleep mode when there
is no operation after the configured sleep time--></enableScreenOff>
<screenOffTimeout min="" max=""><!--dependent, xs:integer, sleep time, unit: second--></screenOffTimeout>
<enableScreensaver opt="true,false"><!--optional, xs:boolean, whether to enable the screen saver function--></
enableScreensaver>
</IdentityTerminal>

XML_Cap_M1CardEncryptCfg
M1CardEncryptCfg capability message in XML format
"http://www.isapi.org/ver20/XMLSchema">
<enable opt="true,false"><!--req, xs:boolean, whether to enable--></enable>
<sectionID min="0" max="100"><!--req, xs:integer, sector ID--></sectionID>
</M1CardEncryptCfg>

XML_Cap_ModuleStatus
Capability message about getting the status of the secure door control unit in XML format
<ModuleStatus version="2.0" xmlns="http://www.isapi.org/ver20/XMLSchema">
<securityModuleNo min="1" max="256"><!--required, xs:string, secure door control unit No.--></securityModuleNo>
<onlineStatus opt="0,1"><!--required, xs:integer, online status: 0-offline, 1-online--></onlineStatus>
<desmantelStatus opt="0,1"><!--required, xs:integer, tampering status: 0-not tampered, 1-tampered--></
desmantelStatus>
</ModuleStatus>

441
Intelligent Security API (Person-Based Access Control) Developer Guide

XML_Cap_ReaderAcrossHost
ReaderAcrossHost capability message in XML format
<ReaderAcrossHost version="2.0" xmlns="http://www.isapi.org/ver20/XMLSchema">
<AcrossHostList size="8">
<AcrossHostAction>
<readerNo min="1" max="8"><!--req, xs: integer, card reader No.--></readerNo>
<submarineBackEnabled opt="true,false">
<!--req, xs: boolean, whether to enable the cross-controller anti-passing back function of the card reader-->
</submarineBackEnabled>
</AcrossHostAction>
</AcrossHostList>
</ReaderAcrossHost>

XML_Cap_RemoteControlDoor
RemoteControlDoor capability message in XML format
<RemoteControlDoor version="2.0" xmlns="http://www.isapi.org/ver20/XMLSchema">
<doorNo min="" max=""><!--opt, xs:integer, range of the door No.--></doorNo>
<cmd opt="open,close,alwaysOpen,alwaysClose,visitorCallLadder,householdCallLadder">
<!--req, xs:string, command: "open"-open the door, "close"-close the door (controlled), "alwaysOpen"-remain
unlocked (free), "alwaysClose"-remain locked (disabled), "visitorCallLadder"-call elevator (visitor),
"householdCallLadder"-call elevator (resident)-->
</cmd>
<password min="" max="">
<!--opt, xs:string, password for opening door-->
</password>
</RemoteControlDoor>

XML_Cap_ServerDevice
ServerDevice capability message in XML format
<ServerDevice version="2.0" xmlns="http://www.isapi.org/ver20/XMLSchema">
<ipAddr min="" max=""><!--req, xs: string, IP address of the cross-controller anti-passing back server--></ipAddr>
<port min="" max=""><!--req, xs: string, port No. of the cross-controller anti-passing back server--></port>
</ServerDevice>

XML_Cap_SnapConfig
SnapConfig capability message in XML format
<SnapConfig version="2.0"xmlns="http://www.isapi.org/ver20/XMLSchema">
<snapTimes min="0" max="5"><!--req, xs: integer, capture times triggered by loop, the value is between 0 and 5--></

442
Intelligent Security API (Person-Based Access Control) Developer Guide

snapTimes>
<snapWaitTime min="0" max="6000">
<!--req, xs: integer, capture waiting time, the value is betweem 0 and 6,000, currently, this node is reserved-->
</snapWaitTime>
<intervalTimeList size="4"><!-- req>
<intervalTime min="0" max="6000"><!--req, xs: integer, time interval of continuous capture, the value is between 0
and 6,000--></intervalTime>
</intervalTimeList>
<JPEGParam>
<pictureSize>
<!--req, xs: string, picture resolution: 0-CIF, 1-QCIF, 2-D1, 3-UXGA (1600 × 1200), 4-SVGA(800 × 600), 5-
HD720p(1280 × 720), 6-VGA, 7-XVGA, 8-HD900p, 9-HD1080, 10-2560 × 1920, 11-1600 × 304, 12-2048 × 1536,
13-2448 × 2048, 14-2448 × 1200,15-2448 × 800, 16-XGA(1024 × 768), 17-SXGA(1280 × 1024),18-WD1(960 × 576/960
× 480), 19-1080i, 20-576 × 576, 21-1536 × 1536, 22-1920 × 1920, 161-288 × 320, 162-144 × 176, 163-480 × 640,
164-240 × 320, 165-120 × 160, 166-576 × 720, 167-720 × 1280, 168-576 × 960, 180-180*240, 181-360*480,
182-540*720, 183-720*960, 184-960*1280, 185-1080*1440, 0xff-auto-->
</pictureSize>
<pictureQuality opt="best, better, general"><!--req, xs: string, picture quality: "best", "better", "general"--></
pictureQuality>
</JPEGParam>
</SnapConfig>

XML_Cap_StartReaderInfo
StartReaderInfo capability message in XML format
<StartReaderInfo version="2.0" xmlns="http://www.isapi.org/ver20/XMLSchema">
<hostNo min="1" max="64"><!--req, xs: integer, access controller No.--></hostNo>
<readerNo min="1" max="8"><!--req, xs: integer, card reader No.--></readerNo>
</StartReaderInfo>

XML_Cap_SubmarineBack
SubmarineBack capability message in XML format
<SubmarineBack version="2.0" xmlns="http://www.isapi.org/ver20/XMLSchema">
<enabled opt="true,false"><!--req, xs: boolean, whether to specify this access controller as the cross-controller anti-
passing back server--></enabled>
</SubmarineBack>

XML_Cap_SubmarineBackHostInfo
SubmarineBackHostInfo capability message in XML format
<SubmarineBackHostInfo version="2.0" xmlns="http://www.isapi.org/ver20/XMLSchema">
<ID min="1" max="4"><!--req, xs: integer, configuration No.--></ID>
<HostInfoList size="16">

443
Intelligent Security API (Person-Based Access Control) Developer Guide

<Action>
<deviceNo min="1" max="64"><!--req, xs: integer, device No.--></deviceNo>
<serial min="9" max="9"><!--req, xs: string, device serial No.--></serial>
</Action>
</HostInfoList>
</SubmarineBackHostInfo>

XML_Cap_SubmarineBackMode
SubmarineBackMode capability message in XML format
<SubmarineBackMode version="2.0" xmlns="http://www.isapi.org/ver20/XMLSchema">
<mode opt="disable,internetCommunicate,cardReadAndWrite"><!--req, xs:string, anti-passing back mode--></mode>
<rule opt="line,inOrOut">
<!--req, xs:string, anti-passing back rule, this node is invalid when the mode is set to "disable"-->
</rule>
<sectionID min="1" max="100">
<!--req, xs:integer, section ID, this node is valid when mode is "cardReadAndWrite", and only one section ID can be
configured for one configuration-->
</sectionID>
</SubmarineBackMode>

XML_Cap_SubmarineBackReader
SubmarineBackReader capability message in XML format
<SubmarineBackReader version="2.0" xmlns="http://www.isapi.org/ver20/XMLSchema">
<ID min="1" max="128"><!--req, xs:integer, configuration No.--></ID>
<selfHostNo min="1" max="64"><!--req, xs:integer, access control No. of the configuration object--></selfHostNo>
<selfReaderNo min="1" max="8"><!--req, xs:integer, card reader No. of the configuration object--></selfReaderNo>
<FollowReaderList size="16">
<Action>
<followHostNo min="1" max="64"><!--req, xs:integer, following access controller No.--></followHostNo>
<followReaderNo min="1" max="8"><!--req, xs:integer, following card reader No.--></followReaderNo>
</Action>
</FollowReaderList>
</SubmarineBackReader>

XML_Cap_WiegandCfg
WiegandCfg capability message in XML format
<WiegandCfg version="2.0" xmlns="http://www.isapi.org/ver20/XMLSchema">
<wiegandNo min="1" max="64"><!--required, xs:integer, Wiegand interface No.--></wiegandNo>
<communicateDirection opt="receive,send"><!--required, xs:string, communication direction: "receive", "send"--></
communicateDirection>
<wiegandMode opt="wiegand26,wiegand34,wiegand27,wiegand35"><!--dependent, xs:string, Wiegand mode:

444
Intelligent Security API (Person-Based Access Control) Developer Guide

"wiegand26", "wiegand34", "wiegand27", "wiegand35". This node is valid when <communicateDirection> is "send"--
></wiegandMode>
<signalInterval min="1" max="20"><!--optional, xs:integer, interval of sending Wiegand signals, it is between 1 and
20, unit: ms--></signalInterval>
<enable opt="true,false"><!--optional, xs:boolean, whether to enable Wiegand parameters: true, false--></enable>
</WiegandCfg>

XML_Cap_WiegandRuleCfg
WiegandRuleCfg capability message in XML format
<WiegandRuleCfg version="2.0" xmlns="http://www.isapi.org/ver20/XMLSchema">
<name min="" max="">
<!--req, xs:string, Wiegand name-->
</name>
<CustomerCardIn>
<totalLength min="" max="">
<!--req, xs:integer, total Wiegand length. When this node is set to 0, the custom Wiegand rule settings will be
cleared-->
</totalLength>
<checkMethod opt="parityCheck,xorCheck,noCheck">
<!--req, xs:string, parity mode: "parityCheck,xorCheck,noCheck"-->
</checkMethod>
<ParityCheck>
<!--dep, configuration rule of odd-even parity, this node is valid when <checkMethod> is "parityCheck"-->
<oddBeginBit min="" max="">
<!--dep, xs:integer, start bit of odd parity-->
</oddBeginBit>
<oddLength min="" max="">
<!--dep, xs:integer, odd parity length-->
</oddLength>
<evenBeginBit min="" max="">
<!--dep, xs:integer, start bit of even parity-->
</evenBeginBit>
<evenLength min="" max="">
<!--dep, xs:integer, even parity length-->
</evenLength>
</ParityCheck>
<XorCheck>
<!--dep, configuration rule of XOR parity, this node is valid when <checkMethod> is "xorCheck"-->
<xorBeginBit min="" max="">
<!--dep, xs:integer, start bit of XOR parity-->
</xorBeginBit>
<xorPerLength min="" max="">
<!--dep, xs:integer, length of each XOR parity group-->
</xorPerLength>
<xorTotalLength min="" max="">
<!--dep, xs:integer, total length of XOR parity data-->
</xorTotalLength>
</XorCheck>
<cardIdBeginBit min="" max="">

445
Intelligent Security API (Person-Based Access Control) Developer Guide

<!--req, xs:integer, start bit of the card No.-->


</cardIdBeginBit>
<cardIdLength min="" max="">
<!--req, xs:integer, card No. length-->
</cardIdLength>
<siteCodeBeginBit min="" max="">
<!--req, xs:integer, start bit of the site code-->
</siteCodeBeginBit>
<siteCodeLength min="" max="">
<!--req, xs:integer, site code length-->
</siteCodeLength>
<oemBeginBit min="" max="">
<!--req, xs:integer, start bit of OEM-->
</oemBeginBit>
<oemLength min="" max="">
<!--req, xs:integer, OEM length-->
</oemLength>
<manufacturerCodeBeginBit min="" max="">
<!--req, xs:integer, start bit of the manufacturer code-->
</manufacturerCodeBeginBit>
<manufacturerCodeLength min="" max="">
<!--req, xs:integer, manufacturer code length-->
</manufacturerCodeLength>
</CustomerCardIn>
<CustomerCardOut>
<CardContentList size="4">
<!--This node contains multiple <Action> nodes, and the <type> node in each <Action> node can only be set to
one type. The order of the types will determine the combination order of the rules-->
<Action>
<No min="" max="">
<!--req, xs:integer, No.-->
</No>
<type opt="cardId,siteCode,oem,manufacturerCode">
<!--req, xs:string, type: "cardId"-card ID, "siteCode"-site code, "oem"-OEM No., "manufacturerCode"-
manufacturer code-->
</type>
<length min="" max="">
<!--req, xs:integer, length of the corresponding decimal data-->
</length>
</Action>
</CardContentList>
</CustomerCardOut>
</WiegandRuleCfg>

XML_ClearCardRecord
ClearCardRecord message in XML format
<ClearCardRecord version="2.0" xmlns="http://www.isapi.org/ver20/XMLSchema">
<clearAllCard>
<!--req, xs: boolean, whether to clear all card swiping records in the cross-controller anti-passing back server: "true"-

446
Intelligent Security API (Person-Based Access Control) Developer Guide

yes, "false"-no. If this node is set to "false", either CardList or EmployeeNoList is required. If CardList is configured, it
indicates clearing card swiping records by card No.; if EmployeeNoList is configured, it indicates clearing card swiping
records by employee No.-->
</clearAllCard>
<CardList size="32">
<cardNo><!--opt, xs: string, card No., min="1" max="32"--></cardNo>
</CardList>
<EmployeeNoList size="32">
<employeeNo><!--opt, xs:string, employee No. (person ID)--></employeeNo>
</EmployeeNoList>
</ClearCardRecord>

XML_ClearSubmarineBack
ClearSubmarineBack message in XML format
<ClearSubmarineBack version="2.0" xmlns="http://www.isapi.org/ver20/XMLSchema">
<clearHostInfo><!--opt, xs: boolean, whether to clear access controller information: "true,false"--></clearHostInfo>
<clearReaderInfo><!--opt, xs: boolean, whether to clear card reader information: "true,false"--></clearReaderInfo>
<clearSubmarineBack><!--opt, xs: boolean, whether to clear anti-passing back server parameters: "true,false"--></
clearSubmarineBack>
<clearSubmarineBackHostInfo>
<!--opt, xs: boolean, whether to clear cross-controller anti-passing back parameters of access controllers:
"true,false"-->
</clearSubmarineBackHostInfo>
<clearStartReaderInfo><!--opt, xs: boolean, whether to clear first card reader parameters: "true,false"--></
clearStartReaderInfo>
<clearSubmarineBackReader>
<!--opt, xs: boolean, whether to clear cross-controller anti-passing back parameters of card readers: "true,false"-->
</clearSubmarineBackReader>
<clearSubmarineBackMode>
<!--opt, xs: boolean, whether to clear the cross-controller anti-passing back mode parameters: "true,false"-->
</clearSubmarineBackMode>
<clearServerDevice>
<!--opt, xs: boolean, whether to clear the parameters of cross-controller anti-passing back server: "true,false"-->
</clearServerDevice>
<clearReaderAcrossHost>
<!--opt, xs: boolean, whether to clear the cross-controller anti-passing back status of card readers: "true,false"-->
</clearReaderAcrossHost>
</ClearSubmarineBack>

XML_DeployInfo
DeployInfo message in XML format
<DeployInfo version="2.0" xmlns="http://www.isapi.org/ver20/XMLSchema">
<DeployList size="5">
<Content>
<deployNo><!--req, xs: integer, arming No.--></deployNo>

447
Intelligent Security API (Person-Based Access Control) Developer Guide

<deployType><!--req, xs: integer, arming type: 0-client arming to receive real-time or offline events via platform or
system (based on Hikvision private protocol), 1-real-time arming to receive real-time events (based on Hikvision
private protocol), 2-arm based on ISAPI protocol, opt="0,1,2"--></deployType>
<ipAddr><!--req, xs: string, IP address--></ipAddr>
</Content>
</DeployList>
</DeployInfo>

XML_DeviceCap
XML message about device capability
<DeviceCap version="2.0" xmlns="http://www.isapi.org/ver20/XMLSchema">
<SysCap><!--optional-->
<isSupportDst><!--optional, xs: boolean, whether it supports daylight saving time--></isSupportDst>
<NetworkCap/><!--optional, xs: boolean, network capability-->
<IOCap/><!--optional, IO capability-->
<SerialCap/><!--optional, serial port capability-->
<VideoCap/><!--optional, video capability, see details in the message of XML_VideoCap-->
<AudioCap/><!--optional, audio capability-->
<isSupportHolidy><!--optional, xs:boolean--></isSupportHolidy>
<RebootConfigurationCap>
<Genetec><!--optional, xs:boolean--></Genetec>
<ONVIF><!--optional, xs:boolean--></ONVIF>
<RTSP><!--optional, xs:boolean--></RTSP>
<HTTP><!--optional, xs:boolean--></HTTP>
<SADP>
<ISDiscoveryMode><!--optional, xs:boolean--></ISDiscoveryMode>
<PcapMode><!--optional, xs:boolean--></PcapMode>
</SADP>
<IPCAddStatus><!--optional, xs:boolean--></IPCAddStatus>
</RebootConfigurationCap>
<isSupportExternalDevice><!--optional, xs:boolean--></isSupportExternalDevice>
<isSupportChangedUpload>
<!--optional, xs: boolean, whether it supports uploading status changes-->
</isSupportChangedUpload>
<isSupportGettingWorkingStatus>
<!--optional, xs:boolean, whether it supports getting device status-->
</isSupportGettingWorkingStatus>
<isSupportGettingChannelInfoByCondition>
<!--optional, xs:boolean-->
</isSupportGettingChannelInfoByCondition>
<isSupportDiagnosedDataParameter>
<!--optional, xs:boolean-->
</isSupportDiagnosedDataParameter>
<isSupportSimpleDevStatus>
<!--optional, xs: boolean, whether it supports getting device working status-->
</isSupportSimpleDevStatus>
<isSupportFlexible>
<!--optional, xs: boolean, whether it supports getting channel status by condition-->
</isSupportFlexible>

448
Intelligent Security API (Person-Based Access Control) Developer Guide

<isSupportPTZChannels>
<!--optional, xs:boolean, whether it supports returning PTZ channel (which is different from the video channel)-->
</isSupportPTZChannels>
<isSupportSubscribeEvent>
<!--optional, xs:boolean, whether it supports alarm or event subscription: "true,false"-->
</isSupportSubscribeEvent>
<isSupportDiagnosedData>
<!--optional, xs:boolean, "true,false", whether it supports diagnosis data-->
</isSupportDiagnosedData>
<isSupportTimeCap>
<!--optional, xs:boolean, whether it supports time capability-->
</isSupportTimeCap>
<isSupportThermalStreamData>
<!--optional, xs:boolean, whether it supports uploading thermal stream data in real-time. If it is supported, the
returned value is "true"; otherwise, this node will not be returned-->
</isSupportThermalStreamData>
<isSupportPostUpdateFirmware>
<!--optional,xs:boolean,"true,false", whether it supports upgrading the firmware-->
</isSupportPostUpdateFirmware>
<isSupportPostConfigData>
<!--optional, xs:boolean,"true,false", whether it supports importing or exporting the configuration file-->
</isSupportPostConfigData>
<isSupportUserLock>
<!--optional, xs:boolean,"true,false", whether it supports locking user-->
</isSupportUserLock>
<isSupportModuleLock><!--optional, xs:boolean, whether it supports locking the module: "true,false"--></
isSupportModuleLock>
<isSupportSoundCfg><!--optional, xs:boolean--></isSupportSoundCfg>
<isSupportMetadata>
<!--optional, xs:boolean, if it is supported, return "true", otherwise, this node will not be returned-->
</isSupportMetadata>
<isSupportShutdown><!--optional, xs:boolean, whether it supports shutdown configuration--></
isSupportShutdown>
<supportSmartOverlapChannles opt="1"/><!--optional, xs:boolean, whether it supports stream configuration of
smart events. If this function is supported, this node and the corresponding channel ID will be returned; otherwise,
this node will not be returned-->
<isSupportConsumptionMode><!--optional, xs:boolean, whether it supports switching power consumption
mode:true (yes), this node is not returned (no). Related URI: /ISAPI/System/consumptionMode/capabilities?
format=json--></isSupportConsumptionMode>
<isSupportManualPowerConsumption><!--optional, xs:boolean, whether it supports control the power
consumption mode manually: true (yes), this node is not returned (no)--></isSupportManualPowerConsumption>
</SysCap>
<voicetalkNums><!--optional, xs:integer, the number of two-way audio channels--></voicetalkNums>
<isSupportSnapshot><!--optional, xs:boolean, whether it supports capture: "true, false"--></isSupportSnapshot>
<SecurityCap/><!--optional, security capability-->
<EventCap/><!--optional, event capability-->
<ITCCap><!--optional--></ITCCap>
<ImageCap/><!--optional, image capability-->
<RacmCap/><!--optional, storage capability-->
<PTZCtrlCap>
<isSupportPatrols><!--optional, xs:boolean--></isSupportPatrols>
</PTZCtrlCap>

449
Intelligent Security API (Person-Based Access Control) Developer Guide

<SmartCap/><!--optional, intelligent capability-->


<isSupportEhome><!--optional, xs:boolean--></isSupportEhome>
<isSupportStreamingEncrypt><!--optional, xs:boolean--></isSupportStreamingEncrypt>
<TestCap>
<isSupportEmailTest><!--optional, xs:boolean--></isSupportEmailTest>
</TestCap>
<ThermalCap/><!--optional, temperature measurement capability-->
<WLAlarmCap/><!--optional, wireless alarm capability-->
<SecurityCPCapabilities/><!--optional, security control panel capability-->
<isSupportGIS>
<!--optional, xs:boolean, whether it supports GIS capability-->
</isSupportGIS>
<isSupportCompass>
<!--optional, xs:boolean-->
</isSupportCompass>
<isSupportRoadInfoOverlays>
<!--optional, xs:boolean-->
</isSupportRoadInfoOverlays>
<isSupportFaceCaptureStatistics>
<!--optional, xs:boolean-->
</isSupportFaceCaptureStatistics>
<isSupportExternalDevice>
<!--optional, xs:boolean-->
</isSupportExternalDevice>
<isSupportElectronicsEnlarge>
<!--optional, xs:boolean, whether it supports digital zoom-->
</isSupportElectronicsEnlarge>
<isSupportRemoveStorage>
<!--optional, xs:boolean-->
</isSupportRemoveStorage>
<isSupportCloud>
<!--optional, xs:boolean-->
</isSupportCloud>
<isSupportRecordHost>
<!--optional, xs:boolean-->
</isSupportRecordHost>
<isSupportEagleEye>
<!--optional, xs:boolean, whether it supports PanoVu series camera-->
</isSupportEagleEye>
<isSupportPanorama>
<!--optional, xs:boolean, whether it supports panorama-->
</isSupportPanorama>
<isSupportFirmwareVersionInfo>
<!--optional, xs:boolean, whether it supports displaying firmware version information-->
</isSupportFirmwareVersionInfo>
<isSupportExternalWirelessServer>
<!--optional, xs: boolean-->
</isSupportExternalWirelessServer>
<isSupportSetupCalibration>
<!--optional, xs:boolean, whether it supports setting calibration-->
</isSupportSetupCalibration>
<isSupportGetmutexFuncErrMsg>

450
Intelligent Security API (Person-Based Access Control) Developer Guide

<!--optional, xs:boolean, whether it supports getting mutex information-->


</isSupportGetmutexFuncErrMsg>
<isSupportTokenAuthenticate><!--optional, xs:boolean--></isSupportTokenAuthenticate>
<isSupportStreamDualVCA><!--optional, xs:boolean--></isSupportStreamDualVCA>
<isSupportlaserSpotManual>
<!--optional, boolean, whether it supports laser spot configuration-->
</isSupportlaserSpotManual>
<isSupportRTMP><!--optional, xs:boolean--></isSupportRTMP>
<isSupportTraffic><!--optional, xs:boolean--></isSupportTraffic>
<isSupportLaserSpotAdjustment>
<!--optional, boolean, whether it supports adjusting laser spot size-->
</isSupportLaserSpotAdjustment>
<VideoIntercomCap/><!--optional, video intercom capability-->
<isSupportSafetyCabin>
<!--optional, xs:boolean-->
</isSupportSafetyCabin>
<isSupportPEA>
<!--optional, xs:boolean, whether it supports one-touch security control panel capability-->
</isSupportPEA>
<isSupportCurrentLock>
<!--optional, xs:boolean, whether it supports locking current configuration-->
</isSupportCurrentLock>
<isSupportGuardAgainstTheft>
<!--optional, xs:boolean, whether it supports device anti-theft configuration-->
</isSupportGuardAgainstTheft>
<isSupportPicInfoOverlap>
<!--optional, xs:boolean, whether it supports picture information overlay-->
</isSupportPicInfoOverlap>
<isSupportPlay>
<!--optional, xs: boolean, whether it supports live view: "true,false"-->
</isSupportPlay>
<isSupportPlayback>
<!--optional, xs: boolean, whether it supports playback: "true,false"-->
</isSupportPlayback>
<UHFRFIDReader>
<!--optional, supported capability of UHF RFID card reader-->
<isSupportBasicInformation>
<!--optional, xs:boolean, whether it supports basic parameters of UHF RFID card reader-->
</isSupportBasicInformation>
<isSupportHardDiskStorageTest>
<!--optional, xs:boolean, whether it supports hard disk storage test of UHF RFID card reader-->
</isSupportHardDiskStorageTest>
</UHFRFIDReader>
<isSupportIntelligentStructureAnalysis>
<!--optional, xs:boolean, whether it supports structured VCA-->
</isSupportIntelligentStructureAnalysis>
<isSupportIntelligentAnalysisEngines>
<!--optional, xs:boolean, whether it supports VCA engine configuration-->
</isSupportIntelligentAnalysisEngines>
<PreviewDisplayNum>
<!--optional, xs:integer, the number of live view windows, which is the number of simultaneous live view windows
controlled by the device. Limited by the performance of DeepinMind series network video recorder, currently only live

451
Intelligent Security API (Person-Based Access Control) Developer Guide

view of a network camera is supported, and playback is not supported-->


</PreviewDisplayNum>
<isSupportBoard opt="true,false">
<!--optional, xs:boolean, whether it supports protocol related to sub-board-->
</isSupportBoard>
<ResourceSwitch>
<workMode opt="4KPreview,educationRecord">
<!--req, xs:string, device working mode:"4KPreview"-4K live view mode, "educationRecord"-education recording
mode-->
</workMode>
</ResourceSwitch>
<isSupportCustomStream><!--optional, xs:boolean--></isSupportCustomStream>
<isSupportTriggerCapCheck>
<!--optional, xs:boolean, whether it supports verifying capability of alarm linkage actions-->
</isSupportTriggerCapCheck>
<isSupportActiveMulticast>
<!--optional, xs: boolean, whether it supports active multicast-->
</isSupportActiveMulticast>
<isSupportChannelEventCap>
<!--optional, xs:boolean, whether it supports getting event capability by channel-->
</isSupportChannelEventCap>
<isSupportPictureServer>
<!-- opt, xs:boolean, whether it supports picture storage server-->
</isSupportPictureServer>
<isSupportVideoCompositeAlarm>
<!--optional, xs:boolean, whether it supports video double check alarm-->
</isSupportVideoCompositeAlarm>
<isSupportSensorCalibrating>
<!--optional, xs:boolean, whether it supports double sensor calibration-->
</isSupportSensorCalibrating>
<isSupportChannelEventListCap>
<!--optional, xs:boolean, whether it supports getting event capability of all channels-->
</isSupportChannelEventListCap>
<VCAResourceChannelsCap>
<!--optional, whether it supports independently switching to another VCA resource by channel-->
<ChannelsList>
<channelsID>
<!--req, xs:integer, channel No. supported by the device-->
</channelsID>
</ChannelsList>
</VCAResourceChannelsCap>
<SensorCap/><!--optional, intelligent cabinet capability-->
<isSupportSecurityCP/>
<!--optional, xs:boolean, whether it supports the applications of security control panel: "true, false"-->
</isSupportSecurityCP>
<isSupportClientProxyWEB>
<!--optional, xs:boolean, whether it supports the function that the client proxy passes through the remote web
configuration: "true"-->
</isSupportClientProxyWEB>
<WEBLocation>
<!--optional, string type, web page location: "local"-local device, "remote"-remote location. If this node is not
returned, the web page will be in the local device by default-->

452
Intelligent Security API (Person-Based Access Control) Developer Guide

</WEBLocation>
<isSupportTime/>
<!--optional, xs:boolean, "true, false", whether it supports time configuration-->
</isSupportTime>
<isSupportTimeZone/>
<!--optional, xs:boolean, "true, false", whether it supports daylight saving time (DST) configuration-->
</isSupportTimeZone>
<isSupportMixedTargetDetection>
<!--optional, xs:boolean, "true, false", whether it supports multi-target-type detection-->
</isSupportMixedTargetDetection>
<isSupportFaceContrastMode>
<!--optional, xs:boolean, whether it supports face picture comparison mode-->
</isSupportFaceContrastMode>
<isSupportPictureCaptureComparision>
<!--optional, xs:boolean, whether it supports face picture N:1 comparison between face pictures captured by the
camera and imported face pictures-->
</isSupportPictureCaptureComparision>
<isSupportGPSCalibratation>
<!--optional, xs:boolean, whether it supports GPS calibration capability-->
</isSupportGPSCalibratation>
<isSupportChannelFullEventListCap>
<!--optional, xs:boolean, whether it supports getting event list capability of all channels-->
</isSupportChannelFullEventListCap>
<isSupportAUXInfoCap>
<!--optional, xs:boolean, whether it supports getting property capability of all channels-->
</isSupportAUXInfoCap>
<isSupportCalibrationFile>
<!--optional, xs:boolean, whether it supports importing calibration file-->
</isSupportCalibrationFile>
<isSupportDisplayTrajectory>
<!--optional, xs:boolean, whether it supports displaying trajectory-->
</isSupportDisplayTrajectory>
<maximumSuperPositionTime opt="5,10,20,30">
<!--dep,xs:integer, the maximum time of trajectory displaying,unit: second, it is valid only when displaying
trajectory is supported-->
</maximumSuperPositionTime>
<isSupportUnitConfig>
<!--optional, xs:boolean, whether it supports unit configuration-->
</isSupportUnitConfig>
<isSupportAutoMaintenance>
<!--optional, xs:boolean, whether it supports automatic maintenance. When this node exists and values "true", it
indicates support-->
</isSupportAutoMaintenance>
<isSupportGetLinkSocketIP>
<!--optional, xs: boolean, "true,false", whether it supports getting the SocketIP of current connection-->
</isSupportGetLinkSocketIP>
<isSupportIntelligentSearch>
<!--optional, xs:boolean, whether it supports intelligent search-->
</isSupportIntelligentSearch>
<IOTCap><!--optional, xs:boolean, IoT device access capability-->
<supportChannelNum>
<!--req, xs:integer, number of supported channels of IoT device-->

453
Intelligent Security API (Person-Based Access Control) Developer Guide

</supportChannelNum>
<startChannelNo>
<!--optional, xs:integer, initial channel ID, if this node is not inputted, it indicates that the initial channel ID is 1-->
</startChannelNo>
<isSupportlinkageChannelsSearch>
<!--optional, boolean, returns "true" if support, returns "false" if not support-->
</isSupportlinkageChannelsSearch>
</IOTCap>
<isSupportEncryption>
<!--optional, xs: boolean, stream encryption capability-->
</isSupportEncryption>
<AIDEventSupport opt="abandonedObject, pedestrian, congestion, roadBlock, construction, trafficAccident,
fogDetection, wrongDirection, illegalParking, SSharpDriving, lowSpeed, dragRacing">
<!--optional, xs:string, supported traffic incident type: "abandonedObject"-objects dropped down, "pedestrian"-
pedestrian, "congestion"-congestion, "roadBlock"-roadblock, "construction"-construction, "trafficAccident"-traffic
accident, "fogDetection"-fog, "wrongDirection"-wrong-way driving, "illegalParking"-illegal parking, "SSharpDriving"-
slalom driving, "lowSpeed"-driving in low speed, "dragRacing"-street racing-->
</AIDEventSupport>
<TFSEventSupport
opt="illegalParking ,wrongDirection,crossLane,laneChange,vehicleExist,turnRound,parallelParking,notKeepDistance,not
SlowZebraCrossing,overtakeRightSide,lowSpeed,dragRacing,changeLaneContinuously,SSharpDriving,largeVehicleOccup
yLine,jamCrossLine">
<!--optional, xs:string, supported enforcement event type: "illegalParking"-illegal parking, "wrongDirection"-wrong-
way driving, "crossLane"-driving on the lane line, "laneChange"-illegal lane change, "vehicleExist"-motor vehicle on
non-motor vehicle lane, "turnRound"-illegal U-turn, "parallelParking"-parallel parking, "notKeepDistance"-not keeping
vehicle distance, "notSlowZebraCrossing"-not slowing down at zebra corssing, "overtakeRightSide"-overtaking on the
right, "lowSpeed"-driving in low speed, "dragRacing"-street racing, "changeLaneContinuously"-continuous lane
change, "SSharpDriving"-slalom driving, "largeVehicleOccupyLine"-lane occupation by large-sized vehicle,
"jamCrossLine"-queue jumping-->
</TFSEventSupport>
<isVehicleStatisticsSupport>
<!--optional, xs: boolean, whether it supports setting parameters for traffic data collection-->
</isVehicleStatisticsSupport>
<isSupportIntersectionAnalysis>
<!--optional, xs: boolean, whether it supports intersection analysis-->
</isSupportIntersectionAnalysis>
<supportRemoteCtrl opt="up,down,left,right,enter,menu,num,power,esc,edit,F1,.prev,rec,play,stop,notSupport"/><!--
whether it supports remote control-->
<isSptDiagnosis>
<!--optional, xs:boolean, whether it supports device diagnosis: "true", "false"-->
</isSptDiagnosis>
<isSptSerialLogCfg>
<!--optional, xs:boolean, whether it supports configuring serial port log redirection: "true", "false"-->
</isSptSerialLogCfg>
<isSptFileExport>
<!--optional, xs:boolean, whether it supports exporting files from the device: "true", "false"-->
</isSptFileExport>
<isSptCertificationStandard>
<!--optional, xs:boolean, whether it supports configuring authentication standard for security control panel: "true",
"false"-->
</isSptCertificationStandard>
<isSptKeypadLock>

454
Intelligent Security API (Person-Based Access Control) Developer Guide

<!--optional, xs:boolean, whether it supports locking keypad: "true", "false"-->


</isSptKeypadLock>
<MixedTargetDetection><!--optional, whether the device supports recognizing specific target among mixed targets-->
<isSupportFaceRecognition><!--optional, xs:boolean, whether it supports face recognition--></
isSupportFaceRecognition>
<isSupportHumanRecognition><!--optional, xs:boolean, whether it supports human body recognition--></
isSupportHumanRecognition>
<isSupportVehicleRecognition><!--optional, xs:boolean, whether it supports vehicle recognition--></
isSupportVehicleRecognition>
</MixedTargetDetection>
<isSupportDiscoveryMode><!--optional, xs:boolean--></isSupportDiscoveryMode>
<streamEncryptionType>
<!--dep, xs:string, stream encryption type: "RTP/TLS", "SRTP/UDP", "SRTP/MULTICAST". This node is valid when
<isSupportEncryption> is "true", and the device can support one or more stream encryption types-->
</streamEncryptionType>
<isSupportLms><!--optional, xs:boolean, whether it supports laser--></isSupportLms>
<isSupportLCDScreen><!--optional, xs:boolean, whether it supports LCD screen--></isSupportLCDScreen>
<isSupportBluetooth><!--optional, xs:boolean, whether it supports bluetooth--></isSupportBluetooth>
<isSupportAcsUpdate>
<!--optional, whether it supports upgrading slave access control devices or peripheral modules: "true"-yes, this
node is not returned-no-->
</isSupportAcsUpdate>
<isSupportAccessControlCap>
<!--optional, whether it supports access control capability: "true"-yes, this node is not returned-no-->
</isSupportAccessControlCap>
<isSupportIDCardInfoEvent><!--optional, whether it supports ID card swiping event: "true"-yes. This node will not be
returned if this function is not supported--></isSupportIDCardInfoEvent>
<OpenPlatformCap><!--optional, embedded open platform capability, refer to the message XML_OpenPlatformCap
for details-->
<isSupportInstallationAngleCalibration>
<!--optional, xs:boolean, whether it supports installation angle calibration-->
</isSupportInstallationAngleCalibration>
<isSupportZeroBiasCalibration>
<!--optional, xs:boolean, whether it supports zero bias calibration-->
</isSupportZeroBiasCalibration>
<isSupportDevStatus><!--optional, xs:boolean, whether device supports getting device status--></
isSupportDevStatus>
<isSupportRadar><!--optional, xs:boolean, whether it supports the security radar--></isSupportRadar>
<isSupportRadarChannels><!--optional, xs:boolean, whether it supports getting radar channels--></
isSupportRadarChannels>
<radarIPDForm><!--optional, xs:string, radar form: "single"-single radar, "double_diagonal"-two radars forming an
180° diagonal, "double_vertical"-two radars forming a 90° vertical angle--></radarIPDForm>
<isSupportRadarFieldDetection><!--optional, xs:boolean, whether it supports intrusion detection (radar)--></
isSupportRadarFieldDetection>
<isSupportRadarLineDetection><!--optional, xs:boolean, whether it supports line crossing detection (radar)--></
isSupportRadarLineDetection>
<mixedTargetDetectionWebNoDisplay><!--optional, xs:boolean, whether to enable not displaying multi-target-type
recognition--></mixedTargetDetectionWebNoDisplay>
<SHMCap><!--opt-->
<isSupportHighHDTemperature><!--optional, xs:boolean, whether it supports HDD high temperature detection--></
isSupportHighHDTemperature>
<isSupportLowHDTemperature><!--optional, xs:boolean, whether it supports HDD low temperature detection--></

455
Intelligent Security API (Person-Based Access Control) Developer Guide

isSupportLowHDTemperature>
<isSupportHDImpact><!--optional, xs:boolean, whether it supports HDD impact detection--></isSupportHDImpact>
<isSupportHDBadBlock><!--optional, xs:boolean, whether it supports HDD bad sector detection--></
isSupportHDBadBlock>
<isSupportSevereHDFailure><!--optional, xs:boolean, whether it supports HDD severe fault detection--></
isSupportSevereHDFailure>
</SHMCap>
<isSupportBVCorrect><!--optional, xs:boolean, whether it supports configuring camera correction parameters--></
isSupportBVCorrect>
<guideEventSupport opt="linkageCapture">
<!--optional,xs:string, events which support quick setup by instruction, "linkageCapture"-capture by linkage-->
</guideEventSupport>
<isSupportAutoSwitch><!--optional, xs:boolean, whether it supports auto switch--> true</isSupportAutoSwitch>
<isSupportDataPrealarm><!--optional,xs:boolean, whether it supports traffic pre-alarm event--></
isSupportDataPrealarm>
<supportGISEvent opt="AID,TPS,ANPR,mixedTargetDetection">
<!--optional, xs:string, event types that support GIS information access: AID (corresponding SDK event:
COMM_ALARM_AID_V41), TPS (corresponding SDK event: COMM_ALARM_TPS_REAL_TIME), ANPR (corresponding
SDK event: COMM_ITS_PLATE_RESULT), mixedTargetDetection-mixed targets detection-->
</supportGISEvent>
<isSupportIntelligentMode><!--optional, xs:boolean, whether it supports intelligent scene switch (related URI:/ISAPI/
System/IntelligentSceneSwitch?format=json)--></isSupportIntelligentMode>
<isSupportCertificateCaptureEvent><!--optional, xs:boolean, whether it supports certificate capture and comparison
events: true-yes. If this function is not supported, this node will not be returned--></
isSupportCertificateCaptureEvent>
<isSupportAlgorithmsInfo><!--optional, xs:boolean, whether it supports getting the algorithm library version
information: true-yes. If this function is not supported, this node will not be returned--></isSupportAlgorithmsInfo>
<isSupportVibrationDetection><!--optional, xs:boolean, whether it supports vibration detection--></
isSupportVibrationDetection>
<isSupportFaceTemperatureMeasurementEvent><!--optional, xs:boolean, whether it supports uploading face
thermography events (eventType: "FaceTemperatureMeasurementEvent")--></
isSupportFaceTemperatureMeasurementEvent>
<isSupportQRCodeEvent><!--optional, xs:boolean, whether it supports uploading QR code events (eventType:
"QRCodeEvent")--></isSupportQRCodeEvent>
<isSupportPersonArmingTrack><!--optional, xs:boolean, whether device supports person arming (related URI: /ISAPI/
Intelligent/channels/<ID>/personArmingTrack/capabilities?format=json)--></isSupportPersonArmingTrack>
<isSupportManualPersonArmingTrack><!--optional, xs:boolean, whether device supports manual person arming
(related URI: /ISAPI/Intelligent/channels/<ID>/manualPersonArmingTrack?format=json)--></
isSupportManualPersonArmingTrack>
<isSupportGPSCalibrationMode><!--optional, xs:boolean, whether device supports GPS calibration (related URI: /
ISAPI/System/GPSCalibration/channels/<ID>/mode?format=json)--></isSupportGPSCalibrationMode>
<isSupportGPSVerification><!--optional, xs:boolean, whether device supports GPS verification (related URI: /ISAPI/
System/GPSVerification/channels/<ID>/points?format=json)--></isSupportGPSVerification>
<isSupportHBDLib><!--optional, xs:boolean, whether device supports human body picture library (related URI: /ISAPI/
Intelligent/HBDLib/capabilities?format=json)--></isSupportHBDLib>
<isSupportFireEscapeDetection><!--optional, xs:boolean, whether the device supports fire engine access detection
(related URI: /ISAPI/Intelligent/channels/<ID>/fireEscapeDetection/capabilities?format=json)--></
isSupportFireEscapeDetection>
<isSupportTakingElevatorDetection><!--optional, xs:boolean, whether the device supports elevator detection
(related URI: /ISAPI/Intelligent/channels/<ID>/takingElevatorDetection/capabilities?format=json)--></
isSupportTakingElevatorDetection>
<isSupportSSDFileSystemUpgrade><!--optional, xs:boolean, whether the device supports SSD file system upgrade

456
Intelligent Security API (Person-Based Access Control) Developer Guide

(related URI: /ISAPI/System/SSDFileSystem/upgrade?format=json)--></isSupportSSDFileSystemUpgrade>


<isSupportSSDFileSystemFormat><!--optional, xs:boolean, whether the device supports SSD file system formatting
(related URI: /ISAPI/System/SSDFileSystem/format?format=json)--></isSupportSSDFileSystemFormat>
<isSupportSSDFileSystemCapacity><!--optional, xs:boolean, whether the device supports getting space distribution
information of SSD file system (related URI: /ISAPI/System/SSDFileSystem/capacity?format=json)--></
isSupportSSDFileSystemCapacity>
<isSupportAIOpenPlatform><!--optional, xs:boolean, whether the device supports AI open platform capabilities; if
supports, this node will be returned and its value is true; if not, this node will not be returned--></
isSupportAIOpenPlatform>
<isSupportPictureDownloadError><!--optional, xs:boolean, whether the device supports reporting picture download
failure--></isSupportPictureDownloadError>
<characteristicCode min="1" max="128"><!--optional, xs:string, device attribute code (related URI: /ISAPI/System/
deviceInfo/characteristicCode?format=json)--></characteristicCode>
<isSupportContainerDetection><!--optional, xs:boolean, whether the device supports container detection (if this
node is not returned, refer to the value returned by /ISAPI/Traffic/ContentMgmt/InputProxy/channels/<ID>/ocrScene/
capabilities to find whether the device supports container detection)--></isSupportContainerDetection>
<isSupportLensParamFile><!--optional, xs:boolean, whether the device supports exporting and importing the lens
parameters file--></isSupportLensParamFile>
</DeviceCap>

XML_DoorParam
DoorParam message in XML format
<DoorParam version="2.0" xmlns="http://www.isapi.org/ver20/XMLSchema">
<doorName>
<!--opt, xs:string, door name-->
</doorName>
<magneticType>
<!--opt, xs:string, magnetic contact type: "alwaysClose"-remain locked, "alwaysOpen"-remain unlocked-->
</magneticType>
<openButtonType>
<!--opt, xs:string, door button type: "alwaysClose"-remain locked, "alwaysOpen"-remain unlocked-->
</openButtonType>
<openDuration>
<!--opt, xs:integer, door open duration (floor relay action time), which is between 1 and 255, unit: second-->
</openDuration>
<disabledOpenDuration>
<!--opt, xs:integer, door open duration by disability card (delay duration of closing the door), which is between 1
and 255, unit: second-->
</disabledOpenDuration>
<magneticAlarmTimeout>
<!--opt, xs:integer, alarm time of magnetic contact detection timeout, which is between 0 and 255, 0 refers to not
triggering alarm, unit: second-->
</magneticAlarmTimeout>
<enableDoorLock>
<!--opt, xs:boolean, whether to enable locking door when the door is closed-->
</enableDoorLock>
<enableLeaderCard>
<!--opt, xs:boolean, whether to enable remaining open with first card. This node is invalid when leaderCardMode is
configured-->

457
Intelligent Security API (Person-Based Access Control) Developer Guide

</enableLeaderCard>
<leaderCardMode>
<!--opt, xs:string, first card mode: "disable", "alwaysOpen"-remain open with first card, "authorize"-first card
authentication. If this node is configured, the node <enableLeaderCard> is invalid-->
</leaderCardMode>
<leaderCardOpenDuration>
<!--opt, xs:integer, duration of remaining open with first card, which is between 1 and 1440, unit: second-->
</leaderCardOpenDuration>
<stressPassword>
<!--wo, opt, xs:string, duress password, the maximum length is 8 bytes, and the duress password should be encoded
by Base64 for transmission-->
</stressPassword>
<superPassword>
<!--wo, opt, xs:string, super password, the maximum length is 8 bytes, and the super password should be encoded
by Base64 for transmission-->
</superPassword>
<unlockPassword>
<!--wo, opt, xs:string, dismiss password, the maximum length is 8 bytes, and the dismiss password should be
encoded by Base64 for transmission-->
</unlockPassword>
<useLocalController>
<!--ro,opt, xs:boolean, whether it is connected to the distributed controller-->
</useLocalController>
<localControllerID>
<!--ro, opt, xs:integer, distributed controller No., which is between 1 and 64, 0-unregistered-->
</localControllerID>
<localControllerDoorNumber>
<!--ro, opt, xs:integer, distributed controller door No., which is between 1 and 4, 0-unregistered-->
</localControllerDoorNumber>
<localControllerStatus>
<!--ro, opt, xs:integer, online status of the distributed controller: 0-offline, 1-network online, 2-RS-485 serial port 1
on loop circuit 1, 3-RS-485 serial port 2 on loop circuit 1, 4-RS-485 serial port 1 on loop circuit 2, 5-RS-485 serial port 2
on loop circuit 2, 6-RS-485 serial port 1 on loop circuit 3, 7-RS-485 serial port 2 on loop circuit 3, 8-RS-485 serial port 1
on loop circuit 4, 9-RS-485 serial port 2 on loop circuit 4-->
</localControllerStatus>
<lockInputCheck>
<!--opt, xs:boolean, whether to enable door lock input detection-->
</lockInputCheck>
<lockInputType>
<!--opt, xs:string, door lock input type: "alwaysClose"-remain locked (default), "alwaysOpen"-remain unlocked-->
</lockInputType>
<doorTerminalMode>
<!--opt, xs:string, working mode of door terminal: "preventCutAndShort"-prevent from broken-circuit and short-
circuit (default), "common"-->
</doorTerminalMode>
<openButton>
<!--opt, xs:boolean, whether to enable door button: "true"-yes (default), "false"-no-->
</openButton>
<ladderControlDelayTime>
<!--opt, xs:integer, elevator control delay time (for visitor), which is between 1 and 255, unit: minute-->
</ladderControlDelayTime>
<remoteControlPWStatus>

458
Intelligent Security API (Person-Based Access Control) Developer Guide

<!--ro, opt, xs:boolean, whether the password has been configured for remote door control-->
</remoteControlPWStatus>
</DoorParam>

XML_EventCap
EventCap capability message in XML format
<EventCap version="2.0" xmlns="http://www.isapi.org/ver20/XMLSchema">
<isSupportHDFull><!--optional, xs:boolean, "true"-support, "false"-not support--></isSupportHDFull>
<isSupportHDError><!--optional, xs:boolean, "true"-support, "false"-not support--></isSupportHDError>
<isSupportNicBroken><!--optional, xs:boolean, "true"-support, "false"-not support--></isSupportNicBroken>
<isSupportIpConflict><!--optional, xs:boolean, "true"-support, "false"-not support--></isSupportIpConflict>
<isSupportIllAccess><!--optional, xs:boolean, "true"-support, "false"-not support--></isSupportIllAccess>
<isSupportViException><!--optional, xs:boolean, "true"-support, "false"-not support--></isSupportViException>
<isSupportViMismatch><!--optional, xs:boolean, "true"-support, "false"-not support--></isSupportViMismatch>
<isSupportRecordException><!--optional, xs:boolean, "true"-support, "false"-not support--></
isSupportRecordException>
<isSupportTriggerFocus><!--optional, xs:boolean, "true"-support, "false"-not support--></isSupportTriggerFocus>
<isSupportMotionDetection><!--optional, xs:boolean, "true"-support, "false"-not support--></
isSupportMotionDetection>
<isSupportVideoLoss><!--optional, xs:boolean, "true"-support, "false"-not support--></isSupportVideoLoss>
<isSupportTamperDetection><!--optional, xs:boolean, "true"-support, "false"-not support--></
isSupportTamperDetection>
<isSupportStudentsStoodUp><!--optional, xs:boolean, "true"-support, "false"-not support--></
isSupportStudentsStoodUp>
<isSupportFramesPeopleCounting><!--optional, xs:boolean, "true"-support, "false"-not support--></
isSupportFramesPeopleCounting>
<isSupportRaidException><!--optional, xs:boolean, "true"-support, "false"-not support--></isSupportRaidException>
<isSupportSpareException><!--optional, xs:boolean, "true"-support, "false"-not support--></
isSupportSpareException>
<isSupportPoePowerException><!--optional, xs:boolean, "true"-support, "false"-not support--></
isSupportPoePowerException>
<isSupportRegionEntrance><!--optional, xs:boolean, "true"-support, "false"-not support--></
isSupportRegionEntrance>
<isSupportRegionExiting><!--optional, xs:boolean, "true"-support, "false"-not support--></isSupportRegionExiting>
<isSupportLoitering><!--optional, xs:boolean, "true"-support, "false"-not support--></isSupportLoitering>
<isSupportGroup><!--optional, xs:boolean, "true"-support, "false"-not support--></isSupportGroup>
<isSupportRapidMove><!--optional, xs:boolean, "true"-support, "false"-not support--></isSupportRapidMove>
<isSupportFireDetection><!--optional, xs:boolean, "true"-support, "false"-not support--></isSupportFireDetection>
<isSupportillegalParking><!--optional, xs:boolean, whether it supports illegal parking detection: "true"-support,
"false"-not support--></isSupportillegalParking>
<isSupportUnattendedBaggage><!--optional, xs:boolean --></isSupportUnattendedBaggage>
<isSupportAttendedBaggage><!--optional, xs:boolean, "true"-support, "false"-not support--></
isSupportAttendedBaggage>
<isSupportHumanAttribute><!--optional, xs:boolean, "true"-support, "false"-not support--></
isSupportHumanAttribute>
<isSupportFaceContrast><!--optional, xs:boolean, "true"-support, "false"-not support--></isSupportFaceContrast>
<isSupportFaceLib><!--optional, xs:boolean, "true"-support, "false"-not support--></isSupportFaceLib>
<isSupportWhiteListFaceContrast><!--opt, xs:boolean, "true"-support, "false"-not support--></
isSupportWhiteListFaceContrast>

459
Intelligent Security API (Person-Based Access Control) Developer Guide

<isSupportBlackListFaceContrast><!--opt, xs:boolean, whether it supports blocklist face comparison: "true"-support,


"false"-not support--></isSupportBlackListFaceContrast>
<isSupportHumanRecognition>><!--optional, xs:boolean, "true"-support, "false"-not support--></
isSupportHumanRecognition>
<isSupportFaceSnap><!--optional, xs:boolean, "true"-support, "false"-not support--></isSupportFaceSnap>
<isSupportPersonDensityDetection><!--optional, xs:boolean, "true"-support, "false"-not support--></
isSupportPersonDensityDetection>
<isSupportMixedTargetDetection><!--optional, xs:boolean, whether it supports multi-target-type detection alarm:
"true"-support, "false"-not support--></isSupportMixedTargetDetection>
<isSupportPedestrian><!--optional, xs:boolean, whether it supports pedestrian detection: "true"-support, "false"-not
support--></isSupportPedestrian>
<isSupportTrafficAccident><!--optional, xs:boolean, whether it supports traffic accident detection: "true"-support,
"false"-not support--></isSupportTrafficAccident>
<isSupportConstruction><!--optional, xs:boolean, whether it supports construction detection: "true"-support, "false"-
not support--></isSupportConstruction>
<isSupportRoadBlock><!--optional, xs:boolean, whether it supports roadblock detection: "true"-support, "false"-not
support--></isSupportRoadBlock>
<isSupportAbandonedObject><!--optional, xs:boolean, whether it supports thrown object detection: "true"-support,
"false"-not support--></isSupportAbandonedObject>
<isSupportParallelParking><!--optional, xs:boolean, whether it supports parallel parking detection: "true"-support,
"false"-not support--></isSupportParallelParking>
<isSupportParkingState><!--optional, xs:boolean, whether it supports parking space status detection: "true"-support,
"false"-not support, currently this node is not supported--></isSupportParkingState>
<isSupportCongestion><!--optional, xs:boolean, whether it supports congestion detection: "true"-support, "false"-
not support--></isSupportCongestion>
<isSupportVehicleStatistics><!--optional, xs:boolean, whether it supports data collection: "true"-support, "false"-not
support--></isSupportVehicleStatistics>
<isSupportWrongDirection><!--optional, xs:boolean, whether it supports wrong-way driving detection: "true"-
support, "false"-not support--></isSupportWrongDirection>
<isSupportTrunRound><!--optional, xs:boolean, whether it supports U-turning detection: "true"-support, "false"-not
support--></isSupportTrunRound>
<isSupportCrossLane><!--optional, xs:boolean, whether it supports driving on the lane line detection: "true"-support,
"false"-not support--></isSupportCrossLane>
<isSupportLaneChange><!--optional, xs:boolean, whether it supports illegal lane change detection: "true"-support,
"false"-not support--></isSupportLaneChange>
<isSupportVehicleExist><!--optional, xs:boolean, whether it supports motor vehicle on non-motor vehicle lane
detection: "true"-support, "false"-not support--></isSupportVehicleExist>
<isSupporFogDetection><!--optional, xs:boolean, whether it supports fog detection: "true"-support, "false"-not
support--></isSupporFogDetection>
<isSupportIntersectionAnalysis><!--optional, xs: boolean, whether it supports configuring intersection analysis alarm:
"true"-support, "false"-not support--></isSupportIntersectionAnalysis>
<isSupportVoltageInstable><!--optional,xs:boolean, whether it supports supply voltage exception alarm: "true"-
support, "false"-not support--></isSupportVoltageInstable>
<isSupportSafetyHelmetDetection><!--optional, xs:boolean, whether it supports hard hat detection: "true"-support,
"false"-not support--></isSupportSafetyHelmetDetection>
<isSupportCertificateRevocation><!--optional, xs:boolean, whether it supports certificate expiry alarm--></
isSupportCertificateRevocation>
<isSupportNoMaskDetection><!--optional, xs:boolean, whether device supports no wearing mask detection--></
isSupportNoMaskDetection>
<isSupportTMPA><!--optional, xs:boolean, whether device supports temperature measurement pre-alarm--></
isSupportTMPA>
<RuleScheduleCap><!--optional, capability of setting arming schedule by rule-->

460
Intelligent Security API (Person-Based Access Control) Developer Guide

<isSupportCityManagement>
<!--optional, xs:boolean, whether the device supports setting arming schedule by rule for intelligent city
management; if supports, the value is true, otherwise, this node will not be returned-->
</isSupportCityManagement>
</RuleScheduleCap>
<isSupportThermalCalibrationFileException><!--optional, xs:boolean, whether the device supports alarm of
thermography calibration file exception--></isSupportThermalCalibrationFileException>
<isSupportTemperatureIntervalMeasurement><!--optional, xs:boolean, whether the device supports interval
temperature measurement--></isSupportTemperatureIntervalMeasurement>
</EventCap>

XML_EventNotificationAlert_HeartbeatInfo
EventNotificationAlert message with heartbeat information (when there is no alarm is triggered) in
XML format
<EventNotificationAlert version="2.0" xmlns="http://www.isapi.org/ver20/XMLSchema">
<ipv6Address><!--dep, xs:string, device IPv6 address--></ipv6Address>
<portNo><!--opt, xs:integer, device port number--></portNo>
<protocol><!--opt, xs:string, protocol type for uploading alarm/event information, "HTTP,HTTPS"--></protocol>
<macAddress><!--opt, xs:string, MAC address--></macAddress>
<channelID><!--dep, xs:string, device channel No., starts from 1--></channelID>
<dateTime><!--req, heartbeat uploaded time, format: 2017-07-19T10:06:41+08:00--></dateTime>
<activePostCount><!--req, xs:integer, heartbeat frequency, starts from 1--></activePostCount>
<eventType><!--req, xs:string, for heartbeat, it is "videoloss"--></eventType>
<eventState>
<!--req, xs:string, for heartbeat, it is "inactive"-->
</eventState>
<eventDescription><!--req, xs: string, description--></eventDescription>
</EventNotificationAlert>

Remarks
• For network camera or network speed dome with the version 5.5.0 and lower, the heartbeat
frequency is 300 ms per heartbeat.
• For network camera or network speed dome with the version 5.5.0 and higher, the heartbeat
frequency is 10 s per heartbeat. If no heartbeat received for continuous 30 s, it indicates that the
heartbeat is timed out.
Example
Message Example of Heartbeat
<EventNotificationAlert version="2.0" xmlns="http://www.isapi.com/ver20/XMLSchema">
<ipAddress>10.17.133.46</ipAddress>
<portNo>80</portNo>
<protocol>HTTP</protocol>
<macAddress>44:19:b6:6d:24:85</macAddress>
<channelID>1</channelID>
<dateTime>2017-05-04T11:20:02+08:00</dateTime>
<activePostCount>0</activePostCount>

461
Intelligent Security API (Person-Based Access Control) Developer Guide

<eventType>videoloss</eventType>
<eventState>inactive</eventState>
<eventDescription>videoloss alarm</eventDescription>
</EventNotificationAlert>

XML_EventNotificationAlert_AlarmEventInfo
EventNotificationAlert message with alarm/event information in XML format.
<EventNotificationAlert version="2.0" xmlns="http://www.isapi.org/ver20/XMLSchema">
<ipAddress><!--dep, xs:string, device IPv4 address--></ipAddress>
<ipv6Address><!--dep, xs:string, device IPv6 address--></ipv6Address>
<portNo><!--opt, xs:integer, device port number--></portNo>
<protocol><!--opt, xs:string, protocol type for uploading alarm/event information, "HTTP,HTTPS"--></protocol>
<macAddress><!--opt, xs:string, MAC address--></macAddress>
<channelID><!--dep, xs:string, device channel No., starts from 1--></channelID>
<dateTime><!--req, alarm/event triggered or occurred time, format: 2017-07-19T10:06:41+08:00--></dateTime>
<activePostCount><!--req, xs:integer, alarm/event frequency, starts from 1--></activePostCount>
<eventType><!--req, xs:string, alarm/event type, "peopleCounting, ANPR,..."--></eventType>
<eventState>
<!--req, xs:string, durative alarm/event status: "active"-valid, "inactive"-invalid, e.g., when a moving target is
detected,
the alarm/event information will be uploaded continuously unit the status is set to "inactive"-->
</eventState>
<eventDescription><!--req, xs:string, alarm/event description--></eventDescription>
<...><!--opt, for different alarm/event types, the nodes are different, see the message examples in different
applications--></...>
</EventNotificationAlert>

XML_EventTrigger
Linkage parameter message in XML format
<EventTrigger version="2.0" xmlns="http://www.isapi.org/ver20/XMLSchema">
<id><!--required, xs:string, ID--></id>
<eventType>
<!--required, xs:string, see details in the "Remarks" below-->
</eventType>
<eventDescription><!--optional, xs:string--></eventDescription>
<inputIOPortID><!--dependent, xs:string, alarm input ID--></inputIOPortID>
<dynInputIOPortID><!--dependent, xs:string, dynamic alarm input ID--></dynInputPortID>
<videoInputChannelID>
<!--dependent, xs:string, video input channel ID, it is valid when <eventType> is "VMD, videoloss, tamperdetection,
regionEntrance, regionExiting, loitering, group, rapidMove, parking, unattendedBaggage, attendedBaggage"-->
</videoInputChannelID>
<dynVideoInputChannelID><!--dependent, xs:string, dynamic video input channel ID--></dynVideoInputChannelID>
<intervalBetweenEvents><!--optional, xs:integer, event time interval, unit: second--></intervalBetweenEvents>
<WLSensorID><!--dependent, xs:string, ID--></WLSensorID>
<EventTriggerNotificationList/><!--optional, alarm/event linkage actions, see details in the message of

462
Intelligent Security API (Person-Based Access Control) Developer Guide

XML_EventTriggerNotificationList-->
</EventTrigger>

Remarks
The node <eventType> can be the following values: IO, VMD, videoloss, raidfailure,
recordingfailure, badvideo, POS, analytics, fanfailure, overheat, tamperdetection, diskfull, diskerror,
nicbroken, ipconflict, illaccess, videomismatch, resolutionmismatch, radifailure, PIR, WLSensor,
spareException, poePowerException, heatmap, counting, linedetection, fielddetection,
regionEntrance, regionExiting, loitering, group,rapidMove, parking, unattendedBaggage,
attendedBaggage, HUMANATTRIBUTE, blackList, whitelist, peopleDetection, allVehicleList,
otherVehicleList, vehicledetection, storageDetection, shipsDetection, humanAttribute,
faceContrast, blackListFaceContrast, whiteListFaceContrast, faceSnap, faceLib,
personDensityDetection, personQueueDetecton, mixedTargetDetection, HVTVehicleDetection,
illegalParking, pedestrian, trafficAccident, construction, roadblock, abandonedObject,
parallelParking, parkingState, congestion, intersectionAnalysis, heatMap, thermometry,
shipsFlowDetection, dredgerDetection, reverseEntrance, luma, highHDTemperature,
lowHDTemperature, hdImpact, hdBadBlock, SevereHDFailure, safetyHelmetDetection,
vibrationDetection, HBDLib,TMPA,faceThermometry,noMaskDetection
See Also
XML_EventTriggerNotificationList

XML_EventTriggerCapType
XML message about capability of alarm linkage action types
<EventTriggerCapType version="2.0" xmlns="http://www.isapi.org/ver20/XMLSchema">
<isSupportCenter><!--optional, xs:boolean--></isSupportCenter>
<isSupportRecord><!--optional, xs:boolean--></isSupportRecord>
<isSupportMonitorAlarm><!--optional, xs:boolean--></isSupportMonitorAlarm>
<isSupportBeep><!--optional, xs: boolean, whether it supports audible warning--></isSupportBeep>
<isSupportIO><!--optional, xs:boolean--></isSupportIO>
<isSupportFTP><!--optional, xs:boolean--></isSupportFTP>
<isSupportEmail><!--optional, xs:boolean--></isSupEmail>
<isSupportLightAudioAlarm><!--optional, xs:boolean--></isSupportLightAudioAlarm>
<isSupportFocus><!--optional, xs:boolean--></isSupportFocus>
<isSupportPTZ><!--optional, xs:boolean--></isSupportPTZ>
<maxPresetActionNum>
<!--dependent, xs:integer, it is valid only when <isSupportPTZ> is "true"-->
</maxPresetActionNum>
<maxPatrolActionNum>
<!--dependent, xs:integer, it is valid only when <isSupportPTZ> is "true"-->
</maxPatrolActionNum>
<maxPatternActionNum>
<!--dependent, xs:integer, it is valid only when <isSupportPTZ> is "true"-->
</maxPatternActionNum>
<isSupportTrack><!--optional, xs:boolean, whether it supports PTZ linked tracking--></isSupportTrack>

463
Intelligent Security API (Person-Based Access Control) Developer Guide

<isSupportWhiteLight>
<!--optional, xs: boolean, whether it supports supplement light alarm linkage-->
</isSupportWhiteLight>
<isSupportCloud><!--optional, xs:boolean, whether it supports upload to the cloud--></isSupportCloud>
<targetNotificationInterval max="1000" min="0" default="30"><!--xs:integer, range: [0, 1000], the default value is 30,
unit: seconds, this node is valid for <MotionDetectionTriggerCap> and <TamperDetectionTriggerCap> and this node is
valid when <isSupportPTZ> is "true"--></targetNotificationInterval>
<direction opt="both,forward,reverse"><!--xs:string, triggering direction, this node is valid for the node
<BlackListTriggerCap>, <WhiteListTriggerCap>, and <VehicleDetectionTriggerCap>--></direction>
<presetDurationTime min="" max=""><!--dependent, xs:integer--></presetDurationTime>
<isSupportSMS><!--optional, xs:boolean, whether to support SMS (Short Message Service)--></isSupportSMS>
<maxCellphoneNum><!--dependent, xs:integer, the maximum number of cellphones, which is node is valid only
when <isSupportSMS> is "true"--></maxCellphoneNum>
<isSupportOSD><!--optional, xs:boolean--></isSupportOSD>
<isSupportAudio><!--optional, xs:boolean, whether it supports setting audio alarm independently. If this node is set
to "true", audio alarm and buzzer alarm can be linked separately, and the linage method is audio--></isSupportAudio>
<AudioAction><!--dependent, this node is valid when <isSupportBeep> is "true" or <isSupportAudio> is "true"-->
<audioTypeList>
<audioType><!--list-->
<audioID><!--required, xs:integer, alarm sound type--></audioID>
<audioDescription><!--required, xs:string, alarm sound description, it should correspond to the alarm sound type--
></audioDescription>
</audioType>
</audioTypeList>
<alarmTimes opt="0,1,2,3,4,5,6,7,8,9,255"><!--required, xs:integer, alarm times, it is between 0 and 9, 255-
continuous alarm, unit: time--></alarmTimes>
</AudioAction>
<isSupportSMS><!--optional, xs:boolean --></isSupportSMS>
<maxCellphoneNum><!--dependent, if <isSupportSMS> is true, xs:integer--></maxCellphoneNum>
<isNotSupportCenterModify><!--optional, xs:boolean, whether editing configuration parameters of the surveillance
center is not supported: "true"-yes (configuration parameters of the surveillance center cannot be edited), "false" or
this node is not returned-no (configuration parameters of the surveillance center can be edited)--></
isNotSupportCenterModify>
<isSupportMessageConfig>
<!--optional, xs:boolean, whether it supports SMS configuration, if supports, set cellphoneNumber to null-->
</isSupportMessageConfig>
<isSupportAnalogOutput><!--optional, xs:boolean, whether it supports IO output of linkage analog channel--></
isSupportAnalogOutput>
<isSupportIOOutputUnify><!--optional, xs:boolean, whether it supports configuration of IO output--></
isSupportIOOutputUnify>
<isSupportFaceContrast><!--optional, xs:boolean, whether it supports face picture comparison linkage--></
isSupportFaceContrast>
<isSupportSiren><!--optional, xs:boolean, whether it supports siren linkage--></isSupportSiren>
<isSupportOutput><!--optional, xs:boolean, whether it supports relay linkage--></isSupportOutput>
</EventTriggerCapType>

XML_EventTriggerList
EventTriggerList message in XML format

464
Intelligent Security API (Person-Based Access Control) Developer Guide

<EventTriggerList version="2.0" xmlns="http://www.isapi.org/ver20/XMLSchema">


<EventTrigger/><!--opt, see details in the message of XML_EventTrigger-->
</EventTriggerList>

See Also
XML_EventTrigger
Example
XML_EventTriggerList Message Example of Linkage Configurations of Multiple Alarms
<EventTriggerList version="2.0" xmlns="http://www.hikvision.com/ver20/XMLSchema">
<EventTrigger>
<id>VMD-1</id>
<eventType>VMD</eventType>
<eventDescription>VMD Event trigger Information</eventDescription>
<videoInputChannelID>1</videoInputChannelID>
<dynVideoInputChannelID>1</dynVideoInputChannelID>
<EventTriggerNotificationList></EventTriggerNotificationList>
</EventTrigger>
<EventTrigger>
<id>tamper-1</id>
<eventType>tamperdetection</eventType>
<eventDescription>shelteralarm Event trigger Information</eventDescription>
<videoInputChannelID>1</videoInputChannelID>
<dynVideoInputChannelID>1</dynVideoInputChannelID>
<EventTriggerNotificationList></EventTriggerNotificationList>
</EventTrigger>
<EventTrigger>
<id>diskfull</id>
<eventType>diskfull</eventType>
<eventDescription>exception Information</eventDescription>
<videoInputChannelID>1</videoInputChannelID>
<dynVideoInputChannelID>1</dynVideoInputChannelID>
<EventTriggerNotificationList></EventTriggerNotificationList>
</EventTrigger>
<EventTrigger>
<id>diskerror</id>
<eventType>diskerror</eventType>
<eventDescription>exception Information</eventDescription>
<videoInputChannelID>1</videoInputChannelID>
<dynVideoInputChannelID>1</dynVideoInputChannelID>
<EventTriggerNotificationList>
<EventTriggerNotification>
<id>beep</id>
<notificationMethod>beep</notificationMethod>
<notificationRecurrence>beginning</notificationRecurrence>
</EventTriggerNotification>
</EventTriggerNotificationList>
</EventTrigger>
<EventTrigger>
<id>nicbroken</id>
<eventType>nicbroken</eventType>

465
Intelligent Security API (Person-Based Access Control) Developer Guide

<eventDescription>exception Information</eventDescription>
<videoInputChannelID>1</videoInputChannelID>
<dynVideoInputChannelID>1</dynVideoInputChannelID>
<EventTriggerNotificationList></EventTriggerNotificationList>
</EventTrigger>
<EventTrigger>
<id>ipconflict</id>
<eventType>ipconflict</eventType>
<eventDescription>exception Information</eventDescription>
<videoInputChannelID>1</videoInputChannelID>
<dynVideoInputChannelID>1</dynVideoInputChannelID>
<EventTriggerNotificationList></EventTriggerNotificationList>
</EventTrigger>
<EventTrigger>
<id>illaccess</id>
<eventType>illaccess</eventType>
<eventDescription>exception Information</eventDescription>
<videoInputChannelID>1</videoInputChannelID>
<dynVideoInputChannelID>1</dynVideoInputChannelID>
<EventTriggerNotificationList></EventTriggerNotificationList>
</EventTrigger>
<EventTrigger>
<id>videomismatch</id>
<eventType>videomismatch</eventType>
<eventDescription>exception Information</eventDescription>
<videoInputChannelID>1</videoInputChannelID>
<dynVideoInputChannelID>1</dynVideoInputChannelID>
<EventTriggerNotificationList>
<EventTriggerNotification>
<id>beep</id>
<notificationMethod>beep</notificationMethod>
<notificationRecurrence>beginning</notificationRecurrence>
</EventTriggerNotification>
</EventTriggerNotificationList>
</EventTrigger>
<EventTrigger>
<id>badvideo</id>
<eventType>badvideo</eventType>
<eventDescription>exception Information</eventDescription>
<videoInputChannelID>1</videoInputChannelID>
<dynVideoInputChannelID>1</dynVideoInputChannelID>
<EventTriggerNotificationList></EventTriggerNotificationList>
</EventTrigger>
<EventTrigger>
<id>storageDetection-1</id>
<eventType>storageDetection</eventType>
<eventDescription>storageDetection Event trigger Information</eventDescription>
<videoInputChannelID>1</videoInputChannelID>
<dynVideoInputChannelID>1</dynVideoInputChannelID>
<EventTriggerNotificationList></EventTriggerNotificationList>
</EventTrigger>
<EventTrigger>

466
Intelligent Security API (Person-Based Access Control) Developer Guide

<id>illegalParking-1</id>
<eventType>illegalParking</eventType>
<eventDescription>illegalParking Event trigger Information</eventDescription>
<videoInputChannelID>1</videoInputChannelID>
<dynVideoInputChannelID>1</dynVideoInputChannelID>
<EventTriggerNotificationList>
<EventTriggerNotification>
<id>center</id>
<notificationMethod>center</notificationMethod>
<notificationRecurrence>beginning</notificationRecurrence>
</EventTriggerNotification>
</EventTriggerNotificationList>
</EventTrigger>
<EventTrigger>
<id>pedestrian-1</id>
<eventType>pedestrian</eventType>
<eventDescription>pedestrian Event trigger Information</eventDescription>
<videoInputChannelID>1</videoInputChannelID>
<dynVideoInputChannelID>1</dynVideoInputChannelID>
<EventTriggerNotificationList>
<EventTriggerNotification>
<id>center</id>
<notificationMethod>center</notificationMethod>
<notificationRecurrence>beginning</notificationRecurrence>
</EventTriggerNotification>
</EventTriggerNotificationList>
</EventTrigger>
<EventTrigger>
<id>trafficAccident-1</id>
<eventType>trafficAccident</eventType>
<eventDescription>trafficAccident Event trigger Information</eventDescription>
<videoInputChannelID>1</videoInputChannelID>
<dynVideoInputChannelID>1</dynVideoInputChannelID>
<EventTriggerNotificationList>
<EventTriggerNotification>
<id>center</id>
<notificationMethod>center</notificationMethod>
<notificationRecurrence>beginning</notificationRecurrence>
</EventTriggerNotification>
</EventTriggerNotificationList>
</EventTrigger>
<EventTrigger>
<id>construction-1</id>
<eventType>construction</eventType>
<eventDescription>construction Event trigger Information</eventDescription>
<videoInputChannelID>1</videoInputChannelID>
<dynVideoInputChannelID>1</dynVideoInputChannelID>
<EventTriggerNotificationList>
<EventTriggerNotification>
<id>center</id>
<notificationMethod>center</notificationMethod>
<notificationRecurrence>beginning</notificationRecurrence>

467
Intelligent Security API (Person-Based Access Control) Developer Guide

</EventTriggerNotification>
</EventTriggerNotificationList>
</EventTrigger>
<EventTrigger>
<id>roadBlock-1</id>
<eventType>roadBlock</eventType>
<eventDescription>roadBlock Event trigger Information</eventDescription>
<videoInputChannelID>1</videoInputChannelID>
<dynVideoInputChannelID>1</dynVideoInputChannelID>
<EventTriggerNotificationList>
<EventTriggerNotification>
<id>center</id>
<notificationMethod>center</notificationMethod>
<notificationRecurrence>beginning</notificationRecurrence>
</EventTriggerNotification>
</EventTriggerNotificationList>
</EventTrigger>
<EventTrigger>
<id>abandonedObject-1</id>
<eventType>abandonedObject</eventType>
<eventDescription>abandonedObject Event trigger Information</eventDescription>
<videoInputChannelID>1</videoInputChannelID>
<dynVideoInputChannelID>1</dynVideoInputChannelID>
<EventTriggerNotificationList>
<EventTriggerNotification>
<id>center</id>
<notificationMethod>center</notificationMethod>
<notificationRecurrence>beginning</notificationRecurrence>
</EventTriggerNotification>
</EventTriggerNotificationList>
</EventTrigger>
<EventTrigger>
<id>parallelParking-1</id>
<eventType>parallelParking</eventType>
<eventDescription>parallelParking Event trigger Information</eventDescription>
<videoInputChannelID>1</videoInputChannelID>
<dynVideoInputChannelID>1</dynVideoInputChannelID>
<EventTriggerNotificationList>
<EventTriggerNotification>
<id>center</id>
<notificationMethod>center</notificationMethod>
<notificationRecurrence>beginning</notificationRecurrence>
</EventTriggerNotification>
</EventTriggerNotificationList>
</EventTrigger>
<EventTrigger>
<id>trafficJam-1</id>
<eventType>trafficJam</eventType>
<eventDescription>trafficJam Event trigger Information</eventDescription>
<videoInputChannelID>1</videoInputChannelID>
<dynVideoInputChannelID>1</dynVideoInputChannelID>
<EventTriggerNotificationList>

468
Intelligent Security API (Person-Based Access Control) Developer Guide

<EventTriggerNotification>
<id>center</id>
<notificationMethod>center</notificationMethod>
<notificationRecurrence>beginning</notificationRecurrence>
</EventTriggerNotification>
</EventTriggerNotificationList>
</EventTrigger>
</EventTriggerList>

XML_EventTriggerNotification
Event linkage notification message in XML format
<EventTriggerNotification><!--opt-->
<id><!--required, xs:string, device ID--></id>
<notificationMethod>
<!--required, xs:string, linkage actions, opt="email,IM,IO,syslog,HTTP,FTP,beep,ptz,record, monitorAlarm, center,
LightAudioAlarm,focus,trace,cloud,SMS,whiteLight,audio,whiteLight,faceContrast,siren,output"-->
</notificationMethod>
<notificationRecurrence>
<!--optional, xs:string, "beginning,beginningandend,recurring"-->
</notificationRecurrence>
<notificationInterval><!--dependent, xs:integer, unit: millisecond--></notificationInterval>
<outputIOPortID><!--dependent, xs:string, video output No., it is required only when notificationMethod is "IO"--></
outputIOPortID>
<dynOutputIOPortID><!--dependent, xs:string, dynamic video output No., it is required only when
notificationMethod is "IO"--></dynOutputIOPortID>
<videoInputID><!--dependent, xs:string, video input No., it is required only when notificationMethod is "record"--></
videoInputID>
<dynVideoInputID><!--dependent, xs:string, dynamic video input No., it is required only when notificationMethod is
"record"--></dynVideoInputID>
<ptzAction><!--dependent, it is required only when notificationMethod is "ptz"-->
<ptzChannelID><!--required, xs:string, PTZ channel ID--></ptzChannelID>
<actionName><!--required, xs:string, PTZ control type: "preset", "pattern", "patrol"--></actionName>
<actionNum><!--dependent, xs:integer></actionNum>
</ptzAction>
<WhiteLightAction><!--dependent, white light linkage parameters, this node is valid when notificationMethod is
"whiteLight"-->
<whiteLightDurationTime><!--required, xs:integer, white light flashing duration, it is between 1 and 60, unit:
second--></whiteLightDurationTime>
</WhiteLightAction>
<cellphoneNumber><!--dependent, xs:string, min="0" max="11",cellphone number--></cellphoneNumber-->
</EventTriggerNotification>

XML_EventTriggerNotificationList
EventTriggerNotificationList message in XML format

469
Intelligent Security API (Person-Based Access Control) Developer Guide

<EventTriggerNotificationList version="2.0" xmlns="http://www.isapi.org/ver20/XMLSchema">


<EventTriggerNotification/><!--opt, see details in the message of XML_EventTriggerNotification-->
</EventTriggerNotificationList>

See Also
XML_EventTriggerNotification

XML_EventTriggersCap
XML message about linkage capabilities of different alarm categories
<EventTriggersCap version="2.0" xmlns="http://www.isapi.org/ver20/XMLSchema">
<DiskfullTriggerCap><!--optional, xs: EventTriggerCapType--></DiskfullTriggerCap>
<DiskerrorTriggerCap><!--optional, xs: EventTriggerCapType--></DiskerrorTriggerCap>
<NicbrokenTriggerCap><!--optional, xs: EventTriggerCapType--></NicbrokenTriggerCap>
<IpconflictTriggerCap><!--optional, xs: EventTriggerCapType--></IpconflictTriggerCap>
<IllaccesTriggerCap><!--optional, xs: EventTriggerCapType--></IllaccesTriggerCap>
<BadvideoTriggerCap><!--optional, xs: EventTriggerCapType--></BadvideoTriggerCap>
<VideomismatchTriggerCap><!--optional, xs: EventTriggerCapType--></VideomismatchTriggerCap>
<IOTriggerCap><!--optional, xs: EventTriggerCapType--></IOTriggerCap>
<LineDetectTriggerCap><!--optional, xs: EventTriggerCapType--></LineDetectTriggerCap>
<RegionEntranceTriggerCap><!--optional, xs: EventTriggerCapType--></RegionEntranceTriggerCap>
<RegionExitingTriggerCap><!--optional, xs: EventTriggerCapType--></RegionExitingTriggerCap>
<LoiteringTriggerCap><!--optional, xs: EventTriggerCapType--></LoiteringTriggerCap>
<GroupDetectionTriggerCap><!--optional, xs: EventTriggerCapType--></GroupDetectionTriggerCap>
<RapidMoveTriggerCap><!--optional, xs: EventTriggerCapType--></RapidMoveTriggerCap>
<ParkingTriggerCap><!--optional, xs: EventTriggerCapType--></ParkingTriggerCap>
<UnattendedBaggageTriggerCap><!--optional, xs: EventTriggerCapType--></UnattendedBaggageTriggerCap>
<AttendedBaggageTriggerCap><!--optional, xs: EventTriggerCapType--></AttendedBaggageTriggerCap>
<FireDetectionTriggerCap><!--optional, xs: EventTriggerCapType--></FireDetectionTriggerCap>
<FireDetectionCap><!--optional, xs: EventTriggerCapType--></FireDetectionCap>
<StorageDetectionTriggerCap><!--optional, xs: EventTriggerCapType--></StorageDetectionTriggerCap>
<ShipsDetectionTriggerCap><!--optional, xs: EventTriggerCapType--></ShipsDetectionTriggerCap>
<ThermometryCap><!--optional, xs: EventTriggerCapType--></ThermometryCap>
<VandalProofTriggerCap><!--optional, xs: EventTriggerCapType--></VandalProofTriggerCap>
<BlackListTriggerCap><!--opt, xs: EventTriggerCapType, configuration capability of blocklist arming linkage--></
BlackListTriggerCap>
<WhiteListTriggerCap><!--opt, xs: EventTriggerCapType, configuration capability of allowlist arming linkage--></
WhiteListTriggerCap>
<AllVehicleListTriggerCap><!--optional,xs:EventTriggerCapType, configuration capability of other list arming linkage--
></AllVehicleListTriggerCap>
<OtherVehicleListTriggerCap><!--optional,xs:EventTriggerCapType--></OtherVehicleListTriggerCap>
<PeopleDetectionTriggerCap><!--optional,xs:EventTriggerCapType--></PeopleDetectionTriggerCap>
<PIRAlarmCap><!--optional, xs: EventTriggerCapType--></PIRAlarmCap>
<TamperDetectionTriggerCap><!--optional, xs: EventTriggerCapType--></TamperDetectionTriggerCap>
<DefocusDetectionTriggerCap><!--optional, xs: EventTriggerCapType--></DefocusDetectionTriggerCap>
<FaceDetectionTriggerCap><!--optional, xs: EventTriggerCapType--></FaceDetectionTriggerCap>
<SceneChangeDetectionTriggerCap><!--optional, xs: EventTriggerCapType--></SceneChangeDetectionTriggerCap>
<VandalProofAlarmCap><!--optional, xs: EventTriggerCapType--></VandalProofAlarmCap>
<JudgmentTriggerCap><!--optional, xs: EventTriggerCapType--></JudgmentTriggerCap>

470
Intelligent Security API (Person-Based Access Control) Developer Guide

<FightingTriggerCap><!--optional, xs: EventTriggerCapType--></FightingTriggerCap>


<RisingTriggerCap><!--optional, xs: EventTriggerCapType--></RisingTriggerCap>
<DozingTriggerCap><!--optional, xs: EventTriggerCapType--></DozingTriggerCap>
<CountingTriggerCap><!--optional, xs: EventTriggerCapType--></CountingTriggerCap>
<VideoLossTriggerCap><!--optional, xs: EventTriggerCapType--></VideoLossTriggerCap>
<HideTriggerCap><!--optional, xs:EventTriggerCapType--></HideTriggerCap>
<AlarmInTriggerCap><!--optional, xs: EventTriggerCapType--></AlarmInTriggerCap>
<VehicleDetectionTriggerCap><!--optional, xs: EventTriggerCapType--></VehicleDetectionTriggerCap>
<AudioExceptionCap><!--optional, xs: EventTriggerCapType--></AudioExceptionCap>
<FiledDetectTriggerCap><!--optional, xs: EventTriggerCapType--></FiledDetectTriggerCap>
<MotionDetectionTriggerCap><!--optional, xs: EventTriggerCapType--></MotionDetectionTriggerCap>
<TemperatureCap><!--optional, xs: EventTriggerCapType--></TemperatureCap>
<IntelligentTriggerCap><!--optional, xs: EventTriggerCapType--></IntelligentTriggerCap>
<FaceContrastTriggerCap><!--optional, xs: EventTriggerCapType, face picture comparison alarm linkage--></
FaceContrastTriggerCap>
<PersonDensityDetectionTriggerCap><!--optional, xs: EventTriggerCapType--></PersonDensityDetectionTriggerCap>
<PersonQueueDetectionTriggerCap><!--optional, xs: EventTriggerCapType, queue management alarm linkage--></
PersonQueueDetectionTriggerCap>
<HumanRecognitionTriggerCap><!--optional,xs: EventTriggerCapType--></HumanRecognitionTriggerCap>
<FaceSnapTriggerCap><!--optional, xs: EventTriggerCapType--></FaceSnapTriggerCap>
<isSupportWhiteLightAction>
<!--dependent, xs: boolean, see details in EventTriggerCapType, it is valid when isSupportWhiteLight is "true"-->
</isSupportWhiteLightAction>
<isSupportAudioAction>
<!--dependent, xs: boolean, see details in EventTriggerCapType, it is valid when isSupportBeep is "true"-->
</isSupportAudioAction>
<HFPDTriggerCap><!--optional, xs: EventTriggerCapType--></HFPDTriggerCap>
<MixedTargetDetectionCap><!--optional, xs: EventTriggerCapType--></MixedTargetDetectionCap>
<HVTVehicleDetectionTriggerCap><!--optional, xs: EventTriggerCapType--></HVTVehicleDetectionTriggerCap>
<VCATriggerCap><!--optional, xs: EventTriggerCapType--></VCATriggerCap>
<PIRCap><!--optional, xs: EventTriggerCapType--></PIRCap>
<IllegalParkingTriggerCap><!--optional, xs: EventTriggerCapType, whether it supports illegal parking detection--></
IllegalParkingTriggerCap>
<PedestrianTriggerCap><!--optional, xs: EventTriggerCapType, whether it supports pedestrian detection--></
PedestrianTriggerCap>
<TrafficAccidentTriggerCap><!--optional, xs: EventTriggerCapType, whether it supports traffic accident detection--></
TrafficAccidentTriggerCap>
<ConstructionTriggerCap><!--optional, xs: EventTriggerCapType, whether it supports construction detection--></
ConstructionTriggerCap>
<RoadBlockTriggerCap><!--optional, xs: EventTriggerCapType, whether it supports roadblock detection--></
RoadBlockTriggerCap>
<AbandonedObjectTriggerCap><!--optional, xs: EventTriggerCapType, whether it supports objects dropped down
detection--></AbandonedObjectTriggerCap>
<ParallelParkingTriggerCap><!--optional, xs: EventTriggerCapType, whether it supports parallel parking detection--></
ParallelParkingTriggerCap>
<ParkingStateTriggerCap><!--optional, xs: EventTriggerCapType, whether it supports parking space status detection,
currently this node is not supported--></ParkingStateTriggerCap>
<CongestionTriggerCap><!--optional, xs: EventTriggerCapType, whether it supports congestion detection--></
CongestionTriggerCap>
<IntersectionAnalysisCap><!--optional, xs: EventTriggerCapType, whether it supports intersection analysis--></
IntersectionAnalysisCap>
<ShipsFlowDetectionTriggerCap><!--optional,xs:EventTriggerCapType, ship flow detection--></

471
Intelligent Security API (Person-Based Access Control) Developer Guide

ShipsFlowDetectionTriggerCap>
<dredgerDetectionTriggerCap><!--optional,xs:EventTriggerCapType, dredger detection--></
dredgerDetectionTriggerCap>
<voltageInstableTriggerCap><!--optional,xs:EventTriggerCapType, supply voltage exception--></
voltageInstableTriggerCap>
<HighHDTemperatureTriggerCap><!--optional, xs:EventTriggerCapType, HDD high temperature detection--></
HighHDTemperatureTriggerCap>
<LowHDTemperatureTriggerCap><!--optional, xs:EventTriggerCapType, HDD low temperature detection--></
LowHDTemperatureTriggerCap>
<HDImpactTriggerCap><!--optional, xs:EventTriggerCapType, HDD impact detection--></HDImpactTriggerCap>
<HDBadBlockTriggerCap><!--optional, xs:EventTriggerCapType, HDD bad sector detection--></
HDBadBlockTriggerCap>
<SevereHDFailureTriggerCap><!--optional, xs:EventTriggerCapType, HDD severe fault detection--></
SevereHDFailureTriggerCap>
<HUMANATTRIBUTECap><!--optional, xs:EventTriggerCapType--></HUMANATTRIBUTECap>
<HumanAttributeTriggerCap><!--optional, xs:EventTriggerCapType, human body attribute--></
HumanAttributeTriggerCap>
<BlackListFaceContrastTriggerCap><!--opt, xs:EventTriggerCapType, alarm linkage capability of blocklist face
comparison--></BlackListFaceContrastTriggerCap>
<FaceLibTriggerCap><!--optional, xs:EventTriggerCapType--></FaceLibTriggerCap>
<SafetyHelmetDetectionTriggerCap><!--optional, xs:EventTriggerCapType, alarm linkage capability of hard hat
detection--></SafetyHelmetDetectionTriggerCap>
<VibrationDetectionTriggerCap><!--optional, xs:EventTriggerCapType, alarm linkage capability of vibration detection--
></VibrationDetectionTriggerCap>
<RadarLineDetectionTriggerCap><!--optional, xs:EventTriggerCapType, alarm linkage capability of radar line crossing
detection--></RadarLineDetectionTriggerCap>
<RadarFieldDetectionTriggerCap><!--optional, xs:EventTriggerCapType, alarm linkage capability of radar intrusion
detection--></RadarFieldDetectionTriggerCap>
<HBDLibTriggerCap><!--optional, xs:EventTriggerCapType, alarm linkage capability of human body picture library--></
HBDLibTriggerCap>
<FaceThermometryCap><!--optional, xs:EventTriggerCapType--></FaceThermometryCap>
<NoMaskDetectionTriggerCap><!--optional, xs:EventTriggerCapType, alarm linkage capability of no wearing mask
detection--></NoMaskDetectionTriggerCap>
<TMPATriggerCap><!--optional, xs:EventTriggerCapType, alarm linkage capability of temperature measurement pre-
alarm--></TMPATriggerCap>
<FireEscapeDetectionTriggerCap><!--optional, xs:EventTriggerCapType, alarm linkage capability of fire engine access
detection--></FireEscapeDetectionTriggerCap>
<TakingElevatorDetectionTriggerCap><!--optional, xs:EventTriggerCapType, alarm linkage capability of elevator
detection--></TakingElevatorDetectionTriggerCap>
<RuleTriggerCap><!--optional, linkage capability of rule triggered alarm -->
<isSupportCityManagement>
<!--optional, xs:boolean, whether the city management supports setting linkage actions by area; if supports, the
value is true, otherwise, this node will not be returned-->
</isSupportCityManagement>
</RuleTriggerCap>
<ThermalCalibrationFileExceptionCap><!--optional, xs:EventTriggerCapType, alarm linkage capability of
thermography calibration file exception--></ThermalCalibrationFileExceptionCap>
</EventTriggersCap>

See Also
XML_EventTriggerCapType

472
Intelligent Security API (Person-Based Access Control) Developer Guide

XML_FaceCompareCond
XML message about condition parameters of face picture comparison
<FaceCompareCond version="2.0" xmlns="http://www.isapi.org/ver20/XMLSchema">
<faceWidthLowerLimit><!--optional, xs:integer, face width threshold with highest priority, value range: [0, 100],
when the detected face width is larger than this threshold, the following conditions will be ignored and the face
comparison will be executed--></faceWidthLowerLimit>
<pitch><!--optional, xs:integer, face raising or bowing angle, value range: [0, 90], unit: degree, the smaller the better--
></pitch>
<yaw><!--optional, xs:integer, face siding left or right angle, value range: [0, 90], unit: degree, the smaller the better--
></yaw>
<width><!--optional, xs:integer, face width, value range: [0, 100]--></width>
<height><!--optional, xs:integer, face height, value range: [0, 100]--></height>
<leftBorder><!--optional, xs:integer, left border of face, value range: [0, 100]--></leftBorder>
<rightBorder><!--optional, xs:integer, right border of face, value range: [0, 100]--></rightBorder>
<upBorder><!--optional, xs:integer, top border of face, value range: [0, 100]--></upBorder>
<bottomBorder><!--optional, xs:integer, bottom border of face, value range: [0, 100]--></bottomBorder>
<interorbitalDistance><!--optional, xs:integer, pupil distance, value range: [0, 100]--></interorbitalDistance>
<faceScore><!--optional, xs:integer, face score, value range: [0, 100], the valid face score must be larger than this
score--></faceScore>
<maxDistance><!--optional, xs:string, maximum recognition distance: "0.5,1,1.5,2,auto", unit: m. This node has
higher priority over <interorbitalDistance>--></maxDistance>
<similarity><!--optional, xs:float, face comparison similarity, value range: [0.0,1.0]--></similarity>
</FaceCompareCond>

XML_HttpHostNotification
XML message about parameters of a HTTP listening server
<HttpHostNotification version="2.0" xmlns="http://www.isapi.org/ver20/XMLSchema">
<id><!--required, xs:string, ID--></id>
<url><!--required, xs:string, the absolute path, e.g., http://<ipAddress>:<portNo>/<uri>--></url>
<protocolType><!--required, xs:string, "HTTP,HTTPS,EHome"--></protocolType>
<parameterFormatType><!--required, xs:string, alarm/event information format, "XML,JSON"--></
parameterFormatType>
<addressingFormatType><!--required, xs:string, "ipaddress,hostname"--></addressingFormatType>
<hostName><!--dependent, xs:string--></hostName>
<ipAddress><!--dependent, xs:string--></ipAddress>
<ipv6Address><!--dependent, xs:string--></ipv6Address>
<portNo><!--optional, xs:integer--></portNo>
<userName><!--dependent, xs:string--></userName>
<password><!--dependent, xs:string--></password>
<httpAuthenticationMethod><!--required, xs:string, "MD5digest,none"--></httpAuthenticationMethod>
<ANPR><!--optional-->
<detectionUpLoadPicturesType>
<!--optional, xs:string, types of alarm picture to be uploaded: "all, licensePlatePicture, detectionPicture"-->
</detectionUpLoadPicturesType>
</ANPR>

473
Intelligent Security API (Person-Based Access Control) Developer Guide

<eventType optional="AID,TFS,TPS"><!--required, xs:string--></eventType>


<uploadImagesDataType>
<!--optional, xs:string, "URL", "binary" (default), for cloud storage, only "URL" is supported-->
</uploadImagesDataType>
<eventMode><!--optional, xs:string, "all,list"--></eventMode>
<EventList><!--dependent, it is valid only when eventMode is "list"-->
<Event><!--required-->
<type><!--required, xs:string--></type>
</Event>
</EventList>
<channels><!--optional, xs:string, "1,2,3,4…"--></channels>
<SubscribeEvent/><!--optional, event subscription parameters, see details in the message of XML_SubscribeEvent-->
</HttpHostNotification>

XML_HttpHostNotificationCap
XML message about capability of HTTP listening server
<?xml version="1.0" encoding="utf-8"?>
<HttpHostNotificationCap version="2.0" xmlns="http://www.isapi.org/ver20/XMLSchema">
<hostNumber>2</hostNumber>
<urlLen max=""/>
<protocolType opt="HTTP,HTTPS,EHome"/>
<parameterFormatType opt="XML,querystring,JSON"/>
<addressingFormatType opt="ipaddress,hostname"/>
<ipAddress opt="ipv4,ipv6"/>
<portNo min="" max=""/>
<userNameLen min="" max=""/>
<passwordLen min="" max=""/>
<httpAuthenticationMethod opt="MD5digest,none"/>
<Extensions>
<intervalBetweenEvents min="" max=""/>
</Extensions>
<uploadImagesDataType opt="URL,binary"/>
<ANPR><!--optional-->
<detectionUpLoadPicturesType opt="all,licensePlatePicture,detectionPicture…"/><!--optional, xs:string, types of
alarm pictures to be uploaded-->
<alarmHttpPushProtocol opt="baseline,custom"/>
</ANPR>
<httpBroken opt="true,false" def="true" ><!--optional, xs:boolean, whether to enable global ANR: true, false--></
httpBroken>
<SubscribeEventCap>
<heartbeat min="" max=""/><!--optional, heartbeat time interval, unit: second-->
<channelMode opt="all,list"/><!--required, all-subscribe events of all channels, list-subscribe event by channel-->
<eventMode opt="all,list"/><!--required, event subscription mode: all-subscribe all events of all channels, list-
subscribe events by type, channel, and target-->
<!--if the values of the two nodes channelMode and eventMode are both "all", it indicates that the device does not
support subscribe events by type and channel-->
<EventList><!--dependent, alarm uploading mode, this node is valid only when eventMode is "list"-->
<Event><!--required-->
<type><!--required, xs:string, event types--></type>

474
Intelligent Security API (Person-Based Access Control) Developer Guide

<pictureURLType opt="binary,localURL,cloudStorageURL" def=""/>


<!--optional, xs:string, transmission format of alarm picture: "binary"-picture binary data, "localURL"-picture URL
from local device, "cloudStorageURL"-picture URL from cloud storage-->
</Event>
</EventList>
<pictureURLType opt="binary,localURL,cloudStorageURL" def=""/>
<!--optional, xs:string, transmission format of all alarm pictures: "binary"-picture binary data (default for camera),
"localURL"-picture URL from local device (default for NVR/DVR), "cloudStorageURL"-picture URL from cloud storage;
this node is in highest priority-->
<ChangedUploadSub>
<interval/><!--optional, xs:integer, the life cycle of arming GUID, unit: second, the default life cycle is 5 minutes; if
the reconnection is not started during the life cycle, a new GUID will be generated-->
<StatusSub>
<all/><!--optional, xs:boolean, whether to subscribe all-->
<channel/><!--optional, xs:boolean, subscribe channel status, this node is not required when the node all is "true"--
>
<hd/><!--optional, xs:boolean, subscribe the HDD status, this node is not required when the node all is "true"-->
<capability/><!--optional, xs:boolean, subscribe the capability changed status, this node is not required when the
node all is "true"-->
</StatusSub>
</ChangedUploadSub>
</SubscribeEventCap>
</HttpHostNotificationCap>

XML_HttpHostNotificationList
HttpHostNotificationList message in XML format
<HttpHostNotificationList version="2.0" xmlns="http://www.isapi.org/ver20/XMLSchema">
<HttpHostNotification>
<id><!--req, xs:string, ID--></id>
<url><!--req, xs:string--></url>
<protocolType><!--req, xs:string, "HTTP,HTTPS"--></protocolType>
<parameterFormatType><!--req, xs:string, alarm/event information format, "XML,JSON"--></parameterFormatType>
<addressingFormatType><!--req, xs:string, "ipaddress,hostname"--></addressingFormatType>
<hostName><!--dep, xs:string--></hostName>
<ipAddress><!--dep, xs:string--></ipAddress>
<ipv6Address><!--dep, xs:string--></ipv6Address>
<portNo><!--opt, xs:integer--></portNo>
<userName><!--dep, xs:string--></userName>
<password><!--dep, xs:string--></password>
<httpAuthenticationMethod><!--req, xs:string, "MD5digest,none"--></httpAuthenticationMethod>
<uploadImagesDataType>
<!--opt, xs:string, "URL", "binary" (default), for cloud storage, only "URL" is supported-->
</uploadImagesDataType>
<eventMode><!--opt, xs:string, "all,list"--></eventMode>
<EventList><!--dep, it is valid only when eventMode is "list"-->
<Event><!--req-->
<type><!--req, xs:string--></type>
</Event>
</EventList>

475
Intelligent Security API (Person-Based Access Control) Developer Guide

<channels><!--opt, xs:string, "1,2,3,4…"--></channels>


</HttpHostNotification>
</HttpHostNotificationList>

Example
HttpHostNotificationList Message Example
<HttpHostNotificationList version="2.0" xmlns="http://www.isapi.org/ver20/XMLSchema">
<HttpHostNotification>
<id>1</id>
<url></url>
<protocolType>HTTP</protocolType>
<parameterFormatType>XML</parameterFormatType>
<addressingFormatType>ipaddress</addressingFormatType>
<ipAddress>0.0.0.0</ipAddress>
<portNo>80</portNo>
<userName></userName>
<httpAuthenticationMethod>none</httpAuthenticationMethod>
</HttpHostNotification>
</HttpHostNotificationList>

XML_HttpHostTestResult
HttpHostTestResult message in XML format.
<HttpHostTestResult version="2.0" xmlns="http://www.isapi.org/ver20/XMLSchema">
<errorDescription>
<!--req, xs:string-->
</errorDescription>
</HttpHostTestResult>

XML_IDBlackListCfg
XML message about the ID card blocklist parameters
<IDBlackListCfg version="2.0" xmlns="http://www.isapi.org/ver20/XMLSchema">
<blackListValid>
<!--required, xs:integer, ID card blocklist status: 0-invalid, 1-valid. This node is used to delete the ID card blocklist by
ID card number. If it is 0, it indicates deleting the blocklist-->
</blackListValid>
<IDCardInfo><!--dependent-->
<name><!--optional, xs:string, name--></name>
<birth><!--optional, xs:string, date of birth--></birth>
<addr><!--optional, xs:string, address--></addr>
<IDNum><!--required, xs:string, ID card number--></IDNum>
<issuingAuthority><!--optional, xs:string, issuing authority--></issuingAuthority>
<startDate><!--optional, xs:string, start date of expiry date--></startDate>
<endDate><!--optional, xs:string, end date of expiry date--></endDate>
<termOfValidity>

476
Intelligent Security API (Person-Based Access Control) Developer Guide

<!--optional, xs:boolean, whether it is permanently valid: false-no, true-yes (the <endDate> is invalid)-->
</termOfValidity>
<sex><!--optional, xs:string, gender: "male" or "female"--></sex>
</IDCardInfo>
</IDBlackListCfg>

XML_IdentityTerminal
IdentityTerminal message in XML format
<IdentityTerminal version="2.0" xmlns="http://www.isapi.org/ver20/XMLSchema">
<terminalMode>
<!--req, xs: string, terminal mode: "authMode"-authentication mode, "registerMode"-registration mode-->
</terminalMode>
<idCardReader>
<!--req, xs: string, ID card reader model: iDR210, DS-K1F110-I, DS-K1F1110-B, DS-K1F1110-AB, none, DS-K1F1001-
I(USB), DS-K1F1002-I(USB), none-->
</idCardReader>
<camera><!--req, xs: string, camera model: C270, DS-2CS5432B-S--></camera>
<fingerPrintModule><!--req, xs: string, fingerprint module type: ALIWARD, HikModule--></fingerPrintModule>
<videoStorageTime><!--req, xs: integer, time for saving video (unit: second), which is between 0 and 10--></
videoStorageTime>
<faceContrastThreshold><!--req, xs: integer, face picture comparison threshold, which is between 0 and 100--></
faceContrastThreshold>
<twoDimensionCode><!--req, xs: string, whether to enable QR code recognition: enable, disable--></
twoDimensionCod>
<blackListCheck><!--req, xs: string, whether to enable blocklist verification: enable, disable--></blackListCheck>
<idCardCheckCenter>
<!--req, xs: string, ID card comparison mode: local-compare with ID card of local storage, server-compare with ID
card of remote server storage-->
</idCardCheckCenter>
<faceAlgorithm>
<!--req, xs: string, face picture algorithm: HIK-Z-Hikviison algorithm, HIK-H-third-party algorithm-->
</faceAlgorithm>
<comNo><!--req, xs: integer, COM No., which is between 1 and 9--></comNo>
<memoryLearning><!--req, xs: string, whether to enable learning and memory function: enable, disable--></
memoryLearning>
<saveCertifiedImage><!--req, xs: string, whether to enable saving authenticated picture: enable, disable--></
saveCertifiedImage>
<MCUVersion><!--opt, xs: string, MCU version information, read-only--></MCUVersion>
<usbOutput><!--opt, xs: string, whether to enable USB output of ID card reader: enable, disable--></usbOutput>
<serialOutput><!--opt, xs: string, whether to enable serial port output of ID card reader: enable, disable--></
serialOutput>
<readInfoOfCard><!--opt, xs: string, set content to be read from CPU card: serialNo-read serial No., file-read file--></
readInfoOfCard>
<workMode><!--opt, xs: string, authentication mode: passMode, accessControlMode--></workMode>
<ecoMode>
<eco><!--opt, xs: string, whether to enable ECO mode: enable, disable--></eco>
<faceMatchThreshold1><!--req, xs: integer, 1V1 face picture comparison threshold of ECO mode, which is between
0 and 100--></faceMatchThreshold1>
<faceMatchThresholdN><!--req, xs: integer, 1:N face picture comparison threshold of ECO mode, which is between

477
Intelligent Security API (Person-Based Access Control) Developer Guide

0 and 100--></faceMatchThresholdN>
<changeThreshold><!--opt, xs: string, switching threshold of ECO mode, which is between 0 and 8--></
changeThreshold>
<maskFaceMatchThresholdN><!--optional, xs:integer, 1:N face picture (face with mask and normal background
picture) comparison threshold of ECO mode, value range: [0,100]--></maskFaceMatchThresholdN>
</ecoMode>
<readCardRule><!--opt, xs: string, card No. setting rule: "wiegand26", "wiegand34"--></readCardRule>
<enableScreenOff><!--optional, xs:boolean, whether the device enters the sleep mode when there is no operation
after the configured sleep time--></enableScreenOff>
<screenOffTimeout><!--dependent, xs:integer, sleep time, unit: second--></screenOffTimeout>
<enableScreensaver><!--optional, xs:boolean, whether to enable the screen saver function--></enableScreensaver>
</IdentityTerminal>

XML_M1CardEncryptCfg
M1CardEncryptCfg message in XML format
<M1CardEncryptCfg version="2.0" xmlns="http://www.isapi.org/ver20/XMLSchema">
<enable><!--req, xs: boolean, whether to enable--></enable>
<sectionID><!--req, xs:integer, sector ID, only one sector can be configured at a time--></sectionID>
</M1CardEncryptCfg>

XML_ModuleStatus
Message about the status of the secure door control unit in XML format
<ModuleStatus version="2.0" xmlns="http://www.isapi.org/ver20/XMLSchema">
<onlineStatus><!--required, xs:string, online status, the value of each bit from the first one indicates the online status
of the secure door control unit with the corresponding door No. For each bit, 0 indicates that the unit is offline, and 1
indicates that the unit is online. The maximum size of this node is 256 bytes--></onlineStatus>
<desmantelStatus><!--required, xs:string, tampering status, the value of each bit from the first one indicates the
tampering status of the secure door control unit with the corresponding door No. For each bit, 0 indicates that the
unit is not tampered, and 1 indicates that the unit is tampered. The maximum size of this node is 256 bytes--></
desmantelStatus>
</ModuleStatus>

XML_ReaderAcrossHost
ReaderAcrossHost message in XML format
<ReaderAcrossHost version="2.0" xmlns="http://www.isapi.org/ver20/XMLSchema">
<AcrossHostList size="8">
<AcrossHostAction>
<readerNo><!--req, xs: integer, card reader No., which is between 1 and 8--></readerNo>
<submarineBackEnabled>
<!--req, xs: boolean, whether to enable the cross-controller anti-passing back function of the card reader-->
</submarineBackEnabled>

478
Intelligent Security API (Person-Based Access Control) Developer Guide

</AcrossHostAction>
</AcrossHostList>
</ReaderAcrossHost>

XML_ResponseStatus
XML message about response status
<?xml version="1.0" encoding="utf-8"?>
<ResponseStatus version="2.0" xmlns="http://www.std-cgi.org/ver20/XMLSchema">
<requestURL>
<!--required, read-only, xs:string, request URL-->
</requestURL>
<statusCode>
<!--required, read-only, xs:integer, status code: 0,1-OK, 2-Device Busy, 3-Device Error, 4-Invalid Operation, 5-Invalid
XML Format, 6-Invalid XML Content, 7-Reboot Required, 9-Additional Error-->
</statusCode>
<statusString>
<!--required, read-only, xs:string, status description: OK, Device Busy, Device Error, Invalid Operation, Invalid XML
Format, Invalid XML Content, Reboot, Additional Error-->
</statusString>
<subStatusCode>
<!--required, read-only, xs:string, describe the error reason in detail-->
</subStatusCode>
<MErrCode>
<!--optional, xs:string, error code categorized by functional modules, e.g., 0x12345678-->
</MErrCode>
<MErrDevSelfEx>
<!--optional, xs:string, extension field of MErrCode. It is used to define the custom error code, which is categorized
by functional modules-->
</MErrDevSelfEx>
</ResponseStatus>

Note
• See Response Codes of Text Protocol for details about sub status codes and corresponding error
codes.
• See Error Codes Categorized by Functional Modules for details about the error codes, error
descriptions, and debugging suggestions.

XML_ResponseStatus_AuthenticationFailed
ResponseStatus message in XML format for failed authentication.
<ResponseStatus version="1.0" xmlns="http://www.std-cgi.org/ver20/XMLSchema">
<requestURL><!-- req, ro,xs:string --></requestURL>
<statusCode><!-- req, ro,xs:integer --></statusCode>
<statusString><!-- req, ro,xs:string --></statusString>

479
Intelligent Security API (Person-Based Access Control) Developer Guide

<subStatusCode><!-- req, ro,xs:string --></subStatusCode>


<lockStatus><!-- opt, ro,xs:string ,"unlock,locked", locking status--></lockStatus>
<retryTimes><!-- opt, ro,xs:integer, remaining authentication attempts--></retryTimes>
<resLockTime><!-- opt, ro,xs:integer, remaining locking time, unit: second--></resLockTime>
</ResponseStatus>

XML_RemoteControlDoor
RemoteControlDoor message in XML format
<RemoteControlDoor version="2.0" xmlns="http://www.isapi.org/ver20/XMLSchema">
<cmd>
<!--req, xs:string, command: "open"-open the door, "close"-close the door (controlled), "alwaysOpen"-remain
unlocked (free), "alwaysClose"-remain open (disabled), "visitorCallLadder"-call elevator (visitor),
"householdCallLadder"-call elevator (resident)-->
</cmd>
<password>
<!--opt, xs:string, password for opening door. This node is not required for access control devices to remotely
control the door in the LAN. For EZVIZ Cloud Service, this node is required and access control devices will verify the
inputted password-->
</password>
</RemoteControlDoor>

XML_ServerDevice
ServerDevice message in XML format
<ServerDevice version="2.0" xmlns="http://www.isapi.org/ver20/XMLSchema">
<ipAddr><!--req, xs: string, IP address of the cross-controller anti-passing back server--></ipAddr>
<port><!--req, xs: string, port No. of the cross-controller anti-passing back server--></port>
</ServerDevice>

XML_SnapConfig
SnapConfig message in XML format
<SnapConfig version="2.0"xmlns="http://www.isapi.org/ver20/XMLSchema">
<snapTimes><!--req, xs: integer, capture times triggered by loop, the value is between 0 and 5--></snapTimes>
<snapWaitTime>
<!--req, xs: integer, capture waiting time, the value is betweem 0 and 6,000, currently, this node is reserved-->
</snapWaitTime>
<intervalTimeList><!--req, the list size is 4-->
<intervalTime>
<!--req, xs: integer, time interval of continuous capture, the value is between 0 and 6,000-->
</intervalTime>
</intervalTimeList>
<JPEGParam>

480
Intelligent Security API (Person-Based Access Control) Developer Guide

<pictureSize>
<!--req, xs: string, picture resolution: 0-CIF, 1-QCIF, 2-D1, 3-UXGA (1600 × 1200), 4-SVGA(800 × 600), 5-
HD720p(1280 × 720), 6-VGA, 7-XVGA, 8-HD900p, 9-HD1080, 10-2560 × 1920, 11-1600 × 304, 12-2048 × 1536,
13-2448 × 2048, 14-2448 × 1200,15-2448 × 800, 16-XGA(1024 × 768), 17-SXGA(1280 × 1024),18-WD1(960 × 576/960
× 480), 19-1080i, 20-576 × 576, 21-1536 × 1536, 22-1920 × 1920, 161-288 × 320, 162-144 × 176, 163-480 × 640,
164-240 × 320, 165-120 × 160, 166-576 × 720, 167-720 × 1280, 168-576 × 960, 180-180*240, 181-360*480,
182-540*720, 183-720*960, 184-960*1280, 185-1080*1440, 0xff-auto-->
</pictureSize>
<pictureQuality><!--req, xs: string, picture quality: "best", "better", "general"--></pictureQuality>
</JPEGParam>
</SnapConfig>

XML_StartReaderInfo
StartReaderInfo message in XML format
<StartReaderInfo version="2.0" xmlns="http://www.isapi.org/ver20/XMLSchema">
<hostNo><!--req, xs: integer, access controller No., min="1" max="64"--></hostNo>
<readerNo><!--req, xs: integer, card reader No., min="1" max="8"--></readerNo>
</StartReaderInfo>

XML_SubmarineBack
SubmarineBack message in XML format
<SubmarineBack version="2.0" xmlns="http://www.isapi.org/ver20/XMLSchema">
<enabled><!--req, xs: boolean, whether to specify this access controller as the cross-controller anti-passing back
server--></enabled>
</SubmarineBack>

XML_SubmarineBackHostInfo
SubmarineBackHostInfo message in XML format
<SubmarineBackHostInfo version="2.0" xmlns="http://www.isapi.org/ver20/XMLSchema">
<HostInfoList size="16">
<Action>
<deviceNo><!--req, xs: integer, device No., which is between 1 and 64--></deviceNo>
<serial><!--req, xs: string, device serial No., min="9" max="9"--></serial>
</Action>
</HostInfoList>
</SubmarineBackHostInfo>

481
Intelligent Security API (Person-Based Access Control) Developer Guide

XML_SubmarineBackMode
SubmarineBackMode message in XML format
<SubmarineBackMode version="2.0" xmlns="http://www.isapi.org/ver20/XMLSchema">
<mode>
<!--req, xs:string, anti-passing back mode: "disable"-anti-passing back is disabled, "internetCommunicate"-based on
network, "cardReadAndWrite"-based on card-->
</mode>
<rule>
<!--req, xs:string, anti-passing back rule: "line"-route anti-passing back, "inOrOut"-entrance/exit anti-passing back.
This node is invalid when the mode is set to "disable"-->
</rule>
<sectionID>
<!--req, xs:integer, section ID, which is between 1 and 100. This node is valid when mode is "cardReadAndWrite",
and only one section ID can be configured for one configuration-->
</sectionID>
</SubmarineBackMode>

XML_SubmarineBackReader
SubmarineBackReader message in XML format
<SubmarineBackReader version="2.0" xmlns="http://www.isapi.org/ver20/XMLSchema">
<selfHostNo><!--req, xs:integer, access controller No. of the configuration object, which is between 1 and 64--></
selfHostNo>
<selfReaderNo><!--req, xs:integer, card reader No. of the configuration object, which is between 1 and 8--></
selfReaderNo>
<FollowReaderList size="16">
<Action>
<followHostNo><!--req, xs:integer, following access controller No., which is between 1 and 64--></followHostNo>
<followReaderNo><!--req, xs:integer, following card reader No., which is between 1 and 8--></followReaderNo>
</Action>
</FollowReaderList>
</SubmarineBackReader>

XML_WiegandCfg
WiegandCfg message in JSON format
<WiegandCfg version="2.0" xmlns="http://www.isapi.org/ver20/XMLSchema">
<communicateDirection><!--required, xs:string, communication direction: "receive", "send"--></
communicateDirection>
<wiegandMode><!--dependent, xs:string, Wiegand mode: "wiegand26", "wiegand34", "wiegand27", "wiegand35".
This node is valid when <communicateDirection> is "send"--></wiegandMode>
<signalInterval><!--optional, xs:integer, interval of sending Wiegand signals, it is between 1 and 20, unit: ms--></
signalInterval>

482
Intelligent Security API (Person-Based Access Control) Developer Guide

<enable><!--optional, xs:boolean, whether to enable Wiegand parameters: true, false--></enable>


</WiegandCfg>

XML_WiegandRuleCfg
WiegandRuleCfg message in XML format
<WiegandRuleCfg version="2.0" xmlns="http://www.isapi.org/ver20/XMLSchema">
<name>
<!--req, xs:string, Wiegand name-->
</name>
<CustomerCardIn>
<totalLength>
<!--req, xs:integer, total Wiegand length. When this node is set to 0, the custom Wiegand rule settings will be
cleared-->
</totalLength>
<checkMethod>
<!--req, xs:string, parity mode: "parityCheck,xorCheck,noCheck"-->
</checkMethod>
<ParityCheck>
<!--dep, configuration rule of odd-even parity, this node is valid when <checkMethod> is "parityCheck"-->
<oddBeginBit>
<!--dep, xs:integer, start bit of odd parity-->
</oddBeginBit>
<oddLength>
<!--dep, xs:integer, odd parity length-->
</oddLength>
<evenBeginBit>
<!--dep, xs:integer, start bit of even parity-->
</evenBeginBit>
<evenLength>
<!--dep, xs:integer, even parity length-->
</evenLength>
</ParityCheck>
<XorCheck>
<!--dep, configuration rule of XOR parity, this node is valid when <checkMethod> is "xorCheck"-->
<xorBeginBit>
<!--dep, xs:integer, start bit of XOR parity-->
</xorBeginBit>
<xorPerLength>
<!--dep, xs:integer, length of each XOR parity group-->
</xorPerLength>
<xorTotalLength>
<!--dep, xs:integer, total length of XOR parity data-->
</xorTotalLength>
</XorCheck>
<cardIdBeginBit>
<!--req, xs:integer, start bit of the card No.-->
</cardIdBeginBit>
<cardIdLength>
<!--req, xs:integer, card No. length-->

483
Intelligent Security API (Person-Based Access Control) Developer Guide

</cardIdLength>
<siteCodeBeginBit>
<!--req, xs:integer, start bit of the site code-->
</siteCodeBeginBit>
<siteCodeLength>
<!--req, xs:integer, site code length-->
</siteCodeLength>
<oemBeginBit>
<!--req, xs:integer, start bit of OEM-->
</oemBeginBit>
<oemLength>
<!--req, xs:integer, OEM length-->
</oemLength>
<manufacturerCodeBeginBit>
<!--req, xs:integer, start bit of the manufacturer code-->
</manufacturerCodeBeginBit>
<manufacturerCodeLength>
<!--req, xs:integer, manufacturer code length-->
</manufacturerCodeLength>
</CustomerCardIn>
<CustomerCardOut>
<CardContentList size="4">
<!--This node contains multiple <Action> nodes, and the <type> node in each <Action> node can only be set to
one type. The order of the types will determine the combination order of the rules-->
<Action>
<No>
<!--req, xs:integer, No.-->
</No>
<type>
<!--req, xs:string, type: "cardId"-card ID, "siteCode"-site code, "oem"-OEM No., "manufacturerCode"-
manufacturer code-->
</type>
<length>
<!--req, xs:integer, length of the corresponding decimal data-->
</length>
</Action>
</CardContentList>
</CustomerCardOut>
</WiegandRuleCfg>

B.2 Access Control Event Types


The access control events are classified as four major types, i.e., alarm events
(MAJOR_ALARM-0x1), exception events (MAJOR_EXCEPTION-0x2), operation events
(MAJOR_OPERATION-0x3), and other events (MAJOR_EVENT-0x5). Each major type corresponds to
multiple minor types, see details below.

484
Intelligent Security API (Person-Based Access Control) Developer Guide

MAJOR_ALARM

Event Minor Type Value Description


MINOR_ALARMIN_SHORT_ 0x400 Zone Short Circuit Attempts
CIRCUIT Alarm
MINOR_ALARMIN_BROKEN_ 0x401 Zone Disconnected Alarm
CIRCUIT
MINOR_ALARMIN_EXCEPTION 0x402 Zone Exception Alarm
MINOR_ALARMIN_RESUME 0x403 Zone Restored
MINOR_HOST_DESMANTLE_ 0x404 Zone Tampering Alarm
ALARM
MINOR_HOST_DESMANTLE_ 0x405 Zone Tampering Restored
RESUME
MINOR_CARD_READER_ 0x406 Card Reader Tampering Alarm
DESMANTLE_ALARM
MINOR_CARD_READER_ 0x407 Card Reader Tampering
DESMANTLE_RESUME Restored
MINOR_CASE_SENSOR_ALARM 0x408 Alarm Input Alarm Triggered
MINOR_CASE_SENSOR_ 0x409 Alarm Input Restored
RESUME
MINOR_STRESS_ALARM 0x40a Duress Alarm
MINOR_OFFLINE_ECENT_ 0x40b No Memory for Offline Event
NEARLY_FULL Storage Alarm
MINOR_CARD_MAX_ 0x40c Maximum Failed Card
AUTHENTICATE_FAIL Authentications Alarm
MINOR_SD_CARD_FULL 0x40d SD Card Full Alarm
MINOR_LINKAGE_CAPTURE_ 0x40e Capture Linkage Alarm
PIC
MINOR_SECURITY_MODULE_ 0x40f Secure Door Control Unit
DESMANTLE_ALARM Tampering Alarm
MINOR_SECURITY_MODULE_ 0x410 Secure Door Control Unit
DESMANTLE_RESUME Tampering Restored
MINOR_FIRE_IMPORT_SHORT_ 0x415 Fire Input Short Circuit
CIRCUIT Attempts Alarm

485
Intelligent Security API (Person-Based Access Control) Developer Guide

Event Minor Type Value Description


MINOR_FIRE_IMPORT_ 0x416 Fire Input Open Circuit
BROKEN_CIRCUIT Attempts Alarm
MINOR_FIRE_IMPORT_ 0x417 Fire Input Restored
RESUME
MINOR_FIRE_BUTTON_ 0x418 Fire Button Triggered
TRIGGER
MINOR_FIRE_BUTTON_ 0x419 Fire Button Resumed
RESUME
MINOR_MAINTENANCE_ 0x41a Maintenance Button Triggered
BUTTON_TRIGGER
MINOR_MAINTENANCE_ 0x41b Maintenance Button Resumed
BUTTON_RESUME
MINOR_EMERGENCY_ 0x41c Panic Button Triggered
BUTTON_TRIGGER
MINOR_EMERGENCY_ 0x41d Panic Button Resumed
BUTTON_RESUME
MINOR_DISTRACT_ 0x41e Distributed Elevator Controller
CONTROLLER_ALARM Tampering Alarm
MINOR_DISTRACT_ 0x41f Distributed Elevator Controller
CONTROLLER_RESUME Tampering Restored
MINOR_CHANNEL_ 0x422 Lane Controller Tampering
CONTROLLER_DESMANTLE_ Alarm
ALARM
MINOR_CHANNEL_ 0x423 Lane Controller Tampering
CONTROLLER_DESMANTLE_ Alarm Restored
RESUME
MINOR_CHANNEL_ 0x424 Lane Controller Fire Input
CONTROLLER_FIRE_IMPORT_ Alarm
ALARM
MINOR_CHANNEL_ 0x425 Lane Controller Fire Input
CONTROLLER_FIRE_IMPORT_ Alarm Restored
RESUME
MINOR_PRINTER_OUT_OF_ 0x440 No Paper in Printer Alarm
PAPER

486
Intelligent Security API (Person-Based Access Control) Developer Guide

Event Minor Type Value Description


MINOR_LEGAL_EVENT_ 0x442 No Memory Alarm for Valid
NEARLY_FULL Offline Event Storage
MINOR_ALARM_CUSTOM1 to 0x900 to 0x93f Access Control: Custom Alarm
MINOR_ALARM_CUSTOM64 Event 1 to Custom Alarm Event
64

MAJOR_EXCEPTION

Event Minor Type Value Description


MINOR_NET_BROKEN 0x27 Network Disconnected
MINOR_RS485_DEVICE_ 0x3a RS485 Connection Exception
ABNORMAL
MINOR_RS485_DEVICE_ 0x3b RS485 Connection Restored
REVERT
MINOR_DEV_POWER_ON 0x400 Power on
MINOR_DEV_POWER_OFF 0x401 Power off
MINOR_WATCH_DOG_RESET 0x402 Watchdog Reset
MINOR_LOW_BATTERY 0x403 Low Battery Voltage
MINOR_BATTERY_RESUME 0x404 Battery Voltage Restored
MINOR_AC_OFF 0x405 AC Power Disconnected
MINOR_AC_RESUME 0x406 AC Power Restored
MINOR_NET_RESUME 0x407 Network Restored
MINOR_FLASH_ABNORMAL 0x408 Flash Reading and Writing
Exception
MINOR_CARD_READER_ 0x409 Card Reader Offline
OFFLINE
MINOR_CAED_READER_ 0x40a Card Reader Online
RESUME
MINOR_INDICATOR_LIGHT_ 0x40b Indicator Turns off
OFF
MINOR_INDICATOR_LIGHT_ 0x40c Indicator Resumed
RESUME

487
Intelligent Security API (Person-Based Access Control) Developer Guide

Event Minor Type Value Description


MINOR_CHANNEL_ 0x40d Lane Controller Offline
CONTROLLER_OFF
MINOR_CHANNEL_ 0x40e Lane Controller Online
CONTROLLER_RESUME
MINOR_SECURITY_MODULE_ 0x40f Secure Door Control Unit
OFF Offline
MINOR_SECURITY_MODULE_ 0x410 Secure Door Control Unit
RESUME Online
MINOR_BATTERY_ELECTRIC_ 0x411 Low Battery Voltage (Only for
LOW Face Recognition Terminal)
MINOR_BATTERY_ELECTRIC_ 0x412 Battery Voltage Recovered
RESUME (Only for Face Recognition
Terminal)
MINOR_LOCAL_CONTROL_ 0x413 Network of Distributed Access
NET_BROKEN Controller Disconnected
MINOR_LOCAL_CONTROL_ 0x414 Network of Distributed Access
NET_RSUME Controller Restored
MINOR_MASTER_RS485_ 0x415 RS485 Loop of Master Access
LOOPNODE_BROKEN Controller Disconnected
MINOR_MASTER_RS485_ 0x416 RS485 Loop of Master Access
LOOPNODE_RESUME Controller Connected
MINOR_LOCAL_CONTROL_ 0x417 Distributed Access Controller
OFFLINE Offline
MINOR_LOCAL_CONTROL_ 0x418 Distributed Access Controller
RESUME Online
MINOR_LOCAL_DOWNSIDE_ 0x419 Downstream RS485 Loop of
RS485_LOOPNODE_BROKEN Distributed Access Control
Disconnected
MINOR_LOCAL_DOWNSIDE_ 0x41a Downstream RS485 Loop of
RS485_LOOPNODE_RESUME Distributed Access Control
Connected
MINOR_DISTRACT_ 0x41b Distributed Elevator Controller
CONTROLLER_ONLINE Online

488
Intelligent Security API (Person-Based Access Control) Developer Guide

Event Minor Type Value Description


MINOR_DISTRACT_ 0x41c Distributed Elevator Controller
CONTROLLER_OFFLINE Offline
MINOR_ID_CARD_READER_ 0x41d ID Card Reader Disconnected
NOT_CONNECT
MINOR_ID_CARD_READER_ 0x41e ID Card Reader Connected
RESUME
MINOR_FINGER_PRINT_ 0x41f Fingerprint Module
MODULE_NOT_CONNECT Disconnected
MINOR_FINGER_PRINT_ 0x420 Fingerprint Module Connected
MODULE_RESUME
MINOR_CAMERA_NOT_ 0x421 Camera Disconnected
CONNECT
MINOR_CAMERA_RESUME 0x422 Camera Connected
MINOR_COM_NOT_CONNECT 0x423 COM Port Disconnected
MINOR_COM_RESUME 0x424 COM Port Connected
MINOR_DEVICE_NOT_ 0x425 Device Unauthorized
AUTHORIZE
MINOR_PEOPLE_AND_ID_ 0x426 Face Recognition Terminal
CARD_DEVICE_ONLINE Online
MINOR_PEOPLE_AND_ID_ 0x427 Face Recognition Terminal
CARD_DEVICE_OFFLINE Offline
MINOR_LOCAL_LOGIN_LOCK 0x428 Local Login Lock
MINOR_LOCAL_LOGIN_ 0x429 Local Login Unlock
UNLOCK
MINOR_SUBMARINEBACK_ 0x42a Communication with Anti-
COMM_BREAK passing Back Server Failed
MINOR_SUBMARINEBACK_ 0x42b Communication with Anti-
COMM_RESUME passing Back Server Restored
MINOR_MOTOR_SENSOR_ 0x42c Motor or Sensor Exception
EXCEPTION
MINOR_CAN_BUS_EXCEPTION 0x42d CAN Bus Exception
MINOR_CAN_BUS_RESUME 0x42e CAN Bus Exception Restored

489
Intelligent Security API (Person-Based Access Control) Developer Guide

Event Minor Type Value Description


MINOR_GATE_TEMPERATURE_ 0x42f Too High Pedestal Temperature
OVERRUN
MINOR_IR_EMITTER_ 0x430 Active Infrared Intrusion
EXCEPTION Detector Exception
MINOR_IR_EMITTER_RESUME 0x431 Active Infrared Intrusion
Detector Restored
MINOR_LAMP_BOARD_ 0x432 Communication with Light
COMM_EXCEPTION Board Failed
MINOR_LAMP_BOARD_ 0x433 Communication with Light
COMM_RESUME Board Restored
MINOR_IR_ADAPTOR_COMM_ 0x434 Communication with IR
EXCEPTION Adaptor Failed
MINOR_IR_ADAPTOR_COMM_ 0x435 Communication with IR
RESUME Adaptor Restored
MINOR_PRINTER_ONLINE 0x436 Printer Online
MINOR_PRINTER_OFFLINE 0x437 Printer Offline
MINOR_4G_MOUDLE_ONLINE 0x438 4G Module Online
MINOR_4G_MOUDLE_OFFLINE 0x439 4G Module Offline
MINOR_AUXILIARY_BOARD_ 0x43c Auxiliary Board Disconnected
OFFLINE
MINOR_AUXILIARY_BOARD_ 0x43d Auxiliary Board Connected
RESUME
MINOR_IDCARD_SECURITY_ 0x43e Secure ID Card Unit Exception
MOUDLE_EXCEPTION
MINOR_IDCARD_SECURITY_ 0x43f Secure ID Card Unit Restored
MOUDLE_RESUME
MINOR_FP_PERIPHERAL_ 0x440 Fingerprint Collection
EXCEPTION Peripheral Exception
MINOR_FP_PERIPHERAL_ 0x441 Fingerprint Collection
RESUME Peripheral Restored
MINOR_EXCEPTION_CUSTOM1 0x900 to 0x93f Access Control: Custom
to MINOR_EXCEPTION_ Exception Event 1 to Custom
CUSTOM64 Exception Event 64

490
Intelligent Security API (Person-Based Access Control) Developer Guide

MAJOR_OPERATION

Alarm Minor Types Value Description


MINOR_LOCAL_LOGIN 0x50 Local Login
MINOR_LOCAL_LOGOUT 0x51 Local Logout
MINOR_LOCAL_UPGRADE 0x5a Local Upgrade
MINOR_REMOTE_LOGIN 0x70 Remote Login
MINOR_REMOTE_LOGOUT 0x71 Remote Logout
MINOR_REMOTE_ARM 0x79 Remote Arming
MINOR_REMOTE_DISARM 0x7a Remote Disarming
MINOR_REMOTE_REBOOT 0x7b Remote Reboot
MINOR_REMOTE_UPGRADE 0x7e Remote Upgrade
MINOR_REMOTE_CFGFILE_ 0x86 Remote Operation: Export
OUTPUT Configuration File
MINOR_REMOTE_CFGFILE_ 0x87 Remote Operation: Import
INTPUT Configuration File
MINOR_REMOTE_ALARMOUT_ 0xd6 Remote Operation: Enable
OPEN_MAN Alarm Output Manually
MINOR_REMOTE_ALARMOUT_ 0xd7 Remote Operation: Disable
CLOSE_MAN Alarm Output Manually
MINOR_REMOTE_OPEN_DOOR 0x400 Door Remotely Open
MINOR_REMOTE_CLOSE_ 0x401 Door Remotely Closed
DOOR
MINOR_REMOTE_ALWAYS_ 0x402 Remain Open Remotely
OPEN
MINOR_REMOTE_ALWAYS_ 0x403 Remain Closed Remotely
CLOSE
MINOR_REMOTE_CHECK_TIME 0x404 Remote: Manual Time Sync
MINOR_NTP_CHECK_TIME 0x405 Network Time Protocol
Synchronization
MINOR_REMOTE_CLEAR_CARD 0x406 Remote Operation: Clear All
Card No.

491
Intelligent Security API (Person-Based Access Control) Developer Guide

Alarm Minor Types Value Description


MINOR_REMOTE_RESTORE_ 0x407 Remote Operation: Restore
CFG Defaults
MINOR_ALARMIN_ARM 0x408 Zone Arming
MINOR_ALARMIN_DISARM 0x409 Zone Disarming
MINOR_LOCAL_RESTORE_CFG 0x40a Local Operation: Restore
Defaults
MINOR_REMOTE_CAPTURE_ 0x40b Remote Operation: Capture
PIC
MINOR_MOD_NET_REPORT_ 0x40c Edit Network Parameters
CFG
MINOR_MOD_GPRS_REPORT_ 0x40d Edit GPRS Parameters
PARAM
MINOR_MOD_REPORT_ 0x40e Edit Control Center Parameters
GROUP_PARAM
MINOR_UNLOCK_PASSWORD_ 0x40f Enter Dismiss Code
OPEN_DOOR
MINOR_AUTO_RENUMBER 0x410 Auto Renumber
MINOR_AUTO_COMPLEMENT_ 0x411 Auto Supplement Number
NUMBER
MINOR_NORMAL_CFGFILE_ 0x412 Import Configuration File
INPUT
MINOR_NORMAL_CFGFILE_ 0x413 Export Configuration File
OUTTPUT
MINOR_CARD_RIGHT_INPUT 0x414 Import Card Permission
Parameters
MINOR_CARD_RIGHT_ 0x415 Export Card Permission
OUTTPUT Parameters
MINOR_LOCAL_USB_UPGRADE 0x416 Upgrade Device via USB flash
Drive
MINOR_REMOTE_VISITOR_ 0x417 Visitor Calling Elevator
CALL_LADDER
MINOR_REMOTE_ 0x418 Resident Calling Elevator
HOUSEHOLD_CALL_LADDER

492
Intelligent Security API (Person-Based Access Control) Developer Guide

Alarm Minor Types Value Description


MINOR_REMOTE_ACTUAL_ 0x419 Remotely Arming
GUARD
MINOR_REMOTE_ACTUAL_ 0x41a Remotely Disarming
UNGUARD
MINOR_REMOTE_CONTROL_ 0x41b Operation Failed: Keyfob Not
NOT_CODE_OPER_FAILED Pairing
MINOR_REMOTE_CONTROL_ 0x41c Keyfob Operation: Close Door
CLOSE_DOOR
MINOR_REMOTE_CONTROL_ 0x41d Keyfob Operation: Open Door
OPEN_DOOR
MINOR_REMOTE_CONTROL_ 0x41e Keyfob Operation: Remain
ALWAYS_OPEN_DOOR Door Open
MINOR_M1_CARD_ENCRYPT_ 0x41f M1 Card Encryption
VERIFY_OPEN Verification Enabled
MINOR_M1_CARD_ENCRYPT_ 0x420 M1 Card Encryption
VERIFY_CLOSE Verification Disabled
MINOR_NFC_FUNCTION_OPEN 0X421 Opening Door with NFC Card
Enabled
MINOR_NFC_FUNCTION_ 0X422 Opening Door with NFC Card
CLOSE Disabled
MINOR_OFFLINE_DATA_ 0x423 Export Offline Collected Data
OUTPUT
MINOR_CREATE_SSH_LINK 0x42d Establish SSH Connection
MINOR_CLOSE_SSH_LINK 0x42e Disconnect SSH Connection
MINOR_OPERATION_CUSTOM1 0x900-0x93f Access Control: Custom
to MINOR_OPERATION_ Operation Event 1 to Custom
CUSTOM64 Operation Event 64

MAJOR_EVENT

Event Minor Types Value Description


MINOR_LEGAL_CARD_PASS 0x01 Valid Card Authentication
Completed
MINOR_CARD_AND_PSW_PASS 0x02 Card and Password
Authentication Completed

493
Intelligent Security API (Person-Based Access Control) Developer Guide

Event Minor Types Value Description


MINOR_CARD_AND_PSW_FAIL 0x03 Card and Password
Authentication Failed
MINOR_CARD_AND_PSW_ 0x04 Card and Password
TIMEOUT Authentication Timed Out
MINOR_CARD_AND_PSW_ 0x05 Card and Password
OVER_TIME Authentication Timed Out
MINOR_CARD_NO_RIGHT 0x06 No Permission
MINOR_CARD_INVALID_ 0x07 Invalid Card Swiping Time
PERIOD Period
MINOR_CARD_OUT_OF_DATE 0x08 Expired Card
MINOR_INVALID_CARD 0x09 Card No. Not Exist
MINOR_ANTI_SNEAK_FAIL 0x0a Anti-​passing Back
Authentication Failed
MINOR_INTERLOCK_DOOR_ 0x0b Interlocking Door Not Closed
NOT_CLOSE
MINOR_NOT_BELONG_MULTI_ 0x0c Card Not in Multiple
GROUP Authentication Group
MINOR_INVALID_MULTI_ 0x0d Card Not in Multiple
VERIFY_PERIOD Authentication Duration
MINOR_MULTI_VERIFY_ 0x0e Multiple Authentications:
SUPER_RIGHT_FAIL Super Password Authentication
Failed
MINOR_MULTI_VERIFY_ 0x0f Multiple Authentication
REMOTE_RIGHT_FAIL Completed
MINOR_MULTI_VERIFY_ 0x10 Multiple Authenticated
SUCCESS
MINOR_LEADER_CARD_OPEN_ 0x11 Open Door with First Card
BEGIN Started
MINOR_LEADER_CARD_OPEN_ 0x12 Open Door with First Card
END Stopped
MINOR_ALWAYS_OPEN_BEGIN 0x13 Remain Open Started
MINOR_ALWAYS_OPEN_END 0x14 Remain Open Stopped
MINOR_LOCK_OPEN 0x15 Door Unlocked

494
Intelligent Security API (Person-Based Access Control) Developer Guide

Event Minor Types Value Description


MINOR_LOCK_CLOSE 0x16 Door Locked
MINOR_DOOR_BUTTON_PRESS 0x17 Exit Button Pressed
MINOR_DOOR_BUTTON_ 0x18 Exit Button Released
RELEASE
MINOR_DOOR_OPEN_ 0x19 Door Open (Contact)
NORMAL
MINOR_DOOR_CLOSE_ 0x1a Door Closed (Contact)
NORMAL
MINOR_DOOR_OPEN_ 0x1b Door Abnormally Open
ABNORMAL (Contact)
MINOR_DOOR_OPEN_ 0x1c Door Open Timed Out
TIMEOUT (Contact)
MINOR_ALARMOUT_ON 0x1d Alarm Output Enabled
MINOR_ALARMOUT_OFF 0x1e Alarm Output Disabled
MINOR_ALWAYS_CLOSE_BEGIN 0x1f Remain Closed Started
MINOR_ALWAYS_CLOSE_END 0x20 Remain Closed Stopped
MINOR_MULTI_VERIFY_NEED_ 0x21 Multiple Authentications:
REMOTE_OPEN Remotely Open Door
MINOR_MULTI_VERIFY_ 0x22 Multiple Authentications:
SUPERPASSWD_VERIFY_ Super Password Authentication
SUCCESS Completed
MINOR_MULTI_VERIFY_ 0x23 Multiple Authentications:
REPEAT_VERIFY Repeated Authentication
MINOR_MULTI_VERIFY_ 0x24 Multiple Authentications Timed
TIMEOUT Out
MINOR_DOORBELL_RINGING 0x25 Doorbell Ring
MINOR_FINGERPRINT_ 0x26 Fingerprint Matched
COMPARE_PASS
MINOR_FINGERPRINT_ 0x27 Fingerprint Mismatched
COMPARE_FAIL
MINOR_CARD_FINGERPRINT_ 0x28 Card and Fingerprint
VERIFY_PASS Authentication Completed

495
Intelligent Security API (Person-Based Access Control) Developer Guide

Event Minor Types Value Description


MINOR_CARD_FINGERPRINT_ 0x29 Card and Fingerprint
VERIFY_FAIL Authentication Failed
MINOR_CARD_FINGERPRINT_ 0x2a Card and Fingerprint
VERIFY_TIMEOUT Authentication Timed Out
MINOR_CARD_FINGERPRINT_ 0x2b Card and Fingerprint and
PASSWD_VERIFY_PASS Password Authentication
Completed
MINOR_CARD_FINGERPRINT_ 0x2c Card and Fingerprint and
PASSWD_VERIFY_FAIL Password Authentication Failed
MINOR_CARD_FINGERPRINT_ 0x2d Card and Fingerprint and
PASSWD_VERIFY_TIMEOUT Password Authentication
Timed Out
MINOR_FINGERPRINT_ 0x2e Fingerprint and Password
PASSWD_VERIFY_PASS Authentication Completed
MINOR_FINGERPRINT_ 0x2f Fingerprint and Password
PASSWD_VERIFY_FAIL Authentication Failed
MINOR_FINGERPRINT_ 0x30 Fingerprint and Password
PASSWD_VERIFY_TIMEOUT Authentication Timed Out
MINOR_FINGERPRINT_ 0x31 Fingerprint Not Exists
INEXISTENCE
MINOR_CARD_PLATFORM_ 0x32 Card Platform Authentication
VERIFY
MINOR_CALL_CENTER 0x33 Call Center
MINOR_FIRE_RELAY_TURN_ 0x34 Fire Relay Closed: Door
ON_DOOR_ALWAYS_OPEN Remains Open
MINOR_FIRE_RELAY_ 0x35 Fire Relay Opened: Door
RECOVER_DOOR_RECOVER_ Remains Closed
NORMAL
MINOR_EMPLOYEENO_AND_ 0x45 Employee ID and Fingerprint
FP_VERIFY_PASS Authentication Completed
MINOR_EMPLOYEENO_AND_ 0x46 Employee ID and Fingerprint
FP_VERIFY_FAIL Authentication Failed
MINOR_EMPLOYEENO_AND_ 0x47 Employee ID and Fingerprint
FP_VERIFY_TIMEOUT Authentication Timed Out

496
Intelligent Security API (Person-Based Access Control) Developer Guide

Event Minor Types Value Description


MINOR_EMPLOYEENO_AND_ 0x48 Employee ID and Fingerprint
FP_AND_PW_VERIFY_PASS and Password Authentication
Completed
MINOR_EMPLOYEENO_AND_ 0x49 Employee ID and Fingerprint
FP_AND_PW_VERIFY_FAIL and Password Authentication
Failed
MINOR_EMPLOYEENO_AND_ 0x4a Employee ID and Fingerprint
FP_AND_PW_VERIFY_ and Password Authentication
TIMEOUT Timed Out
MINOR_FACE_VERIFY_PASS 0x4b Face Authentication Completed
MINOR_FACE_VERIFY_FAIL 0x4c Face Authentication Failed
MINOR_EMPLOYEENO_AND_ 0x4d Employee ID and Face
FACE_VERIFY_PASS Authentication Completed
MINOR_EMPLOYEENO_AND_ 0x4e Employee ID and Face
FACE_VERIFY_FAIL Authentication Failed
MINOR_EMPLOYEENO_AND_ 0x4f Employee ID and Face
FACE_VERIFY_TIMEOUT Authentication Timed Out
MINOR_FACE_RECOGNIZE_FAIL 0x50 Face Recognition Failed
MINOR_FIRSTCARD_ 0x51 First Card Authorization Started
AUTHORIZE_BEGIN
MINOR_FIRSTCARD_ 0x52 First Card Authorization Ended
AUTHORIZE_END
MINOR_DOORLOCK_INPUT_ 0x53 Lock Input Short Circuit
SHORT_CIRCUIT Attempts Alarm
MINOR_DOORLOCK_INPUT_ 0x54 Lock Input Open Circuit
BROKEN_CIRCUIT Attempts Alarm
MINOR_DOORLOCK_INPUT_ 0x55 Lock Input Exception Alarm
EXCEPTION
MINOR_DOORCONTACT_ 0x56 Contact Input Short Circuit
INPUT_SHORT_CIRCUIT Attempts Alarm
MINOR_DOORCONTACT_ 0x57 Contact Input Open Circuit
INPUT_BROKEN_CIRCUIT Attempts Alarm
MINOR_DOORCONTACT_ 0x58 Contact Input Exception Alarm
INPUT_EXCEPTION

497
Intelligent Security API (Person-Based Access Control) Developer Guide

Event Minor Types Value Description


MINOR_OPENBUTTON_INPUT_ 0x59 Exit Button Input Short Circuit
SHORT_CIRCUIT Attempts Alarm
MINOR_OPENBUTTON_INPUT_ 0x5a Exit Button Input Open Circuit
BROKEN_CIRCUIT Attempts Alarm
MINOR_OPENBUTTON_INPUT_ 0x5b Exit Button Input Exception
EXCEPTION Alarm
MINOR_DOORLOCK_OPEN_ 0x5c Unlocking Exception
EXCEPTION
MINOR_DOORLOCK_OPEN_ 0x5d Unlocking Timed Out
TIMEOUT
MINOR_FIRSTCARD_OPEN_ 0x5e Unauthorized First Card
WITHOUT_AUTHORIZE Opening Failed
MINOR_CALL_LADDER_RELAY_ 0x5f Call Elevator Relay Open
BREAK
MINOR_CALL_LADDER_RELAY_ 0x60 Call Elevator Relay Closed
CLOSE
MINOR_AUTO_KEY_RELAY_ 0x61 Auto Button Relay Open
BREAK
MINOR_AUTO_KEY_RELAY_ 0x62 Auto Button Relay Closed
CLOSE
MINOR_KEY_CONTROL_RELAY_ 0x63 Button Relay Open
BREAK
MINOR_KEY_CONTROL_RELAY_ 0x64 Button Relay Closed
CLOSE
MINOR_EMPLOYEENO_AND_ 0x65 Employee ID and Password
PW_PASS Authentication Completed
MINOR_EMPLOYEENO_AND_ 0x66 Employee ID and Password
PW_FAIL Authentication Failed
MINOR_EMPLOYEENO_AND_ 0x67 Employee ID and Password
PW_TIMEOUT Authentication Timed Out
MINOR_CERTIFICATE_ 0x71 Blocklist Event
BLOCKLIST
MINOR_LEGAL_MESSAGE 0x72 Valid Message

498
Intelligent Security API (Person-Based Access Control) Developer Guide

Event Minor Types Value Description


MINOR_ILLEGAL_MESSAGE 0x73 Invalid Message
MINOR_DOOR_OPEN_OR_ 0x75 Authentication Failed: Door
DORMANT_FAIL Remain Closed or Door in
Sleeping Mode
MINOR_AUTH_PLAN_ 0x76 Authentication Failed:
DORMANT_FAIL Authentication Schedule in
Sleeping Mode
MINOR_CARD_ENCRYPT_ 0x77 Card Encryption Verification
VERIFY_FAIL Failed
MINOR_SUBMARINEBACK_ 0x78 Anti-​passing Back Server
REPLY_FAIL Response Failed
MINOR_DOOR_OPEN_OR_ 0x82 Open Door via Exit Button
DORMANT_OPEN_FAIL Failed When Door Remain
Closed or in Sleeping Mode
MINOR_DOOR_OPEN_OR_ 0x84 Door Linkage Open Failed
DORMANT_LINKAGE_OPEN_ During Door Remain Close or
FAIL Sleeping
MINOR_TRAILING 0x85 Tailgating
MINOR_REVERSE_ACCESS 0x86 Reverse Passing
MINOR_FORCE_ACCESS 0x87 Force Accessing
MINOR_CLIMBING_OVER_ 0x88 Climb Over
GATE
MINOR_PASSING_TIMEOUT 0x89 Passing Timed Out
MINOR_INTRUSION_ALARM 0x8a Intrusion Alarm
MINOR_FREE_GATE_PASS_ 0x8b Authentication Failed When
NOT_AUTH Free Passing
MINOR_DROP_ARM_BLOCK 0x8c Barrier Obstructed
MINOR_DROP_ARM_BLOCK_ 0x8d Barrier Restored
RESUME
MINOR_PASSWORD_ 0x97 Passwords Mismatched
MISMATCH
MINOR_EMPLOYEE_NO_NOT_ 0x98 Employee ID Not Exists
EXIST

499
Intelligent Security API (Person-Based Access Control) Developer Guide

Event Minor Types Value Description


MINOR_COMBINED_VERIFY_ 0x99 Combined Authentication
PASS Completed
MINOR_COMBINED_VERIFY_ 0x9a Combined Authentication
TIMEOUT Timed Out
MINOR_VERIFY_MODE_ 0x9b Authentication Type
MISMATCH Mismatched
MINOR_INFORMAL_MIFARE_ 0xa2 Authentication Failed: Invalid
CARD_VERIFY_FAIL Mifare Card
MINOR_CPU_CARD_ENCRYPT_ 0xa3 Verifying CPU Card Encryption
VERIFY_FAIL Failed
MINOR_NFC_DISABLE_VERIFY_ 0xa4 Disabling NFC Verification
FAIL Failed
MINOR_EM_CARD_ 0xa8 EM Card Recognition Disabled
RECOGNIZE_NOT_ENABLED
MINOR_M1_CARD_ 0xa9 M1 Card Recognition Disabled
RECOGNIZE_NOT_ENABLED
MINOR_CPU_CARD_ 0xaa CPU Card Recognition Disabled
RECOGNIZE_NOT_ENABLED
MINOR_ID_CARD_RECOGNIZE_ 0xab ID Card Recognition Disabled
NOT_ENABLED
MINOR_CARD_SET_SECRET_ 0xac Importing Key to Card Failed
KEY_FAIL
MINOR_LOCAL_UPGRADE_FAIL 0xad Local Upgrade Failed
MINOR_REMOTE_UPGRADE_ 0xae Remote Upgrade Failed
FAIL
MINOR_REMOTE_EXTEND_ 0xaf Extension Module is Remotely
MODULE_UPGRADE_SUCC Upgraded
MINOR_REMOTE_EXTEND_ 0xb0 Upgrading Extension Module
MODULE_UPGRADE_FAIL Remotely Failed
MINOR_REMOTE_FINGER_ 0xb1 Fingerprint Module is Remotely
PRINT_MODULE_UPGRADE_ Upgraded
SUCC

500
Intelligent Security API (Person-Based Access Control) Developer Guide

Event Minor Types Value Description


MINOR_REMOTE_FINGER_ 0xb2 Upgrading Fingerprint Module
PRINT_MODULE_UPGRADE_ Remotely Failed
FAIL
MINOR_DYNAMICCODE_ 0xb3 Dynamic Verification Code
VERIFY_PASS Authenticated
MINOR_DYNAMICCODE_ 0xb4 Authentication with
VERIFY_FAIL Verification Code Failed
MINOR_PASSWD_VERIFY_PASS 0xb5 Password Authenticated
MINOR_FULL_STAFF 0xc1 Number of People Exceeds 90%
of Capacity
MINOR_EVENT_CUSTOM1 to 0x500 to 0x53f Access Control: Custom Event 1
MINOR_EVENT_CUSTOM64 to Custom Event 64

B.3 Event Linkage Types


For event card linkages, if the linkage type is event, four major event linkage types are available: 0-
device event linkage, 1-alarm input event linkage, 2-access control point (e.g., doors, elevators,
etc.) event linkage, and 3-authentication unit (e.g., card reader, fingerprint module, etc.) event
linkage. Each major event linkage type corresponds multiple minor types of event linkage, see
details in the following content.

Device Event Linkage

Minor Type Value Description


EVENT_ACS_HOST_ANTI_ 0 Access Controller Tampering Alarm
DISMANTLE
EVENT_ACS_OFFLINE_ECENT_ 1 No Memory Alarm
NEARLY_FULL
EVENT_ACS_NET_BROKEN 2 Network Disconnected
EVENT_ACS_NET_RESUME 3 Network Connected
EVENT_ACS_LOW_BATTERY 4 Low Battery Voltage
EVENT_ACS_BATTERY_RESUME 5 Battery Fully Charged
EVENT_ACS_AC_OFF 6 AC Power Off
EVENT_ACS_AC_RESUME 7 AC Power On

501
Intelligent Security API (Person-Based Access Control) Developer Guide

Minor Type Value Description


EVENT_ACS_SD_CARD_FULL 8 SD Card Full Alarm
EVENT_ACS_LINKAGE_ 9 Capture Linkage Event Alarm
CAPTURE_PIC
EVENT_ACS_IMAGE_QUALITY_ 10 Low Face Picture Quality
LOW
EVENT_ACS_FINGER_PRINT_ 11 Low Fingerprint Picture Quality
QUALITY_LOW
EVENT_ACS_BATTERY_ 12 Low Battery Voltage
ELECTRIC_LOW
EVENT_ACS_BATTERY_ 13 Battery Fully Charged
ELECTRIC_RESUME
EVENT_ACS_FIRE_IMPORT_ 14 Fire Input Short Circuit Attempts Alarm
SHORT_CIRCUIT
EVENT_ACS_FIRE_IMPORT_ 15 Fire Input Open Circuit Attempts Alarm
BROKEN_CIRCUIT
EVENT_ACS_FIRE_IMPORT_ 16 Fire Input Alarm Restored
RESUME
EVENT_ACS_MASTER_RS485_ 17 RS485 Loop of Master Access Controller
LOOPNODE_BROKEN Disconnected
EVENT_ACS_MASTER_RS485_ 18 RS485 Loop of Master Access Controller
LOOPNODE_RESUME Connected
EVENT_ACS_LOCAL_CONTROL_ 19 Distributed Access Controller Offline
OFFLINE
EVENT_ACS_LOCAL_CONTROL_ 20 Distributed Access Controller Online
RESUME
EVENT_ACS_LOCAL_ 21 Downstream RS485 Loop of Distributed Access
DOWNSIDE_RS485_ Control Disconnected
LOOPNODE_BROKEN
EVENT_ACS_LOCAL_ 22 Downstream RS485 Loop of Distributed Access
DOWNSIDE_RS485_ Control Connected
LOOPNODE_RESUME
EVENT_ACS_DISTRACT_ 23 Distributed Elevator Controller Online
CONTROLLER_ONLINE

502
Intelligent Security API (Person-Based Access Control) Developer Guide

Minor Type Value Description


EVENT_ACS_DISTRACT_ 24 Distributed Elevator Controller Offline
CONTROLLER_OFFLINE
EVENT_ACS_FIRE_BUTTON_ 25 Fire Button Pressed
TRIGGER
EVENT_ACS_FIRE_BUTTON_ 26 Fire Button Released
RESUME
EVENT_ACS_MAINTENANCE_ 27 Maintenance Button Pressed
BUTTON_TRIGGER
EVENT_ACS_MAINTENANCE_ 28 Maintenance Button Released
BUTTON_RESUME
EVENT_ACS_EMERGENCY_ 29 Panic Button Pressed
BUTTON_TRIGGER
EVENT_ACS_EMERGENCY_ 30 Panic Button Released
BUTTON_RESUME
EVENT_ACS_ 32 Communication with Anti-​passing Back Server
SUBMARINEBACK_COMM_ Failed
BREAK
EVENT_ACS_ 33 Communication with Anti-​passing Back Server
SUBMARINEBACK_COMM_ Restored
RESUME
EVENT_ACS_REMOTE_ 34 Remotely Armed
ACTUAL_GUARD
EVENT_ACS_REMOTE_ 35 Remotely Disarmed
ACTUAL_UNGUARD
EVENT_ACS_MOTOR_SENSOR_ 36 Motor or Sensor Exception
EXCEPTION
EVENT_ACS_CAN_BUS_ 37 CAN Bus Exception
EXCEPTION
EVENT_ACS_CAN_BUS_ 38 CAN Bus Restored
RESUME
EVENT_ACS_GATE_ 39 Too High Pedestal Temperature
TEMPERATURE_OVERRUN
EVENT_ACS_IR_EMITTER_ 40 Active Infrared Intrusion Detector Exception
EXCEPTION

503
Intelligent Security API (Person-Based Access Control) Developer Guide

Minor Type Value Description


EVENT_ACS_IR_EMITTER_ 41 Active Infrared Intrusion Detector Restored
RESUME
EVENT_ACS_LAMP_BOARD_ 42 Communication with Light Board Failed
COMM_EXCEPTION
EVENT_ACS_LAMP_BOARD_ 43 Communication with Light Board Restored
COMM_RESUME
EVENT_ACS_IR_ADAPTOR_ 44 Communication with IR Adaptor Failed
BOARD_COMM_EXCEPTION
EVENT_ACS_IR_ADAPTOR_ 45 Communication with IR Adaptor Restored
BOARD_COMM_RESUME
EVENT_ACS_CHANNEL_ 46 Lane Controller Tampering Alarm
CONTROLLER_DESMANTLE_
ALARM
EVENT_ACS_CHANNEL_ 47 Lane Controller Tampering Alarm Restored
CONTROLLER_DESMANTLE_
RESUME
EVENT_ACS_CHANNEL_ 48 Lane Controller Fire Input Alarm
CONTROLLER_FIRE_IMPORT_
ALARM
EVENT_ACS_CHANNEL_ 49 Lane Controller Fire Input Alarm Restored
CONTROLLER_FIRE_IMPORT_
RESUME
EVENT_ACS_STAY_EVENT / Staying Event
EVENT_ACS_LEGAL_EVENT_ / No Memory Alarm for Valid Offline Event Storage
NEARLY_FULL

Alarm Input Event Linkage

Minor Type Value Description


EVENT_ACS_ALARMIN_ 0 Zone Short Circuit Attempts
SHORT_CIRCUIT Alarm
EVENT_ACS_ALARMIN_ 1 Zone Open Circuit Attempts
BROKEN_CIRCUIT Alarm
EVENT_ACS_ALARMIN_ 2 Zone Exception Alarm
EXCEPTION

504
Intelligent Security API (Person-Based Access Control) Developer Guide

Minor Type Value Description


EVENT_ACS_ALARMIN_ 3 Zone Alarm Restored
RESUME
EVENT_ACS_CASE_SENSOR_ 4 Alarm Input Alarm
ALARM
EVENT_ACS_CASE_SENSOR_ 5 Alarm Input Alarm Restored
RESUME

Access Control Point Event Linkage

Minor Type Value Description


EVENT_ACS_LEADER_CARD_ 0 Open Door with First Card
OPEN_BEGIN Started
EVENT_ACS_LEADER_CARD_ 1 Open Door with First Card
OPEN_END Ended
EVENT_ACS_ALWAYS_OPEN_ 2 Remain Open Started
BEGIN
EVENT_ACS_ALWAYS_OPEN_ 3 Remain Open Ended
END
EVENT_ACS_ALWAYS_CLOSE_ 4 Remain Closed Started
BEGIN
EVENT_ACS_ALWAYS_CLOSE_ 5 Remain Closed Ended
END
EVENT_ACS_LOCK_OPEN 6 Door Unlocked
EVENT_ACS_LOCK_CLOSE 7 Door Locked
EVENT_ACS_DOOR_BUTTON_ 8 Exit Button Pressed
PRESS
EVENT_ACS_DOOR_BUTTON_ 9 Exit Button Released
RELEASE
EVENT_ACS_DOOR_OPEN_ 10 Door Open (Contact)
NORMAL
EVENT_ACS_DOOR_CLOSE_ 11 Door Closed (Contact)
NORMAL
EVENT_ACS_DOOR_OPEN_ 12 Door Abnormally Open
ABNORMAL (Contact)

505
Intelligent Security API (Person-Based Access Control) Developer Guide

Minor Type Value Description


EVENT_ACS_DOOR_OPEN_ 13 Door Open Timed Out
TIMEOUT (Contact)
EVENT_ACS_REMOTE_OPEN_ 14 Door Remotely Open
DOOR
EVENT_ACS_REMOTE_CLOSE_ 15 Door Remotely Closed
DOOR
EVENT_ACS_REMOTE_ 16 Remain Open Remotely
ALWAYS_OPEN
EVENT_ACS_REMOTE_ 17 Remain Closed Remotely
ALWAYS_CLOSE
EVENT_ACS_NOT_BELONG_ 18 Card Not in Multiple
MULTI_GROUP Authentication Group
EVENT_ACS_INVALID_MULTI_ 19 Card Not in Multiple
VERIFY_PERIOD Authentication Duration
EVENT_ACS_MULTI_VERIFY_ 20 Multiple Authentication Mode:
SUPER_RIGHT_FAIL Super Password Authentication
Failed
EVENT_ACS_MULTI_VERIFY_ 21 Multiple Authentication Mode:
REMOTE_RIGHT_FAIL Remote Authentication Failed
EVENT_ACS_MULTI_VERIFY_ 22 Multiple Authentication
SUCCESS Completed
EVENT_ACS_MULTI_VERIFY_ 23 Multiple Authentication:
NEED_REMOTE_OPEN Remotely Open Door
EVENT_ACS_MULTI_VERIFY_ 24 Multiple Authentication: Super
SUPERPASSWD_VERIFY_ Password Authentication
SUCCESS Completed
EVENT_ACS_MULTI_VERIFY_ 25 Multiple Authentication:
REPEAT_VERIFY_FAIL Repeated Authentication Failed
EVENT_ACS_MULTI_VERIFY_ 26 Multiple Authentication Timed
TIMEOUT Out
EVENT_ACS_REMOTE_ 27 Remote Capture
CAPTURE_PIC
EVENT_ACS_DOORBELL_ 28 Doorbell Ring
RINGING

506
Intelligent Security API (Person-Based Access Control) Developer Guide

Minor Type Value Description


EVENT_ACS_SECURITY_ 29 Secure Door Control Unit
MODULE_DESMANTLE_ALARM Tampering Alarm
EVENT_ACS_CALL_CENTER 30 Center Event
EVENT_ACS_FIRSTCARD_ 31 First Card Authentication
AUTHORIZE_BEGIN Started
EVENT_ACS_FIRSTCARD_ 32 First Card Authentication End
AUTHORIZE_END
EVENT_ACS_DOORLOCK_ 33 Lock Input Short Circuit
INPUT_SHORT_CIRCUIT Attempts Alarm
EVENT_ACS_DOORLOCK_ 34 Lock Input Open Circuit
INPUT_BROKEN_CIRCUIT Attempts Alarm
EVENT_ACS_DOORLOCK_ 35 Lock Input Exception Alarm
INPUT_EXCEPTION
EVENT_ACS_DOORCONTACT_ 36 Contact Input Short Circuit
INPUT_SHORT_CIRCUIT Attempts Alarm
EVENT_ACS_DOORCONTACT_ 37 Contact Input Open Circuit
INPUT_BROKEN_CIRCUIT Attempts Alarm
EVENT_ACS_DOORCONTACT_ 38 Contact Input Exception Alarm
INPUT_EXCEPTION
EVENT_ACS_OPENBUTTON_ 39 Exit Button Input Short Circuit
INPUT_SHORT_CIRCUIT Attempts Alarm
EVENT_ACS_OPENBUTTON_ 40 Exit Button Input Open Circuit
INPUT_BROKEN_CIRCUIT Attempts Alarm
EVENT_ACS_OPENBUTTON_ 41 Exit Button Input Exception
INPUT_EXCEPTION Alarm
EVENT_ACS_DOORLOCK_ 42 Unlocking Exception
OPEN_EXCEPTION
EVENT_ACS_DOORLOCK_ 43 Unlocking Timed Out
OPEN_TIMEOUT
EVENT_ACS_FIRSTCARD_ 44 Unauthorized First Card
OPEN_WITHOUT_AUTHORIZE Opening Failed
EVENT_ACS_CALL_LADDER_ 45 Call Elevator Relay Open
RELAY_BREAK

507
Intelligent Security API (Person-Based Access Control) Developer Guide

Minor Type Value Description


EVENT_ACS_CALL_LADDER_ 46 Call Elevator Relay Closed
RELAY_CLOSE
EVENT_ACS_AUTO_KEY_ 47 Auto Button Relay Open
RELAY_BREAK
EVENT_ACS_AUTO_KEY_ 48 Auto Button Relay Closed
RELAY_CLOSE
EVENT_ACS_KEY_CONTROL_ 49 Button Relay Open
RELAY_BREAK
EVENT_ACS_KEY_CONTROL_ 50 Button Relay Closed
RELAY_CLOSE
EVENT_ACS_REMOTE_ 51 Visitor Calling Elevator
VISITOR_CALL_LADDER
EVENT_ACS_REMOTE_ 52 Resident Calling Elevator
HOUSEHOLD_CALL_LADDER
EVENT_ACS_LEGAL_MESSAGE 52 Valid Message
EVENT_ACS_ILLEGAL_ 53 Invalid Message
MESSAGE
EVENT_ACS_TRAILING 54 Tailgating
EVENT_ACS_REVERSE_ACCESS 55 Reverse Passing
EVENT_ACS_FORCE_ACCESS 56 Force Collision
EVENT_ACS_CLIMBING_OVER_ 57 Climbing Over
GATE
EVENT_ACS_PASSING_ 58 Passing Timed Out
TIMEOUT
EVENT_ACS_INTRUSION_ 59 Intrusion Alarm
ALARM
EVENT_ACS_FREE_GATE_PASS_ 60 Authentication Failed When
NOT_AUTH Free Passing
EVENT_ACS_DROP_ARM_ 61 Barrier Obstructed
BLOCK
EVENT_ACS_DROP_ARM_ 62 Barrier Restored
BLOCK_RESUME

508
Intelligent Security API (Person-Based Access Control) Developer Guide

Minor Type Value Description


EVENT_ACS_REMOTE_ 63 Door Closed via Keyfob
CONTROL_CLOSE_DOOR
EVENT_ACS_REMOTE_ 64 Door Opened via Keyfob
CONTROL_OPEN_DOOR
EVENT_ACS_REMOTE_ 65 Remain Open via Keyfob
CONTROL_ALWAYS_OPEN_
DOOR

Authentication Unit Event Linkage

Minor Type Value Description


EVENT_ACS_STRESS_ALARM 0 Duress Alarm
EVENT_ACS_CARD_READER_ 1 Card Reader Tampering Alarm
DESMANTLE_ALARM
EVENT_ACS_LEGAL_CARD_ 2 Valid Card Authentication
PASS Completed
EVENT_ACS_CARD_AND_PSW_ 3 Card and Password
PASS Authentication Completed
EVENT_ACS_CARD_AND_PSW_ 4 Card and Password
FAIL Authentication Failed
EVENT_ACS_CARD_AND_PSW_ 5 Card and Password
TIMEOUT Authentication Timed Out
EVENT_ACS_CARD_MAX_ 6 Card Authentication Attempts
AUTHENTICATE_FAIL Reach Limit
EVENT_ACS_CARD_NO_RIGHT 7 No Permission for Card
EVENT_ACS_CARD_INVALID_ 8 Invalid Card Swiping Time
PERIOD Period
EVENT_ACS_CARD_OUT_OF_ 9 Expired Card
DATE
EVENT_ACS_INVALID_CARD 10 Card No. Not Exist
EVENT_ACS_ANTI_SNEAK_FAIL 11 Anti-​passing Back
Authentication Failed
EEVENT_ACS_INTERLOCK_ 12 Interlocking Door Not Closed
DOOR_NOT_CLOSE

509
Intelligent Security API (Person-Based Access Control) Developer Guide

Minor Type Value Description


EVENT_ACS_FINGERPRINT_ 13 Fingerprint Matched
COMPARE_PASS
EVENT_ACS_FINGERPRINT_ 14 Fingerprint Mismatched
COMPARE_FAIL
EVENT_ACS_CARD_ 15 Card and Fingerprint
FINGERPRINT_VERIFY_PASS Authentication Completed
EVENT_ACS_CARD_ 16 Card and Fingerprint
FINGERPRINT_VERIFY_FAIL Authentication Failed
EVENT_ACS_CARD_ 17 Card and Fingerprint
FINGERPRINT_VERIFY_ Authentication Timed Out
TIMEOUT
EVENT_ACS_CARD_ 18 Card, Fingerprint, and
FINGERPRINT_PASSWD_ Password Authentication
VERIFY_PASS Completed
EVENT_ACS_CARD_ 19 Card and Fingerprint
FINGERPRINT_PASSWD_ Authentication Failed
VERIFY_FAIL
EVENT_ACS_CARD_ 20 Card and Fingerprint
FINGERPRINT_PASSWD_ Authentication Timed Out
VERIFY_TIMEOUT
EVENT_ACS_FINGERPRINT_ 21 Fingerprint and Password
PASSWD_VERIFY_PASS Authentication Completed
EVENT_ACS_FINGERPRINT_ 22 Fingerprint and Password
PASSWD_VERIFY_FAIL Authentication Failed
EVENT_ACS_FINGERPRINT_ 23 Fingerprint and Password
PASSWD_VERIFY_TIMEOUT Authentication Timed Out
EVENT_ACS_FINGERPRINT_ 24 Fingerprint Not Exist
INEXISTENCE
EVENT_ACS_EMPLOYEENO_ 42 Employee ID and Fingerprint
AND_FP_VERIFY_PASS Authentication Completed
EVENT_ACS_EMPLOYEENO_ 43 Employee ID and Fingerprint
AND_FP_VERIFY_FAIL Authentication Failed
EVENT_ACS_EMPLOYEENO_ 44 Employee ID and Fingerprint
AND_FP_VERIFY_TIMEOUT Authentication Timed Out

510
Intelligent Security API (Person-Based Access Control) Developer Guide

Minor Type Value Description


EVENT_ACS_EMPLOYEENO_ 45 Employee ID, Fingerprint, and
AND_FP_AND_PW_VERIFY_ Password Authentication
PASS Completed
EVENT_ACS_EMPLOYEENO_ 46 Employee ID, Fingerprint, and
AND_FP_AND_PW_VERIFY_ Password Authentication Failed
FAIL
EVENT_ACS_EMPLOYEENO_ 47 Employee ID, Fingerprint, and
AND_FP_AND_PW_VERIFY_ Password Authentication
TIMEOUT Timed Out
EVENT_ACS_EMPLOYEENO_ 52 Employee ID and Password
AND_PW_PASS Authentication Completed
EVENT_ACS_EMPLOYEENO_ 52 Employee ID and Password
AND_PW_FAIL Authentication Failed
EVENT_ACS_EMPLOYEENO_ 53 Employee ID and Password
AND_PW_TIMEOUT Authentication Timed Out
EVENT_ACS_DOOR_OPEN_OR_ 57 Authentication Failed When
DORMANT_FAIL Door Remain Closed or Door in
Sleeping Mode
EVENT_ACS_AUTH_PLAN_ 58 Authentication Failed When
DORMANT_FAIL Authentication Schedule in
Sleeping Mode
EVENT_ACS_CARD_ENCRYPT_ 59 Card Encryption Verification
VERIFY_FAIL Failed
EVENT_ACS_ 60 Anti-​passing Back Server
SUBMARINEBACK_REPLY_FAIL Response Failed
EVENT_ACS_PASSWORD_ 61 Password Mismatched
MISMATCH
EVENT_ACS_EMPLOYEE_NO_ 62 Employee ID Not Exist
NOT_EXIST
EVENT_ACS_COMBINED_ 63 Combined Authentication
VERIFY_PASS Completed
EVENT_ACS_COMBINED_ 64 Combined Authentication
VERIFY_TIMEOUT Timed Out
EVENT_ACS_VERIFY_MODE_ 65 Authentication Type
MISMATCH Mismatched

511
Intelligent Security API (Person-Based Access Control) Developer Guide

Minor Type Value Description


EVENT_ACS_PSW_ERROR_ 67 Maximum Password
OVER_TIMES Authentication Failure
Attempts
EVENT_ACS_PSW_VERIFY_PASS 68 Password Authenticated
EVENT_ACS_PSW_VERIFY_FAIL 69 Password Authentication Failed
EVENT_ACS_ORCODE_VERIFY_ 70 QR Code Authenticated
PASS
EVENT_ACS_ORCODE_VERIFY_ 71 QR Code Authentication Failed
FAIL
EVENT_ACS_HOUSEHOLDER_ 72 Resident Authorization
AUTHORIZE_PASS Authenticated
EVENT_ACS_BLUETOOTH_ 73 Bluetooth Authenticated
VERIFY_PASS
EVENT_ACS_BLUETOOTH_ 74 Bluetooth Authentication
VERIFY_FAIL Failed
EVENT_ACS_INFORMAL_ / Authentication Failed: Invalid
MIFARE_CARD_VERIFY_FAIL Mifare Card
EVENT_ACS_CPU_CARD_ / Verifying CPU Card Encryption
ENCRYPT_VERIFY_FAIL Failed
EVENT_ACS_NFC_DISABLE_ / Disabling NFC Verification
VERIFY_FAIL Failed
EVENT_ACS_EM_CARD_ / EM Card Recognition Disabled
RECOGNIZE_NOT_ENABLED
EVENT_ACS_M1_CARD_ / M1 Card Recognition Disabled
RECOGNIZE_NOT_ENABLED
EVENT_ACS_CPU_CARD_ / CPU Card Recognition Disabled
RECOGNIZE_NOT_ENABLED
EVENT_ACS_ID_CARD_ / ID Card Recognition Disabled
RECOGNIZE_NOT_ENABLED
EVENT_ACS_CARD_SET_ / Importing Key to Card Failed
SECRET_KEY_FAIL

512
Intelligent Security API (Person-Based Access Control) Developer Guide

B.4 Log Types for ISAPI


There are four major log types, i.e., alarm log, exception log, operation log, event log, and
information log. And each major type contains multiple minor types, see details in the following
contents.

Alarm Logs

Log Type Description


shortCircuit Short Circuit Alarm
brokenCircuit Open Circuit Alarm
alarmReset Alarm Reset
alarmNormal Return to Normal
passwordError Incorrect Password (3 Tmes in a Row)
idCardIllegally Invalid Card ID
keyPADRemove Keypad Tampered
keyPADRemoveRestore Keypad Restored
devRemove Device Tampered
devRemoveRestore Device Restored
belowAlarmLimit1 Sensor Value is Lower than Alarm Limit Value 1
belowAlarmLimit2 Sensor Value is Lower than Alarm Limit Value 2
belowAlarmLimit3 Sensor Value is Lower than Alarm Limit Value 3
belowAlarmLimit4 Sensor Value is Lower than Alarm Limit Value 4
aboveAlarmLimit1 Sensor Value is Higher than Alarm Limit Value 1
aboveAlarmLimit2 Sensor Value is Higher than Alarm Limit Value 2
aboveAlarmLimit3 Sensor Value is Higher than Alarm Limit Value 3
aboveAlarmLimit4 Sensor Value is Higher than Alarm Limit Value 4
UrgencyBtnON Panic Button Triggered
UrgencyBtnOFF Panic Button Restored
virtualDefenceBandit Virtual Zone Burglary Alarm
virtualDefenceFire Virtual Zone Fire Alarm
virtualDefenceUrgent Virtual Zone Panic Alarm

513
Intelligent Security API (Person-Based Access Control) Developer Guide

Log Type Description


motDetStart Motion Detection Alarm Started
motDetStop Motion Detection Alarm Stopped
hideAlarmStart Device Blocked
hideAlarmStop Device Blocking Alarm Restored
UPSAlarm UPS Alarm
electricityMeterAlarm Coulombmeter Alarm
switchPowerAlarm Switch Power Supply Alarm
GasDetectSys Gas Detection Alarm
transformerTempAlarm Transformer Temperature Alarm
tempHumiAlarm Temperature and Humidity Sensor Alarm
UPSAlarmRestore UPS Alarm Restored
electricityMeterAlarmRestore Coulombmeter Alarm Restored
switchPowerAlarmRestore Switch Power Supply Alarm Restored
GasDetectSysRestore Gas Detection Alarm Restored
transformerTempAlarmRestore Transformer Temperature Alarm Restored
tempHumiAlarmRestore Temperature-Humidity Sensor Alarm Restored
waterLevelSensorAlarm Temperature-Humidity Sensor Alarm Restored
waterLevelSensorAlarmRestore Flood Sensor Restored
dustNoiseAlarm Dust and Noise Sensor Alarm
dustNoiseAlarmRestore Dust and Noise Sensor Alarm Restored
environmentalLogger Environmental Data Collector Alarm
environmentalLoggerAlarm Environmental Data Collector Restored
triggerTemper Detector Tampered
triggerTemperRestore Detector Restored
emergencyCallHelp Panic Alarm
emergencyCallHelpRestore Panic Alarm Restored
consult Consultation Alarm
consultRestore Consultation Alarm Restored
deviceMoveAlarm Device Motion Alarm

514
Intelligent Security API (Person-Based Access Control) Developer Guide

Log Type Description


deviceMoveAlarmRestore Device Motion Alarm Restored
earlyWarningAlarm Early Warning Zone Alarm
earlyWarningAlarmRestore Early Warning Zone Restored
warningAlarm Warning Zone Alarm
warningAlarmRestore Warning Zone Restored
wirelessOutputModTamperEvident Wireless Output Expander Tampered
wirelessOutputModTamperEvidentReset Wireless Output Expander tamper Restored
wirelessRepeaterTamperEvident Wireless Repeater Tampered
wirelessRepeaterTamperEvidentReset Wireless Repeater tamper Restored
wirelessSirenTamperEvident Wireless Siren Tampered
wirelessSirenTamperEvidentReset Wireless Siren Tamper Restored
wirelessKeypadTamperEvident Wireless Keypad Tampered
wirelessKeypadTamperEvidentReset Wireless Keypad Tamper Restored
wirelessCardReaderTamperEvident Wireless Card Reader Tampered
wirelessCardReaderTamperEvidentReset Wireless Card Reader Tamper Restored
softZoneMedicalAlarm Virtual Zone Medical Alarm
accessControllerEvent Access Controller Event
videoIntercomEvent Video Intercom Event
GJDEvent GJD Security Control Panel Event
LuminateEvent LUMINITE Security Control Panel Event
OPTEXEvent OPTEX Security Control Panel Event
cameraDetectorEvent Detector Event
securityControlPanelEvent Security Control Panel Event
RS-485AlarmInputModuleEvident RS-485 Zone Module Tampered
RS-485AlarmInputModuleTamperReset RS-485 Zone Module Tampering Reset
RS-485WirelessReceiverTamperEvident RS-485 Wireless Receiver Module Tampered
RS- RS-485 Wireless Receiver Module Tampering Reset
485WirelessReceiverTamperEvidentReset
dredgerDetectionAlarm Dredger Detection Alarm

515
Intelligent Security API (Person-Based Access Control) Developer Guide

Log Type Description


crossLineAlarm Line Crossing Alarm
crossLineAlarmRestore Line Crossing Alarm Restored
HFPDAlarmStart High Frequently Appeared Person Alarm Started
HFPDAlarmStop High Frequently Appeared Person Alarm Stopped
LFPDAlarmStart Low Frequency Person Alarm Started
LFPDAlarmStop Low Frequency Person Alarm Stopped
safetyHelmetAlarmStart Hard Hat Detection Alarm Started
safetyHelmetAlarmStop Hard Hat Detection Alarm Stopped
dataPrealarm Traffic Pre-alarm
playCellphoneStart Playing Cellphone Alarm Started
playCellphoneStop Playing Cellphone Alarm Stopped
sleepOnDutyStart Sleeping on Duty Alarm Started
sleepOnDutyStop Sleeping on Duty Alarm Stopped
vibrationDetectionStart Vibration Detection Alarm Started
vibrationDetectionStop Vibration Detection Alarm Stopped
fireEscapeDetectionStart Fire Engine Access Detection Started
fireEscapeDetectionStop Fire Engine Access Detection Ended
takingElevatorDetectionStart Elevator Detection Started
takingElevatorDetectionStop Elevator Detection Ended
unregisteredStreetVendorStart Unlicensed Business Vendor Detection Started
unregisteredStreetVendorStop Unlicensed Business Vendor Detection Ended
stallOutsideShopStart Business Outside Store Detection Started
stallOutsideShopStop Business Outside Store Detection Ended
stallOccupyingRoadStart Business on Sidewalk Detection Started
stallOccupyingRoadStop Business on Sidewalk Detection Ended
illegalHeapStart Pile Goods or Materials in Chaos Detection Started
illegalHeapStop Pile Goods or Materials in Chaos Detection Ended
illParkofNonMotorVehicleStart Non-Motor Vehicles Parking in Chaos Detection
Started

516
Intelligent Security API (Person-Based Access Control) Developer Guide

Log Type Description


illParkofNonMotorVehicleStop Non-Motor Vehicles Parking in Chaos Detection
Ended
illegalOutdoorAdvertisementStart Unauthorized Outdoor Advertisement Detection
Started
illegalOutdoorAdvertisementStop Unauthorized Outdoor Advertisement Detection
Ended
packGarbageStart Packaged Garbage Detection Started
packGarbageStop Packaged Garbage Detection Ended
stallUnderUmbrellaStart Running Business with Patio Umbrella Detection
Started
stallUnderUmbrellaStop Running Business with Patio Umbrella Detection
Ended
dustbinOverflowStart Overflowing Dustbin Detection Started
dustbinOverflowStop Overflowing Dustbin Detection Ended
exposeGarbageStart Exposed Garbage Detection Started
exposeGarbageStop Exposed Garbage Detection Ended
hangClothingAlongStreetStart Hanging Clothes On Street Detection Started
hangClothingAlongStreetStop Hanging Clothes On Street Detection Ended
ATMPanelStart ATM Panel Alarm Started
ATMPanelStop ATM Panel Alarm Ended
ATMSurroundStart ATM Surround Alarm Started
ATMSurroundStop ATM Surround Alarm Ended
ATMFaceStart ATM Face Alarm Started
ATMFaceStop ATM Face Alarm Ended
ATMSafetyCabinStart ATM Safety Cabin Alarm Started
ATMSafetyCabinStop ATM Safety Cabin Alarm Ended
soundIntensityMutation Sudden Increase of Sound Intensity Detection
soundIntensityMutationStop Sudden Increase of Sound Intensity Detection Ended
soundIntensitySteepFall Sudden Decrease of Sound Intensity Detection

517
Intelligent Security API (Person-Based Access Control) Developer Guide

Log Type Description


soundIntensitySteepFallStop Sudden Decrease of Sound Intensity Detection
Ended
moveAlarm Motion Alarm
moveAlarmRestored Motion Alarm Restored
lowTemperatureAlarm Low Temperature Alarm
lowTemperatureAlarmRestored Low Temperature Alarm Restored
highTemperatureAlarm High Temperature Alarm
highTemperatureAlarmRestored High Temperature Alarm Restored
TemperatureIntervalMeasurementStart Interval Temperature Measurement Started
TemperatureIntervalMeasurementStop Interval Temperature Measurement Stopped

Exception Logs

Log Type Description


powerOn Power on
powerOff Power off
WDTReset WDT Reset
lowBatteryVoltage Low Battery Voltage
ACLoss AC Power Disconnected
ACRestore AC Power Restored
RTCException RTC Real-​time Clock Exception
netFailure Network Disconnected
netRestore Network Connected
telLineBroken Telephone Line Disconnected
telLineRestore Telephone Line Connected
expanderBusLoss Bus Expander Disconnected
expanderBusRestore Bus Expander Connected
keypadBusLoss Keypad Expander Disconnected
keypadBusRestore Keypad Expander Connected
sensorFailure Analog Sensor Fault

518
Intelligent Security API (Person-Based Access Control) Developer Guide

Log Type Description


sensorRestore Analog Sensor Restored
RS485DisConnect RS-485 Channel Disconnected
RS485Connect RS-486 Channel Connected
batteryVoltageRestore Battery Voltage Restored
wiredNetAbnormal Wired Network Exception
wiredNetRestore Wired Network Restored
GPRSAbnormal GPRS Exception
GPRSRestore GPRS Restored
3GAbnormal 3G Network Exception
3GRestore 3G Network Restored
SIMCardAbnormal SIM Card Exception
SIMCardRestore SIM Card Restored
VILost Video Loss
illegalAccess Illegal Login
HDFull HDD Full
HDError HDD Error
DCDLost MODEM Disconnected
IPConflict IP Address Conflicted
netbroken Network Disconnected
recError Recording Error
VIError Video Input Exception(Only for Analog Channel)
formatHDDError Remote HDD Formatting Failed
USBError USB Communication Error
USBRestore USB Communication Error Restored
printError Printer Error
printRestore Printer Error Restored
subsystemCommunicationError Sub-board Communication Error
IPCIPconflict Network Camera IP Address Conflicted
VIMisMatch Video Standard Mismatches

519
Intelligent Security API (Person-Based Access Control) Developer Guide

Log Type Description


MCURestart MCU Restarted
GprsMouleFault GPRS Module Fault
telephoneFault Telephone Module Fault
wifiAbnormal Wi-Fi Exception
wifiRestore Wi-Fi Restored
RFAbornal RF Exception
RFRestore RF Restored
detectorOnline Detector Connected
detectorOffline Detector Disconnected
detectorBatteryNormal Detector Battery Restored
detectorBatteryLow Detector Battery Low
dataTrafficOverflow Cellular Network Data Exceeded
radarSignalFault Radar Transmitter Fault
radarSignalFaultRestore Radar Transmitter Restored
wirelessOutputModOffline Wireless Output Expander Disconnected
wirelessOutputModOnline Wireless Output Expander Connected
wirelessRepeaterOffline Wireless Repeater Disconnected
wirelessRepeaterOnline Wireless Repeater Connected
triggerOffline Trigger Disconnected
triggerOnline Trigger Connected
wirelessSirenOffline Wireless Siren Disconnected
wirelessSirenOnline Wireless Siren Connected
sirenLowPower Siren Battery Low
sirenPowerRecovery Siren Battery Restored
ipcDisconnect Network Camera Disconnected
ipcConnectRecovery Network Camera Connected
sendMailFailed Sending Email Failed
eventUploadException Uploading Event Failed or Uploaded Event Lost
keyfobLowPower Low Keyfob Battery

520
Intelligent Security API (Person-Based Access Control) Developer Guide

Log Type Description


keyfobPowerRecovery Normal Keyfob Battery
detectorOvertime Detector Heartbeat Timed Out
detectorOvertimeRecovery Detector Heartbeat Timeout Restored
wSirenOvertime Wireless Siren Heartbeat Timed Out
wSirenOvertimeRecovery Wireless Siren Heartbeat Timeout Restored
wOutputOvertime Wireless Output Module Heartbeat Timed Out
wOutputOvertimeRecovery Wireless Output Module Heartbeat Timeout
Restored
wRepeaterOvertime Wireless Repeater Heartbeat Timed Out
wRepeaterOvertimeRecovery Wireless Repeater Heartbeat Timeout Restored
rfJamming RF Wireless Communication Blocked
rfJammingRecovery RF Wireless Communication Blocking Restored
batteryMiss Storage Battery Loss
batteryMissRecovery Storage Battery Restored
ARCUploadFailed Uploading to ARC Failed
ARCUploadSuccessed Uploaded to ARC
ARCUploadRecovery Uploading to ARC Restored
wirelessKeypadOffline Wireless Keypad Disconnected
wirelessKeypadOnline Wireless Keypad Connected
wirelessCardReaderOffline Wireless Card Reader Disconnected
wirelessCardReaderOnline Wireless Card Reader Connected
keypadLowPower Low Keypad Battery
keypadLowPowerRecovery Low Keypad Battery Recovered
cardReaderLowPower Low Card Reader Battery
cardReaderLowPowerRecovery Low Card Reader Battery Recovered
wKeypadOvertime Wireless Keypad Heartbeat Timed Out
wKeypadOvertimeRecovery Wireless Keypad Heartbeat Timeout Recovered
wCardReaderOvertime Wireless Card Reader Heartbeat Timed Out
wCardReaderOvertimeRecovery Wireless Card Reader Heartbeat Timeout Recovered

521
Intelligent Security API (Person-Based Access Control) Developer Guide

Log Type Description


ATSFailed ATS Failed
ATSRecovery ATS Recovered
LANPathFailed Wired or Wireless Connection Failed
LANPathRecovery Wired or Wireless Connection Recovered
mobileNetPathFailed Mobile Network Connection Failed
mobileNetPathRecovery Mobile Network Connection Recovered
RS-485AlarmInputModuleDisconnected RS-485 Zone Module Offline
RS-485AlarmInputModuleConnected RS-485 Zone Module Online
RS-485WirelessReceiverDisconnected RS-485 Wireless Receiver Module Offline
RS-485WirelessReceiverConnected RS-485 Wireless Receiver Module Online
keypadDisconnected Keypad Offline
keypadConnected Keypad Online
overvoltage High Supply Voltage
undervoltage Low Supply Voltage
highHDTemperature HDD High Temperature
lowHDTemperature HDD Low Temperature
hdImpact HDD Impact
hdBadBlock HDD Bad Sector
severeHDFailure HDD Severe Fault
safetyHelmetException Hard Hat Detection Exception
ezvizUpgradeException Hik-Connect Upgrade Exception

Operation Logs

Log Type Description


guard Normal Arming
unguard Normal Disarming
bypass Bypass
duressAccess Duress
localReboot Local Reboot

522
Intelligent Security API (Person-Based Access Control) Developer Guide

Log Type Description


remoteReboot Remote Reboot
localUpgrade Local Upgrade
remoteUpgrade Remote Upgrade
recoveryDefultParam Restore Default Settings
outpulAlarm Remote Alarm Output Control
accessOpen Access Control: Open
accessClose Access Control : Closed
sirenOpen Siren: On
sirenClose Siren: Off
modZoneConfig Zone Settings
modAlarmoutConfig Alarm Output Settings
modAnalogConfig Sensor Settings
RS485Config RS-485 Channel Settings
phoneConfig Dialing Settings
addAdmin Added Administrator
modAdminParam Edited Administrator
delAdmin Deleted Administrator
addNetUser Added DVR/NVR Operator
modNetUserParam Edited DVR/NVR Operator
delNetUser Deleted DVR/NVR Operator
addOperator Added Camera Operator
modOperatorPw Edited Camera Operator Password
delOperator Deleted Camera Operator Password
addKeyPadUser Added Keypad/Card Reader User
delKeyPadUser Deleted Keyboard/Card Reader User
remoteUserLogin Remote Login
remoteUserLogout Remote Logout
remoteGuard Remote Arming
remoteUnguard Remote Disarming

523
Intelligent Security API (Person-Based Access Control) Developer Guide

Log Type Description


modHostConfig Edited Control Panel Settings
restoreBypass Bypass Restored
alarmOutOpen Turned on Output
alarmOutClose Turned off Output
modSubsystemParam Edited Subsystem Parameters
groupBypass Group Bypass
groupBypassRestore Group Bypass Restored
modGprsParam Edited GPRS Parameters
modNetReportParam Edited Network Report Settings
modReportMode Edited Uploading Mode
modGatewayParam Edited Access Control Settings
remoteStartRec Remote: Started Recording
remoteStopRec Remote: Stopped Recording
transChanStart Transparent Transmission Started
transChanStop Transparent Transmission Stopped
startVoiceTalk Two-way Audio Started
stopVoiceTalk Two-way Audio Terminated
remotePlayByFile Remote: Playback or Downloaded by File
remotePlayByTime Remote: Playback by Time
remotePTZCtrl Remote: PTZ Control
remoteLockFile Remote: Locked File
remoteUnlockFile Remote: Unlocked File
remoteFormatHd Remote: Formatted HDD
remoteDownloadCfgFile Remote: Exported Configuration Files
remoteUploadCfgFile Remote: Imported Configuration Files
remoteDownloadRecFile Remote: Exported File
stayArm Stay Arming
quickArm Instant Arming
keyswitchArm Key Zone Arming

524
Intelligent Security API (Person-Based Access Control) Developer Guide

Log Type Description


keyswitckDisarm Key Zone Disarming
clearAlarm Alarm Cleared
modFaultConfig Edited System Fault Settings
modAlarmOutConfig Edited Event Alarm Output Settings
searchExternalModule Searched for External Module
registerExternalModule Re-registered External Module
closeKeypadAlarm Disabled Keypad Beep
mod3GConfig Edited Mobile Parameters
modPrintConfig Edited Printer Parameters
SDCardFormat Formatted SD Card
upgradeSubsystem Upgraded Sub-board
planArmConfig Arming/Disarming Schedule Configuration
phoneArm SMS Arming
phoneStayArm SMS Stay Arming
phoneQuickArm SMS Instant Arming
phoneDisarm SMS Disarming
phoneClearAlarm SMS Alarm Cleared
whiteConfig Allowlist Settings
timeTriggerConfig Enabled/Disabled Trigger Configuration by Schedule
pictureConfig Capture Settings
tamperConfig Zone Tamper-Proof Settings
remoteKeypadUpgrade Remote: Upgraded Keypad
singlePartionArmORDisarm Single-Zone Arming/Disarming
cardConfiguration Card Settings
cardAramORDisarm Arming/Disarming by Card
expendNetCenterConfig Extension Network Center Settings
netCardConfig NIC Settings
DDNSConfig DDNS Settings
RS485BusConfig RS-485 Bus Settings

525
Intelligent Security API (Person-Based Access Control) Developer Guide

Log Type Description


RS485BusReRegistration RS-485 Bus Re-​registration
remoteOpenElectricLock Remote: Unlocked
remoteCloseElectricLock Remote: Locked
localOpenElectricLock Local: Unlocked
localCloseElectricLock Local: Locked
openAlarmLamp Remote: Turned On Alarm Lamp
closeAlarmLamp Remote: Turned Off Strobe
temporaryPassword Operation Record of Temporary Password
oneKeyAwayArm One-Push Away Arming
oneKeyStayArm One-Push Stay Arming
remoteDelAllVideoAnalysisTask Empty All Video Analysis Tasks Remotely
singleZoneArm Single-Zone Arming
singleZoneDisarm Single-Zone Disarming
HIDDNSConfig HiDDNS Settings
remoteKeypadUpdata Remote: Upgraded Keypad
zoneAddDetector Added Detector
zoneDelDetector Deleted Detector
qureyDetectorSignal Checked Detector Signal Strength on Security
Control Panel
qureyDetectorBattery Checked Detector Remaining Battery on Security
Control Panel
setDetectorGuard Detector Arming
setDetectorUnguard Detector Disarming
setWifiParm Wi-Fi Settings
voiceOpen Audio On
voiceClose Mute
functionKeyEnable Enabled Function Key
functionKeyDisable Disabled Panel Function Button
readCard Swiped Patrol Card

526
Intelligent Security API (Person-Based Access Control) Developer Guide

Log Type Description


localDeviceActive Activated Device Remotely
localFactoryDefault Restored Factory Settings Locally
remoteFactoryDefault Restored Factory Settings Remotely
addWirelessOutputMod Added Wireless Output Module
delWirelessOutputMod Deleted Wireless Output Module
addWirelessRepeater Added Wireless Repeater
delWirelessRepeater Deleted Wireless Repeater
telListConfig Mobile Phone Number Settings
searchRFSignal Checked RF Signal
addWirelessSiren Added Wireless Siren
delWirelessSiren Deleted Wireless Siren
flowConfig Cellular Data Limit Settings
addRemoter Added Keyfob
delRemoter Deleted Keyfob
addCard Added Card
delCard Deleted Card
remoteAddIpc Added Network Camera
remoteDelIpc Deleted Network Camera
remoteSetIpc Edited Network Camera
localAddressFilterConfig/ Local/Remote Address Filter Configuration
remoteAddressFilterConfig
enterProgramMode Programming Mode Enabled for Keypad
existProgramMode Programming Mode Disabled for Keypad
localIOTCfgFileInput Local operation: import IoT configuration file
localIOTCfgFileOutput Local operation: export IoT configuration file
remoteIOTCfgFileInput Remote operation: import IoT configuration file
remoteIOTCfgFileOutput Remote operation: export IoT configuration file
localIOTAdd Local operation: add IoT channel
remoteIOTAdd Remote operation: add IoT channel

527
Intelligent Security API (Person-Based Access Control) Developer Guide

Log Type Description


localIOTDelete Local operation: delete IoT channel
remoteIOTDelete Remote operation: delete IoT channel
localIOTSet Local operation: configure IoT channel
remoteIOTSet Remote operation: configure IoT channel
armWithFault Armed with Fault
entryDelay Entering and Exiting Delay
modArmConfig Edit Arming Parameters
modCertificateStandard Edit Authentication Standard
entryPaceTest Pacing Mode Entered
exitPaceTest Pacing Mode Exited
addNetOperator Add Operator
modNetOperator Edit Operator Information
delNetOperator Delete Operator
addNetInstaller Add Installer
modNetInstaller Edit Installer Information
delNetInstaller Delete Installer
addManufacturer Add Manufacturer
modManufacturer Edit Manufacturer Information
delManufacturer Delete Manufacturer
upgradeSuccessed Upgraded
upgradeFailed Upgrading Failed
zoneDisabled Zone Shielded
localCfgSecurity Security Parameter Configured Locally
remoteCfgSecurity Security Parameter Configured Remotely
remoteGetParaSecurity Security Parameters Obtained Remotely
delRS-485InputModule RS-485 Zone Module Deleted
delRS-485OutputModule RS-485 Output Module Deleted
delRS-485WirelessReceiver RS-485 Wireless Receiver Module Deleted
enrollRS-485InputModule RS-485 Zone Module Registered

528
Intelligent Security API (Person-Based Access Control) Developer Guide

Log Type Description


enrollRS-485OutputModule RS-485 Output Module Registered
delRS-485OutputModule RS-485 Output Module Deleted
enrollRS-485WirelessReceiver RS-485 Wireless Receiver Module Registered
enrollKeypad Keypad Registered
delKeypad Keypad Deleted
scheduledAngleCalibration Scheduled Angle Calibration
addZone Added Zone
modZone Edited Zone
delZone Deleted Zone
addAlarmLine Added Trigger Line
modAlarmLine Edited Trigger Line
delAlarmLine Deleted Trigger Line
remoteHFPDconfig/​localHFPDconfig Remote/Local Configuration of Frequently Appeared
Person Detection
remoteLFPDconfig Remote Configuration of Low Frequency Person
Detection
modifyUserPassword Password Changed
logOut Logged Out
indicatorStatusSettings Indicator Switch Settings
wiredNetworkSettings Wired Network Settings
notificationSettings Message Notification Settings
alarmCenterSettings Alarm Receiving Center Settings
videoRecordStrategySettings Video Recording Strategy Settings
cameraLinkageSettings Camera Linkage Settings
armingDisarmingScheduleSettings Arming and Disarming Schedule Settings
alarmSpeedSettings Speed Threshold Settings for Triggering Alarms
videoTrackingSwitchSettings Video Tracking Switching Settings
frequencySettings Frequency Band Settings
masterSlaveTrackingSettings Master-Slave Tracking Settings

529
Intelligent Security API (Person-Based Access Control) Developer Guide

Log Type Description


parkingPointSettings Parking Point Settings
administratorEdited Administrator Parameters Edited
securityConfigured Security Settings
relayParametersEdited Relay Parameters Edited
radarSensitivitySettings Radar Sensitivity Settings
detectAngandDistanceSettings Detector Angle and Range Settings
masterSlaveRadarSettings Master Radar and Slave Radar Settings
remoteCheckTime Remote: Manual Time Synchronization
remoteParamSimpleDefault Remote: Partly Restore to Default Settings
remoteParamFactoryDefault Remote: Restore All to Default Settings
localAutoSwitchConfig Configure Auto Power On or Off Locally
remoteAutoSwitchConfig Configure Auto Power On or Off Remotely
remoteCfgWirelessDialParam Configure wireless dial-up parameters remotely
localCfgWirelessDialParam Configure wireless dial-up parameters locally
remoteCfgWirelessSmsParam Configure wireless message parameters remotely
localCfgWirelessSmsParam Configure wireless message parameters locally
remoteCfgWirelessSmsSelfHelp Configure SMS self-service parameters remotely
localCfgWirelessSmsSelfHelp Configure SMS self-service parameters locally
remoteCfgWirelessNetFlowParam Configure wireless traffic parameters remotely
localCfgWirelessNetFlowParam Configure wireless traffic parameters locally
scaleCfg Scale Settings
radarTrailCfg Radar Pattern Settings
MapImportCfg Map Importing Settings
radarCalibrationCfg Radar Calibration Settings
LocalEzvizOperation Local EZVIZ Operations
RemoteEzvizOperation Remote EZVIZ Operations
SSHEnabled SSH Enabled
SSHDisabled SSH Disabled
installationModeEntered Installation Mode Enabled

530
Intelligent Security API (Person-Based Access Control) Developer Guide

Log Type Description


installationModeExited Installation Mode Disabled
diagnosisModeConfigured Diagnosis Mode Configured
fileExported File Exported
audioFileUploaded Audio File Uploaded
audioFileDeleted Audio File Deleted
PIRCAMCapture PIRCAM Captured
SIPIntercomStarted SIP Intercom Started
SIPIntercomEnded SIP Intercom Ended
enrollmentModeEntered Registration Mode Enabled
enrollmentModeExited Registration Mode Disabled
videoAudioSelfCheckStarted Self-Test of Audio and Video Started
videoAudioSelfCheckStopped Self-Test of Audio and Video Stopped
cardReaderunlocked Card Reader Unlocked
cardReaderlocked Card Reader Locked
videoAudioSelfCheckEnded Self-Test of Audio and Video Ended
previewStart Live View Started
previewStop Live View Stopped
remoteDelAllVideoAnalysisTask All Video Analysis Tasks Cleared (One-Touch)
localSSDOperateStart Local SSD operation (firmware operations) started
localSSDOperateStop Local SSD operation (firmware operations) ended
remoteSSDOperateStart Remote SSD operation (firmware operations) started
remoteSSDOperateStop Remote SSD operation (firmware operations) ended
AITargetBPAdd Reference picture for AI target comparison added
AITargetBPDelete Reference picture for AI target comparison deleted
AITargetBPSearch Reference picture for AI target comparison AI
searched for
AITargetBPUpdate Reference picture for AI target comparison updated
AIRuleConfigTrigger AI rule linkage configured
AudioFileImport Audio file imported

531
Intelligent Security API (Person-Based Access Control) Developer Guide

Log Type Description


AudioFileDownLoad Audio file downloaded
cardNoNotRegistered Card No. not registered
LocalBackupConfig Local hot spare device configuration
RemoteBackupConfig Remote hot spare device configuration
remoteAIModelAdd Model package added
remoteAIModelQuery Model package searched
remoteAIModelDelete Model package deleted
remoteAIModelUpdate Model package updated
remoteAIPicturePollingTaskAdd Picture polling analysis task added
remoteAIPicturePollingTaskQuery Picture polling analysis task searched
remoteAIPicturePollingTaskDelete Picture polling analysis task deleted
remoteAIPicturePollingTaskModify Picture polling analysis task edited
remoteAIVideoTaskAdd Video analysis task added
remoteAIVideoTaskQuery Video analysis task searched
remoteAIVideoTaskDelete Video analysis task deleted
remoteAIVideoTaskModify Video analysis task edited
remoteAIPictureTaskAdd Picture analysis task added
remoteAIPictureTaskQuery Picture analysis task searched
remoteAIPictureTaskDelete Picture analysis task deleted
remoteAIPictureTaskModify Picture analysis task edited
remoteAIVideoPollingTaskAdd Video polling analysis task added
remoteAIVideoPollingTaskQuery Video polling analysis task searched
remoteAIVideoPollingTaskDelete Video polling analysis task deleted
remoteAIVideoPollingTaskModify Video polling analysis task edited
AIRuleConfig AI rule configuration
localParamFactoryDefault Restore to default settings locally
remoteParamFactoryDefault Restore to default settings remotely
remoteDeleteAllVerifyOrCapPics Delete all authenticated or captured face pictures
remotely

532
Intelligent Security API (Person-Based Access Control) Developer Guide

Log Type Description


localDeleteAllVerifyOrCapPics Delete all authenticated or captured face pictures
locally
remoteDeleteEventsAtSpecTime Delete events by specified time remotely
localDeleteEventsAtSpecTime Delete events by specified time locally
remoteOpenSummerTime Enable DST remotely
localOpenSummerTime Enable DST locally
remoteCloseSummerTime Disable DST remotely
localCloseSummerTime Disable DST locally
remoteEZVIZUnbind Unbind from EZVIZ cloud remotely
localEZVIZUnbind Unbind from EZVIZ cloud locally
enterLocalUIBackground Enter UI background
remoteDeleteFaceBaseMap Delete registered face pictures remotely
localDeleteFaceBaseMap Delete registered face pictures locally

Event Logs

Log Type Description


SDKSchool SDK Synchronization
selfTimeSchool Time Synchronization by Schedule
insertSubsystem Plugged in Sub-board
pullOutSubsystem Pulled out Sub-board
autoArm Auto Arming
autoDisarm Auto Disarming
triggerOn Activated Trigger by Schedule
triggerOff Deactivated Trigger by Schedule
autoArmFailed Auto Arming Failed
autoDisarmFailed Auto Disarming Failed
triggerOnFailed Activating Trigger Failed
triggerOffFailed Deactivating Trigger Failed
mandatoryAlarm Forced Arming

533
Intelligent Security API (Person-Based Access Control) Developer Guide

Log Type Description


keyPADlocked Keypad Locked
keyPADunlocked Keypad Unlocked
insetUSB Plugged in USB Flash Drive
pulloutUSB Removed USB Flash Drive
lateRemind Late to Disarm
keypadUnlocked Unlocked Keypad
timeSynchronization Time Synchronization
armFailed Arming Failed
ARCStart ARC Connected
locked Locked

Information Logs

Log Type Description


doubleVerificationPass Double Verification Completed
hdFormatStart Formatting HDD Started
hdFormatStop Formatting HDD Stopped
wirelessRunningStatus Wireless Network Running Status
BackupInfo Hot Spare Information
addUserInfo Added person information (access control
permission)
modifyUserInfo Edit person information (access control permission)
clearUserInfo Delete person information by employee No. (access
control permission)
clearAllUser Delete all person information (access control
permission)

B.5 Response Codes of Text Protocol


The response codes returned during the text protocol integration is based on the status codes of
HTTP. 7 kinds of status codes are predefined, including 1 (OK), 2 (Device Busy), 3 (Device Error), 4
(Invalid Operation), 5 (Invalid Message Format), 6 (Invalid Message Content), and 7 (Reboot

534
Intelligent Security API (Person-Based Access Control) Developer Guide

Required). Each kind of status code contains multiple sub status codes, and the response codes are
in a one-to-one correspondence with the sub status codes.

StatusCode=1

SubStatusCode Error Code Description


ok 0x1 Operation completed.
riskPassword 0x10000002 Risky password.
armProcess 0x10000005 Arming process.

StatusCode=2

Sub Status Code Error Code Description


noMemory 0x20000001 Insufficient memory.
serviceUnavailable 0x20000002 The service is not available.
upgrading 0x20000003 Upgrading.
deviceBusy 0x20000004 The device is busy or no
response.
reConnectIpc 0x20000005 The video server is
reconnected.
transferUpgradePackageFailed 0x20000006 Transmitting device upgrade
data failed.
startUpgradeFailed 0x20000007 Starting upgrading device
failed.
getUpgradeProcessfailed. 0x20000008 Getting upgrade status failed.
certificateExist 0x2000000B The Authentication certificate
already exists.

StatusCode=3

Sub Status Code Error Code Description


deviceError 0x30000001 Hardware error.
badFlash 0x30000002 Flash operation error.
28181Uninitialized 0x30000003 The 28181 configuration is not
initialized.
socketConnectError 0x30000005 Connecting to socket failed.

535
Intelligent Security API (Person-Based Access Control) Developer Guide

Sub Status Code Error Code Description


receiveError 0x30000007 Receive response message
failed.
deletePictureError 0x3000000A Deleting picture failed.
pictureSizeExceedLimit 0x3000000C Too large picture size.
clearCacheError 0x3000000D Clearing cache failed.
updateDatabasError 0x3000000F Updating database failed.
searchDatabaseError 0x30000010 Searching in the database
failed.
writeDatabaseError 0x30000011 Writing to database failed.
deleteDatabaseError 0x30000012 Deleting database element
failed.
searchDatabaseElementError 0x30000013 Getting number of database
elements failed.
cloudAutoUpgradeException 0x30000016 Downloading upgrade packet
from cloud and upgrading
failed.
HBPException 0x30001000 HBP exception.
UDEPException 0x30001001 UDEP exception
elasticSearchException 0x30001002 Elastic exception.
kafkaException 0x30001003 Kafka exception.
HBaseException 0x30001004 Hbase exception.
sparkException 0x30001005 Spark exception.
yarnException 0x30001006 Yarn exception.
cacheException 0x30001007 Cache exception.
trafficException 0x30001008 Monitoring point big data
server exception.
faceException 0x30001009 Human face big data server
exception.
SSDFileSystemIsError 0x30001013 SSD file system error (Error
occurs when it is non-Ext4 file
system)

536
Intelligent Security API (Person-Based Access Control) Developer Guide

Sub Status Code Error Code Description


insufficientSSDCapacityForFPD 0x30001014 Insufficient SSD space for
person frequency detection.
wifiException 0x3000100A Wi-Fi big data server exception
structException 0x3000100D Video parameters structure
server exception.
noLinkageResource 0x30001015 Insufficient linkage resources.
noArmingResource 0x30001016 Insufficient arming resources.
engineAbnormal 0x30002015 Engine exception.
engineInitialization 0x30002016 The engine is initializing.
algorithmLoadingFailed 0x30002017 Loading the model failed.
algorithmDownloadFailed 0x30002018 Downloading the model failed.
algorithmDecryptionFailed 0x30002019 Decrypting the model failed.
unboundChannel 0x30002020 Deleting the channel binding is
required for loading the new
model.
unsupportedResolution 0x30002021 The resolution is not
supported.
unsupportedSteamType 0x30002022 The stream type is not
supported.
insufficientDecRes 0x30002023 The resources for decoding is
insufficient.
insufficientEnginePerformance 0x30002024 The engine performance is
insufficient (the maximum
number of channels that can
be analyzed has reached the
limit).
improperResolution 0x30002025 The picture resolution exceeds
the limit (the maximum
resolution is 4096*4096).
improperPicSize 0x30002026 The picture size is too large
(the maximum size is 5 MB).
URLDownloadFailed 0x30002027 Downloading the picture by
URL failed.

537
Intelligent Security API (Person-Based Access Control) Developer Guide

Sub Status Code Error Code Description


unsupportedImageFormat 0x30002028 The picture format is not
supported (only pictures in JPG
format are supported).
unsupportedPollingIntervalTim 0x30002029 The polling time interval is too
e short (it should be longer than
10s).
exceedImagesNumber 0x30002030 The number of pictures
exceeds the limit (the
maximum number of pictures
that can be applied each time
is 100).
unsupportedMPID 0x30002031 The applied MPID does not
exist in the device (updating by
the MPID is not supported).
modelPackageNotMatchLabel 0x30002032 The model and the description
file mismatch.
modelPackageNotMatchTask 0x30002033 The task and the model type
mismatch.
insufficientSpace 0x30002034 The free space is not enough
(the size of the model package
exceeds that of the free space
and it cannot be added).
engineUnLoadingModelPackag 0x30002035 Applying the task failed
e (Unbinding failed): the engine
is not bound with a model.
engineWithModelPackage 0x30002036 Binding failed (the engine has
been bound with a model and
you need to unbind them first).
modelPackageDelete 0x30002037 Binding failed (the model has
been deleted).
deleteTaskFailed 0x30002038 Clearing the task failed (this
response code will be returned
when the user failed to close
the task).
modelPackageNumberslimited 0x30002039 Adding the model package
failed (the maximum number

538
Intelligent Security API (Person-Based Access Control) Developer Guide

Sub Status Code Error Code Description


of model packages has reached
the limit).
modelPackageDeleteFailed 0x30002040 Deleting the model package
failed.
calibrationTimeout 0x30002051 Calibration timed out.
captureTimeout 0x30006000 Data collection timed out.
lowScore 0x30006001 Low quality of collected data.
uploadingFailed 0x30007004 Uploading failed.

StatusCode=4

Sub Status Code Error Code Description


notSupport 0x40000001 Not supported.
lowPrivilege 0x40000002 No permission.
badAuthorization 0x40000003 Authentication failed.
methodNotAllowed 0x40000004 Invalid HTTP method.
notSetHdiskRedund 0x40000005 Setting spare HDD failed.
invalidOperation 0x40000006 Invalid operation.
notActivated 0x40000007 Inactivated.
hasActivated 0x40000008 Activated.
certificateAlreadyExist 0x40000009 The certificate already exists.
operateFailed 0x4000000F Operation failed.
USBNotExist 0x40000010 USB device is not connected.
upgradePackageMoret 0x40001000 Up to 2GB upgrade package is allowed to be
han2GB uploaded.
IDNotexist 0x40001001 The ID does not exist.
interfaceOperationErro 0x40001002 API operation failed.
r
synchronizationError 0x40001003 Synchronization failed.
synchronizing 0x40001004 Synchronizing.
importError 0x40001005 Importing failed.

539
Intelligent Security API (Person-Based Access Control) Developer Guide

Sub Status Code Error Code Description


importing 0x40001006 Importing.
fileAlreadyExists 0x40001007 The file already exists.
invalidID 0x40001008 Invalid ID.
backupnodeNotAllowe 0x40001009 Accessing to backup node is not allowed.
Log
exportingError 0x4000100A Exporting failed.
exporting 0x4000100B Exporting.
exportEnded 0x4000100C Exporting stopped.
exported 0x4000100D Exported.
IPOccupied 0x4000100E The IP address is already occupied.
IDAlreadyExists 0x4000100F The ID already exists.
exportItemsExceedLimi 0x40001010 No more items can be exported.
t
noFiles 0x40001011 The file does not exist.
beingExportedByAnoth 0x40001012 Being exported by others.
erUser
needReAuthentication 0x40001013 Authentication is needed after upgrade.
unitAddNotOnline 0x40001015 The added data analysis server is offline.
unitControl 0x40001016 The data analysis server is already added.
analysis unitFull 0x40001017 No more data analysis server can be added.
unitIDError 0x40001018 The data analysis server ID does not exist.
unitExit 0x40001019 The data analysis server already exists in the
list.
unitSearch 0x4000101A Searching data analysis server in the list failed.
unitNotOnline 0x4000101B The data analysis server is offline.
unitInfoEror 0x4000101C Getting data analysis server information failed.
unitGetNodeInfoError 0x4000101D Getting node information failed.
unitGetNetworkInfoErr 0x4000101E Getting the network information of data
or analysis server failed

540
Intelligent Security API (Person-Based Access Control) Developer Guide

Sub Status Code Error Code Description


unitSetNetworkInfoErr 0x4000101F Setting the network information of data analysis
or server failed
setSmartNodeInfoError 0x40001020 Setting node information failed.
setUnitNetworkInfoErr 0x40001021 Setting data analysis server network
or information failed.
unitRestartCloseError 0x40001022 Rebooting or shutting down data analysis server
failed.
virtualIPnotAllowed 0x40001023 Adding virtual IP address is not allowed.
unitInstalled 0x40001024 The data analysis server is already installed.
badSubnetMask 0x40001025 Invalid subnet mask.
uintVersionMismatche 0x40001026 Data analysis server version mismatches.
d
deviceMOdelMismatch 0x40001027 Adding failed. Device model mismatches.
ed
unitAddNotSelf 0x40001028 Adding peripherals is not allowed.
noValidUnit 0x40001029 No valid data analysis server.
unitNameDuplicate 0x4000102A Duplicated data analysis server name.
deleteUnitFirst 0x4000102B Delete the added data analysis server of the
node first.
getLocalInfoFailed 0x4000102C Getting the server information failed.
getClientAddedNodeFa 0x4000102D Getting the added node information of data
iled analysis server failed.
taskExit 0x4000102E The task already exists.
taskInitError 0x4000102F Initializing task failed.
taskSubmitError 0x40001030 Submiting task failed.
taskDelError 0x40001031 Deleting task failed.
taskPauseError 0x40001032 Pausing task failed.
taskContinueError 0x40001033 Starting task failed.
taskSeverNoCfg 0x40001035 Full-text search server is not configured.
taskPicSeverNoCfg 0x40001036 The picture server is not configured.
taskStreamError 0x40001037 Streaming information exception.

541
Intelligent Security API (Person-Based Access Control) Developer Guide

Sub Status Code Error Code Description


taskRecSDK 0x40001038 History recording is not supported.
taskCasaError 0x4000103A Cascading is not supported.
taskVCARuleError 0x4000103B Invalid VCA rule.
taskNoRun 0x4000103C The task is not executed.
unitLinksNoStorageNo 0x4000103D No node is linked with the data analysis server.
de Configure the node first.
searchFailed 0x4000103E Searching video files failed.
searchNull 0x4000103F No video clip.
userScheOffline 0x40001040 The task scheduler service is offline.
updateTypeUnmatche 0x40001041 The upgrade package type mismatches.
d
userExist 0x40001043 The user already exists.
userCannotDelAdmin 0x40001044 The administrator cannot be deleted.
userInexistence 0x40001045 The user name does not exist.
userCannotCreatAdmi 0x40001046 The administrator cannot be created.
n
monitorCamExceed 0x40001048 Up to 3000 cameras can be added.
monitorCunitOverLimit 0x40001049 Adding failed. Up to 5 lower-levels are
supported by the control center.
monitorReginOverLimit 0x4000104A Adding failed. Up to 5 lower-levels are
supported by the area.
monitorArming 0x4000104B The camera is already armed. Disarm the
camera and try again.
monitorSyncCfgNotSet 0x4000104C The system parameters are not configured.
monitorFdSyncing 0x4000104E Synchronizing. Try again after completing the
synchronization.
monitorParseFailed 0x4000104F Parsing camera information failed.
monitorCreatRootFaile 0x40001050 Creating resource node failed.
d
deleteArmingInfo 0x40001051 The camera is already . Disarm the camera and
try again.

542
Intelligent Security API (Person-Based Access Control) Developer Guide

Sub Status Code Error Code Description


cannotModify 0x40001052 Editing is not allowed. Select again.
cannotDel 0x40001053 Deletion is not allowed. Select again.
deviceExist 0x40001054 The device already exists.
IPErrorConnectFailed 0x40001056 Connection failed. Check the network port.
cannotAdd 0x40001057 Only the capture cameras can be added.
serverExist 0x40001058 The server already exists.
fullTextParamError 0x40001059 Incorrect full-text search parameters.
storParamError 0x4000105A Incorrect storage server parameters.
picServerFull 0x4000105B The storage space of picture storage server is
full.
NTPUnconnect 0x4000105C Connecting to NTP server failed. Check the
parameters.
storSerConnectFailed 0x4000105D Connecting to storage server failed. Check the
network port.
storSerLoginFailed 0x4000105E Logging in to storage server failed. Check the
user name and password.
searchSerConnectFaile 0x4000105F Connecting to full-text search server failed.
d Check the network port.
searchSerLoginFailed 0x40001060 Logging in to full-text search server failed.
Check the user name and password.
kafkaConnectFailed 0x40001061 Connecting to Kafka failed. Check the network
port.
mgmtConnectFailed 0x40001062 Connecting to system failed. Check the network
port.
mgmtLoginFailed 0x40001063 Logging in to system failed. Check the user
name and password.
TDAConnectFailed 0x40001064 Connecting to traffic data access server failed.
Checking the server status.
86sdkConnectFailed 0x40001065 Connecting to listening port of iVMS-8600
System failed. Check the parameters.
nameExist 0x40001066 Duplicated server name.
batchProcessFailed 0x40001067 Processing in batch failed.

543
Intelligent Security API (Person-Based Access Control) Developer Guide

Sub Status Code Error Code Description


IDNotExist 0x40001068 The server ID does not exist.
serviceNumberReache 0x40001069 No more service can be added.
sLimit
invalidServiceType. 0x4000106A Invalid service type.
clusterGetInfo 0x4000106B Getting cluster group information failed.
clusterDelNode 0x4000106C Deletion node failed.
clusterAddNode 0x4000106D Adding node failed.
clusterInstalling 0x4000106E Creating cluster…Do not operate.
clusterUninstall 0x4000106F Reseting cluster…Do not operate.
clusterInstall 0x40001070 Creating cluster failed.
clusterIpError 0x40001071 Invalid IP address of task scheduler server.
clusterNotSameSeg 0x40001072 The master node and slave node must be in the
same network segment.
clusterVirIpError 0x40001073 Automatically getting virtual IP address failed.
Enter manually.
clusterNodeUnadd 0x40001074 The specified master(slave) node is not added.
clusterNodeOffline 0x40001075 The task scheduler server is offline.
nodeNotCurrentIP 0x40001076 The analysis node of the current IP address is
required when adding master and slave nodes.
addNodeNetFailed 0x40001077 Adding node failed. The network disconnected.
needTwoMgmtNode 0x40001078 Two management nodes are required when
adding master and slave nodes.
ipConflict 0x40001079 The virtual IP address and data analysis server's
IP address conflicted.
ipUsed 0x4000107A The virtual IP address has been occupied.
cloudAlalyseOnline 0x4000107B The cloud analytic server is online.
virIP&mainIPnotSame 0x4000107C The virtual IP address is not in the same
NetSegment network segment with the IP address of
master/slave node.
getNodeDispatchInfoFa 0x4000107D Getting node scheduler information failed.
iled

544
Intelligent Security API (Person-Based Access Control) Developer Guide

Sub Status Code Error Code Description


unableModifyManage 0x4000107E Editing management network interface failed.
mentNetworkIP The analysis board is in the cluster.
notSpecifyVirtualIP 0x4000107F Virtual IP address should be specified for
master and slave cluster.
armingFull 0x40001080 No more device can be armed.
armingNoFind 0x40001081 The arming information does not exist.
disArming 0x40001082 Disarming failed.
getArmingError 0x40001084 Getting arming information failed.
refreshArmingError 0x40001085 Refreshing arming information failed.
ArmingPlateSame 0x40001086 The license plate number is repeatedly armed.
ArmingParseXLSError 0x40001087 Parsing arming information file failed.
ArmingTimeError 0x40001088 Invalid arming time period.
ArmingSearchTimeErro 0x40001089 Invalid search time period.
r
armingRelationshipRea 0x4000108A No more relation can be created.
chesLimit
duplicateAarmingNam 0x4000108B The relation name already exists.
e
noMoreArmingListAdd 0x4000108C No more blocklist library can be armed.
ed
noMoreCamerasAdded 0x4000108D No more camera can be armed.
noMoreArmingListAdd 0x4000108E No more library can be linked to the camera.
edWithCamera
noMoreArmingPeriodA 0x4000108F No more time period can be added to the
dded arming schedule.
armingPeriodsOverlap 0x40001090 The time periods in the arming schedule are
ped overlapped.
noArmingAlarmInfo 0x40001091 The alarm information does not exist.
armingAlarmUnRead 0x40001092 Getting number of unread alarms failed.
getArmingAlarmError 0x40001093 Getting alarm information failed.
searchByPictureTimed 0x40001094 Searching picture by picture timeout. Search
Out again.

545
Intelligent Security API (Person-Based Access Control) Developer Guide

Sub Status Code Error Code Description


comparisonTimeRange 0x40001095 Comparison time period error.
Error
selectMonitorNumber 0x40001096 No more monitoring point ID can be filtered.
UpperLimit
noMoreComparisonTas 0x40001097 No more comparison task can be executed at
ksAdded the same time.
GetComparisonResultF 0x40001098 Getting comparison result failed.
ailed
comparisonTypeError 0x40001099 Comparison type error.
comparisonUnfinished 0x4000109A The comparison is not completed.
facePictureModelInvali 0x4000109B Invalid face model.
d
duplicateLibraryName. 0x4000109C The library name already exists.
noRecord 0x4000109D No record found.
countingRecordsFailed. 0x4000109E Calculate the number of records failed.
getHumanFaceFrameF 0x4000109F Getting face thumbnail from the picture failed.
ailed
modelingFailed. 0x400010A0 Modeling face according to picture URL failed.
1V1FacePictureCompar 0x400010A1 Comparison 1 VS 1 face picture failed.
isonFailed
libraryArmed 0x400010A2 The blocklist library is armed.
licenseExeedLimit 0x400010A3 Dongle limited.
licenseExpired 0x400010A4 Dongle expired.
licenseDisabled 0x400010A5 Unavailable dongle.
licenseNotExist 0x400010A6 The dongle does not exist.
SessionExpired 0x400010A7 Session expired .
beyondConcurrentLimi 0x400010A8 Out of concurrent limit.
t
stopSync 0x400010A9 Synchronization stopped.
getProgressFaild 0x400010AA Getting progress failed.
uploadExtraCaps 0x400010AB No more files can be uploaded.

546
Intelligent Security API (Person-Based Access Control) Developer Guide

Sub Status Code Error Code Description


timeRangeError 0x400010AC Time period error.
dataPortNotConnected 0x400010AD The data port is not connected.
addClusterNodeFailed 0x400010AE Adding to the cluster failed. The device is
already added to other cluster.
taskNotExist 0x400010AF The task does not exist.
taskQueryFailed 0x400010B0 Searching task failed.
modifyTimeRuleFailed 0x400010B2 The task already exists. Editing time rule is not
allowed.
modifySmartRuleFailed 0x400010B3 The task already exists. Editing VAC rule is not
allowed.
queryHistoryVideoFaile 0x400010B4 Searching history video failed.
d
addDeviceFailed 0x400010B5 Adding device failed.
addVideoFailed 0x400010B6 Adding video files failed.
deleteAllVideoFailed 0x400010B7 Deleting all video files failed.
createVideoIndexFailed 0x400010B8 Indexing video files failed.
videoCheckTypeFailed 0x400010B9 Verifying video files types failed.
configStructuredAddre 0x400010BA Configuring IP address of structured server
ssFailed failed.
configPictureServerAd 0x400010BB Configuring IP address of picture storaged
dressFailed server failed.
storageServiceIPNotExi 0x400010BD The storage server IP address does not exist.
st
syncBackupDatabaseFa 0x400010BE Synchronizing slave database failed. Try again.
iled
syncBackupNTPTimeFa 0x400010BF Synchronizing NTP time of slave server failed.
iled
clusterNotSelectLoopb 0x400010C0 Loopbacl address is not supported by the
ackAddress master or slave cluster.
addFaceRecordFailed 0x400010C1 Adding face record failed.
deleteFaceRecordFaile 0x400010C2 Deleting face record failed.
d

547
Intelligent Security API (Person-Based Access Control) Developer Guide

Sub Status Code Error Code Description


modifyFaceRecordFaile 0x400010C3 Editing face record failed.
d
queryFaceRecordFailed 0x400010C4 Searching face record failed.
faceDetectFailed 0x400010C5 Detecting face failed.
libraryNotExist 0x400010C6 The library does not exist.
blackListQueryExportin 0x400010C7 Exporting matched blocklists.
g
blackListQueryExporte 0x400010C8 The matched blocklists are exported.
d
blackListQueryStopExp 0x400010C9 Exporting matched blocklists is stopped.
orting
blackListAlarmQueryEx 0x400010CA Exporting matched blocklist alarms.
porting
blackListAlarmQueryEx 0x400010CB The matched blocklists alarms are exported.
ported
blackListAlarmQuerySt 0x400010CC Exporting matched blocklist alarms is stopped.
opExporting
getBigDataCloudAnalys 0x400010CD Getting big data cloud analytic information
isFailed failed.
setBigDataCloudAnalys 0x400010CE Configuring big data cloud analytic failed.
isFailed
submitMapSearchFaile 0x400010CF Submitting search by picture task failed.
d
controlRelationshipNot 0x400010D0 The relation does not exist.
Exist
getHistoryAlarmInfoFai 0x400010D1 Getting history alarm information failed.
led
getFlowReportFailed 0x400010D2 Getting people counting report failed.
addGuardFailed 0x400010D3 Adding arming configuration failed.
deleteGuardFailed 0x400010D4 Deleting arming configuration failed.
modifyGuardFailed 0x400010D5 Editing arming configuration failed.
queryGuardFailed 0x400010D6 Searching arming configurations failed.

548
Intelligent Security API (Person-Based Access Control) Developer Guide

Sub Status Code Error Code Description


uploadUserSuperCaps 0x400010D7 No more user information can be uploaded.
bigDataServerConnect 0x400010D8 Connecting to big data server failed.
Failed
microVideoCloudRequ 0x400010D9 Adding response information of micro video
estInfoBuildFailed cloud failed.
microVideoCloudRespo 0x400010DA Parsing response information of micro video
nseInfoBuildFailed cloud failed.
transcodingServerRequ 0x400010DB Adding response information of transcoding
estInfoBuildFailed server failed.
transcodingServerResp 0x400010DC Parsing response information of transcoding
onseInfoParseFailed server failed.
transcodingServerOffli 0x400010DD Transcoding server is offline.
ne
microVideoCloudOfflin 0x400010DE Micro video cloud is offline.
e
UPSServerOffline 0x400010DF UPS monitor server is offline.
statisticReportRequestI 0x400010E0 Adding response information of statistics report
nfoBuildFailed failed.
statisticReportRespons 0x400010E1 Parsing response information of statistics report
eInfoParseFailed failed.
DisplayConfigInfoBuild 0x400010E2 Adding display configuration information failed.
Failed
DisplayConfigInfoParse 0x400010E3 Parsing display configuration information failed.
Failed
DisplayConfigInfoSaveF 0x400010E4 Saving display configuration information failed.
ailed
notSupportDisplayConf 0x400010E5 The display configuration type is not supported.
igType
passError 0x400010E7 Incorrect password.
upgradePackageLarge 0x400010EB Too large upgrade package.
sesssionUserReachesLi 0x400010EC No more user can log in via session.
mit

549
Intelligent Security API (Person-Based Access Control) Developer Guide

Sub Status Code Error Code Description


ISO 0x400010ED Invalid ISO8601 time format.
8601TimeFormatError
clusterDissolutionFaile 0x400010EE Deleting cluster failed.
d
getServiceNodeInfoFail 0x400010EF Getting service node information failed.
ed
getUPSInfoFailed 0x400010F0 Getting UPS configuration information failed.
getDataStatisticsRepor 0x400010F1 Getting data statistic report failed.
tFailed
getDisplayConfigInfoFai 0x400010F2 Getting display configuration failed.
led
namingAnalysisBoardN 0x400010F3 Renaming analysis board is not allowed.
otAllowed
onlyDrawRegionsOfCo 0x400010F4 Only drawing convex polygon area is supported.
nvexPolygon
bigDataServerRespons 0x400010F5 Parsing response message of big data service
eInfoParseFailed failed.
bigDataServerReturnFa 0x400010F6 No response is returned by big data service.
iled
microVideoReturnFaile 0x400010F7 No response is returned by micro video cloud
d service.
transcodingServerRetu 0x400010F8 No response is returned by transcoding service.
rnFailed
UPSServerReturnFailed 0x400010F9 No response is returned by UPS monitoring
service.
forwardingServer 0x400010FA No response is returned by forwarding service.
ReturnFailed
storageServer 0x400010FB No response is returned by storage service.
ReturnFailed
cloudAnalysisServerRet 0x400010FC No response is returned by cloud analytic
urnFailed service.
modelEmpty 0x400010FD No model is obtained.

550
Intelligent Security API (Person-Based Access Control) Developer Guide

Sub Status Code Error Code Description


mainAndBackupNodeC 0x400010FE Editing the management interface IP address of
annotModifyManagem master node and backup node is not allowed.
entNetworkInterfaceIP
IDTooLong 0x400010FF The ID is too long.
pictureCheckFailed 0x40001100 Detecting picture failed.
pictureModelingFailed 0x40001101 Modeling picture failed.
setCloudAnalsisDefault 0x40001102 Setting default province of cloud analytic
ProvinceFailed service failed.
InspectionAreasNumbe 0x40001103 No more detection regions can be added.
rExceedLimit
picturePixelsTooLarge 0x40001105 The picture resolution is too high.
picturePixelsTooSmall 0x40001106 The picture resolution is too low.
storageServiceIPEmpty 0x40001107 The storage server IP address is required.
bigDataServerRequestI 0x40001108 Creating request message of big data service
nfoBuildFail failed.
analysiTimedOut 0x40001109 Analysis time out.
high- 0x4000110A Please enable high-performance mode.
performanceModeDisa
bled.
configuringUPSMonito 0x4000110B Configurating the UPS monitoring server time
ringServerTimedOut out. Check IP address.
cloudAnalysisRequestI 0x4000110C Creating request message of cloud analytic
nformationBuildFailed service failed.
cloudAnalysisResponse 0x4000110D Parsing response message of cloud analytic
InformationParseFailed service failed.
allCloudAnalysisInterfa 0x4000110E Calling API for cloud analytic service failed.
ceFailed
cloudAnalysisModelCo 0x4000110F Model comparison of cloud analytic service
mpareFailed failed.
cloudAnalysisFacePictu 0x40001110 Getting face quality grading of cloud analytic
reQualityRatingFailed service failed.
cloudAnalysisExtractFe 0x40001111 Extracting feature of cloud analytic service
aturePointsFailed failed.

551
Intelligent Security API (Person-Based Access Control) Developer Guide

Sub Status Code Error Code Description


cloudAnalysisExtractPr 0x40001112 Extracting property of cloud analytic service
opertyFailed failed.
getAddedNodeInformat 0x40001113 Getting the added nodes information of data
ionFailed analysis server failed.
noMoreAnalysisUnitsA 0x40001114 No more data analysis servers can be added.
dded
detectionAreaInvalid 0x40001115 Invalid detection region.
shieldAreaInvalid 0x40001116 Invalid shield region.
noMoreShieldAreasAd 0x40001117 No more shield region can be drawn.
ded
onlyAreaOfRectangleS 0x40001118 Only drawing rectangle is allowed in detection
hapeAllowed area.
numberReachedLlimit 0x40001119 Number reached the limit.
wait1~3MinutesGetIPAf 0x4000111A Wait 1 to 3 minutes to get IP address after
terSetupDHCP configuring DHCP.
plannedTimeMustbeH 0x4000111B Schedule must be half an hour.
alfAnHour
oneDeviceCannotBuild 0x4000111C Creating master and backup cluster requires at
Cluster least two devices.
updatePackageFileNot 0x4000111E Upgrade package is not uploaded.
Uploaded
highPerformanceTasks 0x4000111F Drawing detection area is not allowed under
NotSupportDrawingDe high-performance mode.
tectionRegions
controlCenterIDDoesN 0x40001120 The control center ID does not exist.
otExist
regionIDDoesNotExist 0x40001121 The area ID does not exist.
licensePlateFormatErro 0x40001122 Invalid license plate format.
r
managementNodeDoe 0x40001123 The operation is not supported.
sNotSupportThisOperat
ion

552
Intelligent Security API (Person-Based Access Control) Developer Guide

Sub Status Code Error Code Description


searchByPictureResour 0x40001124 The conditions for searching picture by picture
ceNotConfiged are not configured.
videoFileEncapsulation 0x40001125 The video container format is not supported.
FormatNotSupported
videoPackageFailure 0x40001126 Converting video container format failed.
videoCodingFormatNot 0x40001127 Video coding format is not supported.
Supported
monitorOfDeviceArmin 0x40001129 The camera is armed. Disarm it and try again.
gdeleteArmingInfo
getVideoSourceTypeFai 0x4000112A Getting video source type failed.
led
smartRulesBuildFailed 0x4000112B Creating VAC rule failed.
smartRulesParseFailed 0x4000112C Parsing VAC rule failed.
timeRulesBuildFailed 0x4000112D Creating time rule failed.
timeRulesParseFailed 0x4000112E Parsing time rule failed.
monitoInfoInvalid 0x4000112F Invalid camera information.
addingFailedVersionMi 0x40001130 Adding failed. The device version mismatches.
smatches
theInformationReturne 0x40001131 No response is returned by the cloud analytic
dAfterCloudAnalysisIsE service.
mpty
selectingIpAddressOfH 0x40001132 Setting IP address for master node and backup
ostAndSpareNodeFaile node failed. Check the node status.
dCheckTheStatus
theSearchIdDoesNotEx 0x40001133 The search ID does not exist.
ist
theSynchronizationIdD 0x40001134 The synchronization ID does not exist.
oesNotExist
theUserIdDoesNotExist 0x40001136 The user ID does not exist.
theIndexCodeDoesNot 0x40001138 The index code does not exist.
Exist
theControlCenterIdDoe 0x40001139 The control center ID does not exist.
sNotExist

553
Intelligent Security API (Person-Based Access Control) Developer Guide

Sub Status Code Error Code Description


theAreaIdDoesNotExist 0x4000113A The area ID does not exist.
theArmingLinkageIdDo 0x4000113C The arming relationship ID does not exist.
esNotExist
theListLibraryIdDoesNo 0x4000113D The list library ID does not exist.
tExist
invalidCityCode 0x4000113E Invalid city code.
synchronizingThePass 0x4000113F Synchronizing backup system password failed.
wordOfSpareServerFail
ed
editingStreamingTypeIs 0x40001140 Editing streaming type is not supported.
NotSupported
switchingScheduledTas 0x40001141 Switching scheduled task to temporary task is
kToTemporaryTaskIsNo not supported.
tSupported
switchingTemporaryTas 0x40001142 Switching temporary task to scheduled task is
kToScheduledTaskIsNot not supported.
Supported
theTaskIsNotDispatche 0x40001143 The task is not dispatched or is updating.
dOrItIsUpdating
thisTaskDoesNotExist 0x40001144 This task does not exist in the cloud analytic
serice.
duplicatedSchedule 0x40001145 Schedule period cannot be overlapped.
continuousScheduleWi 0x40001146 The continuous schedule periods with same
thSameAlgorithmType algorithm type should be merged.
ShouldBeMerged
invalidStreamingTimeR 0x40001147 Invalid streaming time period.
ange
invalidListLibraryType 0x40001148 Invalid list library type.
theNumberOfMatched 0x40001149 The number of search results should be larger
ResultsShouldBeLarger than 0.
Than0
invalidValueRangeOfSi 0x4000114A Invalid similarity range.
milarity
invalidSortingType 0x4000114B Invalid sorting type.

554
Intelligent Security API (Person-Based Access Control) Developer Guide

Sub Status Code Error Code Description


noMoreListLibraryCanB 0x4000114C No more lists can be added to one device.
eLinkedToTheDevice
InvalidRecipientAddres 0x4000114D Invalid address format of result receiver.
sFormat
creatingClusterFailedT 0x4000114E Insert the dongle before creating cluster.
heDongleIsNotPlugged
In
theURLIsTooLong 0x4000114F No schedule configured for the task.
noScheduleIsConfigure 0x40001150 No schedule configured for the task.
dForTheTask
theDongleIsExpiried 0x40001151 Dongle has expired.
dongleException 0x40001152 Dongle exception.
invalidKey 0x40001153 Invalid authorization service key.
decryptionFailed 0x40001154 Decrypting authorization service failed.
encryptionFailed 0x40001155 Encrypting authorization service failed.
AuthorizeServiceRespo 0x40001156 Authorization service response exception.
nseError
incorrectParameter 0x40001157 Authorization service parameters error.
operationFailed 0x40001158 Operating authorization service error.
noAnalysisResourceOr 0x40001159 No cloud analytic resources or no data in the list
NoDataInTheListLibrary library.
calculationException 0x4000115A Calculation exception.
allocatingList 0x4000115B Allocating list.
thisOperationIsNotSup 0x4000115C This operation is not supported by the cloud
portedByTheCloudAnal analytic serice.
ytics
theCloudAnalyticsIsInt 0x4000115D The operation of cloud analytic serice is
errupted interrupted.
theServiceIsNotReady 0x4000115E The service is not ready.
searchingForExternalA 0x4000115F Searching external interfaces failed.
piFailed
noOnlineNode 0x40001160 No node is online.

555
Intelligent Security API (Person-Based Access Control) Developer Guide

Sub Status Code Error Code Description


noNodeAllocated 0x40001161 No allocated node.
noMatchedList 0x40001162 No matched list.
allocatingFailedTooMa 0x40001163 Allocation failed. Too many lists of big data
nyFacePictureLists service.
searchIsNotCompleted 0x40001164 Current searching is not completed. Search
SearchAgain again.
allocatingListIsNotCom 0x40001165 Allocating list is not completed.
pleted
searchingForCloudAnal 0x40001166 Searching cloud analytic serice overtime.
yticsResultsFailed
noDataOfTheCurrentLi 0x40001167 No data in the current library. Make sure there
braryFound is data in the Hbase.
noFacePictureLibraryIs 0x40001168 No face picture library is armed for big data
Armed service.
noAvailableDataSlicing 0x40001169 Invalid standard version information.
VersionInformationAr
mFirstAndSliceTheData
duplicatedOperationDa 0x4000116A Slicing failed. Duplicated operation.
taSlicingIsExecuting
slicinDataFailedNoArm 0x4000116B Slicing failed. No arming information in the face
edFacePictureLibrary big data.
GenerateBenchmarkFil 0x4000116C Generating sliced file failed. Slice again.
eFailedSlicingAgain
NonprimaryNodeIsPro 0x4000116D Slicing is not allowed by the backup node.
hibitedFromSlcingData
NoReadyNodeToCluste 0x4000116E Creating the cluster failed. No ready node.
rServers
NodeManagementServ 0x4000116F The node management server is offline.
iceIsOffline
theCamera(s)OfTheCo 0x40001170 Some cameras in control center are already
ntrolCenterAreAlready armed. Disarm them and try again.
Armed.DisarmThemFir
st

556
Intelligent Security API (Person-Based Access Control) Developer Guide

Sub Status Code Error Code Description


theCamera(s)OfTheAre 0x40001171 Some cameras in this area are already armed.
aAreAlreadyArmed.Dis Disarm them and try again.
armThemFirst
configuringHigh- 0x40001172 Configuring high frequency people detection
frequencyPeopleDetect failed.
ionFailed
searchingForHigh- 0x40001173 Searching detection event logs of high-
frequencyPeopleDetect frequency people detection failed.
ionLogsFailed.
gettingDetailsOfSearch 0x40001174 Getting the search result details of high
edHigh- frequency alarms failed.
frequencyPeopleDetect
ionLogsFailed.
theArmedCamerasAlre 0x40001175 Some cameras in control center are already
adyExistInTheControlC armed.
enter
disarmingFailedTheCa 0x40001177 Disarming failed. The camera is not armed.
meraIsNotArmed
noDataReturned 0x40001178 No response is returned by the big data service.
preallocFailure 0x40001179 Pre-​allocating algorithm resource failed.
overDogLimit 0x4000117A Configuration failed. No more resources can be
pre-allocated.
analysisServicesDoNot 0x4000117B Not supported.
Support
commandAndDispatch 0x4000117C Scheduling service of cloud analytic serice error.
ServiceError
engineModuleError 0x4000117D Engine module of cloud analytic serice error.
streamingServiceError 0x4000117E Streaming component of cloud analytic serice
error.
faceAnalysisModuleErr 0x4000117F Face analysis module of cloud analytic serice
or error.
vehicleAnalysisModule 0x40001180 Vehicle pictures analytic module of cloud
Error analytic serice error.

557
Intelligent Security API (Person-Based Access Control) Developer Guide

Sub Status Code Error Code Description


videoStructuralAnalysis 0x40001181 Video structuring module of cloud analytic
ModuleError serice error.
postprocessingModule 0x40001182 Post-processing module of cloud analytic serice
Error error.
frequentlyAppearedPe 0x40001183 High frequency alarm is already armed for
rsonAlarmIsAlreadyCo blocklist library.
nfiguredForListLibrary
creatingListLibraryFaile 0x40001184 Creating list library failed.
d
invalidIdentiryKeyOfLis 0x40001185 Invalid identity key of list library.
tLibrary
noMoreDevicesCanBe 0x40001186 No more camera can be added.
Armed
settingAlgorithmTypeF 0x40001187 Allocating task resource failed.
orDeviceFailed
gettingHighFrequencyP 0x40001188 Setting high frequency alarm failed.
ersonDetectionAlarmIn
formationFailed
invalidSearchConfition 0x40001189 Invalid result.
theTaskIsNotComplete 0x4000118B The task is not completed.
d
resourceOverRemainLi 0x4000118C No more resource can be pre-allocated.
mit
frequentlyAppearedPe 0x4000118D The high frequency alarm of this camera is
rsonAlarmIs configured. Delete the arming information and
AlreadyConfiguredForT try again.
heCameraDisarmFirstA
ndTryAgain
switchtimedifflesslimit 0x4000123b Time difference between power on and off
should be less than 10 minutes.
associatedFaceLibNum 0x40001279 Maximum number of linked face picture
OverLimit libraries reached.
noMorePeopleNumCh 0x4000128A Maximum number of people number changing
angeRulesAdded rules reached.

558
Intelligent Security API (Person-Based Access Control) Developer Guide

Sub Status Code Error Code Description


noMoreViolentMotion 0x4000128D Maximum number of violent motion rules
RulesAdded reached.
noMoreLeavePositionR 0x4000128E Maximum number of leaving position rules
ulesAdded reached.
SMRDiskNotSupportRa 0x40001291 SMR disk does not support RAID.
id
OnlySupportHikAndCus 0x400012A3 IPv6 camera can only be added via private
tomProtocol protocol or custom protocols.
vehicleEnginesNoReso 0x400012A6 Insufficient vehicle engine resources.
urce
noMoreRunningRulesA 0x400012A9 Maximum number of running rules reached.
dded
noMoreGroupRulesAd 0x400012AA Maximum number of people gathering rules
ded reached.
noMoreFailDownRules 0x400012AB Maximum number of people falling down rules
Added reached.
noMorePlayCellphone 0x400012AC Maximum number of playing cellphone rules
RulesAdded reached.
ruleEventTypeDuplicat 0x400012C8 Event type duplicated.
e
noMoreRetentionRules 0x400015AD Maximum number of people retention rules
Added reached.
noMoreSleepOnDutyR 0x400015AE Maximum number of sleeping on duty rules
ulesAdded reached.
polygonNotAllowCrossi 0x400015C2 Polygons are not allowed to cross.
ng
AITargetBPCaptureFail 0x400019C5 Capturing reference picture for AI target
comparison failed.
AITargetBPToDSPFail 0x400019C6 Sending reference picture to DSP for AI target
comparison failed.
AITargetBPDuplicateNa 0x400019C7 Duplicated name of reference picture for AI
me target comparison.
audioFileNameWrong 0x400019D0 Incorrect audio file name.

559
Intelligent Security API (Person-Based Access Control) Developer Guide

Sub Status Code Error Code Description


audioFileImportFail 0x400019D1 Importing audio file failed.
NonOperationalStandb 0x400019F0 Non-​operational hot spare.
yMachine
MaximumNumberOfD 0x400019F1 The maximum number of devices reached.
evices
StandbyMmachineCan 0x400019F2 The hot spare cannot be deleted.
notBeDeleted
alreadyRunning 0x40002026 The application program is running.
notRunning 0x40002027 The application program is stopped.
packNotFound 0x40002028 The software packet does not exist.
alreadyExist 0x40002029 The application program already exists.
noMemory 0x4000202A Insufficient memory.
invalLicense 0x4000202B Invalid License.
noClientCertificate 0x40002036 The client certificate is not installed.
noCACertificate 0x40002037 The CA certificate is not installed.
authenticationFailed 0x40002038 Authenticating certificate failed. Check the
certificate.
clientCertificateExpired 0x40002039 The client certificate is expired.
clientCertificateRevocat 0x4000203A The client certificate is revoked.
ion
CACertificateExpired 0x4000203B The CA certificate is expired.
CACertificateRevocatio 0x4000203C The CA certificate is revoked.
n
connectFail 0x4000203D Connection failed.
loginNumExceedLimit 0x4000203F No more user can log in.
HDMIResolutionIllegal 0x40002040 The HDMI video resolution cannot be larger
than that of main and sub stream.
hdFormatFail 0x40002049 Formatting HDD failed.
formattingFailed 0x40002056 Formatting HDD failed.
encryptedFormattingFa 0x40002057 Formatting encrypted HDD failed.
iled

560
Intelligent Security API (Person-Based Access Control) Developer Guide

Sub Status Code Error Code Description


wrongPassword 0x40002058 Verifying password of SD card failed. Incorrect
password.
audioIsPlayingPleaseW 0x40002067 Audio is playing. Please wait.
ait
twoWayAudioInProgre 0x40002068 Two-way audio in progress. Please wait.
ssPleaseWait
calibrationPointNumFu 0x40002069 The maximum number of calibration points
ll reached.
completeTheLevelCalib 0x4000206A The level calibration is not set.
rationFirst
completeTheRadarCam 0x4000206B The radar-camera calibration is not set.
eraCalibrationFirst
pointsOnStraightLine 0x4000209C Calibrating failed. The calibration points cannot
be one the same line.
TValueLessThanOrEqua 0x4000209D Calibration failed. The T value of the calibration
lZero points should be larger than 0.
HBDLibNumOverLimit 0x40002092 The number of human body picture libraries
reaches the upper limit
theShieldRegionError 0x40002093 Saving failed. The shielded area should be the
ground area where the shielded object is
located.
theDetectionAreaError 0x40002094 Saving failed. The detection area should only
cover the ground area.
invalidLaneLine 0x40002096 Saving failed. Invalid lane line.
enableITSFunctionOfTh 0x400020A2 Enable ITS function of this channel first.
isChannelFirst
noCloudStorageServer 0x400020C5 No cloud storage server
NotSupportWithVideo 0x400020F3 This function is not supported.
Task
noDetectionArea 0x400050df No detection area
armingFailed 0x40008000 Arming failed.
disarmingFailed 0x40008001 Disarming failed.
clearAlarmFailed 0x40008002 Clearing alarm failed.

561
Intelligent Security API (Person-Based Access Control) Developer Guide

Sub Status Code Error Code Description


bypassFailed 0x40008003 Bypass failed.
bypassRecoverFailed 0x40008004 Bypass recovery failed.
outputsOpenFailed 0x40008005 Opening relay failed.
outputsCloseFailed 0x40008006 Closing relay failed.
registerTimeOut 0x40008007 Registering timed out.
registerFailed 0x40008008 Registering failed.
addedByOtherHost 0x40008009 The peripheral is already added by other
security control panel.
alreadyAdded 0x4000800A The peripheral is already added.
armedStatus 0x4000800B The partition is armed.
bypassStatus 0x4000800C Bypassed.
zoneNotSupport 0x4000800D This operation is not supported by the zone.
zoneFault 0x4000800E The zone is in fault status.
pwdConflict 0x4000800F Password conflicted.
audioTestEntryFailed 0x40008010 Enabling audio test mode failed.
audioTestRecoveryFaile 0x40008011 Disabling audio test mode failed.
d
addCardMode 0x40008012 Adding card mode.
searchMode 0x40008013 Search mode.
addRemoterMode 0x40008014 Adding keyfob mode.
registerMode 0x40008015 Registration mode.
exDevNotExist 0x40008016 The peripheral does not exist.
theNumberOfExDevLi 0x40008017 No peripheral can be added.
mited
sirenConfigFailed 0x40008018 Setting siren failed.
chanCannotRepeatedB 0x40008019 This channel is already linked by the zone.
inded
inProgramMode 0x4000801B The keypad is in programming mode.
inPaceTest 0x4000801C In pacing mode.
arming 0x4000801D Arming.

562
Intelligent Security API (Person-Based Access Control) Developer Guide

Sub Status Code Error Code Description


masterSlaveIsEnable 0x4000802c The master-slave relationship has taken effect,
the slave radar does not support this operation.
forceTrackNotEnabled 0x4000802d Mandatory tracking is disabled.
isNotSupportZoneConfi 0x4000802e This area does not support the zone type.
gByLocalArea
alarmLineCross 0x4000802f Trigger lines are overlapped.
zoneDrawingOutOfRan 0x40008030 The drawn zone is out of detection range.
ge
alarmLineDrawingOut 0x40008031 The drawn alarm trigger line is out of detection
OfRange range.
hasTargetInWarningAr 0x40008032 The warning zone already contains targets.
ea Whether to enable mandatory arming?
radarMoudleConnectF 0x40008033 Radar module communication failed.
ail
importCfgFilePassword 0x40008034 Incorrect password for importing configuration
Err files.
overAudioFileNumLimi 0x40008038 The number of audio files exceeds the limit.
t
audioFileNameIsLong 0x40008039 The audio file name is too long.
audioFormatIsWrong 0x4000803a The audio file format is invalid.
audioFileIsLarge 0x4000803b The size of the audio file exceeds the limit.
pircamCapTimeOut 0x4000803c Capturing of pircam timed out.
pircamCapFail 0x4000803d Capturing of pircam failed.
pircamIsCaping 0x4000803e The pircam is capturing.
audioFileHasExisted 0x4000803f The audio file already exists.
subscribeTypeErr 0x4000a016 This metadata type is not supported to be
subscribed.
startAppFail / Starting running application program failed.
yuvconflict / The raw video stream conflicted.
overMaxAppNum / No more application program can be uploaded.

563
Intelligent Security API (Person-Based Access Control) Developer Guide

Sub Status Code Error Code Description


noFlash / Insufficient flash.
noFlash / The platform mismatches.

StatusCode=5

Sub Status Code Error Code Description


badXmlFormat 0x50000001 Invalid XML format.

StatusCode=6

Sub Status Code Error Code Description


badParameters 0x60000001 Invalid parameter.
badHostAddress 0x60000002 Invalid host IP address.
badXmlContent 0x60000003 Invalid XML content.
badIPv4Address 0x60000004 Invalid IPv4 address.
badIPv6Address 0x60000005 Invalid IPv6 address.
conflictIPv4Address 0x60000006 IPv4 address conflicted.
conflictIPv6Address 0x60000007 IPv6 address conflicted.
badDomainName 0x60000008 Invalid domain name.
connectSreverFail 0x60000009 Connecting to server failed.
conflictDomainName 0x6000000A Domain name conflicted.
badPort 0x6000000B Port number conflicted.
portError 0x6000000C Port error.
exportErrorData 0x6000000D Importing data failed.
badNetMask 0x6000000E Invalid sub-net mask.
badVersion 0x6000000F Version mismatches.
badDevType 0x60000010 Device type mismatches.
badLanguage 0x60000011 Language mismatches.
incorrentUserNameOrPasswor 0x600000012 Incorrect user name or
d password.

564
Intelligent Security API (Person-Based Access Control) Developer Guide

Sub Status Code Error Code Description


invalidStoragePoolOfCloudServ 0x600000013 Invalid storage pool. The
er storage pool is not configured
or incorrect ID.
noFreeSpaceOfStoragePool 0x600000014 Storage pool is full.
riskPassword 0x600000015 Risky password.
UnSupportCapture 0x600000016 Capturing in 4096*2160 or
3072*2048 resolution is not
supported when H.264+ is
enabled.
userPwdLenUnder8 0x60000023 At least two kinds of
characters, including digits,
letters, and symbols, should be
contained in the password.
userPwdNameSame 0x60000025 Duplicated password.
userPwdNameMirror 0x60000026 The password cannot be the
reverse order of user name.
beyondARGSRangeLimit 0x60000027 The parameter value is out of
limit.
DetectionLineOutofDetectionR 0x60000085 The rule line is out of region.
egion
DetectionRegionError 0x60000086 Rule region error. Make sure
the rule region is convex
polygon.
DetectionRegionOutOfCountin 0x60000087 The rule region must be
gRegion marked as red frame.
PedalAreaError 0x60000088 The pedal area must be in the
rule region.
DetectionAreaABError 0x60000089 The detection region A and B
must be in the a rule frame.
ABRegionCannotIntersect 0x6000008a Region A and B cannot be
overlapped.
customHBPIDError 0x6000008b Incorrect ID of custom human
body picture library

565
Intelligent Security API (Person-Based Access Control) Developer Guide

Sub Status Code Error Code Description


customHBPIDRepeat 0x6000008c Duplicated ID of custom human
body picture library
dataVersionsInHBDLibMismatc 0x6000008d Database versions mismatches
hes of human body picture library
invalidHBPID 0x6000008e Invalid human body picture PID
invalidHBDID 0x6000008f Invalid ID of human body
picture library
humanLibraryError 0x60000090 Error of human body picture
library
humanLibraryNumError 0x60000091 No more human body picture
library can be added
humanImagesNumError 0x60000092 No more human body picture
can be added
noHumanInThePicture 0x60000093 Modeling failed, no human
body in the picture
analysisEnginesNoResourceErr 0x60001000 No analysis engine.
or
analysisEnginesUsageExcced 0x60001001 The engine usage is
overloaded.
PicAnalysisNoResourceError 0x60001002 No analysis engine provided for
picture secondary recognition.
analysisEnginesLoadingError 0x60001003 Initializing analysis engine.
analysisEnginesAbnormaError 0x60001004 Analysis engine exception.
analysisEnginesFacelibImportin 0x60001005 Importing pictures to face
g picture library. Failed to edit
analysis engine parameters.
analysisEnginesAssociatedChan 0x60001006 The analysis engine is linked to
nel channel.
smdEncodingNoResource 0x60001007 Insufficient motion detection
encoding resources.
smdDecodingNoResource 0x60001008 Insufficient motion detection
decoding resources.
diskError 0x60001009 HDD error.

566
Intelligent Security API (Person-Based Access Control) Developer Guide

Sub Status Code Error Code Description


diskFull 0x6000100a HDD full.
facelibDataProcessing 0x6000100b Handling face picture library
data.
capturePackageFailed 0x6000100c Capturing packet failed.
capturePackageProcessing 0x6000100d Capturing packet.
noSupportWithPlaybackAbstra 0x6000100e This function is not supported.
ct Playback by video synopsis is
enabled.
insufficientNetworkBandwidth 0x6000100f Insufficient network
bandwidth.
tapeLibNeedStopArchive 0x60001010 Stop the filing operation of
tape library first.
identityKeyError 0x60001011 Incorrect interaction command.
identityKeyMissing 0x60001012 The interaction command is
lost.
noSupportWithPersonDensityD 0x60001013 This function is not supported.
etect The people density detection is
enabled.
ipcResolutionOverflow 0x60001014 The configured resolution of
network camera is invalid.
ipcBitrateOverflow 0x60001015 The configured bit rate of
network camera is invalid.
tooGreatTimeDifference 0x60001016 Too large time difference
between device and server.
noSupportWithPlayback 0x60001017 This function is not supported.
Playback is enabled.
channelNoSupportWithSMD 0x60001018 This function is not supported.
Motion detection is enabled.
channelNoSupportWithFD 0x60001019 This function is not supported.
Face capture is enabled.
illegalPhoneNumber 0x6000101a Invalid phone number.
illegalCertificateNumber 0x6000101b Invalid certificate No.
linkedCameraOutLimit 0x6000101c Connecting camera timed out.

567
Intelligent Security API (Person-Based Access Control) Developer Guide

Sub Status Code Error Code Description


achieveMaxChannelLimit 0x6000101e No more channels are allowed.
humanMisInfoFilterEnabledCha 0x6000101f No more channels are allowed
nNumError to enable preventing false
alarm.
humanEnginesNoResource 0x60001020 Insufficient human body
analysis engine resources.
taskNumberOverflow 0x60001021 No more tasks can be added.
collisionTimeOverflow 0x60001022 No more comparison duration
can be configured.
invalidTaskID 0x60001023 Invalid task ID.
eventNotSupport 0x60001024 Event subscription is not
supported.
invalidEZVIZSecretKey 0x60001034 Invalid verification code for
Guarding Vision.
needDoubleVerification 0x60001042 Double verification required
noDoubleVerificationUser 0x60001043 No double verification user
timeSpanNumOverLimit 0x60001044 Max. number of time buckets
reached
channelNumOverLimit 0x60001045 Max. number of channels
reached
noSearchIDResource 0x60001046 Insufficient searchID resources
noSupportDeleteStrangerLib 0x60001051 Deleting stranger library is not
supported
noSupportCreateStrangerLib 0x60001052 Creating stranger library is not
supported
behaviorAnalysisRuleInfoError 0x60001053 Behavior analysis rule
parameters error.
safetyHelmetParamError 0x60001054 Hard hat parameters error.
OneChannelOnlyCanBindOneE 0x60001077 No more engines can be
ngine bound.
engineTypeMismatch 0x60001079 Engine type mismatched.
badUpgradePackage 0x6000107A Invalid upgrade package.

568
Intelligent Security API (Person-Based Access Control) Developer Guide

Sub Status Code Error Code Description


AudioFileNameDuplicate 0x60001135 Duplicated audio file name.
CurrentAudioFileAIRuleInUseAl 0x60001136 The AI rule linkage related to
readyDelete current audio file has been
deleted.
TransitionUseEmmc 0x60002000 Starting device failed. The
EMMC is overused.
AdaptiveStreamNotEnabled 0x60002001 The stream self-​adaptive
function is not enabled.
AdaptiveStreamAndVariableBit 0x60002002 Stream self-​adptive and
rateEnabled variable bitrate function cannot
be enabled at the same time.
noSafetyHelmetRegion 0x60002023 The hard hat detection area is
not configured (if users save
their settings without
configuring the arming area,
they should be prompted to
configure one).
unclosedSafetyHelmet 0x60002024 The hard hat detection is
enabled (If users save their
settings after deleting the
arming area, they should be
prompted to disable hard hat
detection first and then delete
the arming area).
width/ 0x6000202C The width/height ratio of the
heightRatioOfPictureError uploaded picture should be in
the range from 1:2 to 2:1.
PTZNotInitialized 0x6000202E PTZ is not initialized.
PTZSelfChecking 0x6000202F PTZ is self-checking.
PTZLocked 0x60002030 PTZ is locked.
advancedParametersError 0x60002031 Auto-switch interval in
advanced parameters cannot
be shorter than parking
tolerance for illegal parking
detection in speed dome rule
settings.

569
Intelligent Security API (Person-Based Access Control) Developer Guide

Sub Status Code Error Code Description


resolutionError 0x60005003 Invalid resolution
deployExceedMax 0x60006018 The arming connections exceed
the maximum number.
detectorTypeMismatch 0x60008000 The detector type mismatched.
nameExist 0x60008001 The name already exists.
uploadImageSizeError 0x60008016 The size of the uploaded
picture is larger than 5 MB.
laneAndRegionOverlap / The lanes are overlapped.
unitConfigurationNotInEffect / Invalid unit parameter.
ruleAndShieldingMaskConflict / The line-rule region overlaps
with the shielded area.
wholeRuleInShieldingMask / There are complete
temperature measurement
rules in the shielded area.
LogDiskNotSetReadOnlyInGrou 0x60001100 The log HDD in the HDD group
pMode cannot be set to read-only.
LogDiskNotSetReDundancyInGr 0x60001101 The log HDD in the HDD group
oupMode cannot be set to redundancy.

StatusCode=7

SubStatusCode Error Code Description


rebootRequired 0x70000001 Reboot to take effect.

B.6 Error Codes Categorized by Functional Modules


The error codes returned during the text protocol integration is categorized by different functional
modules. See the error codes, error descriptions, and debugging suggestions in the table below.

Public Function Module (Error Codes Range: 0x00000000, from 0x00100001 to 0x001fffff)

Error String Error Code Description Debugging Suggestion


success 0x00000000 Succeeded.
deviceNotActivate 0x00100001 The device is not activated. Activate the device.
d

570
Intelligent Security API (Person-Based Access Control) Developer Guide

Error String Error Code Description Debugging Suggestion


deviceNoPermissi 0x00100002 Device operation failed. No Update user's permission.
on permission.
deviceNotSupport 0x00100003 This function is not Check the device capability
supported. set and call the API
corresponding to supported
function.
deviceResourceN 0x00100004 Insufficient resources. Release resources.
otEnough
dataFormatError 0x00100005 Invalid message format.
resetError 0x00100006 Restoring to factory settings
failed. Reactivating device is
required after the device is
reboot as the Reset button
may be stuck.
parameterError 0x00100007 Incorrect parameter
0x00100100 Invalid channel Check if the channel is valid.
0x00100101 NPQ live view is not Replace streaming mode for
supported for stream stream encryption.
encryption.
0x00100102 No more channels are Reduce NPQ streaming
allowed for NPQ streaming. channels and try again.
0x00100103 The stream type is not Check the requested stream
supported. type.
0x00100104 The number of connections Reduce the number of
exceeded limit. streaming clients and try
again.
0x00100105 Not enough bandwidth. Reduce the number of
remote streaming channels.

User Function Module (Error Codes Range: from 0x00200001 to 0x002fffff)

Error String Error Code Description Debugging Suggestion


passwordError 0x00200001 Incorrect user name or Check if the password is
password. correct.
userNameNotExi 0x00200002 The account does not Check if the account exists, or
st exist. add the account.

571
Intelligent Security API (Person-Based Access Control) Developer Guide

Error String Error Code Description Debugging Suggestion


userNameLocked 0x00200003 The account is locked. Wait for the device to unlock.
userNumLimited 0x00200004 The number of users Log out.
allowed to log in exceeded
the upper limit.
lowPrivilege 0x00200005 No permissions for this For users operations, check
operation the following situations:
• Deleting your own account
is not allowed.
• Editing your own level or
permission is not allowed.
• Getting information about
users with higher
permission is not allowed.
• Elevating the user's level or
permission is not allowed.
For other operations, check
according to the following
measures: If operations
unrelated to user's permission
configuration failed, you can
check the user type and
permission, if not solved,
contact the developers.
incorrentUserNa 0x00200006 Incorrect user name or Check if the configured user
meOrPassword password name and password are
matched. If not, contact the
administrator to configure
again. If the administrator
forgets the password, reset
the password of the device.
riskPassword 0x00200007 Risk password Low password strength.
Change password again.
passwordMustCo 0x00200008 The password length must Check if the password length is
ntainMorethan8C be greater than or equal to greater than or equal to 8. If
haracters 8. not, change password again.
passwordLenNo 0x00200009 The password length Check if the password length is
MoreThan16 cannot be greater than 16. greater than16. If yes, change
password again.

572
Intelligent Security API (Person-Based Access Control) Developer Guide

Error String Error Code Description Debugging Suggestion


adminUserNotAll 0x0020000a Editing admin information Check if the edited account is
owedModify is not allowed. admin.
confirmPassword 0x0020000b Incorrect confirm Check the confirm password.
Error password.
passwordMustCo 0x0020000c The password must Check if the configured
ntainMorethan2T contain at least two or password conforms the
ypes more of followings: requirements.
numbers, lowercase,
uppercase, and special
characters.
passwordContain 0x0020000d The password cannot Check if the password contains
UserName contain the user name. the user name.
userPwdNameMi 0x0020000e The password cannot be Check if the password is
rror reversed user name. reversed user name.

Time Function Module (Error Codes Range: from 0x00300001 to 0x003fffff)

Error String Error Code Description Debugging Suggestion


manualAdjustmen 0x00300001 Time synchronization failed.
tFailed
NTPError 0x00300002 Invalid NTP server address. Check if the NTP server
address is valid.
timeFormatError 0x00300003 Incorrect time format Incorrect message format or
during time calibration. incorrect time format.
For example, the time in ISO
8601 format should be
"2018-02-01T19:54:04", but
the applied time is "2018-
02-01 19:54:04".
beyondTimeRang 0x00300004 The calibration time is not Get the device capability
eLimit within the time range and check if the configured
supported by the device. time is within the time
range supported by the
device.
endtimeEarlierTha 0x00300005 The start time of the validity Check if the start time and
nBegintime period cannot be later than end time are valid.
the end time.

573
Intelligent Security API (Person-Based Access Control) Developer Guide

Network Function Module (Error Codes Range: from 0x00400001 to 0x004fffff)

Error String Error Code Description Debugging Suggestion


domainNamePars 0x00400001 Parsing domain name failed.
eFailed
PPPOEConnected 0x00400002 Connecting PPPOE to the
Failed network failed.
FTPConnectedFail 0x00400003 The FTP server is
ed disconnected.
deviceIPConflicted 0x00400004 IP addresses of devices
conflicted.
libraryConnectedF 0x00400005 The image and video library
ailed is disconnected.
fileUploadFailed 0x00400006 Uploading failed. Check if the network
connection is normal. If yes,
contact after-​sales.
storSerDownloadF 0x00400007 Downloading failed. Check if the network
ileFailed connection is normal. If yes,
contact after-​sales.
storSerDownloadF 0x00400008 The size of file downloaded Check if the network
ileSizeZero from the storage service is connection is normal. If yes,
0. contact after-​sales.
storSerNotConfig 0x00400009 Storage service is not Check if the configuration is
configured. correct.
badHostAddress 0x0040000a Host address error Check if the configuration is
correct.
badIPv4Address 0x0040000b Incorrect IPv4 address. Check if the configuration is
correct.
badIPv6Address 0x0040000c Incorrect IPv6 address. Check if the configuration is
correct.
conflictIPv4Addre 0x0040000d IPv4 address conflict. Check the configuration
ss status of IPV4 in the
network.
conflictIPv6Addre 0x0040000e IPv6 address conflict Check the configuration
ss status of IPV6 in the
network.

574
Intelligent Security API (Person-Based Access Control) Developer Guide

Error String Error Code Description Debugging Suggestion


badDomainName 0x0040000f Incorrect domain name. Check if the configuration is
correct.
connectSreverFail 0x00400010 Connecting to server failed. Check if the network is
normal and check if the
configuration is correct.
conflictDomainNa 0x00400011 Domain name conflict. Check if the configuration is
me correct.
badPort 0x00400012 Port conflict. Check if the configuration is
correct.
portError 0x00400013 Port error Check if the configuration is
correct.
badNetMask 0x00400014 Subnet mask error Check if the configuration is
correct.
badVersion 0x00400015 Version mismatch Check if the version is
correct.
badDns 0x00400016 DNS error Check if the configuration is
correct.
badMTU 0x00400017 MTU error Check if the configuration is
correct.
badGateway 0x00400018 Wrong gateway Check if the configuration is
correct.
urlDownloadFail 0x00400019 Downloading via URL failed. Check if the network is
normal and check if the URL
is correct.
deployExceedMax 0x0040001a The number of armed Get the supported
channels exceeds the maximum number of
maximum number of arming and the number of
connections. armed channels.

575
Intelligent Security API (Person-Based Access Control) Developer Guide

Maintenance Function Module (Error Codes Range: from 0x00500001 to 0x005fffff)

Error String Error Code Description Debugging Suggestion


upgradeXMLForm 0x00500001 Incorrect XML upgrading Check if the upgrade file is
atError request. correct. If the file is correct,
try the local upgrade.
upgradeContentEr 0x00500002 Incorrect upgrading request Check if the upgrade file is
ror content. correct. If the file is correct,
try the local upgrade.
noUpgradePermis 0x00500003 No upgrade permission. Switch to admin account or
sion ask admin for advanced
operation permission.
upgrading 0x00500004 Upgrading… Wait for the upgrade to
complete.
receiveUpgradePa 0x00500005 Receiving upgrade package Check if the network is
ckageError failed. normal.
upgradePackageL 0x00500006 Upgrade package language Check the language type of
anguageMismatch mismatch. upgrade package and the
device.
upgradePackageM 0x00500007 Upgrade file does not match Check the type of upgrade
ismatch with the device type. package and device.
OEMCodeMismat 0x00500008 Upgrade package error. The Contact after-​sales to get
ch OEM code mismatch. the correct upgrade
package.
versionMismatch 0x00500009 Upgrade file version Contact after-​sales to get
mismatch. the correct upgrade
package.
upgradeHalfFailed 0x0050000c Error occurred in the
halfway of device
upgrading. Flash error or
cache error.
deviceParameterI 0x0050000d Importing device
mportFailed parameters failed. Device
model, version, or platform
mismatches.

576
Intelligent Security API (Person-Based Access Control) Developer Guide

Error String Error Code Description Debugging Suggestion


deviceEncryptionE 0x0050000e Upgrade package
rror mismatches. Device
encryption error.
SDCardFormatErr 0x00500025 Formatting SD card failed.
or
SDCardLoadFailed 0x00500026 Loading page failed after
the SD card is inserted.
NASFailed 0x00500027 Mounting NAS failed.
hardDiskError 0x00500028 HDD exception (possible
reasons: HDD does not
exist, incompatible,
encrypted, insufficient
capacity, formatting
exception, array exception,
array incompatible, etc.)
upgradeError 0x00500030 Upgrade error
upgradePackageSi 0x00500032 Mismatch between the
zeMismath actual size of the
downloaded upgrade
package and the size in the
upgrading request.
upgradePackageSi 0x00500033 The size of the package
zeExceeded exceeded that of the
partition.
domainNamePars 0x00500034 Parsing the domain name of
eFailedForDownlo the address for
ad downloading failed.
netWorkUnstable 0x00500035 Unstable network.
Downloading timed out or
the maximum number of
attempts reached.
digestValueMisma 0x00500036 Mismatched digest value.
tch
signatureVerifyFai 0x00500037 Verifying the signature
led failed.

577
Intelligent Security API (Person-Based Access Control) Developer Guide

Error String Error Code Description Debugging Suggestion


innerFormatError 0x00500038 Incorrect inner format of
the upgrade package.
memoryNotEnoug 0x00500039 Insufficient memory.
h
burnFailed 0x0050003a Burning firmware failed.
unknownError 0x0050003b Unknown error occurred in
the underlying APIs.
userCancel 0x0050003c User requested cancel of
current operation.
systemResume 0x0050003d Upgrading failed. You can
resume via the backup
system or minimum system.
0x00500080 Upgrade file is not found. Check if the upgrade
package path is too long or
if there is a correct upgrade
package under the upgrade
package path.
0x00500081 Upgrade file does not match Select the upgrade package
with the engine type. matched with the device
engine type.
0x00500082 Parsing camera domain Confirm if the device is
name failed. correctly configured DNS
service and if the camera
domain is valid.
0x00500083 Camera network is Confirm if the local network
unreachable. can access the network
where the added channel
located.

Live View Module (Error Codes Range: from 0x00600001 to 0x006fffff)

Error String Error Code Description Debugging Suggestion


liveViewFailed 0x00600001 Live view failed. The
number of streaming
channels exceeded limit.
0x00600002 Request packaging format Check the packaging format
exception. of requested live view.

578
Intelligent Security API (Person-Based Access Control) Developer Guide

Error String Error Code Description Debugging Suggestion


0x00600003 NPQ will be unavailable When EHome 2.x is enable,
after enabling EHome 2.x. use other live view mode.
0x00600005 NPQ live view is not User other live view mode
supported for channel-zero. for channel-zero.
0x00600007 Only virtual stream Switch to virtual strem.
supports NPQ live view.
0x0060000A The IP channel is offline. Check if the IP channel is
online and try again.
0x0060000B Live view transcoding is not Use other stream type for
supported by the device. live view.
0x0060000C Channel-zero is not Enable channel-zero before
enabled. starting live view of
channel-zero.
0x0060000D Transcoding capability Reduce camera resolution
exceeded limit. or the number of
transcoding channels.
0x00600010 The channel does not have Use main stream mode for
sub-stream. live view.
0x00600011 NPQ live view is not Switch to other live view
supported by the device. mode.
0x00600012 NPQ function is disabled. Enable NPQ function or
switch to other live view
mode.

Playback Module (Error Codes Range: from 0x00700001 to 0x007fffff)

Error String Error Code Description Debugging Suggestion


0x00700001 Playback failed. Up to one
channel's playback is
supported.
0x00700002 The speed of playback Reduce the playback speed.
displayed on video wall is
not supported.
0x00700003 The transmission rate of Reduce the transmission
playback stream is too high. rate of playback stream.

579
Intelligent Security API (Person-Based Access Control) Developer Guide

Error String Error Code Description Debugging Suggestion


0x00700004 The encoding type of Provide the stream with
playback stream is not encoding type supported by
supported. device.
0x00700005 The container format of Provide the stream with
playback stream is not container format supported
supported. by device.
0x00700007 Exception occurred when
decoding playback stream
Possible reasons: displaying
on video wall exception,
image exception, display
exception, decoding
exception, image is stuck,
black screen, invalid stream
type, live view is stuck,
audio decoding exception,
and blurred screen.
0x00700008 Playback video does not Search again or check if
exit, or searching failed. HDD is normal.
0x00700009 Playback time parameter Check if the time period of
error. searched video is correct
and try again.
0x0070000A Invalid video type. Select the correct video
type to search.
0x0070000B Invalid time type. Select the correct time type
to search.
0x0070000C Invalid event parameter. Select the correct event
parameter to search.
0x0070000D Invalid event type. Select the correct event
type to search.
0x0070000E The device does not Select the non smart search
support smart search. mode to search.
0x0070000F Invalid smart event type. Select the correct smart
event type to search.
0x00700010 Invalid dynamic analysis Select the correct sensitivity
sensitivity. to search video.

580
Intelligent Security API (Person-Based Access Control) Developer Guide

Error String Error Code Description Debugging Suggestion


0x00700011 Reverse playback is not Select the correct playback
supported. mode.
0x00700012 Invalid file status. Select the correct file status
to search.
0x00700013 Invalid searching start Use the correct searching
position. start position to search.
0x00700014 Invalid maximum number of Use the correct maximum
searching. number of searching to
search.

Capture Module (Error Codes Range: from 0x00800001 to 0x008fffff)

Error String Error Code Description Debugging Suggestion


0x00800001 Manual capture failed.

Two-Way Audio Module (Error Codes Range: from 0x00900001 to 0x009fffff)

Error String Error Code Description Debugging Suggestion


startFailed 0x00900001 Starting two-way audio
failed. Audio loss or driver
error.
codingFormatNot 0x00900002 The encoding format of the Check or capture the
Match intercom is inconsistent, packets on the platform,
and the negotiation fails then analyze if the audio
encoding formats
negotiated by both sides
are consistent.
dialedIsBusy 0x00900003 The intercom party is Check if the intercom party
already in the intercom and is already in the intercom, if
can no longer respond to not, get the protocol
the intercom message and analyze the
response message.
destinationLongN 0x00900004 The requested destination Check or capture the
umberError long number is wrong packets on the platform,
then analyze the long
number.

581
Intelligent Security API (Person-Based Access Control) Developer Guide

Video Storage Module (Error Codes Range: from 0x00a00001 to 0x00afffff)

Error String Error Code Description Debugging Suggestion


videoSearchFailed 0x00a00001 Searching videos failed. No resource stored in the
device.
notFindStorageM 0x00a00002 No storage medium found.
edium
videoDownloadFa 0x00a00003 Downloading videos failed.
iled

Picture Storage Module (Error Codes Range: from 0x00b00001 to 0x00bfffff)

Error String Error Code Description Debugging Suggestion


0x00b00001 Searching pictures failed. No picture resource.

IO Function Modele (Error Codes Range: from 0x00c00001 to 0x00cfffff)

Error String Error Code Description Debugging Suggestion


0x00c00001 Invalid alarm input No.
0x00c00002 Invalid alarm output No.

Event Function Module (Error Codes Range: from 0x00d00001 to 0x00dfffff)

Error String Error Code Description Debugging Suggestion


0x00d00001 Incorrect event rule. Refer to the manual for
correct configuration.

Parking Service Module (Error Codes Range: from 0x00e00001 to 0x00efffff)

Error String Error Code Description Debugging Suggestion


0x00e00001 The vehicle with parking Parking pass is created by
pass already exists. license plate, you need to
check if the parking pass for
this license plate already
created.
0x00e00002 The license plate number is
required.

582
Intelligent Security API (Person-Based Access Control) Developer Guide

General Function Module (Error Codes Range: from 0x00f00001 to 0x00ffffff)

Error String Error Code Description Debugging Suggestion


noMemory 0x00f00001 Insufficient device memory Check the free memory
(heap space allocation and send logs to the
failed). developer for analysis.
deviceBusy 0x00f00002 The device is busy or the Send logs to the developers
device is not responding. for analysis.
For fingerprint collection,
face collection, file
application, and file
uploading services, check if
the last operation is
completed.
notSupport 0x00f00003 The URL is not supported by Capture the packets, check
the device. if the applied URL exists in
the PMP platform. If yes,
send the URL to the
developer for analysis.
methodNotAllowe 0x00f00004 HTTP method is not allowed. Capture the packets, check
d the method corresponding
to the URL in the PMP
platform.
invalidOperation 0x00f00005 Invalid operation of API
command.
IDNotexist 0x00f00006 The ID does not exist (the Capture the packets and
URL should contain ID, but check if the ID included in
the actual URL does not the URL is correct.
contain the ID).
invalidID 0x00f00007 Invalid ID (the ID in the URL Capture the packets and
exceeds the capability set or check if the ID included in
the ID format is invalid). the URL is correct.
Get the capabilities of URL
and check the ID range.
invalidIURL 0x00f00008 The content after the "? " in Capture the packets and
the URL is wrong. check if the URL is correct.
deviceAckTimeOu 0x00f00009 Device response timed out. If the communication with
t the external module timed

583
Intelligent Security API (Person-Based Access Control) Developer Guide

Error String Error Code Description Debugging Suggestion


out, check if the external
module is offline.
When the above situation
is eliminated, send logs to
the developer for analysis.
badXmlFormat 0x00f0000a XML format error
badJsonFormat 0x00f0000b JSON format error
badURLFormat 0x00f0000c URL format error Get the URL and check if it
is correct.
badXmlContent 0x00f0000d XML message error:
• The message contains
only URL but no message
body
• The required node is not
configured.
• Node value exceeds the
range limit (incorrect node
value).
badJsonContent 0x00f0000e JSON message error:
• The message contains
only URL but no message
body
• The required node is not
configured.
• Node value exceeds the
range limit (incorrect node
value).
messageParamete 0x00f0000f The required node does not
rsLack exists.
invalidSearchCond 0x00f00010 Invalid search condition, Check if searchID is correct.
itions search again.
operObjectNotExi 0x00f00011 The object does not exist Check if door lock is
st (for the operations about connected.
door, alarm IO, the object is
not added).

584
Intelligent Security API (Person-Based Access Control) Developer Guide

Door Control Module (Error Codes Range: from 0x01000001 to 0x010ffffff)

Error String Error Code Description Debugging Suggestion


multiAuthenticati 0x01000001 Multi-​factor authentication
on Failed status operation failed.
securityModuleOff 0x01000002 The safety door control Check if the safety door
line module is offline and fails to control is offline.
open the door.

Schedule Template Module (Error Codes Range: from 0x01100001 to 0x011fffff)

Error String Error Code Description Debugging Suggestion


planNumberConfli 0x01100001 Plan number conflict.
ct
timeOverlap 0x01100002 Time period conflict. Check the message to find
out if there is a time overlap
of different time periods in
one day.

Person Information Module (Error Codes Range: from 0x01200001 to 0x012fffff)

Error String Error Code Description Debugging Suggestion

Certificate Module (Error Codes Range: from 0x01300001 to 0x013fffff)

Error String Error Code Description Debugging Suggestion

Security Function Module (Error Codes Range: from 0x01400001 to 0x014fffff)

Error String Error Code Description Debugging Suggestion


decryptFailed 0x01400001 Decryption failed, when The import secret key
decrypting sensitive should be consistent with
information fields or the export.
importing data files.
certificateNotmat 0x01400003 Certificates mismatched, The public and private keys
ch SSL/TLS public and private need to be generated at the
keys need to be matched in same time.
pairs.
notActivated 0x01400004 Device is not activated. Activate the device by tools
such as SADP before use.

585
Intelligent Security API (Person-Based Access Control) Developer Guide

Error String Error Code Description Debugging Suggestion


hasActivated 0x01400005 Device has been activated.
forbiddenIP 0x01400006 IP address is banned IP address is banned when
illegal login attempts exceed
the upper limit.
bondMacAddress 0x01400007 The MAC address does not Check if the specific MAC
NotMatch match the user. address has linked to the
user.
bondIpAddressNo 0x01400008 IP address does not match Check if the specific IP
tMatch the user. address has linked to the
user.
badAuthorization 0x01400009 Triggered by illegal login Incorrect password
triggered the illegal login.

Advertising Function Module (Error Codes Range: from 0x01500001 to 0x015fffff)

Error String Error Code Description Debugging Suggestion


materialDownloa 0x01500001 Material download failed. • Check if the network
dFailed connection is normal.
• Check if the device is
running normally.
• Check the log print.
materialNumberIs 0x01500002 The number of materials in Check if the number of
Over the program list reached materials in applied
the upper limit. program list exceeded the
limit.

586

You might also like