Understanding Oracode offline access codes
Offline access codes are PIN codes generated by Seam that work on the lock without an internet connection. Dormakaba maintains a server-based registry of synchronized encryption keys that enable these codes to work offline. Once generated, you can share these codes with guests through messaging or your property management system—guests don’t need to install any special app to unlock the door.Before you create codes
Time slot requirements (Required)
Dormakaba Oracode locks require predefined time slots (also called “user levels”) to create access codes. You cannot create codes with arbitrary check-in/check-out times. What are time slots? Time slots define check-in and check-out times of day that are pre-configured by your Dormakaba installer. For example, a “4:00 PM → 10:00 AM” slot can be used for any booking that checks in at 4:00 PM and checks out at 10:00 AM, regardless of how many nights the guest stays. How Seam matches your bookings: When you create an access code, Seam automatically rounds your booking times (within 1 hour) to match an available time slot. The access code will use the time slot’s times, not your exact booking times. Example:- Your booking: 3:45 PM → 10:15 AM
- Available slot: 4:00 PM → 10:00 AM
- Result: Code created for 4:00 PM → 10:00 AM ✓
Retrieving available time slots
Before creating access codes, check which time slots are configured for your device:- JavaScript
- Python
15:30:00-08:00[America/Los_Angeles]
15:30:00- Hour and minute (3:30 PM)-08:00- UTC offset[America/Los_Angeles]- IANA timezone
name: Display name (e.g., “Guest Standard 4pm-10am”)check_in_time: Check-in time in TOD formatcheck_out_time: Check-out time in TOD formatis_24_hour: Whether this is a daily-bound slotis_biweekly_mode: Whether this uses biweekly schedulingis_one_shot: Whether code expires after first use (not currently supported)is_master: Whether this provides master access (not currently supported)
Other important limitations
Duration limit: Access codes can be valid for a maximum of 31 consecutive days. Cannot be updated or deleted: Dormakaba Oracode access codes cannot be modified after creation. Be mindful of device-specific code limits when creating large numbers of codes. Time zone considerations: All times must be in the lock’s local time zone. When creating codes, use the time and offset that match the lock’s configured time zone (e.g.,2024-09-10T16:00:00-07:00 for Pacific time).
View device timezone:
Creating hourly-bound access codes
Hourly-bound codes let you specify exact check-in and check-out times (within the constraints of available time slots).Step 1: Create the access code
Provide thedevice_id, set is_offline_access_code to true, and specify starts_at and ends_at timestamps. Make sure these times match a configured time slot on the device (within 1 hour tolerance).
Python example:
Step 2: Verify the code was set
Access codes go through three lifecycle phases:- Unset: Code created but not yet active
- Setting: Seam is registering the code with Dormakaba’s server
- Set: Code is ready to use
access_code.set_on_device webhook events to receive notifications when codes are ready.
Creating daily-bound access codes
Daily-bound codes are useful when you need day-level granularity and want more flexible rounding.Step 1: Create the access code
For daily-bound codes, specify the same time (but different dates) instarts_at and ends_at. You can also set max_time_rounding to 1day to allow Seam to round up to a full day to match available slots.
- JavaScript
- Python
Step 2: Verify the code was set
Use the same polling or webhook methods as hourly-bound codes to confirm the code is ready.Troubleshooting
“No time slots found” error This means your booking times don’t match any configured time slot within the 1-hour tolerance. Check what’s configured:- Adjust your booking times to be within 1 hour of an available slot
- Contact your Dormakaba installer to add time slots matching your booking patterns
- Time slots are configured for the door
- Booking times are within 1 hour of a configured slot
- The device supports offline access codes (
can_program_offline_access_codesistrue)
Best practices
Always check for time slots first: Before attempting to create codes, verify that time slots are configured on the device. Plan your time slots carefully: Work with your installer to configure time slots that match your most common booking patterns. Include a 24-hour slot (12:00 PM → 12:00 PM) for maximum flexibility. Test before going live: After your installer configures time slots, wait 30 minutes for Seam to sync, then create test codes to verify everything works. Monitor code limits: Since codes cannot be deleted, be aware of your device’s code limit to avoid reaching capacity. Use consistent naming: Include meaningful names for codes (e.g., “Guest - Room 101 - Sept 10-15”) to help with tracking and troubleshooting.Need help?
- For time slot configuration: Contact your Dormakaba installer
- For Seam API questions: support@getseam.com
- For detailed time slot guidance: See our Time Slot Configuration Guide

