> ## Documentation Index
> Fetch the complete documentation index at: https://seam-feat-mintlify-migration-iteration.mintlify.site/llms.txt
> Use this file to discover all available pages before exploring further.

# Delivering Access Methods

> Learn how to deliver key cards, PIN codes, mobile keys, and Instant Keys to your users.

The `access_method.is_issued` property and event let you know when an access method is ready to deliver to your user. Once an access method is ready to deliver, retrieve the access method by ID. Remember, the returned Access Grant includes the IDs of all the requested access methods. Then, deliver the access method to your user. The delivery mechanism varies for different access method modes.

<Info>
  If you've created an Access Grant that includes a mobile key, the Access Grant
  also contains the corresponding Instant Key URL, for added efficiency. In this
  case, you do not need to retrieve the access method. Instead, you can identify
  the Instant Key URL directly from the returned Access Grant.
</Info>

This topic describes how to deliver the various access method modes.

***

## PIN Codes

You can retrieve the access method by ID. The returned access method resource includes the `code` that you can share with your user.

<Tabs>
  <Tab title="JavaScript">
    **Code:**

    ```javascript theme={null}
    await seam.accessMethods.get({
      access_method_id: 'f47ac10b-58cc-4372-a567-0e02b2c3d479',
    })
    ```

    **Output:**

    ```json theme={null}
    {
      "access_method_id": "f47ac10b-58cc-4372-a567-0e02b2c3d479",
      "display_name": "PIN Code",
      "mode": "code",
      "created_at": "2025-06-16T16:54:19.946606Z",
      "is_issued": true,
      "issued_at": "2025-06-16T16:55:03.924353Z",
      "code": "1234",
      ...
    }
    ```
  </Tab>

  <Tab title="cURL">
    **Code:**

    ```bash theme={null}
    curl -X 'POST' \
      'https://connect.getseam.com/access_methods/get' \
      -H 'accept: application/json' \
      -H "Authorization: Bearer ${SEAM_API_KEY}" \
      -H 'Content-Type: application/json' \
      -d '{
      "access_method_id": "f47ac10b-58cc-4372-a567-0e02b2c3d479"
    }'
    ```

    **Output:**

    ```json theme={null}
    {
      "access_method": {
        "access_method_id": "f47ac10b-58cc-4372-a567-0e02b2c3d479",
        "display_name": "PIN Code",
        "mode": "code",
        "created_at": "2025-06-16T16:54:19.946606Z",
        "is_issued": true,
        "issued_at": "2025-06-16T16:55:03.924353Z",
        "code": "1234",
        ...
      },
      "ok": true
    }
    ```
  </Tab>

  <Tab title="Python">
    **Code:**

    ```python theme={null}
    seam.access_methods.get(
      access_method_id = "f47ac10b-58cc-4372-a567-0e02b2c3d479"
    )
    ```

    **Output:**

    ```
    AccessMethod(
      access_method_id="f47ac10b-58cc-4372-a567-0e02b2c3d479",
      display_name="PIN Code",
      mode="code",
      created_at="2025-06-16T16:54:19.946606Z",
      is_issued=true,
      issued_at="2025-06-16T16:55:03.924353Z",
      code="1234",
      ...
    )
    ```
  </Tab>

  <Tab title="Ruby">
    **Code:**

    ```ruby theme={null}
    seam.access_methods.get(
      access_method_id: "f47ac10b-58cc-4372-a567-0e02b2c3d479"
    )
    ```

    **Output:**

    ```
    {
      "access_method_id" => "f47ac10b-58cc-4372-a567-0e02b2c3d479",
      "display_name" => "PIN Code",
      "mode" => "code",
      "created_at" => "2025-06-16T16:54:19.946606Z",
      "is_issued" => true,
      "issued_at" => "2025-06-16T16:55:03.924353Z",
      "code" => "1234",
      ...
    }
    ```
  </Tab>

  <Tab title="PHP">
    **Code:**

    ```php theme={null}
    $seam->access_methods->get(
      access_method_id: "f47ac10b-58cc-4372-a567-0e02b2c3d479"
    );
    ```

    **Output:**

    ```json theme={null}
    [
      "access_method_id" => "f47ac10b-58cc-4372-a567-0e02b2c3d479",
      "display_name" => "PIN Code",
      "mode" => "code",
      "created_at" => "2025-06-16T16:54:19.946606Z",
      "is_issued" => true,
      "issued_at" => "2025-06-16T16:55:03.924353Z",
      "code" => "1234",
      ...
    ];
    ```
  </Tab>

  <Tab title="C#">
    **Code:**

    ```csharp theme={null}
    // Coming Soon!
    ```

    **Output:**

    ```json theme={null}
    // Coming Soon!
    ```
  </Tab>
</Tabs>

***

## Plastic Key Cards

Some access systems require you to encode plastic key cards. In this case, the access method's `is_encoding_required` property is `true`. You can use the Seam API or Seam Console to encode and scan the cards. For details, see [Working with Card Encoders and Scanners](/low-level-apis/access-systems/working-with-card-encoders-and-scanners/index).

Once you've encoded the card, the access method's `is_encoding_required` property changes to `false`, and its `is_issued` property changes to `true`. The card is ready to be delivered to your user.

***

## Mobile Keys

You deliver a mobile key to your user within your own mobile app that you develop using the Seam mobile SDKs. For mobile keys, the access method includes a `client_session_id` property that you can use to identify the client session and client session token that you need to initialize the Seam client on your user's mobile device. Then, your user simply taps a button in your app to unlock the door. For details, see [Mobile Access](/capability-guides/mobile-access/index).

