An ACS user typically refers to an individual who requires access, like an employee or resident. Each user can possess multiple credentials that serve as their keys or identifiers for access. The type of credential can vary widely. For example, in the system, a user can have a PIN code, a mobile app account, and a fob. In other platforms, it is not uncommon for a user to have more than one of the same credential type, such as multiple key cards. Additionally, these credentials can have a schedule or validity period.
This guide explains how to create and manage ACS users. Using the , you can automate issuing access to long-term tenants or visitors.
Before You Begin: Identify the ACS System ID
To add ACS users to your access control system, first retrieve the acs_system_id
of the ACS that you want to configure. To retrieve the ACS details, use or . Then, continue to the remaining sections in this topic to learn how to manage ACS users.
Python cURL (bash) JavaScript Ruby PHP C# Java Go
Request:
Copy seam.acs.systems.list()
Response:
Copy [
AcsSystem(
acs_system_id='11111111-1111-1111-1111-111111111111',
name='Visionline System',
...
),
...
]
Request:
Copy # Use GET or POST.
curl -X 'GET' \
'https://connect.getseam.com/acs/systems/list' \
-H 'accept: application/json' \
-H "Authorization: Bearer ${API_KEY}" \
-H 'Content-Type: application/json' \
-d '{}'
Response:
Copy {
"acs_systems": [
{
"acs_system_id": "11111111-1111-1111-1111-111111111111",
"name": "Visionline System",
...
},
...
],
"ok": true
}
Request:
Copy await seam.acs.systems.list();
Response:
Copy [
{
acs_system_id: '11111111-1111-1111-1111-111111111111',
name: 'Visionline System',
...
},
...
]
Request:
Copy $seam->acs->systems->list();
Response:
Copy [
{
"acs_system_id": "11111111-1111-1111-1111-111111111111",
"name": "Visionline System",
...
},
...
]
Request:
Copy seam.SystemsAcs.List();
Response:
Copy {
"acs_system_id": "11111111-1111-1111-1111-111111111111",
"name": "Visionline System",
...
}
...
Request:
Copy acs_systems, uErr := client.Acs.Systems.List(
context.Background(), &acs.SystemsListRequest{},
)
Response:
Copy [
{
"acs_system_id": "11111111-1111-1111-1111-111111111111",
"name": "Visionline System",
...
},
...
]
Create an ACS User
In addition, if your ACS architecture supports assigning access schedules directly to ACS users, you can specify an access_schedule
for the user, including a starts_at
and ends_at
date and time.
Python cURL (bash) JavaScript Ruby PHP C# Java Go
Request:
Copy seam.acs.users.create(
acs_system_id="11111111-1111-1111-1111-111111111111",
user_identity_id="22222222-2222-2222-2222-222222222222",
full_name="Jane Doe",
email_address="jane@example.com",
phone_number="+15555550101"
)
Response:
Copy AcsUser(
acs_user_id='33333333-3333-3333-3333-333333333333',
full_name='Jane Doe',
email_address='jane@example.com',
phone_number='+15555550101',
acs_system_id='11111111-1111-1111-1111-111111111111',
...
)
Request:
Copy curl -X 'POST' \
'https://connect.getseam.com/acs/users/create' \
-H 'accept: application/json' \
-H "Authorization: Bearer ${API_KEY}" \
-H 'Content-Type: application/json' \
-d '{
"acs_system_id": "11111111-1111-1111-1111-111111111111",
"user_identity_id": "22222222-2222-2222-2222-222222222222",
"full_name": "Jane Doe",
"email_address": "jane@example.com",
"phone_number": "+15555550101"
}'
Response:
Copy {
"acs_user": {
"acs_user_id": "33333333-3333-3333-3333-333333333333",
"full_name": "Jane Doe",
"email_address": "jane@example.com",
"phone_number": "+15555550101",
"acs_system_id": "11111111-1111-1111-1111-111111111111",
...
},
"ok": true
}
Request:
Copy await seam.acs.users.create({
acs_system_id: "11111111-1111-1111-1111-111111111111",
user_identity_id: "22222222-2222-2222-2222-222222222222",
full_name: "Jane Doe",
email_address: "jane@example.com",
phone_number: "+15555550101"
});
Response:
Copy {
acs_user_id: '33333333-3333-3333-3333-333333333333',
full_name: 'Jane Doe',
email_address: 'jane@example.com',
phone_number: '+15555550101',
acs_system_id: '11111111-1111-1111-1111-111111111111',
...
}
Request:
Copy $seam->acs->users->create(
acs_system_id: "11111111-1111-1111-1111-111111111111",
user_identity_id: "22222222-2222-2222-2222-222222222222",
full_name: "Jane Doe",
email_address: "jane@example.com",
phone_number: "+15555550101"
);
Response:
Copy {
"acs_user_id": "33333333-3333-3333-3333-333333333333",
"full_name": "Jane Doe",
"email_address": "jane@example.com",
"phone_number": "+15555550101",
"acs_system_id": "11111111-1111-1111-1111-111111111111",
...
}
Request:
Copy seam.UsersAcs.Create(
acsSystemId: "11111111-1111-1111-1111-111111111111",
userIdentityId: "22222222-2222-2222-2222-222222222222",
fullName: "Jane Doe",
emailAddress: "jane@example.com",
phoneNumber: "+15555550101"
);
Response:
Copy {
"acs_user_id": "33333333-3333-3333-3333-333333333333",
"full_name": "Jane Doe",
"email_address": "jane@example.com",
"phone_number": "+15555550101",
"acs_system_id": "11111111-1111-1111-1111-111111111111",
...
}
Request:
Copy acs_user, uErr := client.Acs.Users.Create(
context.Background(), &acs.UsersCreateRequest{
AcsSystemId: "11111111-1111-1111-1111-111111111111",
UserIdentityId: api.String("22222222-2222-2222-2222-222222222222"),
FullName: api.String("Jane Doe"),
EmailAddress: api.String("jane@example.com"),
PhoneNumber: api.String("+15555550101")
},
)
Response:
Copy {
"acs_user_id": "33333333-3333-3333-3333-333333333333",
"full_name": "Jane Doe",
"email_address": "jane@example.com",
"phone_number": "+15555550101",
"acs_system_id": "11111111-1111-1111-1111-111111111111",
...
}
List ACS Users
Python cURL (bash) JavaScript Ruby PHP C# Java Go
Request:
Copy seam.acs.users.list(
acs_system_id="11111111-1111-1111-1111-111111111111"
)
Response:
Copy [
AcsUser(
acs_user_id='33333333-3333-3333-3333-333333333333',
full_name='Jane Doe',
email_address='jane@example.com',
...
),
...
]
Request:
Copy # Use GET or POST.
curl -X 'GET' \
'https://connect.getseam.com/acs/users/list' \
-H 'accept: application/json' \
-H "Authorization: Bearer ${API_KEY}" \
-H 'Content-Type: application/json' \
-d '{
"acs_system_id": "11111111-1111-1111-1111-111111111111"
}'
Response:
Copy {
"acs_users": [
{
"acs_user_id": "33333333-3333-3333-3333-333333333333",
"full_name": "Jane Doe",
"email_address": "jane@example.com",
...
},
...
],
"ok": true
}
Request:
Copy await seam.acs.users.list({
acs_system_id: "11111111-1111-1111-1111-111111111111"
});
Response:
Copy [
{
acs_user_id: '33333333-3333-3333-3333-333333333333',
full_name: 'Jane Doe',
email_address: 'jane@example.com',
...
},
...
]
Request:
Copy $seam->acs->users->list(
acs_system_id: "11111111-1111-1111-1111-111111111111"
);
Response:
Copy [
{
"acs_user_id": "33333333-3333-3333-3333-333333333333",
"full_name": "Jane Doe",
"email_address": "jane@example.com",
...
},
...
]
Request:
Copy seam.UsersAcs.List(
acsSystemId: "11111111-1111-1111-1111-111111111111"
);
Response:
Copy {
"acs_user_id": "33333333-3333-3333-3333-333333333333",
"full_name": "Jane Doe",
"email_address": "jane@example.com",
...
}
...
Request:
Copy acs_users, uErr := client.Acs.Users.List(
context.Background(), &acs.UsersListRequest{
AcsSystemId: api.String("11111111-1111-1111-1111-111111111111"),
},
)
Response:
Copy [
{
"acs_user_id": "33333333-3333-3333-3333-333333333333",
"full_name": "Jane Doe",
"email_address": "jane@example.com",
...
},
...
]
Get an ACS User
Python cURL (bash) JavaScript Ruby PHP C# Java Go
Request:
Copy seam.acs.users.get(
acs_user_id="33333333-3333-3333-3333-333333333333"
)
Response:
Copy AcsUser(
acs_user_id='33333333-3333-3333-3333-333333333333',
full_name='Jane Doe',
email_address='jane@example.com',
phone_number='+15555550100',
acs_system_id='11111111-1111-1111-1111-111111111111',
access_schedule={
'starts_at': '2024-03-01T10:40:00.000Z',
'ends_at': '2024-03-04T10:40:00.000Z'
},
user_identity_id='22222222-2222-2222-2222-222222222222',
...
)
Request:
Copy # Use GET or POST.
curl -X 'GET' \
'https://connect.getseam.com/acs/users/get' \
-H 'accept: application/json' \
-H "Authorization: Bearer ${API_KEY}" \
-H 'Content-Type: application/json' \
-d '{
"acs_user_id": "33333333-3333-3333-3333-333333333333"
}'
Response:
Copy {
"acs_user": {
"acs_user_id": "33333333-3333-3333-3333-333333333333",
"full_name": "Jane Doe",
"email_address": "jane@example.com",
"phone_number": "+15555550100",
"acs_system_id": "11111111-1111-1111-1111-111111111111",
"access_schedule": {
"starts_at": "2024-03-01T10:40:00.000Z",
"ends_at": "2024-03-04T10:40:00.000Z"
},
"user_identity_id": "22222222-2222-2222-2222-222222222222",
...
},
"ok": true
}
Request:
Copy await seam.acs.users.get({
acs_user_id: "33333333-3333-3333-3333-333333333333"
});
Response:
Copy {
acs_user_id: '33333333-3333-3333-3333-333333333333',
full_name: 'Jane Doe',
email_address: 'jane@example.com',
phone_number: '+15555550100',
acs_system_id: '11111111-1111-1111-1111-111111111111',
access_schedule: {
"starts_at": "2024-03-01T10:40:00.000Z",
"ends_at": "2024-03-04T10:40:00.000Z"
},
user_identity_id: '22222222-2222-2222-2222-222222222222',
...
}
Request:
Copy $seam->acs->users->get(
acs_user_id: "33333333-3333-3333-3333-333333333333"
);
Response:
Copy {
"acs_user_id": "33333333-3333-3333-3333-333333333333",
"full_name": "Jane Doe",
"email_address": "jane@example.com",
"phone_number": "+15555550100",
"acs_system_id": "11111111-1111-1111-1111-111111111111",
"access_schedule": {
"starts_at": "2024-03-01T10:40:00.000Z",
"ends_at": "2024-03-04T10:40:00.000Z"
},
"user_identity_id": "22222222-2222-2222-2222-222222222222",
...
}
Request:
Copy seam.AcsUsers.Get(
acsUserId: "33333333-3333-3333-3333-333333333333"
);
Response:
Copy {
"acs_user_id": "33333333-3333-3333-3333-333333333333",
"full_name": "Jane Doe",
"email_address": "jane@example.com",
"phone_number": "+15555550100",
"acs_system_id": "11111111-1111-1111-1111-111111111111",
"access_schedule": {
"starts_at": "2024-03-01T10:40:00.000Z",
"ends_at": "2024-03-04T10:40:00.000Z"
},
"user_identity_id": "22222222-2222-2222-2222-222222222222",
..
}
Request:
Copy acs_user, uErr := client.Acs.Users.Get(
context.Background(), &acs.UsersGetRequest{
AcsUserId: "33333333-3333-3333-3333-333333333333",
},
)
Response:
Copy {
"acs_user_id": "33333333-3333-3333-3333-333333333333",
"full_name": "Jane Doe",
"email_address": "jane@example.com",
"phone_number": "+15555550100",
"acs_system_id": "11111111-1111-1111-1111-111111111111",
"access_schedule": {
"starts_at": "2024-03-01T10:40:00.000Z",
"ends_at": "2024-03-04T10:40:00.000Z"
},
"user_identity_id": "22222222-2222-2222-2222-222222222222",
...
}
Update an ACS User
Python cURL (bash) JavaScript Ruby PHP C# Java Go
Request:
Copy seam.acs.users.update(
acs_user_id="33333333-3333-3333-3333-333333333333",
full_name="Jack Doe"
)
Response:
Request:
Copy curl -X 'POST' \
"https://connect.getseam.com/acs/users/update" \
-H 'accept: application/json' \
-H "Authorization: Bearer ${API_KEY}" \
-H 'Content-Type: application/json' \
-d '{
"acs_user_id": "33333333-3333-3333-3333-333333333333",
"full_name": "Jack Doe"
}'
Response:
Request:
Copy await seam.acs.users.update({
acs_user_id: "33333333-3333-3333-3333-333333333333",
full_name: "Jack Doe"
});
Response:
Request:
Copy $seam->acs->users->update(
acs_user_id: "33333333-3333-3333-3333-333333333333",
full_name: "Jack Doe"
);
Response:
Request:
Copy seam.UsersAcs.Update(
acsUserId: "33333333-3333-3333-3333-333333333333",
fullName: "Jack Doe"
);
Response:
Request:
Copy acs_user, uErr := client.Acs.Users.Update(
context.Background(), &acs.UsersUpdateRequest{
AcsUserId: "33333333-3333-3333-3333-333333333333",
FullName: api.String("Jack Doe"),
},
)
Response:
Delete an ACS User
Python cURL (bash) JavaScript Ruby PHP C# Java Go
Request:
Copy seam.acs.users.delete(
acs_user_id="33333333-3333-3333-3333-333333333333"
)
Response:
Request:
Copy curl -X 'POST' \
'https://connect.getseam.com/acs/users/delete' \
-H 'accept: application/json' \
-H "Authorization: Bearer ${API_KEY}" \
-H 'Content-Type: application/json' \
-d '{
"acs_user_id": "33333333-3333-3333-3333-333333333333"
}'
Response:
Request:
Copy await seam.acs.users.delete({
acs_user_id: "33333333-3333-3333-3333-333333333333"
});
Response:
Request:
Copy $seam->acs->users->delete(
acs_user_id: "33333333-3333-3333-3333-333333333333"
);
Response:
Request:
Copy seam.UsersAcs.Delete(
acsUserId: "33333333-3333-3333-3333-333333333333"
);
Response:
Request:
Copy deletion, uErr := client.Acs.Users.Delete(
context.Background(), &acs.UsersDeleteRequest{
AcsUserId: "33333333-3333-3333-3333-333333333333",
},
)
Response: