---
title: "Create an ACS User"
method: POST
path: "/acs/users/create"
tags: ["/acs"]
---

# Create an ACS User

`POST /acs/users/create`

Creates a new [access system user](/low-level-apis/access-systems/user-management).

## Request body

- object
  - `access_schedule` object — `starts_at` and `ends_at` timestamps for the new access system user's access. If you specify an `access_schedule`, you may include both `starts_at` and `ends_at`. If you omit `starts_at`, it defaults to the current time. `ends_at` is optional and must be a time in the future and after `starts_at`.
    - `ends_at` string, date-time, nullable — Ending timestamp for the new access system user's access.
    - `starts_at` string, date-time — Starting timestamp for the new access system user's access.
  - `acs_access_group_ids` string[] — Array of access group IDs to indicate the access groups to which you want to add the new access system user.
  - `acs_system_id` string, uuid, required — ID of the access system to which you want to add the new access system user.
  - `email` string, email — Deprecated. use email_address.
  - `email_address` string, email — Email address of the [access system user](/low-level-apis/access-systems/user-management).
  - `full_name` string, required — Full name of the new access system user.
  - `phone_number` string — Phone number of the [access system user](/low-level-apis/access-systems/user-management) in E.164 format (for example, `+15555550100`).
  - `user_identity_id` string, uuid — ID of the user identity with which you want to associate the new access system user.

## Response `200`

OK

