When integrating Bookly with Square for appointment booking, a fundamental payment flow incompatibility surfaces: Square requires a "card on file" checkpoint to finalize any booking, but Bookly's Square integration only supports two payment modes — full prepayment or no payment at all. There is no mechanism within Bookly to capture card details without charging the customer in full.
This is a hard architectural constraint, not a configuration issue. It cannot be resolved through Zapier middleware or plugin settings alone.
Square's booking system enforces a card-on-file step before confirming an appointment. This is a platform-level requirement and cannot be disabled from the merchant side when the integration is active.
Bookly's native Square integration exposes only two paths at checkout:
| Mode | Behavior | Acceptable? |
|---|---|---|
| Full prepayment | Customer pays the full service price at booking | Often undesirable for service businesses |
| No payment | No card details captured at all | Fails Square's card-on-file requirement |
There is no "card on file only" or "deposit" mode available through Bookly's standard Square integration.
Any booking submitted through Bookly that reaches Square's card-on-file checkpoint will fail unless the customer pays in full. This makes the integration unviable for businesses that want to hold a card without charging it upfront — a standard practice in the salon and spa industry.
"With Bookly, the only checkpoint that you have is either you pay for the service or you don't, basically. You're not given the option, even with the Square integration, to just input your card details."
— Chris Ostergaard, Asymmetric
This payment limitation is not the only friction point in the Bookly/Square stack. Additional problems observed in practice:
Asymmetric identified a possible path: use Square's developer APIs to embed a card-capture widget directly, then pass the token through Zapier to Square. This bypasses Bookly's payment flow entirely but requires custom JavaScript and backend handling. Feasibility depends on the developer's ability to inject this into the Bookly widget flow.
If Bookly's WooCommerce integration is enabled, bookings can be routed through the WooCommerce cart instead of Square's native checkout. WooCommerce already communicates with Square (for product inventory and orders), so this path could:
This is the primary avenue under active investigation. See [1] for details.
If neither workaround proves viable, the integration may represent a sunk-cost scenario. Bookly also lacks native support for product variations, which creates a separate workaround requirement. A purpose-built booking solution with deeper Square API support may be the appropriate long-term path.
Any solution must satisfy both of the following:
The current Bookly/Square integration fails both requirements.