<Tabs>
  <Tab title="JavaScript">
    **Code:**

    ```javascript theme={null}
    await seam.accessMethods.get({
      access_method_id: '6ba7b810-9dad-11d1-80b4-00c04fd430c8',
    })
    ```

    **Output:**

    ```json theme={null}
    {
      "access_method_id": "6ba7b810-9dad-11d1-80b4-00c04fd430c8",
      "display_name": "Mobile Key",
      "mode": "mobile_key",
      "created_at": "2025-06-16T16:54:19.946606Z",
      "is_issued": true,
      "issued_at": "2025-06-16T16:55:03.924353Z",
      "client_session_id": "3f2504e0-4f89-11d3-9a0c-0305e82c3301",
      "instant_key_url": "https://ik.seam.co/ABCXYZ",
      ...
    }
    ```
  </Tab>

  <Tab title="cURL">
    **Code:**

    ```bash theme={null}
    curl -X 'POST' \
      'https://connect.getseam.com/access_methods/get' \
      -H 'accept: application/json' \
      -H "Authorization: Bearer ${SEAM_API_KEY}" \
      -H 'Content-Type: application/json' \
      -d '{
      "access_method_id": "6ba7b810-9dad-11d1-80b4-00c04fd430c8"
    }'
    ```

    **Output:**

    ```json theme={null}
    {
      "access_method": {
        "access_method_id": "6ba7b810-9dad-11d1-80b4-00c04fd430c8",
        "display_name": "Mobile Key",
        "mode": "mobile_key",
        "created_at": "2025-06-16T16:54:19.946606Z",
        "is_issued": true,
        "issued_at": "2025-06-16T16:55:03.924353Z",
        "client_session_id": "3f2504e0-4f89-11d3-9a0c-0305e82c3301",
        "instant_key_url": "https://ik.seam.co/ABCXYZ",
        ...
      },
      "ok": true
    }
    ```
  </Tab>

  <Tab title="Python">
    **Code:**

    ```python theme={null}
    seam.access_methods.get(
      access_method_id = "6ba7b810-9dad-11d1-80b4-00c04fd430c8"
    )
    ```

    **Output:**

    ```
    AccessMethod(
      access_method_id="6ba7b810-9dad-11d1-80b4-00c04fd430c8",
      display_name="Mobile Key",
      mode="mobile_key",
      created_at="2025-06-16T16:54:19.946606Z",
      is_issued=true,
      issued_at="2025-06-16T16:55:03.924353Z",
      client_session_id="3f2504e0-4f89-11d3-9a0c-0305e82c3301",
      instant_key_url="https://ik.seam.co/ABCXYZ",
      ...
    )
    ```
  </Tab>

  <Tab title="Ruby">
    **Code:**

    ```ruby theme={null}
    seam.access_methods.get(
      access_method_id: "6ba7b810-9dad-11d1-80b4-00c04fd430c8"
    )
    ```

    **Output:**

    ```
    {
      "access_method_id" => "6ba7b810-9dad-11d1-80b4-00c04fd430c8",
      "display_name" => "Mobile Key",
      "mode" => "mobile_key",
      "created_at" => "2025-06-16T16:54:19.946606Z",
      "is_issued" => true,
      "issued_at" => "2025-06-16T16:55:03.924353Z",
      "client_session_id" => "3f2504e0-4f89-11d3-9a0c-0305e82c3301",
      "instant_key_url" => "https://ik.seam.co/ABCXYZ",
      ...
    }
    ```
  </Tab>

  <Tab title="PHP">
    **Code:**

    ```php theme={null}
    $seam->access_methods->get(
      access_method_id: "6ba7b810-9dad-11d1-80b4-00c04fd430c8"
    );
    ```

    **Output:**

    ```json theme={null}
    [
      "access_method_id" => "6ba7b810-9dad-11d1-80b4-00c04fd430c8",
      "display_name" => "Mobile Key",
      "mode" => "mobile_key",
      "created_at" => "2025-06-16T16:54:19.946606Z",
      "is_issued" => true,
      "issued_at" => "2025-06-16T16:55:03.924353Z",
      "client_session_id" => "3f2504e0-4f89-11d3-9a0c-0305e82c3301",
      "instant_key_url" => "https://ik.seam.co/ABCXYZ",
      ...
    ];
    ```
  </Tab>

  <Tab title="C#">
    **Code:**

    ```csharp theme={null}
    // Coming Soon!
    ```

    **Output:**

    ```json theme={null}
    // Coming Soon!
    ```
  </Tab>
</Tabs>

***

## Instant Keys

Each mobile key that you create also includes an Instant Key. Seam Instant Keys are the most streamlined mobile access experience available today. Both the Access Grant and the mobile key access method include the `instant_key_url` property. You deliver this URL to your user by sending it through text or email. No app download is required. You can also embed an Instant Key in your own app. For details, see [Instant Keys](/capability-guides/instant-keys/index) and [Delivering Instant Keys](../../capability-guides/instant-keys/delivering-instant-keys).

***

## Cloud Keys

Cloud keys provide a web-based unlock experience. Your user opens a web pass or taps an unlock button in your app, and the door unlocks over the internet through the ACS cloud connection. Each unlock is attributed to the specific user identity in the ACS audit trail — not recorded as a generic system action.

To unlock an entrance on behalf of a user, call `/access_methods/unlock_door` with the cloud key `access_method_id` and the `acs_entrance_id`.

For the complete workflow — including verifying entrance support and creating an Access Grant with a cloud key — see [Using Cloud Keys](/use-cases/granting-access/using-cloud-keys).
