Get started with dormakaba Oracode Locks

Learn how to connect and control your dormakaba Oracode 480 and 660 locks with the Seam API.


Seam provides a universal API to connect and control many brands of locks. This guide provides a rapid introduction to connecting and controlling your dormakaba Oracode locks using the Seam API. To learn more about other device brands supported by the Seam API, such as Yale, Schlage, and August, head over to our integration page.

Note that dormakaba offers multiple lines of products, including Lyazon, Sapphire, Oracode, and more. This guide is specifically for dormakaba Oracode.

1 — Install the Seam SDK

Seam provides client libraries for many languages, such as JavaScript, Python, Ruby, PHP, and others, as well as a Postman collection and OpenAPI spec.

npm i seam

Once installed, sign-up for Seam to get your API key, and export it as an environment variable:

$ export SEAM_API_KEY=seam_test2ZTo_0mEYQW2TvNDCxG5Atpj85Ffw

This guide uses a sandbox workspace. You can only connect virtual devices to a sandbox workspace. If you need to connect real Oracode devices, use a non-sandbox workspace and API key.

To control your dormakaba Oracode locks using the Seam API, the owner or manager of these locks must first authorize your Seam workspace to access their dormakaba Oracode account. To do so, Seam provides Connect Webviews, which are pre-built UX flows that walk the device owner or manager through authorizing your application to control Oracode locks.

This guide discusses using a Seam sandbox workspace with virtual devices. However, to connect real devices to Seam, some manufacturers may require additional prerequisite setup steps. For dormakaba Oracode-specific instructions, see the dormakaba Oracode device integration guide.

Request a Connect Webview

from seamapi import Seam

seam = Seam()

webview = seam.connect_webviews.create(accepted_providers=["dormakaba_oracode"])

assert webview.login_successful is False

# Send the Connect Webview URL to your user.

Authorize Your Workspace

Navigate to the URL that the Connect Webview object returned. Because you are using a sandbox workspace, complete the login flow by entering the following dormakaba Oracode sandbox test account credentials:

  • username: jane

  • password: 1234

Confirm the Connect Webview was successful by querying the status.

updated_webview = seam.connect_webviews.get(webview.connect_webview_id)

assert updated_webview.login_successful # true

3 — Retrieve dormakaba Oracode Devices

After a dormakaba Oracode account is linked with Seam, you can retrieve the connected devices.

all_locks = seam.locks.list()

some_lock = all_locks[0]

assert["battery_level"] is True


4 — Programming Access Codes on a dormakaba Oracode Lock

The Seam API enables you to create access codes on dormakaba Oracode devices, such as the 480i and 660i locks. Users can then enter these codes to unlock the door. To learn more, see Managing Access Codes.

dormakaba Oracode does not let you specify a code for an access code. Instead it auto-generates a six-digit code, which the Seam API returns. If you try to pass the code argument to the access code create function, the Seam API returns an error.

# Create an ongoing code.
  name="Personal Access Code")

# Create a time-bound code.
  name="My Temp Access Code",

# You can use a device or a device_id as the `device` parameter.

# [
#   AccessCode(access_code_id='631a3a30-3fa7-462a-b3bc-65528ccf8765', type='time_bound', code=None, starts_at='2028-08-12T19:24:00.000Z', ends_at='2028-08-13T19:24:00.000Z', name='My Temp Access Code', status='unset', common_code_key=None),
#  AccessCode(access_code_id='4d2f4952-5446-4051-ba7e-a6fc01a376d7', type='ongoing', code='123*12346', starts_at=None, ends_at=None, name='Personal Access Code', status='set', common_code_key=None)
#  ]

Next Steps

Now that you've completed this guide, you can try to connect a real dormakaba Oracode device. To do so, make sure to switch to a non-sandbox workspace and API key because you cannot connect real devices to sandbox workspaces.

In addition, if you'd like to explore other aspects of Seam, check out the following helpful resources:

If you have any questions or want to report an issue, email us at

Last updated


Š Seam Labs, Inc. All rights reserved.