> ## Documentation Index
> Fetch the complete documentation index at: https://docs.seam.co/llms.txt
> Use this file to discover all available pages before exploring further.

# The Credential Object

> Learn how the acs_credential object represents the means—such as key cards, mobile keys, or PIN codes—by which an access system user gains entry.

## The acs\_credential Object

Means by which an [access control system user](https://docs.seam.co/low-level-apis/access-systems/user-management) gains access at an [entrance](https://docs.seam.co/low-level-apis/access-systems/retrieving-entrance-details). The `acs_credential` object represents a [credential](https://docs.seam.co/low-level-apis/access-systems/managing-credentials) that provides an ACS user access within an [access control system](https://docs.seam.co/low-level-apis/access-systems).

An access control system generally uses digital means of access to authorize a user trying to get through a specific entrance. Examples of credentials include plastic key cards, mobile keys, biometric identifiers, and PIN codes. The electronic nature of these credentials, as well as the fact that access is centralized, enables both the rapid provisioning and rescinding of access and the ability to compile access audit logs.

For each `acs_credential`, you define the access method. You can also specify additional properties, such as a PIN code, depending on the credential type.

For granting a person access to a space, [Access Grants](https://docs.seam.co/use-cases/granting-access) are the default and recommended approach. Use the lower-level ACS credential API directly only when you specifically need to manage individual credentials.

<ResponseExample>
  ```json ACS Card Credential theme={null}
  {
    "access_method": "card",
    "acs_credential_id": "73a0a199-024f-454d-a916-9bbda8502c12",
    "acs_system_id": "b1d03165-2759-474b-a342-e02223f27b39",
    "acs_user_id": "0fc82df4-391b-4d00-a234-86378f1c3952",
    "connected_account_id": "daba7bd0-edb6-4bb9-a70b-f9ae08a0e301",
    "card_number": "164d29dc4a09b65f",
    "created_at": "2025-06-16T16:54:17.946514Z",
    "display_name": "Guest Lock 1, Vingcard Lock 2",
    "ends_at": "2025-07-12T16:54:17.946512Z",
    "errors": [],
    "external_type": "visionline_card",
    "external_type_display_name": "Visionline Card",
    "is_issued": true,
    "is_latest_desired_state_synced_with_provider": true,
    "is_managed": true,
    "is_multi_phone_sync_credential": false,
    "issued_at": "2025-06-16T16:54:17.946512Z",
    "latest_desired_state_synced_with_provider_at": "2025-06-18T16:54:17.946514Z",
    "starts_at": "2025-07-10T16:54:17.946512Z",
    "visionline_metadata": {
      "card_function_type": "guest",
      "card_id": "5",
      "common_acs_entrance_ids": [
        "5f4e3d2c-1b0a-9f8e-7d6c-5b4a3c2d1e0f"
      ],
      "credential_id": "15",
      "guest_acs_entrance_ids": [
        "a1b2c3d4-e5f6-4a3b-2c1d-0e9f8a7b6c5d"
      ],
      "is_valid": true
    },
    "warnings": [],
    "workspace_id": "005f1e54-5360-40db-8c31-4ef6baaad1fd"
  }
  ```

  ```json ACS Mobile Key Credential theme={null}
  {
    "access_method": "mobile_key",
    "acs_credential_id": "73a0a199-024f-454d-a916-9bbda8502c12",
    "acs_system_id": "b1d03165-2759-474b-a342-e02223f27b39",
    "acs_user_id": "0fc82df4-391b-4d00-a234-86378f1c3952",
    "connected_account_id": "1b9a3e0d-443f-4063-b619-4ca7e2a97751",
    "created_at": "2025-06-16T16:54:17.946514Z",
    "display_name": "Front Door",
    "errors": [],
    "is_managed": true,
    "is_multi_phone_sync_credential": true,
    "is_one_time_use": false,
    "warnings": [],
    "workspace_id": "005f1e54-5360-40db-8c31-4ef6baaad1fd"
  }
  ```

  ```json ACS PIN Code Credential theme={null}
  {
    "access_method": "code",
    "acs_credential_id": "73a0a199-024f-454d-a916-9bbda8502c12",
    "acs_system_id": "b1d03165-2759-474b-a342-e02223f27b39",
    "acs_user_id": "0fc82df4-391b-4d00-a234-86378f1c3952",
    "connected_account_id": "1b9a3e0d-443f-4063-b619-4ca7e2a97751",
    "code": "123456",
    "created_at": "2025-06-16T16:54:17.946514Z",
    "display_name": "FRONT_DOOR",
    "errors": [],
    "external_type": "salto_ks_credential",
    "external_type_display_name": "Salto KS Credential",
    "is_latest_desired_state_synced_with_provider": true,
    "is_managed": true,
    "is_multi_phone_sync_credential": false,
    "is_one_time_use": false,
    "latest_desired_state_synced_with_provider_at": "2025-06-18T16:54:17.946514Z",
    "starts_at": "2025-07-10T16:54:17.946512Z",
    "warnings": [],
    "workspace_id": "005f1e54-5360-40db-8c31-4ef6baaad1fd"
  }
  ```
</ResponseExample>

***

## Properties

<ResponseField name="access_method" type="Enum (String)">
  Access method for the [credential](https://docs.seam.co/low-level-apis/access-systems/managing-credentials). Supported values: `code`, `card`, `mobile_key`, `cloud_key`.
</ResponseField>

<ResponseField name="acs_credential_id" type="String (UUID)">
  ID of the [credential](https://docs.seam.co/low-level-apis/access-systems/managing-credentials).
</ResponseField>

<ResponseField name="acs_credential_pool_id" type="String (UUID)">
  The acs credential pool id.
</ResponseField>

<ResponseField name="acs_system_id" type="String (UUID)">
  ID of the [access control system](https://docs.seam.co/low-level-apis/access-systems) that contains the [credential](https://docs.seam.co/low-level-apis/access-systems/managing-credentials).
</ResponseField>

<ResponseField name="acs_user_id" type="String (UUID)">
  ID of the [ACS user](https://docs.seam.co/low-level-apis/access-systems/user-management) to whom the [credential](https://docs.seam.co/low-level-apis/access-systems/managing-credentials) belongs.
</ResponseField>

<ResponseField name="assa_abloy_vostio_metadata" type="Object">
  Vostio-specific metadata for the [credential](https://docs.seam.co/low-level-apis/access-systems/managing-credentials).

  <Expandable title="properties">
    <ResponseField name="auto_join" type="Boolean">
      Indicates whether the credential should auto-join. For an auto-join credential, Seam automatically issues an override card if there are no other cards and a joiner card if there are existing cards on the doors.
    </ResponseField>

    <ResponseField name="door_names" type="Array">
      Names of the doors to which to grant access in the Vostio access system.
    </ResponseField>

    <ResponseField name="endpoint_id" type="String">
      Endpoint ID in the Vostio access system.
    </ResponseField>

    <ResponseField name="key_id" type="String">
      Key ID in the Vostio access system.
    </ResponseField>

    <ResponseField name="key_issuing_request_id" type="String">
      Key issuing request ID in the Vostio access system.
    </ResponseField>

    <ResponseField name="override_guest_acs_entrance_ids" type="Array">
      IDs of the guest entrances to override in the Vostio access system.
    </ResponseField>
  </Expandable>
</ResponseField>

<ResponseField name="card_number" type="String">
  Number of the card associated with the [credential](https://docs.seam.co/low-level-apis/access-systems/managing-credentials).
</ResponseField>

<ResponseField name="code" type="String">
  Access (PIN) code for the [credential](https://docs.seam.co/low-level-apis/access-systems/managing-credentials).
</ResponseField>

<ResponseField name="connected_account_id" type="String (UUID)">
  ID of the [connected account](https://docs.seam.co/low-level-apis/access-systems/managing-credentials#connected-accounts) to which the [credential](https://docs.seam.co/low-level-apis/access-systems/managing-credentials) belongs.
</ResponseField>

<ResponseField name="created_at" type="String (ISO 8601)">
  Date and time at which the [credential](https://docs.seam.co/low-level-apis/access-systems/managing-credentials) was created.
</ResponseField>

<ResponseField name="display_name" type="String">
  Display name that corresponds to the [credential](https://docs.seam.co/low-level-apis/access-systems/managing-credentials) type.
</ResponseField>

<ResponseField name="ends_at" type="String">
  Date and time at which the [credential](https://docs.seam.co/low-level-apis/access-systems/managing-credentials) validity ends, in [ISO 8601](https://www.iso.org/iso-8601-date-and-time-format.html) format. Must be a time in the future and after `starts_at`.
</ResponseField>

<ResponseField name="errors" type="Array">
  Errors associated with the [credential](https://docs.seam.co/low-level-apis/access-systems/managing-credentials).
</ResponseField>

<ResponseField name="external_type" type="Enum (String)">
  Brand-specific terminology for the [credential](https://docs.seam.co/low-level-apis/access-systems/managing-credentials) type. Supported values: `pti_card`, `brivo_credential`, `hid_credential`, `visionline_card`.
</ResponseField>

<ResponseField name="external_type_display_name" type="String">
  Display name that corresponds to the brand-specific terminology for the [credential](https://docs.seam.co/low-level-apis/access-systems/managing-credentials) type.
</ResponseField>

<ResponseField name="is_issued" type="Boolean">
  Indicates whether the [credential](https://docs.seam.co/low-level-apis/access-systems/managing-credentials) has been encoded onto a card.
</ResponseField>

<ResponseField name="is_latest_desired_state_synced_with_provider" type="Boolean">
  Indicates whether the latest state of the [credential](https://docs.seam.co/low-level-apis/access-systems/managing-credentials) has been synced from Seam to the provider.
</ResponseField>

<ResponseField name="is_managed" type="Boolean">
  The is managed.
</ResponseField>

<ResponseField name="is_multi_phone_sync_credential" type="Boolean">
  Indicates whether the [credential](https://docs.seam.co/low-level-apis/access-systems/managing-credentials) is a [multi-phone sync credential](https://docs.seam.co/capability-guides/mobile-access/issuing-mobile-credentials-from-an-access-control-system#what-are-multi-phone-sync-credentials).
</ResponseField>

<ResponseField name="is_one_time_use" type="Boolean">
  Indicates whether the [credential](https://docs.seam.co/low-level-apis/access-systems/managing-credentials) can only be used once. If `true`, the code becomes invalid after the first use.
</ResponseField>

<ResponseField name="issued_at" type="String (ISO 8601)">
  Date and time at which the [credential](https://docs.seam.co/low-level-apis/access-systems/managing-credentials) was encoded onto a card.
</ResponseField>

<ResponseField name="latest_desired_state_synced_with_provider_at" type="String (ISO 8601)">
  Date and time at which the state of the [credential](https://docs.seam.co/low-level-apis/access-systems/managing-credentials) was most recently synced from Seam to the provider.
</ResponseField>

<ResponseField name="parent_acs_credential_id" type="String (UUID)">
  ID of the parent [credential](https://docs.seam.co/low-level-apis/access-systems/managing-credentials).
</ResponseField>

<ResponseField name="starts_at" type="String">
  Date and time at which the [credential](https://docs.seam.co/low-level-apis/access-systems/managing-credentials) validity starts, in [ISO 8601](https://www.iso.org/iso-8601-date-and-time-format.html) format.
</ResponseField>

<ResponseField name="user_identity_id" type="String (UUID)">
  ID of the [user identity](https://docs.seam.co/api/user_identities/object) to whom the [credential](https://docs.seam.co/low-level-apis/access-systems/managing-credentials) belongs.
</ResponseField>

<ResponseField name="visionline_metadata" type="Object">
  Visionline-specific metadata for the [credential](https://docs.seam.co/low-level-apis/access-systems/managing-credentials).

  <Expandable title="properties">
    <ResponseField name="auto_join" type="Boolean">
      Indicates whether the credential should auto-join. For an auto-join credential, Seam automatically issues an override card if there are no other cards and a joiner card if there are existing cards on the doors.
    </ResponseField>

    <ResponseField name="card_function_type" type="Enum (String)">
      Card function type in the Visionline access system.
    </ResponseField>

    <ResponseField name="card_id" type="String">
      ID of the card in the Visionline access system.
    </ResponseField>

    <ResponseField name="common_acs_entrance_ids" type="Array">
      Common entrance IDs in the Visionline access system.
    </ResponseField>

    <ResponseField name="credential_id" type="String">
      ID of the credential in the Visionline access system.
    </ResponseField>

    <ResponseField name="guest_acs_entrance_ids" type="Array">
      Guest entrance IDs in the Visionline access system.
    </ResponseField>

    <ResponseField name="is_valid" type="Boolean">
      Indicates whether the credential is valid.
    </ResponseField>

    <ResponseField name="joiner_acs_credential_ids" type="Array">
      IDs of the credentials to which you want to join.
    </ResponseField>
  </Expandable>
</ResponseField>

<ResponseField name="warnings" type="Array">
  Warnings associated with the [credential](https://docs.seam.co/low-level-apis/access-systems/managing-credentials).
</ResponseField>

<ResponseField name="workspace_id" type="String (UUID)">
  ID of the [workspace](https://docs.seam.co/core-concepts/workspaces) that contains the [credential](https://docs.seam.co/low-level-apis/access-systems/managing-credentials).
</ResponseField>
