Programming Code-Based Salto KS Credentials

Learn how to create Salto KS PIN codes.

To use the Seam API to program codes for users in a Salto KS ACS:

  1. Create an ACS user.

    • For Salto KS, you can specify the access_schedule for the new ACS user. An access_schedule consists of starts_at and ends_at times. In this case, a Salto KS ACS user appears as "unsubscribed" in the ACS until the starts_at time. Once the start time arrives, Seam switches the ACS user to "subscribed," which activates their access.

  2. Assign access permissions to the ACS user by assigning them to one or more access groups.

    • Each access group is preconfigured with specific entrances and schedules.

  3. Create an ACS credential.

    • Specify the ID of the ACS user.

    • Set the access_method to code.

    Creating a new acs_credential object triggers the Salto KS ACS to generate a PIN code for the user.

When you create a credential for a Salto KS ACS, you cannot specify a custom code. Instead, you must let Salto KS generate the PIN code.

The following example walks you through this process:

Code:

# Get the ACS system.
building_a = seam.acs.systems.get(
  acs_system_id="11111111-1111-1111-1111-111111111111"
)

# Define the listing.
listing = {
  "listing_id": "2222222-2222",
  "seam_access_group_ids": [
    "555555-5555",
    "666666-6666"
  ]
}

# Define the reservation.
reservation = {
  "reservation_id": "3333122-432",
  "guest_email": "jane@example.com",
  "listing_id": "2222222-2222",
  "check_in": "2024-11-01T15:00:00.000Z",
  "check_out": "2024-11-04T11:00:00.000Z"
}

# Step 1:
# Create the new ACS user, including the
# desired access schedule.
reservation_user = seam.acs.users.create(
  full_name = reservation["reservation_id"],
  acs_system_id = building_a.acs_system_id,
  access_schedule = {
    "starts_at": reservation["check_in"],
    "ends_at": reservation["check_out"]
  }
)

# Step 2:
# Add the ACS user to all access groups for the listing.
for group_id_to_add in listing["seam_access_group_ids"]:
  seam.acs.users.add_to_access_group(
    acs_user_id = reservation_user.acs_user_id,
    acs_access_group_id = group_id_to_add
  )

# Step 3:
# Create a PIN code for the ACS user.
reservation_pin_code = seam.acs.credentials.create(
  acs_user_id = reservation_user.acs_user_id,
  access_method = "code"
)

# View the new credential.
pprint(reservation_pin_code)

Output:

AcsCredential(
  acs_credential_id='66666666-6666-6666-6666-666666666666',
  acs_system_id='11111111-1111-1111-1111-111111111111',
  acs_user_id='33333333-3333-3333-3333-333333333333',
  code='123456',
  access_method='code',
  ...
)

Next Steps

To learn more about using the Seam API with your Salto KS ACS, see the following topics:

Last updated

Logo

© Seam Labs, Inc. All rights reserved.