Booking Windows, Checkout Top-Ups, and a Cleaner Stored Value Setup

Nick Frostbutter
NF
Nick Frostbutter
·

Set a minimum booking notice and booking window, let customers load funds at checkout, and send booking emails from your own sender name.

Booking Notice and Booking Window

Bookings has a Settings page now, with two rules you set yourself.

Minimum booking notice is how far in advance a customer has to book. Set it to two hours and nobody can book a time slot starting in ninety minutes. This replaces a hardcoded ten-minute floor, and the default is no minimum, so nothing changes until you set one.

Booking window is how far out customers can book. Set it to 30 days, or 90, or 7, replacing the fixed 30-day limit that used to apply to everyone.

Both rules are checked again at the moment a booking is being confirmed, not only when the customer first sees the time picker. A customer who put a time slot in their cart before you set a two-hour notice can no longer check out past it. Manual bookings you make in the dashboard are unaffected, since you can always manually override your own rules.

Failed Payments No Longer Hold Your Calendar

This one was costing merchants real availability. When a customer clicked Pay, the time slot was reserved before the card was ever sent to the processor. Every declined card left a booking sitting on that slot for up to 40 minutes, blocking customers who would have paid.

Bookings are now created only after payment succeeds. A declined card, an abandoned checkout, a wallet form that gets opened and closed: none of them leave anything behind on your calendar.

  • If you book a time yourself via the dashboard while a customer is mid-checkout on it, your booking wins and that customer is told the time is gone instead of being charged for it.
  • A completed payment now always produces a confirmed booking and clears the customer's cart. There was a case where a customer could pay, have the order marked paid, and end up with no booking. No longer!
  • Cancelled bookings no longer show on the calendar, so a freed-up time reads as free. The all-bookings table can be filtered to Pending.

Two customers still can't pay for the same time slot. The slot is re-checked before any money moves.

Stored Value: Top Up at Checkout, Set Up in One Step

Customers can now add a balance top-up while they pay at checkout, not only from inside the "pay with balance" flow. The page shows a nudge to load funds, with a low-balance alert when their balance is running down. Offered amounts come from the top-up presets you configured, and the top-up credits their balance, plus any bonus you set, once payment completes. Adding or removing one updates their cart properly now, so it survives a change to their booking and shows the right total.

Setting up Stored Value is a guided wizard. It creates your program, turns on Treasury rewards, and launches it in one pass, with no separate activation checklist.

Catalog Is Now Available to Everyone

Decal Catalog is out of early access and shows in the sidebar for every merchant.

Item pricing now lives on the item's variant. Nothing changes about how you set a price in the dashboard, but the item detail page shows each variant's billing type (e.g. one-time, recurring, etc) and price right in the Variants table, replacing the old "Default Price" card. Order line items also record which catalog item and variant they were sold from, and link to that item's page from the order, improving dashboard navigation.

Booking Emails From Your Own Name

Booking notification emails now send from your own handle on a dedicated notifications domain, so a customer sees Acme Corp <acme@notifications.mail.usedecal.com> instead of a shared no-reply address.

Login-code emails moved to their own sending domain too, which should get verification codes into inboxes more reliably.

Payouts Explain What They Need

A payout could previously be submitted, queued, and then fail in the background with an unexplained policy violation. The payouts page checked only the wallet payout policy, while a payout that converts stablecoins first also needs the token swap policy, and nothing on the page said so.

Payouts now check every policy the payout will use, up front, so you get a readable error immediately instead of a failure later. When a policy needs your review, the page shows a banner naming it and walks you through each one in turn. Your payout history stays on screen the whole time, and if no payout policy is active at all, the page tells you.

A Steadier Checkout

Customers were getting interrupted by a spurious "Your order was updated" dialog that didn't say what had changed, sometimes on pressing Pay and sometimes after leaving the page open for a while. That cluster is fixed. Several batches of improvements were made to improve order modification detection and presentation, improving stability and user experience during checkout. The dialog appears only on a real change and describes it correctly.

A balance top-up is no longer deleted when a customer's account gets linked to their order, and when a top-up genuinely can't be paid for, the customer is told which reason applies. A booking's date, time, and variant stay in the order summary through a refresh, and the hold countdown re-syncs after a top-up changes rather than counting down a deadline that had already been extended.

Minor Improvements

  • Confirm before you refund. Refunding an order, and cancelling or refunding a booking, now ask for confirmation first.
  • Checkout works at Decal-only locations. A location with only Decal payment methods and no external POS was incorrectly showing "Payment Not Available".
  • Reconnect and team actions work again. Square and Lightspeed reconnect, plus team management, were failing with a connection error from a URL redirect rule that caught more than it should have.
  • Website domain actions work again. "Set as primary", "Verify now", "Remove domain", and the redirect toggle failed with a generic "Invalid input" for any domain that wasn't already primary.
  • Phone numbers read like phone numbers, formatted consistently across the dashboard, with malformed values hidden instead of shown as a bare "+".
  • Mailing address on your policies. Decal-hosted Terms, Privacy, and Refund pages show your business mailing address in its own labeled section when you've set one.
  • Clearer cart messages. The cart says when an item hasn't been priced for online purchase yet, rather than a generic "couldn't hold that time", and an item that becomes unavailable while sitting in a cart is removed with a notice instead of vanishing.
  • Booking form polish. Duration uses the same quick-select presets as the catalog item form, order status badges show on mobile, and the "Create booking" wizard says "Add at least one service" instead of "undefined".
USDG
USDS
USDC
PYUSD
USDT

Give your business the stablecoin advantage

Stablecoin infrastructure enables Decal to settle instantly, cut fees, reduce disputes, and unlock yield for merchants.

24x7 settlement

Get paid in seconds, every day, with no payout windows, bank cutoffs, or delayed settlement.

Lower fees by design

Avoid high card network fees so your business keeps more revenue from every sale.

Fewer disputes

Stablecoin payments settle with finality, reducing chargebacks and dispute costs.

Unlock yield

Stablecoins generate interest natively, unleashing a new revenue stream for merchants.

What if your checkoutdid more than payments?

Lower fees, instant stablecoin settlement, stored value that brings customers back, and so much more.