Every booking, every departure, every channel — one platform.
Sell online and at the counter, run the manifest, take payment, sign waivers, and push availability to GetYourGuide and Viator — without handing over your calendar.
The operator dashboard, tuned for a full shift.
Dark where it helps the crew focus — with the orange signal spent only on what needs a decision: a live departure, a guest checked in, a spot running low.
Sell Everywhere
One inventory behind every way a guest can book — your site, a widget on someone else's, or the counter.
Booking widgets
Drop a real booking flow onto any site — date-first, deposit-aware, your brand — from a single embed URL.
Learn moreWebsite in a box
Launch a full storefront with no separate site to maintain. Publishes on your own domain, styled to your brand.
Learn moreRegister & POS
Take walk-ups and phone orders at the counter with the same inventory, the same manifest, the same payout.
Learn moreAbandoned-cart recovery
A multi-stage series wins back the guest who almost booked — with a held spot and a unique code.
Learn moreA checkout that actually closes.
Stepped, deposit-aware, and fast — the flow guests finish. Take a deposit now and the rest later, keep a card on file for fuel or damage, and read a risk grade on every card. You're the merchant of record: payouts land in your Stripe account, not ours.
Distribute to the OTAs without giving away your calendar.
List on GetYourGuide and Viator on your terms. Set a per-channel availability cap so a marketplace only ever sees the seats you choose to give it — never your whole book. The rest stays yours to sell direct.
Per-channel availability cap — a Dockline originalRun the Day
Everything the dock needs between the booking and the wave goodbye — in one screen the crew actually uses.
Calendar & manifest
A FareHarbor-parity calendar with a switchable timeline. Per-departure caps, check-in, and no-shows at a glance.
Learn moreWaivers, built in
Native e-sign, or bring your own from Waiver Forever and Smartwaiver. Signed docs attach to the booking automatically.
Learn morePayments & deposits
Stripe Connect payouts, partial deposits, and card-on-file for incident charges — the operator is the merchant of record.
Learn moreReschedule, cancel, refund
Move a rental to a new time as one atomic shift of the resource hold. Cancel with an editable refund amount, no math.
Learn moreThe waiver problem, finally solved.
Build your waiver once. Guests sign on their phone with guided, adopt-once initials — and snap a photo of their ID, so Dockline reads back the date of birth and license number for you. Rental contracts generate themselves, pinned and signed, ready before they reach the dock.
Unmatched on Waivers
Nobody else pairs a native builder, guided e-sign, and ID-read intake with real rental contracts — and still lets you bring your own.
Native waiver builder
Write and edit your own waiver with required-initial sections. Assign it per product; guests sign before the trip, and the doc attaches to the booking.
See it liveAI reads the ID
Guests photograph a license; Dockline extracts name, DOB, and DL number behind a confidence gate — no manual typing. Turns on with your AI key.
See it liveRental contracts, auto-generated
Merge guest, trip, and license fields into a frozen, hash-pinned contract they sign with a tap — ready the moment they arrive.
See it liveBring your own, or go multi
Native e-sign, or connect Waiver Forever and Smartwaiver. One booking can require several waivers — from products and each rented vehicle — tracked independently.
See it liveOne inbox for every message.
Two-way SMS, email, and web chat land in one shared inbox — with your team, your saved replies, and the full booking on every thread. Send from your own verified domain and your own registered number; Dockline runs the carrier plumbing underneath.
Bring Them Back
The retention engine most operators rent from MailChimp — built in, and switched off until you want it.
Automations that run themselves
Birthday and trip-anniversary emails send on the right day, every day, off your booking data — no list to babysit.
Learn moreBroadcasts to smart segments
VIPs, first-timers, lapsed guests — target by spend and history, then send a one-off in a couple of clicks.
Learn moreTwelve templates, ready on day one
A curated tourism library — birthdays, win-backs, weekend openings, and rafting, ATV & boat cross-sells — installs as drafts you tweak and send.
Learn moreReviews & abandoned-cart recovery
Post-trip review requests, VIP tiers, and a multi-stage cart recovery with a held spot and a unique code — all in the box.
Learn moreProve every dollar.
Server-side conversion tracking that ad blockers and iOS can't drop: one purchase event fans out to GA4, Meta, TikTok, Snap, Pinterest, and Google Ads — carrying real revenue and the ad click that earned it. Then a thirteen-report hub tells you what actually worked.
Why Switch
Most operators run a booking tool plus five bolt-ons. Dockline is the platform those bolt-ons wish they were.
A real channel manager
Cap what each marketplace sees. Keep the calendar you own separate from the seats you lend.
Comms in the box
Two-way SMS, email, and a shared inbox with your team — not a separate subscription stapled on.
An AI that sells
A concierge that answers, quotes, and hands off to a human — trained on your catalog, not a generic bot.
Built to extend
A real developer platform: REST API, signed webhooks, and an MCP server so your tools talk to Dockline.
Built to Extend
Your stack doesn't stop at the booking. A versioned REST API, signed webhooks, and an MCP server ship in the box — so your tools, and your AI, can talk to Dockline.
Your data, on your terms.
Scoped API keys and a published OpenAPI spec. Webhooks for every event that matters — bookings, payments, waivers, payouts, reviews. And a tenant-scoped MCP server so Claude or ChatGPT can read your catalog, availability, and revenue without ever touching another operator's.
curl -X POST /v1/bookings \
-H "Authorization: Bearer dk_live_…" \
-d '{ "product": "sunset-cruise", "seats": 2 }'
{ "event": "booking.confirmed",
"amount": 20300, "currency": "usd" }