Every stay has one door code as far as the guest is concerned, and Haven delivers it the same way whichever way you produce it: in the guest's guide, and in its own Door code email and text, separate from the check-in instructions. This article covers where a code can come from, when the guest receives it, and how to connect a smart lock so Haven issues codes for you.
Haven looks for a stay's code in this order and uses the first it finds:
When a stay has none of those, guests see the listing's own check-in details —
the Keypad code, Lockbox details, or Gate or community code you
typed under Edit Listing → Arrival → Check-in steps. Those fields accept the same
shortcodes as emails ({guest_phone_last4}, a PMS {gate_code}, and so on),
so a listing-level keypad can still be “the last four of this guest's phone.”
A fixed number that never changes from guest to guest is still the right
thing to type when that is how the lock works.
Codes follow the listing's arrival details window. Under Edit Listing → Arrival → Guest portal access, When arrival details appear sets how early a guest can see Wi-Fi, entry codes, and directions (default 1 day; 0 means the morning of check-in). Everything that shows a code respects it:
The Door code message lives under Communication → Booking messages → Door code, where you can edit its heading and message and switch on its text, WhatsApp, and PMS thread legs. The PMS thread leg posts into the guest's booking conversation (Airbnb, Vrbo, and so on, through your PMS) — for a synced guest whose email the PMS never supplied, it is the channel that still reaches them. Its message links the guest's guide, which always shows the current code, rather than pasting the code into the OTA thread.
Use this when the code is specific to a stay but not coming from a lock Haven controls — you made it in the lock's own app, a homeowner texted it to you, a lockbox was re-set for this guest.
{guest_phone_last4} from the Shortcodes pill — and,
optionally, a label the guest reads above it (“Front door keypad”,
“Lockbox on the railing”).A shortcode is stored as the template, not a snapshot. When this guest's phone
is on the stay, {guest_phone_last4} becomes those four digits in the guide
and the Door code email. If the stay has no number yet, the card keeps the
token and guests are not shown or emailed a code until it resolves — Haven
does not invent one.
The card then shows the code, where it came from, and its delivery status — Scheduled for … when the window has not opened yet, Sent … once the email went out. Send to guest now sends it immediately regardless of the window (and Send again re-sends a code that already went). Replace overwrites the code; a replaced code is sent again on the same rules. Remove takes it off the stay, cancels an unsent email, and the guest falls back to the listing's check-in details.
A code entered here wins over a smart-lock or PMS code for the same stay. It never changes anything on a physical lock — it tells the guest what you already set up.
If the listing is synced from a PMS that manages guest codes — Guesty Locks Manager, Hospitable smart locks, Lodgify key codes, OwnerRez door codes — Haven reads the code the PMS assigned to each reservation and treats it like any other: it appears in the guide, the Door code email follows the arrival details window, and the reservation's Door code card shows it as From your PMS. When the PMS rotates or removes the code, Haven follows on its next sync; a new code is sent again.
Two things decide whether Haven can email a synced guest at all. The PMS has to give Haven the guest's email (the reservation's Door code card says No guest email on this stay yet when it has not), and the stay has to be opted into Haven's guest experience — turn on Auto-send the guide under OTA guests on Edit Listing → Arrival → Guest portal access, or simply save or send a code on the reservation, which opts that stay in. Without the opt-in, PMS codes still show in the guide but are not emailed automatically.
When the PMS supplies no guest email at all, switch on the PMS thread leg of the Door code message (Communication → Booking messages → Door code): Haven posts the message into the guest's booking conversation instead, on the same reveal schedule.
If a PMS code is not appearing, check that the PMS actually holds one for that reservation (for Guesty, this requires the Locks Manager add-on) and that the connection under Integrations is healthy.
Hospitable's reservation API often does not include the door code on the
token Haven uses. Guests can still get Lock / Unlock on guidebook Home
from Hospitable's smart-device API: reconnect Hospitable (so Haven receives
devices:read and devices:write), then under Edit Listing → Smart lock
pick the lock and turn on Let guests lock and unlock from the guidebook.
Those buttons work during the stay even when no door code was mirrored.
Haven connects through Seam (Seam's stable provider catalog). After you sign in, Haven syncs every device on that account that Seam reports as a lock, and you assign one device per listing. Haven does not keep its own brand allowlist — if Seam classifies the device as a lock and it can take a PIN, Haven can provision codes for it.
Haven's guest workflow is a unique keypad PIN per reservation, so the lock needs to support access codes (not only remote lock/unlock).
Common keypad brands on Seam's API (examples, not a guarantee of every model):
| Brand | Seam device type |
|---|---|
| August | august_lock |
| Yale | yale_lock |
| Schlage | schlage_lock |
| igloohome | igloohome_lock |
| Igloo | igloo_lock |
| Kwikset | kwikset_lock |
| Lockly | lockly_lock |
| Nuki | nuki_lock |
| Tedee | tedee_lock |
| Wyze | wyze_lock |
| TTLock | ttlock_lock |
| Ultraloq | ultraloq_lock |
| SmartThings | smartthings_lock |
| Hubitat | hubitat_lock |
| KoreLock | korelock_lock |
| Akiles | akiles_lock |
If your lock appears after Sync and can take a PIN, Haven can provision codes for it. You keep the hardware and the provider account you already have — Haven adds reservation-aware code management on top.
A Z-Wave lock — including most Kwikset SmartCode and Home Connect models — pairs to exactly one hub, and it has no cloud account of its own. If yours is paired to a security panel like Vivint, ADT, or Ring Alarm, no outside service can reach it (Haven, or a PMS): those systems do not offer a public API. That is a property of the panel, not of your Haven or PMS plan.
Your options in that situation:
Access-control panels, intercoms, and garage openers may exist in Seam (Brivo, ButterflyMX, Avigilon Alta, Salto ACS, 2N, Genie, and similar) but they do not run Haven's per-stay keypad workflow. Use a lock from the table above for automated guest PINs.
Thermostats on the same Seam account are set up separately — see Smart Thermostats.
Smart locks are set up per property, on the property's Edit Listing page. Smart locks are available on any paid Haven plan.
Each connected device is $8/month, and that applies to locks and thermostats alike — a property with a lock and a thermostat is two devices, $16/month.
Devices are billed as their own monthly subscription, separate from your plan invoice, the same way mailboxes are. So if you pay for Haven annually, the device charge still arrives monthly on its own cycle.
The quantity follows your device count automatically. Connect a second lock and Stripe prorates the difference onto that cycle right away; remove a lock from your provider account and the charge drops off once Haven next syncs your devices (within a day, or immediately if you click Sync). Devices that need reauthorization still bill, because they are still provisioned. Your current device count and monthly total are on the Smart Devices tab in Settings.
Connecting devices requires a paid Haven plan and a card on file — the card has to be your default payment method, not just attached. If a device charge can't be collected, you get a 7-day grace window. After that the device assignment is suspended: Haven stops issuing and rotating guest codes, and guests stop seeing the code in their guidebook. Codes already programmed at the lock are never revoked, so nobody is locked out mid-stay — and updating your card restores the assignment automatically.
After connecting, choose which device protects this listing:
Each property has its own lock assignment, so multi-unit properties can each map to their own device under one connected account.
Once a lock is assigned, Haven manages codes automatically for confirmed reservations:
You'll see the assigned device, Unlock / Lock, the code start and end settings, and the auto-create toggle in the Smart lock section once a lock is active. The Arrival guide preview shows the same Unlock / Lock pair beside the signed-in row so you can confirm guests will see them. Those preview buttons stay disabled until a real stay is inside the access window.
A listing with an active PMS connection has both routes side by side in the Smart lock section:
If a stay ends up with both, Haven prefers the code it wrote to the device itself; a code you type on the reservation still beats everything. To avoid two codes being provisioned for the same stay, use one route per property: either the PMS's device automation or Haven's direct connection, not both.
Thermostats are different: a PMS connection does not hide the Thermostat section. See Smart Thermostats and the PMS Integrations Overview.
New to Haven?
Haven is the direct booking platform these guides are written for — a branded site, secure payments, and guest relationships you own. Build yours free.
Free to build · No credit card · Private until you publish