Learn how to connect and control your dormakaba Oracode 480 and 660 locks with the Seam API.
Overview
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.
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.
2 — Link Your dormakaba Oracode Account with Seam
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 seam import Seamseam =Seam()webview = seam.connect_webviews.create(accepted_providers=["dormakaba_oracode"])assert webview.login_successful isFalse# Send the Connect Webview URL to your user.print(webview.url)
import { Seam } from'seam'constseam=newSeam()const { connect_webview: connectWebview } =awaitseam.connectWebviews.create({ accepted_providers: ['dormakaba_oracode'],})console.log(connectWebview.login_successful) // false// Send the Connect Webview URL to your user.console.log(connectWebview.url)
require'seamapi'seam =Seam::Client.new(api_key: 'MY_API_KEY')webview = seam.connect_webviews.create(accepted_providers: %w[dormakaba_oracode])puts webview.login_successful # false# Send the Connect Webview URL to your user.puts webview.url
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.
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.seam.access_codes.create( device=some_lock, name="Personal Access Code")# Create a time-bound code.seam.access_codes.create( device=some_lock, name="My Temp Access Code", starts_at="2028-08-12T19:23:42+0000", ends_at="2028-08-13T19:23:42+0000")# You can use a device or a device_id as the `device` parameter.seam.access_codes.list(device=some_lock)# [# 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)
# ]
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: