Stay updated

Stay informed and see how CaptainBook evolves to deliver smarter

v25.11.0

Captainbook v25.11.0

New

Add a monthly calendar widget to embed a month of sessions on your site

A new embeddable widget shows a full month of available sessions across all your products in one grid. Customers pick a date and time, choose quantities,and pay through your existing checkout. It matches your brand colours and respects your seat-availability and discount settings.


Add custom fields to availabilities, with optional default values

You can now define custom fields on availabilities — the same way you already can on bookings, customers and resources — and edit them per time-slot, show them on the calendar, and drive workflows from them. Any custom field (on any record type) can now also have a default value that pre-fills when no value is set.


Improved

View an experience's location in Google Maps from the booking widget

The location map on the booking widget now loads faster and lighter, and adds a "View on Google Maps" link so customers can open the full map to zoom, pan, and get directions.


Fixed

Franchise accounts are no longer billed for booking fees collected on their own Stripe account

Franchise operators were seeing commission line items on their Captainbook invoice for booking application fees that are actually collected on their own connected Stripe account. Those line items are no longer created.


Scanning an already checked-in ticket now shows a clear message

When you scan a ticket that has already been checked in, the app now tells you it was already checked in instead of silently re-validating it. The original check-in time and guest are preserved. Tickets marked as a no-show can still be checked in if the guest turns up.


Fix billing page error for accounts with add-on subscription items

The subscription/billing page could fail to load for accounts whose plan included an add-on (such as extra resources). It now displays the base plan price correctly instead of erroring.


Show the German flag in the language picker

The language picker showed a broken image for German. It now displays the German flag like the other languages.

Trip reminder emails show the correct amount for staff who only see their own bookings

Staff who are only allowed to see their own bookings used to receive the trip reminder email showing the money paid/total for the entire experience, including other people's bookings. The reminder now shows only the amounts for the bookings assigned to them.

Reservation hold countdown no longer shows "Expired" too early in the mobile app

Held reservations now report their expiry as an absolute UTC time, so the mobile app's countdown reflects the real remaining time. Previously the hold could appear to expire 2-3 hours early and read as "Expired" while it was still valid.


Product search now ignores letter case

Searching for a product when setting up a triggered notification now matches regardless of capitalization, so "sunset" finds "Sunset Tour".The same fix applies to the product picker, the bookings table search, and the mobile app product search.


Sold-out session times are now greyed out and struck through

When a day has several sessions and some are fully booked, the sold-out times are now struck through and dimmed instead of looking bookable. Still-available sessions stay selectable, and the "Join Waitlist" button on a sold-out slot stays fully visible.


Booking a time slot that just filled up now shows a clear message instead of a generic error

If a time slot sold out or closed between the moment the calendar was shown and the moment a customer clicked it, they now see a short "this time is no longer available, please choose another" message and the list refreshes, instead of a generic failure.

v25.10.0

Captainbook v25.10.0

New

Price private experiences by total group size, not per person

You can now set one total price per group size for a private experience

(e.g. 2 people = €500, 3 = €600, up to a 6–10 band) instead of a per-person

rate. This avoids awkward per-head prices like €133.67. The whole group is

priced from the size you book.


Embedded product pages can auto-resize to fit their content

If you embed your product page in an iframe on your own website, it can now

resize itself to fit its content as visitors browse, so there's no inner

scrollbar or empty space. Add the one-line listener snippet (in the PR's

"How to test") to the page hosting the iframe.


Improved

Show more text in pricing category descriptions

Pricing category descriptions on the product page now display up to seven lines before being truncated, instead of five, so longer descriptions read more completely.

See which fields need fixing at a glance with red-highlighted validation errors

When you submit a product or schedule form with missing or invalid fields, those inputs now show a red border so you can immediately see what needs correcting — no more hunting through error messages to find the right field.

Fixed

The by-date view's back arrow can now return to today

On the date-by-date availability view, the back arrow now correctly steps

back to the current day even later in the day, so customers can still reach

today's remaining time slots. Previously the arrow did nothing once the day

had started.


Clearing a schedule's min/max age now saves correctly as empty

When you cleared the Min age or Max age on a schedule, it was incorrectly

saved as 0 instead of being left empty. Cleared age fields now correctly

store no value, so a schedule with no age restriction no longer shows 0.


