Create an Access Code

Create an access code for a device by ID

/access_codes/create

POSThttps://connect.getseam.com/access_codes/create
Authorization
Body
device_id*string (uuid)
namestring
starts_atstring
ends_atstring
codestring
syncboolean
attempt_for_offline_deviceboolean
common_code_keystring
prefer_native_schedulingboolean
use_backup_access_code_poolboolean
allow_external_modificationboolean
is_external_modification_allowedboolean
preferred_code_lengthnumber (float)
use_offline_access_codeboolean
is_offline_access_codeboolean
is_one_time_useboolean
max_time_roundingenum
1hour1day1h1d
Response

OK

Body
action_attempt*action_attempt (one of)
access_code*access_code (object)
ok*boolean
Request
const response = await fetch('https://connect.getseam.com/access_codes/create', {
    method: 'POST',
    headers: {
      "Authorization": "Bearer Client Session Token",
      "Content-Type": "application/json"
    },
    body: JSON.stringify({
      "device_id": "123e4567-e89b-12d3-a456-426614174000"
    }),
});
const data = await response.json();
Response
{
  "action_attempt": {
    "action_attempt_id": "123e4567-e89b-12d3-a456-426614174000",
    "status": "pending",
    "action_type": "LOCK_DOOR"
  },
  "access_code": {
    "common_code_key": "text",
    "is_scheduled_on_device": false,
    "type": "time_bound",
    "is_waiting_for_code_assignment": false,
    "access_code_id": "123e4567-e89b-12d3-a456-426614174000",
    "device_id": "123e4567-e89b-12d3-a456-426614174000",
    "name": "text",
    "code": "text",
    "created_at": "2024-09-10T04:23:36.338Z",
    "errors": [
      {
        "message": "text",
        "is_access_code_error": true,
        "error_code": "text"
      }
    ],
    "warnings": [
      {
        "message": "text",
        "warning_code": "text"
      }
    ],
    "is_managed": true,
    "starts_at": "2024-09-10T04:23:36.338Z",
    "ends_at": "2024-09-10T04:23:36.338Z",
    "status": "setting",
    "is_backup_access_code_available": false,
    "is_backup": false,
    "pulled_backup_access_code_id": "123e4567-e89b-12d3-a456-426614174000",
    "is_external_modification_allowed": false,
    "is_one_time_use": false,
    "is_offline_access_code": false
  },
  "ok": false
}

Code Examples

Creating an Ongoing Access Code

Request:

device_id = "6aae9d08-fed6-4ca5-8328-e36849ab48fe"

created_access_code = seam.access_codes.create(
  device = device_id,
  name = "my ongoing code",
  code = "1234"
)

pprint(created_access_code)

Response:

AccessCode(access_code_id='daf89de3-ad3a-49aa-93bd-25f27d58f699',
           device_id='6aae9d08-fed6-4ca5-8328-e36849ab48fe',
           type='ongoing',
           code='1234',
           created_at='2023-10-19T02:15:04.911Z',
           errors=[],
           warnings=[],
           starts_at=None,
           ends_at=None,
           name='my ongoing code',
           status='setting',
           common_code_key=None,
           is_managed=True,
           is_waiting_for_code_assignment=None,
           is_scheduled_on_device=None,
           pulled_backup_access_code_id=None,
           is_backup_access_code_available=False,
           is_backup=None,
           appearance=None,
           is_external_modification_allowed=False,
           is_offline_access_code=False,
           is_one_time_use=False)

Creating a Time-Bound Access Code

Request:

device_id = "6aae9d08-fed6-4ca5-8328-e36849ab48fe"

created_access_code = seam.access_codes.create(
  device = device_id,
  name = "my time-bound code",
  starts_at = "2025-01-01T16:00:00Z",
  ends_at = "2025-01-22T12:00:00Z",
  code = "2345"
)

pprint(created_access_code)

Response:

AccessCode(access_code_id='1bbd1eba-e4a2-4f96-b1b9-8498a5405b2b',
           device_id='6aae9d08-fed6-4ca5-8328-e36849ab48fe',
           type='time_bound',
           code='2345',
           created_at='2023-10-19T02:21:58.738Z',
           errors=[],
           warnings=[],
           starts_at='2025-01-01T16:00:00.000Z',
           ends_at='2025-01-22T12:00:00.000Z',
           name='my time-bound code',
           status='unset',
           common_code_key=None,
           is_managed=True,
           is_waiting_for_code_assignment=None,
           is_scheduled_on_device=False,
           pulled_backup_access_code_id=None,
           is_backup_access_code_available=False,
           is_backup=None,
           appearance=None,
           is_external_modification_allowed=False)

Creating an Access Code with a Preferred Code Length

Request:

seam.access_codes.create(
  device = "6aae9d08-fed6-4ca5-8328-e36849ab48fe",
  name = "my access code",
  starts_at = "2025-01-01T16:00:00Z",
  ends_at = "2025-01-22T12:00:00Z",
  preferred_code_length = 4
)

Response:

AccessCode(access_code_id='1bbd1eba-e4a2-4f96-b1b9-8498a5405b2b',
           device_id='6aae9d08-fed6-4ca5-8328-e36849ab48fe',
           type='time_bound',
           code='2345',
           created_at='2023-10-19T02:21:58.738Z',
           errors=[],
           warnings=[],
           starts_at='2025-01-01T16:00:00.000Z',
           ends_at='2025-01-22T12:00:00.000Z',
           name='my access code',
           status='unset',
           common_code_key=None,
           is_managed=True,
           is_waiting_for_code_assignment=None,
           is_scheduled_on_device=False,
           pulled_backup_access_code_id=None,
           is_backup_access_code_available=False,
           is_backup=None,
           appearance=None,
           is_external_modification_allowed=False)

Creating an Hourly-Bound Offline Access Code

Request:

device_id = "9689dc30-77d8-4728-9968-b3abd0835f47"

created_access_code = seam.access_codes.create(
  device = device_id,
  name = "my hourly-bound offline code",
  starts_at = "2023-11-10T00:00:00-00:00",
  ends_at = "2023-11-15T18:00:00-00:00",
  is_offline_access_code = True
)

pprint(created_access_code)

Response:

AccessCode(access_code_id='f078dce8-3c5e-4bc4-bd08-3ad013ee8be6',
           device_id='9689dc30-77d8-4728-9968-b3abd0835f47',
           type='time_bound',
           code=None,
           created_at='2023-11-07T03:51:56.096Z',
           errors=[],
           warnings=[],
           starts_at='2023-11-10T00:00:00.000Z',
           ends_at='2023-11-15T18:00:00.000Z',
           name='my hourly-bound offline code5',
           status='unset',
           common_code_key=None,
           is_managed=True,
           is_waiting_for_code_assignment=True,
           is_scheduled_on_device=False,
           pulled_backup_access_code_id=None,
           is_backup_access_code_available=False,
           is_backup=None,
           appearance=None,
           is_external_modification_allowed=False,
           is_offline_access_code=True,
           is_one_time_use=False)