- object
  - `acs_user` AcsUser, required — Represents a [user](/low-level-apis/access-systems/user-management) in an [access system](/low-level-apis/access-systems). See the [acs_user object](/api/acs/users/object).
    - `access_schedule` object — `starts_at` and `ends_at` timestamps for the [access system user's](/low-level-apis/access-systems/user-management) access.
      - `ends_at` string, date-time, nullable, required — Date and time at which the user's access ends, in [ISO 8601](https://www.iso.org/iso-8601-date-and-time-format.html) format.
      - `starts_at` string, date-time, required — Date and time at which the user's access starts, in [ISO 8601](https://www.iso.org/iso-8601-date-and-time-format.html) format.
    - `acs_system_id` string, uuid, required — ID of the [access system](/low-level-apis/access-systems) that contains the [access system user](/low-level-apis/access-systems/user-management).
    - `acs_user_id` string, uuid, required — ID of the [access system user](/low-level-apis/access-systems/user-management).
    - `connected_account_id` string, uuid, required — The ID of the connected account that is associated with the [access system user](/low-level-apis/access-systems/user-management).
    - `created_at` string, date-time, required — Date and time at which the [access system user](/low-level-apis/access-systems/user-management) was created.
    - `display_name` string, required — Display name for the [access system user](/low-level-apis/access-systems/user-management).
    - `email` string, email — Deprecated. use email_address.
    - `email_address` string, email — Email address of the [access system user](/low-level-apis/access-systems/user-management).
    - `errors` object[], required — Errors associated with the [access system user](/low-level-apis/access-systems/user-management).
      - `error_code` string — Error or warning code.
      - `message` string — Human-readable description.
      - `created_at` string, date-time — When this error or warning was generated.
    - `external_type` 'pti_user' | 'brivo_user' | 'hid_credential_manager_user' | 'salto_site_user' | 'latch_user' | 'dormakaba_community_user' | 'salto_space_user' | 'avigilon_alta_user' | 'kisi_user' — Brand-specific terminology for the [access system user](/low-level-apis/access-systems/user-management) type.
    - `external_type_display_name` string — Display name that corresponds to the brand-specific terminology for the [access system user](/low-level-apis/access-systems/user-management) type.
    - `full_name` string — Full name of the [access system user](/low-level-apis/access-systems/user-management).
    - `hid_acs_system_id` string, uuid — ID of the HID access control system associated with the user.
    - `is_managed` true, required — Indicates whether Seam manages the access system user.
    - `is_suspended` boolean — Indicates whether the [access system user](/low-level-apis/access-systems/user-management) is currently [suspended](/low-level-apis/access-systems/user-management/suspending-and-unsuspending-users).
    - `pending_mutations` union[] — Pending mutations associated with the [access system user](/low-level-apis/access-systems/user-management). Seam is in the process of pushing these mutations to the integrated access system.
      - union
        - object — Seam is in the process of pushing a user creation to the integrated access system.
          - `created_at` string, date-time, required — Date and time at which the mutation was created.
          - `message` string, required — Detailed description of the mutation.
          - `mutation_code` 'creating', required — Mutation code to indicate that Seam is in the process of pushing a user creation to the integrated access system.
        - object — Seam is in the process of pushing a user deletion to the integrated access system.
          - `created_at` string, date-time, required — Date and time at which the mutation was created.
          - `message` string, required — Detailed description of the mutation.
          - `mutation_code` 'deleting', required — Mutation code to indicate that Seam is in the process of pushing a user deletion to the integrated access system.
        - object — User exists in Seam but has not been pushed to the provider yet. Will be created when a credential is issued.
          - `created_at` string, date-time, required — Date and time at which the mutation was created.
          - `message` string, required — Detailed description of the mutation.
          - `mutation_code` 'deferring_creation', required — Mutation code to indicate that Seam is intentionally deferring the creation of the user on the access control system until the appropriate time.
          - `scheduled_at` string, date-time, nullable — Optional: When the user creation is scheduled to occur.
        - object
          - `created_at` string, date-time, required — Date and time at which the mutation was created.
          - `from` object, required — Old access system user information.
            - `email_address` string, email, nullable — Email address of the access system user.
            - `full_name` string, nullable — Full name of the access system user.
            - `phone_number` string, nullable — Phone number of the access system user.
          - `message` string, required — Detailed description of the mutation.
          - `mutation_code` 'updating_user_information', required — Mutation code to indicate that Seam is in the process of pushing updated user information to the integrated access system.
          - `to` object, required — New access system user information.
            - `email_address` string, email, nullable — Email address of the access system user.
            - `full_name` string, nullable — Full name of the access system user.
            - `phone_number` string, nullable — Phone number of the access system user.
        - object — Seam is in the process of pushing an access schedule update to the integrated access system.
          - `created_at` string, date-time, required — Date and time at which the mutation was created.
          - `from` object, required — Old access schedule information.
            - `ends_at` string, date-time, nullable, required — Starting time for the access schedule.
            - `starts_at` string, date-time, nullable, required — Starting time for the access schedule.
          - `message` string, required — Detailed description of the mutation.
          - `mutation_code` 'updating_access_schedule', required — Mutation code to indicate that Seam is in the process of pushing updated access schedule information to the integrated access system.
          - `to` object, required — New access schedule information.
            - `ends_at` string, date-time, nullable, required — Starting time for the access schedule.
            - `starts_at` string, date-time, nullable, required — Starting time for the access schedule.
        - object — Seam is in the process of pushing a suspension state update to the integrated access system.
          - `created_at` string, date-time, required — Date and time at which the mutation was created.
          - `from` object, required — Old user suspension state information.
            - `is_suspended` boolean, required
          - `message` string, required — Detailed description of the mutation.
          - `mutation_code` 'updating_suspension_state', required — Mutation code to indicate that Seam is in the process of pushing updated user suspension state information to the integrated access system.
          - `to` object, required — New user suspension state information.
            - `is_suspended` boolean, required
        - object — Seam is in the process of pushing an access group membership update to the integrated access system.
          - `created_at` string, date-time, required — Date and time at which the mutation was created.
          - `from` object, required — Old access group membership.
            - `acs_access_group_id` string, uuid, nullable, required — Old access group ID.
          - `message` string, required — Detailed description of the mutation.
          - `mutation_code` 'updating_group_membership', required — Mutation code to indicate that Seam is in the process of pushing updated access group membership information to the integrated access system.
          - `to` object, required — New access group membership.
            - `acs_access_group_id` string, uuid, nullable, required — New access group ID.
        - object — A scheduled access group membership change is pending for this user.
          - `acs_access_group_id` string, uuid, required — ID of the access group involved in the scheduled change.
          - `created_at` string, date-time, required — Date and time at which the mutation was created.
          - `message` string, required — Detailed description of the mutation.
          - `mutation_code` 'deferring_group_membership_update', required — Mutation code to indicate that a scheduled access group membership change is pending for this user.
          - `variant` 'adding' | 'removing', required — Whether the user is scheduled to be added to or removed from the access group.
        - object — Seam is in the process of assigning or unassigning a credential to the user on the integrated access system.
          - `created_at` string, date-time, required — Date and time at which the mutation was created.
          - `from` object, required — Previous credential assignment.
            - `acs_credential_id` string, uuid, nullable, required — Previous credential ID.
          - `message` string, required — Detailed description of the mutation.
          - `mutation_code` 'updating_credential_assignment', required — Mutation code to indicate that Seam is in the process of assigning or unassigning a credential to the user on the integrated access system.
          - `to` object, required — New credential assignment.
            - `acs_credential_id` string, uuid, nullable, required — New credential ID.
    - `phone_number` string — Phone number of the [access system user](/low-level-apis/access-systems/user-management) in E.164 format (for example, `+15555550100`).
    - `salto_space_metadata` object — Salto Space-specific metadata associated with the [access system user](/low-level-apis/access-systems/user-management).
      - `audit_openings` boolean — Indicates whether AuditOpenings is enabled for the user in the Salto Space access system.
      - `user_id` string — User ID in the Salto Space access system.
    - `user_identity_email_address` string, nullable — Email address of the user identity associated with the [access system user](/low-level-apis/access-systems/user-management).
    - `user_identity_full_name` string, nullable — Full name of the user identity associated with the [access system user](/low-level-apis/access-systems/user-management).
    - `user_identity_id` string — ID of the user identity associated with the [access system user](/low-level-apis/access-systems/user-management).
    - `user_identity_phone_number` string, nullable — Phone number of the user identity associated with the [access system user](/low-level-apis/access-systems/user-management) in E.164 format (for example, `+15555550100`).
    - `warnings` union[], required — Warnings associated with the [access system user](/low-level-apis/access-systems/user-management).
      - union — Warnings associated with the [access system user](/low-level-apis/access-systems/user-management).
        - object — Indicates that the [access system user](/low-level-apis/access-systems/user-management) is being deleted from the [access system](/low-level-apis/access-systems). This is a temporary state, and the access system user will be deleted shortly.
          - `created_at` string, date-time, required — Date and time at which Seam created the warning.
          - `message` string, required — Detailed description of the warning. Provides insights into the issue and potentially how to rectify it.
          - `warning_code` 'being_deleted', required
        - object — Indicates that the [access system user](/low-level-apis/access-systems/user-management) is not subscribed on Salto KS, so they cannot unlock doors or perform any actions. This occurs when the their access schedule hasn’t started yet, if their access schedule has ended, if the site has reached its limit for active users (subscription slots), or if they have been manually unsubscribed.
          - `created_at` string, date-time, required — Date and time at which Seam created the warning.
          - `message` string, required — Detailed description of the warning. Provides insights into the issue and potentially how to rectify it.
          - `warning_code` 'salto_ks_user_not_subscribed', required
        - object — An unknown issue occurred while syncing the state of this [access system user](/low-level-apis/access-systems/user-management) with the provider. This issue may affect the proper functioning of this user.
          - `created_at` string, date-time, required — Date and time at which Seam created the warning.
          - `message` string, required — Detailed description of the warning. Provides insights into the issue and potentially how to rectify it.
          - `warning_code` 'unknown_issue_with_acs_user', required
        - object — Indicates that the [access system user](/low-level-apis/access-systems/user-management) was created on Latch Mission Control. Please use the Latch Mission Control to manage this user.
          - `created_at` string, date-time, required — Date and time at which Seam created the warning.
          - `message` string, required — Detailed description of the warning. Provides insights into the issue and potentially how to rectify it.
          - `warning_code` 'latch_resident_user', required
    - `workspace_id` string, uuid, required — ID of the workspace that contains the [access system user](/low-level-apis/access-systems/user-management).

## Other responses

- `400` — Bad Request
- `401` — Unauthorized

---

[API](https://skmtc.net/seam/apis/seam-connect.md) · [All operations](https://skmtc.net/seam/apis/seam-connect/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/seam/seam-connect/versions/00c35395ce12/schema)
