Creating an access code
Seam specifies the PIN value and validity window (if supported). Your API should return an immediate acknowledgement and send a status event when the code is fully applied to the device. If the request is invalid or the device cannot accept a new code, your API should return an error response immediately instead of a pending status.Create code request
POST https://devicecloud.example.com/locks/<LOCK_ID>/access_codes
Expected synchronous response
Access code applied event
Once the device successfully stores the PIN, your API should send a webhook event.Updating an access code
If your platform allows modification, Seam may update the validity window or replace the PIN value. If the request is invalid or the device cannot accept changes, your API should return an error response immediately instead of a pending status.Update request
PATCH https://devicecloud.example.com/access_codes/<ACCESS_CODE_ID>
Update response
Update applied event
Deleting an access code
Seam may remove a PIN code when a reservation ends or a user revokes access.Delete request
DELETE https://devicecloud.example.com/access_codes/<ACCESS_CODE_ID>
Delete response
Delete applied event
Listing access codes
Your API should expose an endpoint to list all codes currently on a lock. Seam uses this to prevent duplicates and maintain state accuracy.List request
GET https://devicecloud.example.com/locks/<LOCK_ID>/access_codes
Access code usage events
When an access code is used, your API should send a webhook event that includes the specific code.Successful code usage
Incorrect PIN attempts
If supported, your API should notify Seam when someone enters an incorrect PIN. Being able to see incorrect pin that was set is useful for debugging access code issues.Common error responses
Your API should clearly surface code-related failures, including:- invalid PIN format
- conflicting PIN on device
- device unable to store new codes
- device offline or out of sync