Card processing fees now show in the booking's currency

When a card payment is taken in one currency but paid out in another, the

Stripe processing fee shown on the booking is now displayed in the booking's

currency instead of the payout currency, so the figure matches the amount paid.


Keep "spots left" counts accurate under high-volume channel bookings

After a burst of channel bookings or cancellations (notably GetYourGuide), an

availability could show more spots than were actually open, because the

remaining-seats count lagged the real bookings. It now recalculates from the

live bookings, so the count stays correct and overbooking is avoided.


v25.9.5

Captainbook v25.9.5

New

Show pricing-category subtitle and description on mobile wallet passes

Mobile passes (Apple Wallet & Google Wallet) now display the subtitle and description from the pricing category each ticket belongs to. For example, an "Adults" ticket will show its own copy, distinct from a "Children" ticket. Text is automatically translated to the customer's language.

Send custom messages to guests through their Apple Wallet pass

Operators can now send personalised lock-screen messages to guests who have added their booking pass to Apple Wallet. Open a booking, compose a short message, and it appears on the guest's lock screen — great for last-minute meeting-point changes, weather alerts, or welcome notes.

Fixed

Notification settings now save correctly from the mobile app

Changing your notification preferences in the mobile app now reliably saves, including for notifications you had never customised before. Previously some toggles silently did nothing.

Contract PDFs now show each guest's own details, not the booker's

When a contract template used guest fields (name, email, phone, country), it filled them with the person who made the booking instead of the guest signing that copy. Those fields now pull from each guest's own answers to your per-guest questions. If a product has no matching per-guest question, the field is left blank rather than showing the booker.


v25.9.4

Captainbook v25.9.4

Fixed

Payment notifications now go only to staff in the booking's business unit

The "New payment received" alert used to reach every team member with finance access across all business units. It now goes only to people assigned to the business unit the booking belongs to, so staff stop seeing payments that aren't theirs.

Card charges taken in the app now record the correct booking fee

When a card payment was taken from the mobile/back-office app for certain legacy accounts with white label configuration, the booking's platform fee was recorded at 100x its real value (e.g. showing $480 instead of $4.80 on the payment summary) and was charged again on each balance payment. Fees are now recorded correctly and collected once across the whole booking.


v25.9.2

Captainbook v25.9.2

Fixed

Workflow booking filters no longer error on empty date conditions

Workflows that find bookings by an "is empty" or "is not empty" date filter

(such as cancellation date) now run correctly instead of failing. The error

only affected date, number, and yes/no fields.


Booking notification emails now send for marketplace bookings with a removed reseller agreement

Marketplace bookings whose reseller agreement had been removed could

silently fail to send the "Booking received" and "Payment confirmed"

emails. These notifications now send reliably.


v25.9.1

Captainbook v25.9.1

Fixed

Auto-apply discount overlap check now considers selected products

The overlap warning when creating auto-apply discounts no longer triggers for discounts assigned to different products. This prevents false-positive warnings when you have multiple auto-apply discounts targeting separate products.

Fix crash on embedded checkout when booking becomes unavailable mid-checkout

When a booking became unavailable during checkout, the page could crash with an error instead of handling the situation gracefully. This is now fixed.

v25.9.0

Captainbook v25.9.0

Fixed

Keep your account accessible while a failed renewal payment is being retried

If a subscription renewal payment fails, you now keep full access to your account while the payment is retried, instead of being locked out immediately. This gives you a window of 15 days to pay


v25.8.0

Captainbook v25.8.0

New

Accept or refuse bookings before the customer is charged

Turn on "Bookings require your approval" on any product to switch its checkout flow to an authorize-now, decide-later model. The customer's card is held but not charged. You see the request in the bookings feed with a "Decide in …" countdown, and accept or refuse from the booking details panel. Funds are captured on accept; the hold is voided on refuse. Customers get reason-specific emails on each path (received, refused, hold expired, capture failed).

Fixed

Booking confirmation page no longer errors while waiting for payment to confirm

Customers on the booking confirmation screen could hit an error in certain cases while the page waited for their payment to be confirmed. The page now reliably forwards them to the operator's thank-you page once payment completes.

v25.7.0

Captainbook v25.7.0

New

Charge only the deposit when finalising a booking

When finalising a booking whose product has a deposit, you can now tick

"Charge only the deposit" on the in-person card or offline/MOTO card sections.

