ISAPI - Person-Based Access Control
ISAPI - Person-Based Access Control
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
iii
Intelligent Security API (Person-Based Access Control) Developer Guide
iv
Intelligent Security API (Person-Based Access Control) Developer Guide
v
Intelligent Security API (Person-Based Access Control) Developer Guide
vi
Intelligent Security API (Person-Based Access Control) Developer Guide
vii
Intelligent Security API (Person-Based Access Control) Developer Guide
viii
Intelligent Security API (Person-Based Access Control) Developer Guide
ix
Intelligent Security API (Person-Based Access Control) Developer Guide
x
Intelligent Security API (Person-Based Access Control) Developer Guide
xi
Intelligent Security API (Person-Based Access Control) Developer Guide
xii
Intelligent Security API (Person-Based Access Control) Developer Guide
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
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)).
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
5
Intelligent Security API (Person-Based Access Control) Developer Guide
6
Intelligent Security API (Person-Based Access Control) Developer Guide
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).
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
10
Intelligent Security API (Person-Based Access Control) Developer Guide
11
Intelligent Security API (Person-Based Access Control) Developer Guide
12
Intelligent Security API (Person-Based Access Control) Developer Guide
13
Intelligent Security API (Person-Based Access Control) Developer Guide
14
Intelligent Security API (Person-Based Access Control) Developer Guide
15
Intelligent Security API (Person-Based Access Control) Developer Guide
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 .
17
Intelligent Security API (Person-Based Access Control) Developer Guide
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 .
/*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
/*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
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.
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
…
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.
26
Intelligent Security API (Person-Based Access Control) Developer Guide
27
Intelligent Security API (Person-Based Access Control) Developer Guide
Steps
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
30
Intelligent Security API (Person-Based Access Control) Developer Guide
Steps
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
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.
32
Intelligent Security API (Person-Based Access Control) Developer Guide
Steps
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.
34
Intelligent Security API (Person-Based Access Control) Developer Guide
Steps
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.
36
Intelligent Security API (Person-Based Access Control) Developer Guide
37
Intelligent Security API (Person-Based Access Control) Developer Guide
38
Intelligent Security API (Person-Based Access Control) Developer Guide
Steps
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.
40
Intelligent Security API (Person-Based Access Control) Developer Guide
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.
42
Intelligent Security API (Person-Based Access Control) Developer Guide
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
Note
Deleting a face record or deleting face records in a batch are both
supported.
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.
44
Intelligent Security API (Person-Based Access Control) Developer Guide
Steps
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.
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
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.
48
Intelligent Security API (Person-Based Access Control) Developer Guide
Steps
49
Intelligent Security API (Person-Based Access Control) Developer Guide
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.
50
Intelligent Security API (Person-Based Access Control) Developer Guide
Steps
51
Intelligent Security API (Person-Based Access Control) Developer Guide
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.
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.
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.
54
Intelligent Security API (Person-Based Access Control) Developer Guide
Steps
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- 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.
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 .
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 .
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 .
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
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 .
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 .
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 .
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 .
Note
Currently, for traffic camera or capture camera, receiving alarm or event in arming mode is not
supported.
66
Intelligent Security API (Person-Based Access Control) Developer Guide
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.
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.
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.
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.
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
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
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"
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>
72
Intelligent Security API (Person-Based Access Control) Developer Guide
Steps
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
//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
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.
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
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.
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
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
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 .
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
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
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
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
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".
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
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
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
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
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
Function Description
Get capability of getting GET /ISAPI/AccessControl/SnapConfig/capabilities
capture triggering parameters
Get capture triggering GET /ISAPI/AccessControl/SnapConfig
parameters
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
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
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
Privacy Settings
87
Intelligent Security API (Person-Based Access Control) Developer Guide
A.1 /ISAPI/AccessControl/AcsCfg/capabilities?format=json
Get the configuration capability of the access controller.
A.2 /ISAPI/AccessControl/AcsCfg?format=json
Operations about the configuration of the access controller.
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
A.4 /ISAPI/AccessControl/AcsEvent/StorageCfg/capabilities?format=json
Get the storage configuration capability of access control events.
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.
A.6 /ISAPI/AccessControl/AcsEvent?format=json
Search for access control events.
90
Intelligent Security API (Person-Based Access Control) Developer Guide
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.
92
Intelligent Security API (Person-Based Access Control) Developer Guide
A.8 /ISAPI/AccessControl/AcsEventTotalNum?format=json
Get the total number of access control events by specific conditions.
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
A.10 /ISAPI/AccessControl/AcsWorkStatus?format=json
Get the working status of the access controller.
A.11 /ISAPI/AccessControl/AntiSneakCfg/capabilities?format=json
Get the anti-passing back configuration capability.
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.
A.13 /ISAPI/AccessControl/Attendance/planTemplate/<TemplateNo>?
format=json
Get or set the parameters of the attendance schedule template.
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.
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
A.16 /ISAPI/AccessControl/Attendance/weekPlan/<PlanNo>?
format=json
Get or set the parameters of the week attendance schedule.
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.
A.18 /ISAPI/AccessControl/capabilities
Get the functional capability of access control.
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
A.20 /ISAPI/AccessControl/CaptureCardInfo?format=json
Collect card information.
A.21 /ISAPI/AccessControl/CaptureFaceData
Collect face picture information.
99
Intelligent Security API (Person-Based Access Control) Developer Guide
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
---------------------------------------------------------------------------------------------------
HTTP/1.1 200 OK
MIME-Version: 1.0
Connection: close
Content-Type: application/xml; charset="UTF-8"
Content-Length: text_length
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
---------------------------------------------------------------------------------------------------
HTTP/1.1 200 OK
MIME-Version: 1.0
Connection: close
Content-Type: application/xml; charset="UTF-8"
Content-Length: text_length
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
---------------------------------------------------------------------------------------------------
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.
A.23 /ISAPI/AccessControl/CaptureFaceData/Progress
Get the progress of collecting face picture information.
102
Intelligent Security API (Person-Based Access Control) Developer Guide
A.24 /ISAPI/AccessControl/CaptureFaceData/Progress/capabilities
Get capability of getting face picture collection progress.
A.25 /ISAPI/AccessControl/CaptureFingerPrint
Collect fingerprint information.
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.
A.27 /ISAPI/AccessControl/CaptureIDInfo/capabilities?format=json
Get the capability of collecting ID card information.
A.28 /ISAPI/AccessControl/CaptureIDInfo?format=json
Collect ID card information.
104
Intelligent Security API (Person-Based Access Control) Developer Guide
A.29 /ISAPI/AccessControl/CapturePresetParam/capabilities?
format=json
Get the configuration capability of online collection preset parameters.
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
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
A.32 /ISAPI/AccessControl/CaptureRule?format=json
Get or set the parameters of online collection rules.
A.33 /ISAPI/AccessControl/CardInfo/capabilities?format=json
Get the card management capability.
107
Intelligent Security API (Person-Based Access Control) Developer Guide
A.34 /ISAPI/AccessControl/CardInfo/Count?format=json
Get the total number of the added cards.
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.
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.
A.37 /ISAPI/AccessControl/CardInfo/Modify?format=json
Edit card information.
109
Intelligent Security API (Person-Based Access Control) Developer Guide
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.
A.39 /ISAPI/AccessControl/CardInfo/Search?format=json
Search for cards.
110
Intelligent Security API (Person-Based Access Control) Developer Guide
A.40 /ISAPI/AccessControl/CardInfo/SetUp?format=json
Set card information.
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.
A.42 /ISAPI/AccessControl/CardOperations/cardIssueStatus?
format=json
Get the smart card issuing status.
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
A.44 /ISAPI/AccessControl/CardOperations/clearData?format=json
Delete data from the card.
A.45 /ISAPI/AccessControl/CardOperations/controlBlock?format=json
Change the control block of a specific section (only available for M1 card).
113
Intelligent Security API (Person-Based Access Control) Developer Guide
A.46 /ISAPI/AccessControl/CardOperations/customData/searchTask?
format=json
Search for custom card information.
A.47 /ISAPI/AccessControl/CardOperations/customData?format=json
Set custom card information.
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).
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
A.50 /ISAPI/AccessControl/CardOperations/dataTrans?format=json
Pass through the data package (only available for CPU card).
A.51 /ISAPI/AccessControl/CardOperations/encryption?format=json
Set card encryption parameters (only available for CPU card).
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.
A.53 /ISAPI/AccessControl/CardOperations/localIssueRequest?
format=json
Send a request for card issuing.
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.
A.55 /ISAPI/AccessControl/CardOperations/protocol?format=json
Set operation protocol type for the card (only available when applying card).
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).
A.57 /ISAPI/AccessControl/CardOperations/sectionEncryption?
format=json
Set the encryption parameters of a specific section (only available for M1 card).
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).
A.59 /ISAPI/AccessControl/CardReaderAntiSneakCfg/<ID>?format=json
Operations about the anti-passing back configuration of a specified card reader.
120
Intelligent Security API (Person-Based Access Control) Developer Guide
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.
A.61 /ISAPI/AccessControl/CardReaderCfg/<ID>?format=json
Operations about the card reader configuration.
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.
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
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.
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.
A.66 /ISAPI/AccessControl/CardVerificationRule/progress?format=json
Get the switching progress and configuration result of card No. authentication mode.
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.
A.68 /ISAPI/AccessControl/ClearAntiSneak?format=json
Clear anti-passing back records.
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.
A.70 /ISAPI/AccessControl/ClearAntiSneakCfg/capabilities?format=json
Get the capability of clearing anti-passing back parameters.
A.71 /ISAPI/AccessControl/ClearAntiSneakCfg?format=json
Clear anti-passing back parameters.
126
Intelligent Security API (Person-Based Access Control) Developer Guide
A.72 /ISAPI/AccessControl/ClearAttendancePlan?format=json
Clear the attendance schedule.
A.73 /ISAPI/AccessControl/ClearCardRecord
Clear card swiping records in the cross-controller anti-passing back server.
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.
A.75 /ISAPI/AccessControl/ClearEventCardLinkageCfg/capabilities?
format=json
Get the capability of clearing event and card linkage configuration.
128
Intelligent Security API (Person-Based Access Control) Developer Guide
A.76 /ISAPI/AccessControl/ClearEventCardLinkageCfg?format=json
Clear event and card linkage configuration.
A.77 /ISAPI/AccessControl/ClearGroupCfg/capabilities?format=json
Get the capability of clearing group configuration.
A.78 /ISAPI/AccessControl/ClearGroupCfg?format=json
Clear the group configuration.
129
Intelligent Security API (Person-Based Access Control) Developer Guide
A.79 /ISAPI/AccessControl/ClearPictureCfg/capabilities?format=json
Get the capability of clearing all pictures in the device.
A.80 /ISAPI/AccessControl/ClearPictureCfg?format=json
Clear all pictures in the device.
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
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.
A.83 /ISAPI/AccessControl/ClearSubmarineBack
Clear cross-controller anti-passing back parameters.
131
Intelligent Security API (Person-Based Access Control) Developer Guide
A.84 /ISAPI/AccessControl/ClearSubmarineBack/capabilities
Get the capability of clearing cross-controller anti-passing back parameters.
A.85 /ISAPI/AccessControl/Configuration/attendanceMode/capabilities?
format=json
Get the configuration capability of the attendance mode.
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.
A.87 /ISAPI/AccessControl/Configuration/IRCfg/capabilities?
format=json
Get active infrared intrusion capability.
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.
A.89 /ISAPI/AccessControl/Configuration/lockType/capabilities?
format=json
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
A.90 /ISAPI/AccessControl/Configuration/lockType?format=json
Get or set the door lock status when the device is powered off.
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
A.92 /ISAPI/AccessControl/Configuration/NFCCfg?format=json
Operations about the configuration of enabling NFC (Near-Field Communication) function.
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.
A.94 /ISAPI/AccessControl/Configuration/RFCardCfg?format=json
Operations about the configuration of enabling RF (Radio Frequency) card recognition.
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.
A.96 /ISAPI/AccessControl/Configuration/safetyHelmetDetection?
format=json
Get or set the parameters of hard hat detection.
138
Intelligent Security API (Person-Based Access Control) Developer Guide
A.97 /ISAPI/AccessControl/DeployInfo
Get the arming information (e.g., arming types).
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.
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.
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
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.
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
A.103 /ISAPI/AccessControl/DoorStatusHolidayGroupCfg/<GroupNo>?
format=json
Operations about the holiday group configuration of the door control schedule.
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.
A.105 /ISAPI/AccessControl/DoorStatusHolidayPlanCfg/<PlanNo>?
format=json
Operations about the configuration of the door control holiday schedule.
143
Intelligent Security API (Person-Based Access Control) Developer Guide
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.
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
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.
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.
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
A.111 /ISAPI/AccessControl/DoorStatusWeekPlanCfg/<PlanNo>?
format=json
Operations about the configuration of the door control week schedule.
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.
A.113 /ISAPI/AccessControl/EventCardLinkageCfg/<ID>?format=json
Operations about event and card linkage configuration.
148
Intelligent Security API (Person-Based Access Control) Developer Guide
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.
A.115 /ISAPI/AccessControl/EventCardNoList/capabilities?format=json
Get the capability of the list of event and card linkage ID.
149
Intelligent Security API (Person-Based Access Control) Developer Guide
A.116 /ISAPI/AccessControl/EventCardNoList?format=json
Get the list of event and card linkage ID.
A.117 /ISAPI/AccessControl/EventOptimizationCfg/capabilities?
format=json
Get the configuration capability of event optimization.
150
Intelligent Security API (Person-Based Access Control) Developer Guide
A.118 /ISAPI/AccessControl/EventOptimizationCfg?format=json
Operations about the event optimization configuration.
A.119 /ISAPI/AccessControl/FaceCompareCond
Get or set the condition parameters of face picture comparison.
151
Intelligent Security API (Person-Based Access Control) Developer Guide
A.120 /ISAPI/AccessControl/FaceCompareCond/capabilities
Get condition configuration capability of face picture comparison.
A.121 /ISAPI/AccessControl/FaceRecognizeMode/capabilities?
format=json
Get the configuration capability of the facial recognition mode.
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.
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
A.124 /ISAPI/AccessControl/FingerPrint/Delete/capabilities?
format=json
Get the capability of deleting fingerprint data.
A.125 /ISAPI/AccessControl/FingerPrint/Delete?format=json
Start deleting the fingerprint data.
154
Intelligent Security API (Person-Based Access Control) Developer Guide
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.
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.
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.
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.
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.
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.
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.
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.
A.134 /ISAPI/AccessControl/GroupCfg/<ID>?format=json
Operations about the group configuration.
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.
A.136 /ISAPI/AccessControl/IDBlackListCfg
Apply ID card blocklist.
160
Intelligent Security API (Person-Based Access Control) Developer Guide
A.137 /ISAPI/AccessControl/IDBlackListCfg/capabilities
Get capability of applying ID card blocklist.
A.138 /ISAPI/AccessControl/IDBlackListCfg/template?format=json
Get the ID card blocklist template.
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.
A.140 /ISAPI/AccessControl/IDCardInfoEvent?format=json
Get the ID card events actively.
A.141 /ISAPI/AccessControl/IdentityTerminal
Operations about configuration of intelligent identity recognition terminal.
162
Intelligent Security API (Person-Based Access Control) Developer Guide
A.142 /ISAPI/AccessControl/IdentityTerminal/capabilities
Get configuration capability of intelligent identity recognition terminal.
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.
A.144 /ISAPI/AccessControl/keyCfg/attendance/capabilities?
format=json
Get the configuration capability of attendance check by pressing the key.
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.
A.146 /ISAPI/AccessControl/LogModeCfg/capabilities?format=json
Get the configuration capability of the log mode.
A.147 /ISAPI/AccessControl/LogModeCfg?format=json
Operations about the log mode configuration.
165
Intelligent Security API (Person-Based Access Control) Developer Guide
A.148 /ISAPI/AccessControl/M1CardEncryptCfg
Operations about the configuration of M1 card encryption verification.
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.
A.150 /ISAPI/AccessControl/maintenanceData?secretkey=
Export the maintenance data.
167
Intelligent Security API (Person-Based Access Control) Developer Guide
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.
A.152 /ISAPI/AccessControl/maskDetection?format=json
Get or set the mask detection parameters.
168
Intelligent Security API (Person-Based Access Control) Developer Guide
A.153 /ISAPI/AccessControl/MultiCardCfg/<ID>?format=json
Operations about the configuration of multi-factor authentication mode.
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
A.155 /ISAPI/AccessControl/MultiDoorInterLockCfg/capabilities?
format=json
Get the configuration capability of the multi-door interlocking.
A.156 /ISAPI/AccessControl/MultiDoorInterLockCfg?format=json
Operations about the multi-door interlocking configuration.
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.
A.158 /ISAPI/AccessControl/OfflineCapture/DataCollections/
<captureNo>?format=json
Deleted a specific piece of offline collected data.
171
Intelligent Security API (Person-Based Access Control) Developer Guide
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.
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
{
"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
--<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.
A.161 /ISAPI/AccessControl/OfflineCapture/DataCollections?
format=json
Delete all offline collected data.
174
Intelligent Security API (Person-Based Access Control) Developer Guide
A.162 /ISAPI/AccessControl/OfflineCapture/dataOutput/progress?
format=json
Get the progress of exporting the offline collected data.
A.163 /ISAPI/AccessControl/OfflineCapture/dataOutput?format=json
Export the offline collected data.
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.
A.165 /ISAPI/AccessControl/OfflineCapture/InfoFile?format=json
Upload the user list of offline collection.
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
-----------------------------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.
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.
A.168 /ISAPI/AccessControl/OfflineCapture/ruleInfo?format=json
Get or set the parameters of offline collection rules.
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.
A.170 /ISAPI/AccessControl/OSDPModify/<ID>?format=json
Set the OSDP (Open Supervised Device Protocol) card reader ID.
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.
A.172 /ISAPI/AccessControl/OSDPStatus/<ID>?format=json
Get the OSDP (Open Supervised Device Protocol) card reader status.
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.
A.174 /ISAPI/AccessControl/personInfoExtendName/capabilities?
format=json
Get the configuration capability of the name of the additional person information.
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.
A.176 /ISAPI/AccessControl/PhoneDoorRightCfg/<ID>?format=json
Operations about the configuration of the door permission linked to the mobile phone number.
183
Intelligent Security API (Person-Based Access Control) Developer Guide
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.
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
A.179 /ISAPI/AccessControl/ReaderAcrossHost/capabilities
Get the configuration capability of cross-controller anti-passing back status of card readers.
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.
A.181 /ISAPI/AccessControl/remoteCheck?format=json
Verify the access control event remotely.
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
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.
A.184 /ISAPI/AccessControl/RemoteControl/door/<ID>
Remotely control the door or elevator.
187
Intelligent Security API (Person-Based Access Control) Developer Guide
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.
A.186 /ISAPI/AccessControl/remoteControlPWCheck/capabilities?
format=json
Get the capability of verifying the password for remote door control.
188
Intelligent Security API (Person-Based Access Control) Developer Guide
A.187 /ISAPI/AccessControl/remoteControlPWCheck/door/<ID>?
format=json
Verify the password for remote door control.
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.
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.
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.
190
Intelligent Security API (Person-Based Access Control) Developer Guide
A.191 /ISAPI/AccessControl/ServerDevice/capabilities
Get the configuration capability of cross-controller anti-passing back server information.
A.192 /ISAPI/AccessControl/SmsRelativeParam/capabilities?format=json
Get the configuration capability of the SMS (Short Message Service) function.
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.
A.194 /ISAPI/AccessControl/SnapConfig
Get capture triggering parameters.
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.
A.196 /ISAPI/AccessControl/StartReaderInfo
Operations about first card reader configurations.
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.
A.198 /ISAPI/AccessControl/SubmarineBack
Operations about the configuration of the cross-controller anti-passing back server.
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.
A.200 /ISAPI/AccessControl/SubmarineBackHostInfo/capabilities
Get the configuration capability of access controllers for cross-controller anti-passing back.
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
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.
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.
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
A.205 /ISAPI/AccessControl/SubmarineBackReader/ConfigureNo/<ID>
Operations about the configuration of card readers for cross-controller anti-passing back.
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.
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.
A.208 /ISAPI/AccessControl/UserInfo/Count?format=json
Get the total number of the added persons.
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.
A.210 /ISAPI/AccessControl/UserInfo/Modify?format=json
Edit person information.
A.211 /ISAPI/AccessControl/UserInfo/Record?format=json
Add a person.
201
Intelligent Security API (Person-Based Access Control) Developer Guide
A.212 /ISAPI/AccessControl/UserInfo/Search?format=json
Search for person information.
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
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.
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.
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.
204
Intelligent Security API (Person-Based Access Control) Developer Guide
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.
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.
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
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
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.
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.
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.
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.
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.
A.226 /ISAPI/AccessControl/Verification/ttsText?format=json
Get or set the text parameters of the audio prompt for the authentication results.
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.
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.
A.229 /ISAPI/AccessControl/VerifyHolidayPlanCfg/<PlanNo>?
format=json
Operations about the holiday schedule configuration of the card reader authentication mode.
214
Intelligent Security API (Person-Based Access Control) Developer Guide
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.
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.
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
A.233 /ISAPI/AccessControl/VerifyWeekPlanCfg/<PlanNo>?format=json
Operations about the week schedule configuration of the card reader authentication mode.
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.
A.235 /ISAPI/AccessControl/WiegandCfg/capabilities
Get the Wiegand configuration capability.
218
Intelligent Security API (Person-Based Access Control) Developer Guide
A.236 /ISAPI/AccessControl/WiegandCfg/wiegandNo/<ID>
Get or set Wiegand parameters.
A.237 /ISAPI/AccessControl/WiegandRuleCfg
Operations about the configuration of the custom Wiegand rule.
219
Intelligent Security API (Person-Based Access Control) Developer Guide
A.238 /ISAPI/AccessControl/WiegandRuleCfg/capabilities
Get the configuration capability of the custom Wiegand rule.
A.239 /ISAPI/Event/notification/alertStream
Get the uploaded heartbeat or alarm/event information.
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.
221
Intelligent Security API (Person-Based Access Control) Developer Guide
A.241 /ISAPI/Event/notification/httpHosts/<ID>/test
Check whether the HTTP listening server is working normally.
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.
A.243 /ISAPI/Intelligent/FDLib/capabilities?format=json
Get face picture library capability.
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.
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.
224
Intelligent Security API (Person-Based Access Control) Developer Guide
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.
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.
A.248 /ISAPI/Intelligent/FDLib/FDSearch/Delete?
format=json&FDID=&faceLibType=
Delete the face record(s) in a specific face picture library.
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.
A.250 /ISAPI/Intelligent/FDLib/FDSearch?
format=json&FDID=&FPID=&faceLibType=
Edit a face record in a specific face picture library.
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.
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.
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.
230
Intelligent Security API (Person-Based Access Control) Developer Guide
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.
A.255 /ISAPI/System/PictureServer/capabilities?format=json
Get the picture storage server capability.
231
Intelligent Security API (Person-Based Access Control) Developer Guide
A.256 /ISAPI/System/PictureServer?format=json
Operations about the picture storage server configuration parameters.
232
Intelligent Security API (Person-Based Access Control) Developer Guide
A.257 http://<ipAddress>:<portNo>/<url>
HTTP listening sever sends alarm information to alarm center.
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
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
237
Intelligent Security API (Person-Based Access Control) Developer Guide
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
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
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
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
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
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
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
268
Intelligent Security API (Person-Based Access Control) Developer Guide
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
"@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
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
279
Intelligent Security API (Person-Based Access Control) Developer Guide
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
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
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
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
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
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.
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
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
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
fefefwageegfqaeg…
--MIME_boundary
Content-Type: application/json
Content-Length:480
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
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
353
Intelligent Security API (Person-Based Access Control) Developer Guide
JSON_EventNotificationAlert_IDCardSwipingEventMsg
The event information of swiping ID card is uploaded in JSON format of EventNotificationAlert
message.
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
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
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
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
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
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.
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
362
Intelligent Security API (Person-Based Access Control) Developer Guide
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
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
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
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
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
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
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
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
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
416
Intelligent Security API (Person-Based Access Control) Developer Guide
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
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
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
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
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
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
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
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
450
Intelligent Security API (Person-Based Access Control) Developer Guide
451
Intelligent Security API (Person-Based Access Control) Developer Guide
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
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
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
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
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
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
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
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
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
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
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
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>
484
Intelligent Security API (Person-Based Access Control) Developer Guide
MAJOR_ALARM
485
Intelligent Security API (Person-Based Access Control) Developer Guide
486
Intelligent Security API (Person-Based Access Control) Developer Guide
MAJOR_EXCEPTION
487
Intelligent Security API (Person-Based Access Control) Developer Guide
488
Intelligent Security API (Person-Based Access Control) Developer Guide
489
Intelligent Security API (Person-Based Access Control) Developer Guide
490
Intelligent Security API (Person-Based Access Control) Developer Guide
MAJOR_OPERATION
491
Intelligent Security API (Person-Based Access Control) Developer Guide
492
Intelligent Security API (Person-Based Access Control) Developer Guide
MAJOR_EVENT
493
Intelligent Security API (Person-Based Access Control) Developer Guide
494
Intelligent Security API (Person-Based Access Control) Developer Guide
495
Intelligent Security API (Person-Based Access Control) Developer Guide
496
Intelligent Security API (Person-Based Access Control) Developer Guide
497
Intelligent Security API (Person-Based Access Control) Developer Guide
498
Intelligent Security API (Person-Based Access Control) Developer Guide
499
Intelligent Security API (Person-Based Access Control) Developer Guide
500
Intelligent Security API (Person-Based Access Control) Developer Guide
501
Intelligent Security API (Person-Based Access Control) Developer Guide
502
Intelligent Security API (Person-Based Access Control) Developer Guide
503
Intelligent Security API (Person-Based Access Control) Developer Guide
504
Intelligent Security API (Person-Based Access Control) Developer Guide
505
Intelligent Security API (Person-Based Access Control) Developer Guide
506
Intelligent Security API (Person-Based Access Control) Developer Guide
507
Intelligent Security API (Person-Based Access Control) Developer Guide
508
Intelligent Security API (Person-Based Access Control) Developer Guide
509
Intelligent Security API (Person-Based Access Control) Developer Guide
510
Intelligent Security API (Person-Based Access Control) Developer Guide
511
Intelligent Security API (Person-Based Access Control) Developer Guide
512
Intelligent Security API (Person-Based Access Control) Developer Guide
Alarm Logs
513
Intelligent Security API (Person-Based Access Control) Developer Guide
514
Intelligent Security API (Person-Based Access Control) Developer Guide
515
Intelligent Security API (Person-Based Access Control) Developer Guide
516
Intelligent Security API (Person-Based Access Control) Developer Guide
517
Intelligent Security API (Person-Based Access Control) Developer Guide
Exception Logs
518
Intelligent Security API (Person-Based Access Control) Developer Guide
519
Intelligent Security API (Person-Based Access Control) Developer Guide
520
Intelligent Security API (Person-Based Access Control) Developer Guide
521
Intelligent Security API (Person-Based Access Control) Developer Guide
Operation Logs
522
Intelligent Security API (Person-Based Access Control) Developer Guide
523
Intelligent Security API (Person-Based Access Control) Developer Guide
524
Intelligent Security API (Person-Based Access Control) Developer Guide
525
Intelligent Security API (Person-Based Access Control) Developer Guide
526
Intelligent Security API (Person-Based Access Control) Developer Guide
527
Intelligent Security API (Person-Based Access Control) Developer Guide
528
Intelligent Security API (Person-Based Access Control) Developer Guide
529
Intelligent Security API (Person-Based Access Control) Developer Guide
530
Intelligent Security API (Person-Based Access Control) Developer Guide
531
Intelligent Security API (Person-Based Access Control) Developer Guide
532
Intelligent Security API (Person-Based Access Control) Developer Guide
Event Logs
533
Intelligent Security API (Person-Based Access Control) Developer Guide
Information Logs
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
StatusCode=2
StatusCode=3
535
Intelligent Security API (Person-Based Access Control) Developer Guide
536
Intelligent Security API (Person-Based Access Control) Developer Guide
537
Intelligent Security API (Person-Based Access Control) Developer Guide
538
Intelligent Security API (Person-Based Access Control) Developer Guide
StatusCode=4
539
Intelligent Security API (Person-Based Access Control) Developer Guide
540
Intelligent Security API (Person-Based Access Control) Developer Guide
541
Intelligent Security API (Person-Based Access Control) Developer Guide
542
Intelligent Security API (Person-Based Access Control) Developer Guide
543
Intelligent Security API (Person-Based Access Control) Developer Guide
544
Intelligent Security API (Person-Based Access Control) Developer Guide
545
Intelligent Security API (Person-Based Access Control) Developer Guide
546
Intelligent Security API (Person-Based Access Control) Developer Guide
547
Intelligent Security API (Person-Based Access Control) Developer Guide
548
Intelligent Security API (Person-Based Access Control) Developer Guide
549
Intelligent Security API (Person-Based Access Control) Developer Guide
550
Intelligent Security API (Person-Based Access Control) Developer Guide
551
Intelligent Security API (Person-Based Access Control) Developer Guide
552
Intelligent Security API (Person-Based Access Control) Developer Guide
553
Intelligent Security API (Person-Based Access Control) Developer Guide
554
Intelligent Security API (Person-Based Access Control) Developer Guide
555
Intelligent Security API (Person-Based Access Control) Developer Guide
556
Intelligent Security API (Person-Based Access Control) Developer Guide
557
Intelligent Security API (Person-Based Access Control) Developer Guide
558
Intelligent Security API (Person-Based Access Control) Developer Guide
559
Intelligent Security API (Person-Based Access Control) Developer Guide
560
Intelligent Security API (Person-Based Access Control) Developer Guide
561
Intelligent Security API (Person-Based Access Control) Developer Guide
562
Intelligent Security API (Person-Based Access Control) Developer Guide
563
Intelligent Security API (Person-Based Access Control) Developer Guide
StatusCode=5
StatusCode=6
564
Intelligent Security API (Person-Based Access Control) Developer Guide
565
Intelligent Security API (Person-Based Access Control) Developer Guide
566
Intelligent Security API (Person-Based Access Control) Developer Guide
567
Intelligent Security API (Person-Based Access Control) Developer Guide
568
Intelligent Security API (Person-Based Access Control) Developer Guide
569
Intelligent Security API (Person-Based Access Control) Developer Guide
StatusCode=7
Public Function Module (Error Codes Range: 0x00000000, from 0x00100001 to 0x001fffff)
570
Intelligent Security API (Person-Based Access Control) Developer Guide
571
Intelligent Security API (Person-Based Access Control) Developer Guide
572
Intelligent Security API (Person-Based Access Control) Developer Guide
573
Intelligent Security API (Person-Based Access Control) Developer Guide
574
Intelligent Security API (Person-Based Access Control) Developer Guide
575
Intelligent Security API (Person-Based Access Control) Developer Guide
576
Intelligent Security API (Person-Based Access Control) Developer Guide
577
Intelligent Security API (Person-Based Access Control) Developer Guide
578
Intelligent Security API (Person-Based Access Control) Developer Guide
579
Intelligent Security API (Person-Based Access Control) Developer Guide
580
Intelligent Security API (Person-Based Access Control) Developer Guide
581
Intelligent Security API (Person-Based Access Control) Developer Guide
582
Intelligent Security API (Person-Based Access Control) Developer Guide
583
Intelligent Security API (Person-Based Access Control) Developer Guide
584
Intelligent Security API (Person-Based Access Control) Developer Guide
585
Intelligent Security API (Person-Based Access Control) Developer Guide
586