In this quick start, create an ACS user for a virtual access control system. Then, grant the user access to an entrance using a encodable key card credential.
This quick start walks you through the process that applies specifically to the Visionline ACS. There are often differences between access control systems. For example, for some access control systems, you encode credentials onto cards. For others, you do not encode data onto cards, but, rather, assign cards to users.
Once you've completed this quick start, learn how to work with your ACS using Seam, by reading the for your ACS.
Overview
This quick start walks you through the following basic steps:
an access control system to Seam.
To get started quickly, use a virtual ACS in a .
Install a Seam SDK and create an API key.
Create an .
Create an encodable key card for the ACS user.
This credential contains both the set of entrances to which the user has access and the access schedule for the user.
While some access control systems specify allowed entrances directly within the credential, others use access groups. For more details, see .
View the following information about your successfully-created credential:
The list of entrances to which the ACS user now has access.
The access schedule for the credential.
Encode the credential onto a card.
Some access control systems—including Visionline—require you to encode credentials onto key cards.
Step 1: Connect a Virtual ACS
In the top navigation pane, click ACS Systems.
On the Access Systems page, click New Access System.
Seam Console displays a Connect Webview that enables you to connect a virtual ACS to Seam.
In the Connect Webview, authorize the connection.
Click Continue.
In the device brand list, click Visionline.
On the Set up your Seam Bridge page, click Continue.
On the Visionline info page:
In the Enter your pairing token field, type 123456 (or any six-character string).
In the Name your bridge field, type My Network (or any unique string).
Click Submit.
On the Enter your credentials page:
In the Visionline Site Name field, type any string to identify this virtual Visionline ACS site, for example, My Visionline Site.
In the Username field, type jane.
In the Password field, type 1234.
Click Submit.
Click Close.
The Access Systems page now displays the newly-connected virtual Visionline access control system.
Step 2: Install a Seam SDK and Create an API Key
Download and install a Seam SDK in your favorite programming language.
npm i seam
pip install seam
# For some development environments, use pip3 in this command instead of pip.
The Seam SDK that you have installed automatically uses this API key once you have exported it.
Step 3: Create an ACS User
Create an ACS user within the virtual Visionline access control system.
Find the ACS system ID.
On the Access Systems page, locate the Visionline ACS, for example, My Visionline Site.
In the acs_system_id column for the Visionline ACS, click the ID to copy it.
Store this ACS system ID for future use.
Create the ACS user, as follows:
Code:
from seam import Seam
seam = Seam() # Seam automatically uses your exported SEAM_API_KEY.
acs_user = seam.acs.users.create(
full_name = "Jim Doe",
# Use the ACS system ID that you copied earlier from Seam Console.
acs_system_id = acs_system_id
)
import { Seam } from "seam";
const seam = new Seam(); // Seam automatically uses your exported SEAM_API_KEY.
const acsUser = await seam.acs.users.create({
full_name: "Jim Doe",
// Use the ACS system ID that you copied earlier from Seam Console.
acs_system_id: acsSystemId
});
require "seam"
seam = Seam.new() # Seam automatically uses your exported SEAM_API_KEY.
acs_user = seam.acs.users.create(
full_name: "Jim Doe",
# Use the ACS system ID that you copied earlier from Seam Console.
acs_system_id: acs_system_id
)
<?php
require 'vendor/autoload.php';
$seam = new Seam\SeamClient(); // Seam automatically uses your exported SEAM_API_KEY.
$acs_user = $seam->acs->users->create(
full_name: "Jim Doe",
// Use the ACS system ID that you copied earlier from Seam Console.
acs_system_id: $acs_system_id
);
If this credential were intended for a real Visionline card, you'd need to create the credential and then encode this data onto the key card. Other access control systems do not use encodable cards, but, rather, assign cards to users.
Find the IDs of the allowed entrances.
On the Access Systems page, click the Visionline ACS, for example, My Visionline Site.
On the Visionline ACS page, click the Entrances tab.
Locate the Vingcard Lock 2 and Guest Lock 1 entrances.
In this example, the set of entrances includes both a common entrance and a guest room door.
For each of these entrances, click ..., click Copy Id, and then store this entrance ID for future use.
The list of entrances to which the ACS user now has access.
The access schedule for the credential.
To use Seam Console to view information about your new key card credential:
On the Access Systems page, click the Visionline ACS, for example, My Visionline Site.
In the Users table, click Jim Doe, the ACS user that you created.
In the Credentials tab for the ACS user, view the following information for the key card credential that you created:
Under the credential name, Seam Console displays the list of list of entrances to which the credential grants access.
The Start and End fields for the credential show the access schedule.
Note that Seam Console displays times adjusted to your local computer settings. That is, the times that you see in Seam Console are the times that you specified when creating the credential, adjusted to match your computer's time settings.
Step 6: Encode the Credential onto a Card
Encode the credential that you created onto a card for the Visionline access control system.
First, find the encoder that you want to use and note its ID. Then, encode the credential onto the card using the encoder that you identified. Finally, confirm that the card was encoded successfully.
Code:
# Get the encoder that you want to use.
encoder = seam.acs.encoders.list(
acs_system_ids = [acs_system_id]
)[0]
# Encode the card.
encoding_action_attempt = seam.acs.encoders.encode_credential(
acs_credential_id = key_card_credential.acs_credential_id,
acs_encoder_id = encoder.acs_encoder_id
)
# Confirm that the encoding succeeded by
# polling the returned action attempt
# until its status is success.
# You can also use a webhook.
seam.action_attempts.get(
action_attempt_id = encoding_action_attempt.action_attempt_id
)
// Get the encoder that you want to use.
const encoder = (await seam.acs.encoders.list({
acs_system_ids = [acsSystemId]
}))[0];
// Encode the card.
const encodingActionAttempt = await seam.acs.encoders.encodeCredential({
acs_credential_id: keyCardCredential.acs_credential_id,
acs_encoder_id: encoder.acs_encoder_id
});
// Confirm that the encoding succeeded by
// polling the returned action attempt
// until its status is success.
// You can also use a webhook.
await seam.actionAttempts.get({
action_attempt_id: encodingActionAttempt.action_attempt_id
});
# Get the encoder that you want to use.
encoder = (seam.acs.encoders.list(
acs_system_ids = [acs_system_id]
))[0]
# Encode the card.
encoding_action_attempt = seam.acs.encoders.encode_credential(
acs_credential_id: key_card_credential.acs_credential_id,
acs_encoder_id: encoder.acs_encoder_id
)
# Confirm that the encoding succeeded by
# polling the returned action attempt
# until its status is success.
# You can also use a webhook.
seam.action_attempts.get(
action_attempt_id: encoding_action_attempt.action_attempt_id
)
// Get the encoder that you want to use.
$encoder = $seam->acs->encoders->list(
acs_system_ids = [$acs_system_id]
)[0];
// Encode the card.
$encoding_action_attempt = $seam->acs->encoders->encode_credential(
acs_credential_id: $key_card_credential->acs_credential_id,
acs_encoder_id: $encoder->acs_encoder_id
);
// Confirm that the encoding succeeded by
// polling the returned action attempt
// until its status is success.
// You can also use a webhook.
$seam->action_attempts->get(
action_attempt_id: $encoding_action_attempt->action_attempt_id
);
// Get the encoder that you want to use.
encoders, err := client.Acs.Encoders.List(
context.Background(), &acs.EncodersListRequest{
AcsSystemIds: []string{
acsSystemId,
},
},
)
if err != nil {
return err
}
encoder := encoders[0]
// Encode the card.
encodingActionAttempt, err := client.Acs.Encoders.EncodeCredential(
context.Background(), &acs.EncodersEncodeCredentialRequest{
AcsCredentialId: keyCardCredential.AcsCredentialId,
AcsEncoderId: encoder.AcsEncoderId,
},
)
if err != nil {
return err
}
// Confirm that the encoding succeeded by
// polling the returned action attempt
// until its status is success.
// You can also use a webhook.
actionAttempt, err := client.ActionAttempts.Get(
context.Background(), &api.ActionAttemptsGetRequest{
ActionAttemptId: encodingActionAttempt.ActionAttemptId,
},
)
if err != nil {
return err
}
fmt.Println(actionAttempt)
return nil
Now that you've created a key card credential and encoded it onto a card, try out the other ACS quick starts.
Learn More
For a deeper dive into ACS concepts and instructions, see the following topics:
Learn about ACS concepts.
Create ACS users.
For relevant access control systems, assign ACS users to access groups.
Learn about available entrances.
Create credentials for ACS users.
For relevant access control systems, encode credentials onto key cards.
Let's get started!
In this quick start, use Seam Console to connect a virtual ACS to your sandbox workspace. Alternately, you can use the Seam API to create a and then use it to connect an ACS to Seam.
Log in to .
In the upper-left corner, click the workspace switcher and select or .
is a software-only component that enables you to connect on-premises software systems to the Seam platform. Because Visionline is an on-premises ACS, Seam Bridge is required for real Visionline systems. However, this quick start uses a virtual Visionline ACS, so you do not need to install Seam Bridge.
Install using .
In the top navigation pane of , click Developer.
In the top navigation pane of , click ACS Systems.
Create an encodable key card credential for the ACS user. In this credential, specify the set of allowed entrances and the access schedule. For Visionline, you must also specify some system-specific metadata, such as the card format and whether the credential is an .
In the top navigation pane of , click ACS Systems.
You can use Seam Console, the Seam API, or the to view the following information about your successfully-created credential:
In the top navigation pane of , click ACS Systems.