This reference lists what Haven currently reads from Lodgify, what Haven writes to Lodgify, which Lodgify webhooks Haven uses, and the important limits of each path.
For connection instructions, see Connect Lodgify to Haven.
Haven reads:
Haven writes:
Booked)Tentative) and inquiries (enquiries)A Lodgify account is identified by its numeric user id (Lodgify has no "who am I" endpoint, so Haven reads it from the availability feed during connect). Each Haven listing maps to one Lodgify room type inside a Lodgify property — the sync key is propertyId:roomTypeId. A Lodgify property with several room types imports as several Haven listings that share address and house-level settings.
Room types with more than one unit currently import with calendar pushes restricted (Haven never writes blocks for a pooled room type); full multi-unit room support is rolling out separately.
is_active)Street address, zip, city, state, country, and coordinates import into the Haven location fields, and Haven composes the display address from those parts (Lodgify sends no pre-formatted one). Lodgify also sends no timezone, so Haven looks the listing's timezone up from the coordinates on the first import — check-in times, calendar days, and message timing then follow the property's real zone instead of a default. Lodgify's "hide address" preference is recorded but Haven's own address-privacy setting governs what guests see.
Lodgify's API does not share house rules text, arrival directions, guest access notes, the Wi-Fi network name or password, neighborhood or getting-around descriptions, or a property type. Those fields stay yours to write in Haven, and the go-live checklist lists them under Lodgify doesn't share these so you can fill them once (or dismiss the ones that don't apply).
Lodgify amenity entries are matched against Haven's amenity vocabulary in two passes: a direct name match first, then a text match through the shared amenity mapper. Amenities Haven can't recognize are recorded for review rather than dropped silently. Room-count entries (bedrooms/bathrooms) are handled as counts, not amenities.
Lodgify exposes these only inside a booking quote, so Haven runs one deterministic quote probe per listing during import and refresh: a quote for the first bookable date at the minimum stay. The quote's cancellation policy text becomes the Haven cancellation policy, and the security deposit becomes Haven's security deposit. If the probe can't run (for example, no bookable date in the window), those fields are simply left unset — never guessed.
From Lodgify rate settings, fixed per-stay fees map onto Haven's named fee slots:
Other fees import as Haven custom fees when their basis maps exactly (fixed per stay, per night, per person, per person per night, or a percentage of the fare). Fees that only apply above a minimum number of nights, or with a basis Haven can't charge identically, are not imported — they're surfaced as sync notices so you can decide how to handle them, because importing them approximately would change what guests pay.
Haven's management fee and community fee can each be set to a flat amount or a percentage of the nightly rate, but a sync always writes a flat amount and resets the field to $. Unlock the fee field if you want to keep Haven's percentage. Your service fee ("keep the margin") is Haven-only and is never touched by a sync — see Your Service Fee (Keep the Margin).
Taxes configured in Lodgify rate settings mirror into Haven tax rules:
Per-person fixed taxes and account VAT are not imported (Haven has no per-person tax calculation; VAT's base is unverified). When a sync refuses a tax, the tax editor (Payouts → Tax rules → Manage) shows a notice naming each row and why, and Sync from Lodgify reports how many rows could not be mirrored, so you can add the tax as a Haven rule if it should apply to direct bookings. Mirrored rules are owned by the sync, and the editor's Sync from Lodgify button re-mirrors them on demand. To change one in Haven, click the Synced from Lodgify pill in the tax editor and choose Edit in Haven: Lodgify then stops updating this listing's taxes until you choose Re-sync from Lodgify, which replaces them with Lodgify's current taxes. See Taxes synced from your PMS. Your own Haven-authored tax rules coexist untouched.
Lodgify promotions that exactly match a Haven discount type import into those fields: a percentage promotion with a 7-night minimum stay becomes the weekly discount, a 30-night minimum becomes the monthly discount, any other minimum stay becomes the trip-length discount, an "early booker" window becomes the early-bird discount, and a "last minute" window becomes the last-minute discount. Anything else — a fixed-amount promotion, one that needs a promo code, one limited to booking or stay dates, one combining several conditions, or a second promotion for a slot Haven only has one of — is reported as a notice on that pricing field rather than approximated, so you can decide whether to set it in Haven.
Lodgify add-ons with a fixed price import as Haven upsells (percentage add-ons are reported, not imported).
From the Lodgify rates calendar:
From rate settings and availability:
Per-night maximum-stay values and multiple rate tiers per day are not modeled in Haven; when Lodgify sends several rate tiers for one day, Haven uses the tier with the lowest minimum stay.
Booked → confirmed reservation (holds dates)Tentative → pending reservation (holds dates; the tentative expiry is recorded)Open (an unconverted enquiry) → pending, holds no dates — matching Lodgify, which keeps those dates bookableDeclined, cancelled, or deleted → cancelled (dates released)Unavailable → an owner block, not a guest reservationEach booking imports with dates, guest breakdown (adults/children/infants/pets), guest name/email/phone, source channel (Airbnb, Booking.com, Vrbo, Expedia, direct, iCal, email), booking timestamps, and financials (total, paid, due, and the quote's line items). Guests are added to your Haven guest CRM. Booking notes in Lodgify are not copied into Haven.
Lodgify closed periods mirror as blocked dates in Haven, labeled "Blocked via Lodgify." Preparation-time buffer days stay unavailable but are never treated as host blocks. Channel iCal blocks from Lodgify's calendar connections mirror as external blocks.
When a guest books on your Haven site:
Booked reservation is created in Lodgify immediatelyTentative reservation holds the dates while you decide. Approving converts it to Booked; declining or expiry frees the datesEach pushed booking carries the stay total Haven charged (Lodgify displays it; Haven's Stripe charge remains the financial source of truth), the guest breakdown, and a booking note ("Booked on Haven") with the reservation details.
A booking request that does not hold dates is created in Lodgify as an Open booking: it leaves the dates bookable, shows the Haven total, and its conversation shows the guest's own message from the request as their message. Haven also attaches a note with the guest count, the guest's real contact details and the price breakdown. Accepting the request flips it to Booked. Only when your Lodgify website has no active subscription — Lodgify then refuses every booking create — does the request arrive as a plain enquiry, and Lodgify's enquiry API has no price fields, so that enquiry shows no Due / Paid / Total and the note is where the amounts live.
Pushed bookings carry a Haven alias email for the guest instead of their real address. Lodgify's automatic guest emails for the booking route back into Haven's inbox rather than double-messaging the guest, and replies you send from Lodgify reach the guest through Haven. The guest's real contact details stay in Haven.
The mirror of a pushed booking coming back over webhooks/polling is recognized as Haven's own and never double-blocks dates or re-notifies you. Blocks Haven wrote to Lodgify are tagged so the return echo is attributed to Haven, not to Lodgify.
When Manage pricing in Haven is enabled for a listing, Haven pushes nightly rates and stay rules to Lodgify (in contiguous ranges, up to the standard 730-day horizon). Independent of pricing:
Room types with multiple units never receive availability writes (rates still push — they're type-level).
Before accepting payment, Haven re-checks the exact stay dates against Lodgify's live availability feed so a booking made moments earlier in Lodgify (or an OTA) can't be double-sold. Lodgify's API also enforces minimum-stay rules on booking creation, which Haven surfaces as a normal availability error.
Connecting imports every Lodgify room type automatically and keeps auto-import on for new ones; remove any you don't want from Your Lodgify properties (turn auto-import off to hand-pick instead). Each import brings content, photos, fees, taxes, rates, availability, and reservations, and runs the quote probe.
A property poll refreshes content, fees, taxes, and settings roughly hourly, and detects room types deleted in Lodgify (their Haven listings are unlisted and flagged, never silently deleted).
Calendar and reservations poll every few minutes as a webhook safety net, over the standard 730-day forward window. The reservation poll also sweeps Lodgify's reservation feed for closed periods webhooks may have missed.
Webhooks (below) deliver most changes within seconds; polling reconciles anything missed. A 15-minute health check re-subscribes any webhook Lodgify has dropped.
Haven subscribes each connection to all ten Lodgify webhook events:
rate_change — refreshes the affected calendaravailability_change — refreshes the affected date range for every mapped room type of the propertybooking_new_any_status, booking_new_status_booked — new bookingsbooking_change — booking modificationsbooking_status_change_booked, booking_status_change_tentative, booking_status_change_open, booking_status_change_declined — status transitions (a declined tentative releases its dates)guest_message_received — new guest messagesEach subscription gets its own Haven endpoint URL with a random routing token, and its own signing secret issued by Lodgify. Every delivery must carry a valid HMAC-SHA256 signature (ms-signature header) or it is rejected. Duplicate deliveries are acknowledged without reprocessing. Transient failures on Haven's side return an error status so Lodgify redelivers (Lodgify retries up to 10 times); permanently unparseable payloads are acknowledged and surfaced to Haven engineering instead of being retried forever.
Disconnecting removes Haven's webhook subscriptions from your Lodgify account and deletes the stored API key.
Fields that Lodgify owns (title, description, photos, fees, and so on) show a sync lock in the Haven listing editor; edit them in Lodgify and the change flows in. Calendar fields are two-way. Pricing direction flips when you enable Manage pricing in Haven: until then Lodgify's rates flow in; after, Haven's push out. Tax rules mirrored from Lodgify follow Lodgify, with an on-demand Sync from Lodgify refresh, until you choose Edit in Haven to manage them here.
Fields Haven never reads from Lodgify (for example, Haven-specific settings like your site design, markups, or guest-offer configuration) are always yours to edit.
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