It charges the difference between the deposit and what's already been paid,

instead of the full balance, so you can take a deposit over the phone or in

person and collect the rest later.


Require customer email or phone on agency widgets

You can now require the customer's email and/or phone number on each agency widget, set per widget in the widget's Customise tab. Useful when you need to contact the end customer directly rather than the agency. Both fields stay optional by default.

Fixed

Cancel reservations from the mobile app again

Cancelling a reservation that has no payments from the mobile app no longer

fails with an authorization error. Staff with cancel permission can now cancel

these bookings as expected.


Fix widget checkout and tracking errors for businesses whose name contains an apostrophe

Businesses whose name (or a product/list title) contained an apostrophe or quote

could break the embedded booking widget: the "update guests" link and analytics

tracking stopped working on the affected page. Names and titles are now handled

safely, so the widget works regardless of punctuation in the business or product name.


Stop showing an empty "Channel Policies" section to operators who can't use it

The "Channel Policies" panel on a direct widget and on the Marketplace channel page no longer appears for operators whose account doesn't have the channel policies feature, or who don't have permission to view policy rules. Previously it showed up as an empty section with a heading and no content.

Reopen concurrent availabilities when switching a resource on a manifest

When changing the resource assigned to a manifest, other availabilities sharing

that resource are now correctly reopened. Previously they could remain closed,

blocking bookings on unrelated availabilities.


v25.6.0

Captainbook v25.6.0

New

Charge your customers in Czech koruna (CZK)

You can now set Czech koruna (CZK) as your currency and take bookings, payments, and exports in it, the same way you already can with euros, zloty, and the other supported currencies.


Show the number of seats left on your booking widget

You can now choose, per widget, how seat availability appears to customers: the exact number of seats still available ("12 seats available"), the existing "Likely to sell out!" hint, or nothing at all. Pick it under "Seat availability display" in the widget editor.


Add subtitles and descriptions to your pricing categories

You can now give each pricing category a short subtitle and a longer description. They show up in the booking widget's guest selector, on confirmation, reminder and payment emails, and on PDF tickets, so guests get clearer context about what each fare includes.


Improved

Warn before changing a product's ticket type, and flag outdated tickets at check-in

Changing a product's ticket type now asks you to confirm first, telling you how many existing bookings will be reissued and reminding you that customers are NOT notified automatically. And if a customer shows up with a ticket that was reissued after such a change, the check-in app now tells you it was reissued and to ask for their current ticket, instead of a vague error.

Fixed

We no longer create duplicate subscriptions when a payment confirmation is pending

If you started a subscription but never finished the 3D Secure (2FA) prompt your bank required, or if a card charge failed, clicking Subscribe again will now finish the existing payment instead of charging you twice. A new "Complete payment" banner shows everywhere in the app whenever a subscription is awaiting payment, so you always know what to do next.

Fix the chat assistant failing to load on iPhone Safari

The embedded chat assistant could fail to open on iPhone Safari when the browser blocked storage inside the embedded window. It now loads reliably.

Fix the "Delete tenant" confirmation button staying disabled when the tenant name has stray whitespace

QR codes generate reliably across the dashboard

Generating or downloading a QR code for a folder, product, list, discount,

ticket, or promotional flyer now works everywhere. Previously the folder and

product QR code modal could fail to open.


Daily and hourly recurring schedule workflows can now be activated

Recurring schedule workflows set to run daily or hourly could not be saved or turned on — they were rejected with a "must have at least 1 items" error meant only for weekly/monthly schedules. They now activate correctly.


Checkout now respects a product's minimum number of guests

Bookings made through the embedded widget can no longer be reduced below the minimum number of guests the operator set on the product. The checkout now matches the product page, which already blocked it.


Discounted bookings no longer revert to full price when edited or rescheduled

A booking made with an automatic discount now keeps its discounted price when you edit the guest mix, change the schedule, or update it from the mobile app. Previously some of those actions reset the price back to the full amount, leaving the booking looking unpaid even though the customer had paid in full.


© 2021-2026 CaptainBook.io - All rights reserved.
Legal Terms - Privacy policy

© 2021-2026 CaptainBook.io - All rights reserved.
Legal Terms - Privacy policy

© 2021-2026 CaptainBook.io - All rights reserved.
Legal Terms - Privacy policy