diff --git a/Communication protocol-B200W-MQTT Protocol.md b/Communication protocol-B200W-MQTT Protocol.md
index 78db539..b59b219 100644
--- a/Communication protocol-B200W-MQTT Protocol.md
+++ b/Communication protocol-B200W-MQTT Protocol.md
@@ -101,6 +101,13 @@ The topic subscribed by the application, published by the base station 
 ||Set the base station login name|[setBsSSID](#setbsssid)|[fEvtBsSSID](#fevtbsssid)||
 |Keypad unified settings - keypad language|Get keypad language|[getBsKpLanguage](#getbskplanguage)|[fEvtBsKpLanguage](#fevtbskplanguage)|
 ||Set the keypad language|[setBsKpLanguage](#setbskplanguage)|[fEvtBsKpLanguage](#fevtbskplanguage)||
+|Match Mode - Quick Match|Start base station quick match|[startBsFastPair](#startbsfastpair)|[sEvtStateCode](#sevtstatecode)
[sEvtBsKpOnlineMsg](#sevtbskponlinemsg)|
+||Stop base station quick match|[stopBsFastPair](#stopbsfastpair)|[sEvtStateCode](#sevtstatecode)|
+|Whitelist mode - Whitelist management|Get whitelist|[getBsWhitelist](#getbswhitelist)|[fEvtBsWhitelist](#fevtbswhitelist)|
+||Set Whitelist|[setBsWhitelist](#setbswhitelist)|[sEvtStateCode](#sevtstatecode)
[fEvtSetBsWhitelist](#fevtsetbswhitelist)|
+||Clear Whitelist|[clearBsWhitelist](#clearbswhitelist)|[sEvtStateCode](#sevtstatecode)
[fEvtBsWhitelist](#fevtbswhitelist)|
+||Add Whitelist|[addBsWhitelist](#addbswhitelist)|[sEvtStateCode](#sevtstatecode)
[fEvtAddBsWhitelist](#fevtaddbswhitelist)
[fEvtBsWhitelist](#fevtbswhitelist)|
+||Delete Whitelist|[delBsWhitelist](#delbswhitelist)|[sEvtStateCode](#sevtstatecode)
[fEvtDelBsWhitelist](#fevtdelbswhitelist)
[fEvtBsWhitelist](#fevtbswhitelist)|
 |Network Settings - TCP/IP Parameters|Get TCP/IP Parameters|[getBsTcpipParams](#getbstcpipparams)|[fEvtBsTcpipParams](#fevtbstcpipparams)|
 ||Set TCP/IP parameters|[setBsTcpipParams](#setbstcpipparams)|[fEvtBsTcpipParams](#fevtbstcpipparams)||
 |Network Settings - MQTT Parameters|Get MQTT Parameters|[getBsMqttParams](#getbsmqttparams)|[fEvtBsMqttParams](#fevtbsmqttparams)|
@@ -110,7 +117,7 @@ The topic subscribed by the application, published by the base station 
 |Function classification|Function|API command|Command event|
 |---|---|---|---|
 |Interaction settings - User real-time prompt information|Real-time setting prompt feedback information|[rtSetKpUserPrompt](#rtsetkpuserprompt)|[sEvtStateCode](#sevtstatecode)
[fEvtSetKpUserPrompt](#fevtsetkpuserprompt)|
-|Get online status|Start scanning online keypad|[startGetKpOnline](#startgetkponline)|[sEvtStateCode](#sevtstatecode)
[sEvtBsKpOnlineMsg](#sevtbskponlinemsg)|
+|Get online status|Start scanning online keypad|[startGetKpOnline](#startgetkponline)|[sEvtStateCode](#sevtstatecode)
[fEvtKpOnlineMsg](#fevtkponlinemsg)|
 ||Stop scanning online keypad|[stopGetKpOnline](#stopgetkponline)|[sEvtStateCode](#sevtstatecode)|
 |Maintenance function - Remote control function|Remote keypad sleep|[remoteKpSleep](#remotekpsleep)|[sEvtStateCode](#sevtstatecode)|
 ### Binding
@@ -121,6 +128,8 @@ The topic subscribed by the application, published by the base station 
 ### Sign in
 |Function classification|Function|API command|Command event|
 |---|---|---|---|
+|Sync sign-in|Start sync sign-in|[startKpSignIn](#startkpsignin)|[sEvtStateCode](#sevtstatecode)
[fEvtKpSignIn](#fevtkpsignin)|
+||Stop sync sign-in|[stopKpSignIn](#stopkpsignin)|[sEvtStateCode](#sevtstatecode)|
 |Sign in at any time|Start signing in at any time|[rtStartKpSignIn](#rtstartkpsignin)|[sEvtStateCode](#sevtstatecode)
[fEvtKpSignIn](#fevtkpsignin)|
 ||Stop signing in anytime|[rtStopKpSignIn](#rtstopkpsignin)|[sEvtStateCode](#sevtstatecode)|
 ||Real-time PIN Sign-in Authorization|[rtSetKpLoginAllowed](#rtsetkploginallowed)|[sEvtStateCode](#sevtstatecode)
[fEvtKpLoginAllowed](#fevtkploginallowed)|
@@ -145,7 +154,7 @@ The topic subscribed by the application, published by the base station 
 ## Public Events
 ### sEvtBsConnectState
 - **Topic**: /basestation/\${baseSN}/receive
-- **Function description**:Returns the base station model and base station SN when the base station is successfully connected, and returns disconnected when the base station is disconnected from the connected state
+- **Function description**: Returns the base station model and base station SN when the base station is successfully connected, and returns disconnected when the base station is disconnected from the connected state
 - **Parameter Description**
 
 |Parameter name|Type|Restriction|Not null|Description|
@@ -184,7 +193,7 @@ The topic subscribed by the application, published by the base station 
 
 ### sEvtBsChannelConflict
 - **Topic**: /basestation/\${baseSN}/receive
-- **Function description**:Actively report when base station channels conflict, and the application can modify the base station channels according to actual case
+- **Function description**: Actively report when base station channels conflict, and the application can modify the base station channels according to actual case
 - **Parameter Description**
 
 |Parameter name|Type|Restriction|Not null|Description|
@@ -245,7 +254,6 @@ The topic subscribed by the application, published by the base station 
 |+keySn|string||True|Keypad SN|
 |+version|string||True|Keypad Firmware Version|
 |+model|int||True|Keypad model|
-|+voltage|double||True|Keypad voltage|
 
 - **Sample Code**
 
@@ -256,8 +264,7 @@ The topic subscribed by the application, published by the base station 
     "data":{ 
         "keySn":"1234567890",
         "version":"1.0.0",
-        "model":67,
-        "voltage":2.8
+        "model":67
     }
 }
 ```
@@ -309,7 +316,7 @@ The topic subscribed by the application, published by the base station 
 #### Method
 
 ##### getBsOnlineState
-- **Topic**:/client/multiBase/send
+- **Topic**: /client/multiBase/send
 - **Function description**: Actively obtain all online base station information, online base station reply
 - **Parameter Description**
 
@@ -327,7 +334,7 @@ The topic subscribed by the application, published by the base station 
 ```
 
 ##### getBsConnectState
-- **Topic**:/client/\${baseSN}/send
+- **Topic**: /client/\${baseSN}/send
 - **Function description**: Actively obtain base station connection status
 - **Parameter Description**
 
@@ -383,7 +390,7 @@ See Base Station Connection Change System Notification
 ### Base station time synchronization
 #### Method
 ##### timeSync
-- **Topic**:/client/\${baseSN}/send
+- **Topic**: /client/\${baseSN}/send
 - **Function description**: Send the current timestamp to the base station for time calibration
 - **Parameter Description**
 
@@ -413,7 +420,7 @@ Returns the command reception status
 ### Identification Settings
 #### method
 ##### getBsModel
-- **Topic**:/client/\${baseSN}/send
+- **Topic**: /client/\${baseSN}/send
 - **Function description**: Get base station model
 - **Parameter Description**
 
@@ -432,7 +439,7 @@ Returns the command reception status
 ```
 
 ##### getBsFWVersion
-- **Topic**:/client/\${baseSN}/send
+- **Topic**: /client/\${baseSN}/send
 - **Function description**: Get base station firmware version
 - **Parameter Description**
 
@@ -526,7 +533,7 @@ Returns the command reception status
 ### Network settings
 #### Method
 ##### getBsPairCode
-- **Topic**:/client/\${baseSN}/send
+- **Topic**: /client/\${baseSN}/send
 - **Function description**: Get base station pairing code
 - **Parameter Description**
 
@@ -545,7 +552,7 @@ Returns the command reception status
 ```
 
 ##### getBsNfcLogin
-- **Topic**:/client/\${baseSN}/send
+- **Topic**: /client/\${baseSN}/send
 - **Function description**: Get card swipe pairing status
 - **Parameter Description**
 
@@ -566,7 +573,7 @@ Returns the command reception status
 ```
 
 ##### setBsNfcLogin
-- **Topic**:/client/\${baseSN}/send
+- **Topic**: /client/\${baseSN}/send
 - **Function description**: Set the base station card swipe pairing status
 - **Parameter Description**
 
@@ -590,7 +597,7 @@ Returns the command reception status
 ```
 
 ##### getBsChannel
-- **Topic**:/client/\${baseSN}/send
+- **Topic**: /client/\${baseSN}/send
 - **Function description**: Get base station channel
 - **Parameter Description**
 
@@ -609,7 +616,7 @@ Returns the command reception status
 ```
 
 ##### setBsChannel
-- **Topic**:/client/\${baseSN}/send
+- **Topic**: /client/\${baseSN}/send
 - **Function description**: Set base station channel
 - **Parameter Description**
 
@@ -709,7 +716,7 @@ Returns the command reception status
 #### Method
 ##### getBsSSID
 Get the base station login name
-- **Topic**:/client/\${baseSN}/send
+- **Topic**: /client/\${baseSN}/send
 - **Function description**: Get the base station login name
 - **Parameter Description**
 
@@ -728,7 +735,7 @@ Get the base station login name
 ```
 
 ##### setBsSSID
-- **Topic**:/client/\${baseSN}/send
+- **Topic**: /client/\${baseSN}/send
 - **Function description**: Set the base station login name
 - **Parameter Description**
 
@@ -779,7 +786,7 @@ Get the base station login name
 ### Keypad unified settings
 #### Method
 ##### getBsKpLanguage
-- **Topic**:/client/\${baseSN}/send
+- **Topic**: /client/\${baseSN}/send
 - **Function description**: Get Keypad language
 - **Parameter Description**
 
@@ -799,7 +806,7 @@ Get the base station login name
 ```
 
 ##### setBsKpLanguage
-- **Topic**:/client/\${baseSN}/send
+- **Topic**: /client/\${baseSN}/send
 - **Function description**: Set keypad language
 - **Parameter Description**
 
@@ -848,10 +855,266 @@ Get the base station login name
 }
 ```
 
+### Match Mode
+#### Method
+##### startBsFastPair
+- **Topic**: /client/\${baseSN}/send
+- **Function description**: Start quick match; Return keypad information upon successful match [sEvtBsKpOnlineMsg](#sevtbskponlinemsg)
+- **Parameter Description**
+
+|Parameter name|Type|Restriction|Required or not|Description|
+|---|---|---|---|---|
+|fun|string|-|Yes|Command name|
+|dataTag|string|-|No|Packet identifier, can be an empty string|
+
+- **Sample Code**
+```json
+{
+  "fun":"startBsFastPair",
+  "dataTag":"1"
+}
+```
+##### stopBsFastPair
+- **Topic**: /client/\${baseSN}/send
+- **Function description**: Stop quick match
+- **Parameter Description**
+
+|Parameter name|Type|Restriction|Required or not|Description|
+|---|---|---|---|---|
+|fun|string|-|Yes|Command name|
+|dataTag|string|-|No|Packet identifier, can be an empty string|
+
+- **Sample Code**
+```json
+{
+  "fun":"stopBsFastPair",
+  "dataTag":"1"
+}
+```
+#### Event
+##### [sEvtStateCode](#sevtstatecode)
+This event is returned after sending the command
+
+##### [sEvtBsKpOnlineMsg](#sevtbskponlinemsg)
+This event is returned online after the keypad is successfully matched
+
+### Whitelist Mode
+#### Method
+##### getBsWhitelist
+- **Topic**: /client/\${baseSN}/send
+- **Function description**: Get the base station whitelist
+- **Parameter Description**
+
+|Parameter name|Type|Restriction|Required or not|Description|
+|---|---|---|---|---|
+|fun|string|-|Yes|Command name|
+|dataTag|string|-|No|Packet identifier, can be an empty string|
+
+- **Sample Code**
+```json
+{
+  "fun":"getBsWhitelist",
+  "dataTag":"1"
+}
+```
+##### setBsWhitelist
+- **Topic**: /client/\${baseSN}/send
+- **Function description**: Set the base station whitelist and replace the base station whitelist with the written keypad SN list
+- **Parameter Description**
+
+|Parameter name|Type|Restriction|Required or not|Description|
+|---|---|---|---|---|
+|fun|string|-|Yes|Command name|
+|dataTag|string|-|No|Packet identifier, can be an empty string|
+|data|object|-|Yes|Object to pass parameters to|
+|+keySns|array|-|Yes|The keypad SN array to be written, no more than 200
Keypad SN is 10 digits|
+
+- **Sample Code**
+```json
+{
+  "fun":"setBsWhitelist",
+  "dataTag":"1",
+  "data":{
+    "keySns":["2024021001","2024021002","2024021003","2024021004"]
+  }
+}
+```
+##### clearBsWhitelist
+- **Topic**: /client/\${baseSN}/send
+- **Function description**: Clear the base station whitelist
+- **Parameter Description**
+
+|Parameter name|Type|Restriction|Required or not|Description|
+|---|---|---|---|---|
+|fun|string|-|Yes|Command name|
+|dataTag|string|-|No|Packet identifier, can be an empty string|
+
+- **Sample Code**
+```json
+{
+  "fun":"clearBsWhitelist",
+  "dataTag":"1"
+}
+```
+##### addBsWhitelist
+- **Topic**: /client/\${baseSN}/send
+- **Function description**: Add keypad to the base station whitelist
+- **Parameter Description**
+
+|Parameter name|Type|Restriction|Required or not|Description|
+|---|---|---|---|---|
+|fun|string|-|Yes|Command name|
+|dataTag|string|-|No|Packet identifier, can be an empty string|
+|data|object|-|Yes|Object to pass parameters to|
+|+keySns|array|-|Yes|Keypad SN list to be added
Keypad SN is 10 digits|
+
+- **Sample Code**
+```json
+{
+  "fun":"addBsWhitelist",
+  "dataTag":"1",
+  "data":{
+    "keySns":["2024021001"]
+  }
+}
+```
+##### delBsWhitelist
+- **Topic**: /client/\${baseSN}/send
+- **Function description**: Remove keypad from the base station whitelist
+- **Parameter Description**
+
+|Parameter name|Type|Restriction|Required or not|Description|
+|---|---|---|---|---|
+|fun|string|-|Yes|Command name|
+|dataTag|string|-|No|Packet identifier, can be an empty string|
+|data|object|-|Yes|Object to pass parameters to|
+|+keySns|array|-|Yes|Keypad SN list to be deleted
Keypad SN is 10 digits|
+
+- **Sample Code**
+```json
+{
+  "fun":"delBsWhitelist",
+  "dataTag":"1",
+  "data":{
+    "keySns":["2024021001"]
+  }
+}
+```
+#### Event
+##### [sEvtStateCode](#sevtstatecode)
+This event is returned after sending the command
+
+##### fEvtBsWhitelist
+- **Topic**: /basestation/\${baseSN}/receive
+- **Function description**: Return the base station whitelist
+- **Parameter Description**
+
+|Parameter name|Type|Restriction|Not empty|Description|
+|---|---|---|---|---|
+|fun|string|-|Yes|Command name|
+|dataTag|string|-|No|Packet identifier, can be an empty string|
+|data|object|-|Yes|Object to pass parameters to|
+|+keySns|array||Yes|Current whitelist of base stations|
+
+- **Sample Code**
+```Json
+{
+  "fun":"fEvtBsWhitelist",
+  "dataTag":"1",
+  "data":{
+    "keySns":["2024021001","2024021002","2024021003","2024021004"]
+  }
+}
+```
+
+##### fEvtSetBsWhitelist
+- **Topic**: /basestation/\${baseSN}/receive
+- **Function description**: Return set whitelist status
+- **Parameter Description**
+
+|Parameter name|Type|Restriction|Not empty|Description|
+|---|---|---|---|---|
+|fun|string|-|Yes|Command name|
+|dataTag|string|-|No|Packet identifier, can be an empty string|
+|data|array|-|Yes|Array of objects to pass parameters to|
+|++keySns|array||Yes|Keypad SN array|
+|++state|int||Yes|Keypad SN write status 
0-Write Success
 1-Write Failed|
+
+- **Sample Code**
+```Json
+{
+  "fun":"fEvtSetBsWhitelist",
+  "dataTag":"1",
+  "data":[{
+    "keySns":["2024021001","2024021002"],
+    "state":0
+  },{
+    "keySns":["1211"],
+    "state":1
+  }]
+}
+```
+
+##### fEvtAddBsWhitelist
+- **Topic**: /basestation/\${baseSN}/receive
+- **Function description**: Return add keypad status
+- **Parameter Description**
+
+|Parameter name|Type|Restriction|Not empty|Description|
+|---|---|---|---|---|
+|fun|string|-|Yes|Command name|
+|dataTag|string|-|No|Packet identifier, can be an empty string|
+|data|array|-|Yes|Array of objects to pass parameters to|
+|++keySns|array||Yes|Keypad SN array|
+|++state|int||Yes|Keypad added state 
0-Success
 1-Fail|
+
+- **Sample Code**
+```Json
+{
+  "fun":"fEvtAddBsWhitelist",
+  "dataTag":"1",
+  "data":[{
+    "keySns":["2024021001","2024021002"],
+    "state":0
+  },{
+    "keySns":["1211"],
+    "state":1
+  }]
+}
+```
+
+##### fEvtDelBsWhitelist
+- **Topic**: /basestation/\${baseSN}/receive
+- **Function description**: Return the deleting keypad state
+- **Parameter Description**
+
+|Parameter name|Type|Restriction|Not empty|Description|
+|---|---|---|---|---|
+|fun|string|-|Yes|Command name|
+|dataTag|string|-|No|Packet identifier, can be an empty string|
+|data|array|-|Yes|Array of objects to pass parameters to|
+|++keySns|array||Yes|Keypad SN array|
+|++state|int||Yes|The deletion state of keypad 
0-Success
 1-Fail|
+
+- **Sample Code**
+```Json
+{
+  "fun":"fEvtDelBsWhitelist",
+  "dataTag":"1",
+  "data":[{
+    "keySns":["2024021002"],
+    "state":0
+  },{
+    "keySns":["2024021001"],
+    "state":1
+  }]
+}
+```
+
 ### Network parameter settings
 #### Method
 ##### getBsTcpipParams
-- **Topic**:/client/\${baseSN}/send
+- **Topic**: /client/\${baseSN}/send
 - **Function description**: Get base station TCP/IP parameters
 - **Parameter Description**
 
@@ -870,7 +1133,7 @@ Get the base station login name
 ```
 
 ##### setBsTcpipParams
-- **Topic**:/client/\${baseSN}/send
+- **Topic**: /client/\${baseSN}/send
 - **Function description**: Set base station TCP/IP parameters
 - **Parameter Description**
 
@@ -900,7 +1163,7 @@ Get the base station login name
 ```
 
 ##### getBsMqttParams
-- **Topic**:/client/\${baseSN}/send
+- **Topic**: /client/\${baseSN}/send
 - **Function description**: Get base station MQTT parameters
 - **Parameter Description**
 
@@ -919,7 +1182,7 @@ Get the base station login name
 ```
 
 ##### setBsMqttParams
-- **Topic**:/client/\${baseSN}/send
+- **Topic**: /client/\${baseSN}/send
 - **Function description**: Set base station MQTT parameters
 - **Parameter Description**
 
@@ -1018,7 +1281,7 @@ Get the base station login name
 ### Base Station Maintenance
 #### Method
 ##### getBsLogInfo
-- **Topic**:/client/\${baseSN}/send
+- **Topic**: /client/\${baseSN}/send
 - **Function description**: Get base station logs, which are used to obtain internal log records of base stations when a fault occurs and needs to be investigated
 - **Parameter Description**
 
@@ -1044,7 +1307,7 @@ Returns the command reception status
 ### Interaction Settings
 #### Method
 ##### rtSetKpUserPrompt
-- **Topic**:/client/\${baseSN}/send
+- **Topic**: /client/\${baseSN}/send
 - **Function description**: Real-time setting prompt feedback information
 - **Parameter Description**
 
@@ -1092,7 +1355,7 @@ Returns the command reception status
 Return the receiving status after sending command
 
 ##### fEvtSetKpUserPrompt
-- **Topic**:/basestation/\${baseSN}/receive
+- **Topic**: /basestation/\${baseSN}/receive
 - **Function description**: Returns whether the real-time setting prompt is successful
 - **Parameter Description**
 
@@ -1130,8 +1393,8 @@ Return the receiving status after sending command
 ### Online status
 #### Method
 ##### startGetKpOnline
-- **Topic**:/client/\${baseSN}/send
-- **Function description**: Start to get keypad online information, keypad online returns keypad information [sEvtBsKpOnlineMsg](#sevtbskponlinemsg)
+- **Topic**: /client/\${baseSN}/send
+- **Function description**: Start to get keypad online information, keypad online returns keypad information
 - **Parameter Description**
 
 |Parameter name|Type|Restriction|Required|Description|
@@ -1149,7 +1412,7 @@ Return the receiving status after sending command
 ```
 
 ##### stopGetKpOnline
-- **Topic**:/client/\${baseSN}/send
+- **Topic**: /client/\${baseSN}/send
 - **Function description**: Stop obtaining keypad online information
 - **Parameter Description**
 
@@ -1171,13 +1434,41 @@ Return the receiving status after sending command
 ##### [sEvtStateCode](#sevtstatecode)
 This event is returned after sending the command
 
-##### [sEvtBsKpOnlineMsg](#sevtbskponlinemsg)
-The keypad is online and returns this event
+
+##### fEvtKpOnlineMsg
+- **Topic**: /basestation/\${baseSN}/receive
+- **Function description**: When actively acquiring online keypads, online keypads status report
+- **Parameter Description**
+
+|Parameter name|Type|Restriction|Not null|Description|
+|---|---|---|---|---|
+|fun|string|-|True|event name|
+|dataTag|string|-|False|packet tag|
+|data|object|-|True|The object to pass parameters|
+|+keySn|string||True|Keypad SN|
+|+version|string||True|Keypad Firmware Version|
+|+model|int||True|Keypad model|
+|+voltage|double||True|Keypad voltage|
+
+- **Sample Code**
+
+```json
+{
+    "fun":"fEvtKpOnlineMsg",
+    "dataTag":"1",
+    "data":{ 
+        "keySn":"1234567890",
+        "version":"1.0.0",
+        "model":67,
+        "voltage":2.8
+    }
+}
+```
 
 ### Maintenance Function
 #### Method
 ##### remoteKpSleep
-- **Topic**:/client/\${baseSN}/send
+- **Topic**: /client/\${baseSN}/send
 - **Function description**: Remote control keypad sleep
 - **Parameter Description**
 
@@ -1208,7 +1499,7 @@ Returns the command reception status
 ### Wireless Binding
 #### Method
 ##### rtSetKpBindingInfo
-- **Topic**:/client/\${baseSN}/send
+- **Topic**: /client/\${baseSN}/send
 - **Function description**: Set binding information to keypad in real time
 - **Parameter Description**
 
@@ -1241,7 +1532,7 @@ Returns the command reception status
 ```
 
 ##### clearKpBindingInfo
-- **Topic**:/client/\${baseSN}/send
+- **Topic**: /client/\${baseSN}/send
 - **Function description**: Clear keypad binding information
 - **Parameter Description**
 
@@ -1270,7 +1561,7 @@ Returns the command reception status
 Return the receiving status after sending command
 
 ##### fEvtKpBindingInfo
-- **Topic**:/basestation/\${baseSN}/receive
+- **Topic**: /basestation/\${baseSN}/receive
 - **Function description**: Returns whether the keypad real-time setting binding information status is successful
 - **Parameter Description**
 
@@ -1302,7 +1593,7 @@ Return the receiving status after sending command
 ```
 
 ##### fEvtClearKpBindingInfo
-- **Topic**:/basestation/\${baseSN}/receive
+- **Topic**: /basestation/\${baseSN}/receive
 - **Function description**: Returns whether the command status of clearing binding information is successful
 - **Parameter Description**
 
@@ -1326,10 +1617,79 @@ Return the receiving status after sending command
 ```
 
 ## Sign in
+### Sycn Sign in
+#### Method
+##### startKpSignIn
+- **Topic**: /client/\${baseSN}/send
+- **Function description**: Enable sycn sign in
+- **Parameter Description**
+
+|Parameter name|Type|Restriction|Required or not|Description|
+|---|---|---|---|---|
+|fun|string|-|Yes|Command name|
+|dataTag|string|-|No|Packet identifier, can be an empty string|
+|data|object|-|Yes|Object to pass parameters to|
+|+mode|int|-|Yes|Sign-in Mode
1-Sign in by pressing a button, you can specify the button
2-PIN code sign-in, PIN code length can be specified|
+|+allowModify |int|-|Yes | Modify Mode 
 0-Unmodifiable 
1-Modifiable (default value)|
+|+pinLen |int|-|Yes| The maximum length of the PIN code that can be entered 1≤N≤14 |
+|+keyValue |int|-|Yes | Specify key value 
 0: Unspecified (OK key to sign in) 
1-9: Key 1-9 
 10: Key 0 
 11: Up Key  
 12: Down Key 
 13: OK Key  
 14: ESC Key  
 15: Menu Key |
+|+tipTitle |string|-|No| Tip title, length is no more than 16 bytes|
+
+- **Sample Code**
+```Json
+//Sign in by pressing a button
+{
+  "fun":"startKpSignIn",
+  "dataTag":"1",
+  "data":{
+    "mode":1,
+    "allowModify":1,
+    "keyValue":5,
+    "tip":"Please press 5 to sign in"
+  }
+}
+
+//pin sign in
+{
+  "fun":"startKpSignIn",
+  "dataTag":"1",
+  "data":{
+    "mode":2,
+    "allowModify":1,
+    "pinLen":6,
+    "tip":"Please enter your PIN to sign in"
+  }
+}
+```
+
+##### stopKpSignIn
+- **Topic**: /client/\${baseSN}/send
+- **Function description**: Stop sync sign in
+- **Parameter Description**
+
+|Parameter name|Type|Restriction|Required or not|Description|
+|---|---|---|---|---|
+|fun|string|-|Yes|Command name|
+|dataTag|string|-|No|Packet identifier, can be an empty string|
+
+- **Sample Code**
+```Json
+{
+  "fun":"stopKpSignIn",
+  "dataTag":"1"
+}
+```
+#### Event
+##### [sEvtStateCode](#sevtstatecode)
+This event is returned after sending the command
+
+##### [fEvtKpSignIn](#fevtkpsignin)
+Return the sign-in data submitted by keypad
+
 ### Sign in at any time
 #### Method
 ##### rtStartKpSignIn
-- **Topic**:/client/\${baseSN}/send
+- **Topic**: /client/\${baseSN}/send
 - **Function description**: Enable binding for sign in at any time
 - **Parameter Description**
 
@@ -1353,7 +1713,7 @@ Return the receiving status after sending command
 ```
 
 ##### rtStopKpSignIn
-- **Topic**:/client/\${baseSN}/send
+- **Topic**: /client/\${baseSN}/send
 - **Function description**: Stop binding for signing in
 - **Parameter Description**
 
@@ -1373,7 +1733,7 @@ Return the receiving status after sending command
 ```
 
 ##### rtSetKpLoginAllowed
-- **Topic**:/client/\${baseSN}/send
+- **Topic**: /client/\${baseSN}/send
 - **Function description**: Real-time PIN binding authorization, authorization can be cancelled
 - **Parameter Description**
 
@@ -1403,7 +1763,7 @@ Return the receiving status after sending command
 Return the receiving status after sending command
 
 ##### fEvtKpSignIn
-- **Topic**:/basestation/\${baseSN}/receive
+- **Topic**: /basestation/\${baseSN}/receive
 - **Function description**: Returns the sign-in information submitted by the keypad
 - **Parameter Description**
 
@@ -1437,7 +1797,7 @@ Return the receiving status after sending command
 ```
 
 ##### fEvtKpLoginAllowed
-- **Topic**:/basestation/\${baseSN}/receive
+- **Topic**: /basestation/\${baseSN}/receive
 - **Function description**: Return keypad authorization status
 - **Parameter Description**
 
@@ -1466,7 +1826,7 @@ Return the receiving status after sending command
 ### True or False
 #### Method
 ##### startQATrueFalse
-- **Topic**:/client/\${baseSN}/send
+- **Topic**: /client/\${baseSN}/send
 - **Function description**: Start true or false questions
 - **Parameter Description**
 
@@ -1496,7 +1856,7 @@ Return the receiving status after sending command
 ```
 
 ##### stopQATrueFalse
-- **Topic**:/client/\${baseSN}/send
+- **Topic**: /client/\${baseSN}/send
 - **Function description**: Stop true or false questions
 - **Parameter Description**
 
@@ -1519,7 +1879,7 @@ Return the receiving status after sending command
 Return the receiving status after sending command
 
 ##### fEvtQATrueFalse
-- **Topic**:/basestation/\${baseSN}/receive
+- **Topic**: /basestation/\${baseSN}/receive
 - **Function description**: Returns the answer information submitted by the keypad
 - **Parameter Description**
 
@@ -1550,7 +1910,7 @@ Return the receiving status after sending command
 ### Choice questions
 #### Method
 ##### startQAChoice
-- **Topic**:/client/\${baseSN}/send
+- **Topic**: /client/\${baseSN}/send
 - **Function description**: Start choice questions
 - **Parameter Description**
 
@@ -1586,7 +1946,7 @@ Return the receiving status after sending command
 ```
 
 ##### stopQAChoice
-- **Topic**:/client/\${baseSN}/send
+- **Topic**: /client/\${baseSN}/send
 - **Function description**: Stop choice questions
 - **Parameter Description**
 
@@ -1609,7 +1969,7 @@ Return the receiving status after sending command
 Return the receiving status after sending command
 
 ##### fEvtQAChoice
-- **Topic**:/basestation/\${baseSN}/receive
+- **Topic**: /basestation/\${baseSN}/receive
  **Function description**: Returns the answer information submitted by the keypad
 - **Parameter Description**
 
@@ -1639,7 +1999,7 @@ Return the receiving status after sending command
 ### Numeric
 #### Method
 ##### startQANum
-- **Topic**:/client/\${baseSN}/send
+- **Topic**: /client/\${baseSN}/send
 - **Function description**: Start Numeric Question
 - **Parameter Description**
 
@@ -1675,7 +2035,7 @@ Return the receiving status after sending command
 ```
 
 ##### stopQANum
-- **Topic**:/client/\${baseSN}/send
+- **Topic**: /client/\${baseSN}/send
 - **Function description**: Stop Numeric Question
 - **Parameter Description**
 
@@ -1698,7 +2058,7 @@ Return the receiving status after sending command
 Return the receiving status after sending command
 
 ##### fEvtQANum
-- **Topic**:/basestation/\${baseSN}/receive
+- **Topic**: /basestation/\${baseSN}/receive
 -  **Function description**: Returns the answer information submitted by the keypad
 - **Parameter Description**
 
@@ -1728,7 +2088,7 @@ Return the receiving status after sending command
 ### Rush Answer
 #### Method
 ##### startQAQuicker
-- **Topic**:/client/\${baseSN}/send
+- **Topic**: /client/\${baseSN}/send
 - **Function description**: Start Rush Answer
 - **Parameter Description**
 
@@ -1758,7 +2118,7 @@ Return the receiving status after sending command
 ```
 
 ##### stopQAQuicker
-- **Topic**:/client/\${baseSN}/send
+- **Topic**: /client/\${baseSN}/send
 - **Function description**: Start Rush Answer
 - **Parameter Description**
 
@@ -1781,7 +2141,7 @@ Return the receiving status after sending command
 Return the receiving status after sending command
 
 ##### fEvtQAQuicker
-- **Topic**:/basestation/\${baseSN}/receive
+- **Topic**: /basestation/\${baseSN}/receive
 -  **Function description**: Returns the answer information submitted by the keypad
 - **Parameter Description**
 
@@ -1812,7 +2172,7 @@ Return the receiving status after sending command
 ### Standard Test
 #### Method
 ##### startKpExam
-- **Topic**:/client/\${baseSN}/send
+- **Topic**: /client/\${baseSN}/send
 - **Function description**: Start standard test
 - **Parameter Description**
 
@@ -1905,7 +2265,7 @@ Return the receiving status after sending command
 ```
 
 ##### stopKpExam
-- **Topic**:/client/\${baseSN}/send
+- **Topic**: /client/\${baseSN}/send
 - **Function description**: Stop standard test
 - **Parameter Description**
 
@@ -1924,7 +2284,7 @@ Return the receiving status after sending command
 ```
 
 ##### rtKpAllowEdited
-- **Topic**:/client/\${baseSN}/send
+- **Topic**: /client/\${baseSN}/send
 - **Function description**: After keypad submission, allow the keypad to modify the answer
 - **Parameter Description**
 
@@ -1952,7 +2312,7 @@ Return the receiving status after sending command
 Return the receiving status after sending command
 
 ##### fEvtKpExam
-- **Topic**:/basestation/\${baseSN}/receive
+- **Topic**: /basestation/\${baseSN}/receive
 - **Function description**: Returns the answer information from the keypad
 - **Parameter Description**
 
@@ -1986,7 +2346,7 @@ Return the receiving status after sending command
 ```
 
 ##### fEvtFinalSubmit
-- **Topic**:/basestation/\${baseSN}/receive
+- **Topic**: /basestation/\${baseSN}/receive
 - **Function description**: Return the manual submission mark of the keypad
 - **Parameter Description**