Passcodes
Passcodes are used to access a given lock. On this page, we’ll dive into the different passcode endpoints you can use to manage passcodes programmatically.
Due to the limited memory space in the locks, only 150 passcodes can be added. If the number exceeds the limit, an error will be returned, indicating that the space is full. You need to delete others before adding new ones.
The passcode model
The passcode model contains all the information about the passcodes.
Properties
- Name
keyboardPwdId
- Type
- integer
- Description
The id of the passcode.
- Name
lockId
- Type
- integer
- Description
The lock's unique identifier.
- Name
keyboardPwd
- Type
- string
- Description
Passcode value
- Name
keyboardPwdName
- Type
- string
- Description
Passcode name
- Name
keyboardPwdType
- Type
- integer
- Description
Passcode type
- Name
startDate
- Type
- long
- Description
The time when the passcode becomes valid (in milliseconds)
- Name
endDate
- Type
- long
- Description
The time when the passcode expires (in milliseconds)
- Name
sendDate
- Type
- long
- Description
Init time (in milliseconds)
- Name
isCustom
- Type
- integer
- Description
Whether the passcode is custom or random
- Name
senderUsername
- Type
- String
- Description
The username of the user who created the passcode
Passcode Object
{
"keyboardPwdId": 1234567,
"lockId": 456789,
"keyboardPwd": "123456",
"keyboardPwdName":"Passcode for John",
"keyboardPwdType": "3",
"startDate": 1528848944000,
"endDate": 1628875944000,
"sendDate": 1528871944000,
"senderUsername": "user@google.com"
}
Passcode Types
Type | Value | Description |
---|---|---|
One-time | 1 | Valid for once within 6 hours from the Start Time |
Permanent | 2 | Must be used at least once within 24 Hours after the startDate , or it will be invalidated |
Period | 3 | Must be used at least once within 24 Hours after the startDate , or it will be invalidated |
Delete | 4 | Deletes all other codes |
Weekend Cyclic | 5 | Valid only during the specified time period at the weekend |
Daily Cyclic | 6 | Valid only during the specified time period everyday |
Workday Cyclic | 7 | Valid only during the specified time period on workdays |
Monday Cyclic | 8 | Valid only during the specified time period on Mondays |
Tuesday Cyclic | 9 | Valid only during the specified time period on Tuesdays |
Wednesday Cyclic | 10 | Valid only during the specified time period on Wednesdays |
Thursday Cyclic | 11 | Valid only during the specified time period on Thursdays |
Friday Cyclic | 12 | Valid only during the specified time period on Fridays |
Saturday Cyclic | 13 | Valid only during the specified time period on Saturdays |
Sunday Cyclic | 14 | Valid only during the specified time period on Sundays |
List all passcodes
This endpoint allows you to retrieve a paginated list of all your passcodes for a specific lock.
Required attributes
- Name
lockId
- Type
- integer
- Description
The lock's unique identifier.
- Name
pageNo
- Type
- integer
- Description
Page number
- Name
pageSize
- Type
- integer
- Description
Page size minimum 10, maximum 1000
Request
curl --location --request GET 'https://api.dusaw.com/api/v1/passcode/list?lockId=7354852&pageNo=1&pageSize=20' \
--header 'Accept: application/json' \
--header 'Authorization: Bearer {token}'
Response
{
"list": [
...
{
"endDate": 0,
"sendDate": 1672364970000,
"keyboardPwdId": 224740764,
"nickName": "nathan",
"keyboardPwdType": 1,
"lockId": 7454852,
"keyboardPwdVersion": 4,
"isCustom": 0,
"keyboardPwd": "30956695",
"startDate": 1672362000000,
"senderUsername": "user@google.com",
"receiverUsername": "",
"status": 1
},
...
],
"pageNo": 1,
"pageSize": 20,
"pages": 1,
"total": 6
}
Get a random passcode
Generates a random passcode for a given lock, consisting of 6-9 random digits.
We advise you to set the startDate
and endDate
on the hour because the random passcode's valid period can only be accurate to hours. For example, if the startDate
is set to a timestamp of 19:20, the real start time will be 19:00.
When a passcode's validity term exceeds a year, it can only be accurate to a month. It means the day and time of the startDate
and the endDate
must be the same, for example:2021-03-18 00:00:00 to 2022-03-18 00:00:00.
Required attributes
- Name
lockId
- Type
- integer
- Description
The lock's unique identifier.
- Name
keyboardPwdType
- Type
- integer
- Description
Passcode type
- Name
startDate
- Type
- long
- Description
The time when the passcode becomes valid (in milliseconds)
Optional attributes
- Name
keyboardPwdName
- Type
- String
- Description
Passcode name
- Name
endDate
- Type
- long
- Description
The time when the passcode expires (in milliseconds)
Request
curl --location --request POST 'https://api.dusaw.com/api/v1/passcode/random?lockId=7454852&keyboardPwdType=2&startDate=1672705893769' \
--header 'Accept: application/json' \
--header 'Authorization: Bearer {token}'
Response
{
"keyboardPwdId": 225875322,
"keyboardPwd": "09577481"
}
Add a custom passcode
Adds a custom passcode for a given lock. The passcode must be a 4-9 digit number.
We advise you to set the startDate
and endDate
on the hour because the passcode's valid period can only be accurate to hours. For example, if the startDate
is set to a timestamp of 19:20, the real start time will be 19:00.
When a passcode's validity term exceeds a year, it can only be accurate to a month. It means the day and time of the startDate
and the endDate
must be the same, for example:2021-03-18 00:00:00 to 2022-03-18 00:00:00.
Required attributes
- Name
lockId
- Type
- integer
- Description
The lock's unique identifier.
- Name
keyboardPwd
- Type
- integer
- Description
Passcode value
- Name
keyboardPwdType
- Type
- integer
- Description
Passcode type
- Name
addType
- Type
- integer
- Description
1
- via phone bluetooth,should add through the app first.2
- via gateway or WiFi lock,you can call this api directly if it's a WiFi lock or it's connected to gateway.
- Name
startDate
- Type
- long
- Description
The time when the passcode becomes valid (in milliseconds)
- Name
endDate
- Type
- long
- Description
The time when the passcode expires (in milliseconds)
Optional attributes
- Name
keyboardPwdName
- Type
- String
- Description
Passcode name
Request
curl --location --request POST 'https://api.dusaw.com/api/v1/passcode/custom?lockId=7454852&keyboardPwd=123456&keyboardPwdType=2&addType=2&startDate=1672705893769&endDate=1675298633978' \
--header 'Accept: application/json' \
--header 'Authorization: Bearer {token}'
Response
{
"keyboardPwdId": 225875323
}
Change a passcode
You can modify the name, validity period, or passcode itself using this API. When you want to change only the passcode name, only keyboardPwdName
parameter is needed, changeType is not needed. The parameters "startDate" and "endDate" must be provided when changing a validity period; When changing passcode newKeyboardPwd
parameter is required.
Required attributes
- Name
lockId
- Type
- integer
- Description
The lock's unique identifier.
- Name
keyboardPwdId
- Type
- integer
- Description
Passcode ID
- Name
changeType
- Type
- integer
- Description
1
- via phone bluetooth,should change through the app first.2
- via gateway or WiFi lock,you can call this api directly if it's a WiFi lock or it's connected to gateway.
- Name
startDate
- Type
- long
- Description
The time when the passcode becomes valid (in milliseconds)
- Name
endDate
- Type
- long
- Description
The time when the passcode expires (in milliseconds)
Optional attributes
- Name
keyboardPwdName
- Type
- String
- Description
Passcode name
- Name
newKeyboardPwd
- Type
- integer
- Description
New passcode value
Request
curl --location --request PUT 'https://api.dusaw.com/api/v1/passcode/change?lockId=7116676&keyboardPwdId=225878256&newKeyboardPwd=123456&changeType=1' \
--header 'Accept: application/json' \
--header 'Authorization: Bearer {token}'
Response
{
"success": true
}
Delete a passcode
This Endpoint deletes a passcode from a lock.
Required attributes
- Name
lockId
- Type
- integer
- Description
The lock's unique identifier.
- Name
keyboardPwdId
- Type
- integer
- Description
Passcode ID
- Name
deleteType
- Type
- integer
- Description
1
- via phone bluetooth,should delete through the app first.2
- via gateway or WiFi lock,you can call this api directly if it's a WiFi lock or it's connected to gateway.
Request
curl --location --request DELETE 'https://api.dusaw.com/api/v1/passcode/delete?lockId=7116676&keyboardPwdId=225878256&deleteType=1' \
--header 'Accept: application/json' \
--header 'Authorization: Bearer {token}'
Response
{
"success": true
}
Delete All Passcodes
This Endpoint deletes all passcodes from a specific lock.
Required attributes
- Name
lockId
- Type
- integer
- Description
The lock's unique identifier.
- Name
deleteType
- Type
- integer
- Description
1
- via phone bluetooth,should delete through the app first.
2
- via gateway or WiFi lock,you can call this api directly if it's a WiFi lock or it's connected to gateway.
Request
curl --location --request DELETE 'https://api.dusaw.com/api/v1/passcode/delete-all?lockId=7116676&deleteType=2' \
--header 'Accept: application/json' \
--header 'Authorization: Bearer {token}'
Response
{
"success": true
}