Square Card-on-File Limitation with Bookly
Overview
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.
The Constraint in Detail
Square's Requirement
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 Payment Options
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.
Consequence
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
Compounding Issues
This payment limitation is not the only friction point in the Bookly/Square stack. Additional problems observed in practice:
- Zapier service ID mismatches: Zapier can locate some Square service IDs (e.g., "Injective Consultation," "No Fluff Dermaplane") but returns no results for others (e.g., "B12 Injections," "Neurotoxin"). Services not marked as bookable online in Square are invisible to the Zap entirely.
- Availability sync unverified: Bookly calendar availability does not reliably reflect Square staff schedules, making end-to-end testing unreliable.
- UX degradation: The Square checkout popup that Bookly triggers is a fixed, unbranded modal. Customization is minimal and the experience is visually jarring — a significant concern for brand-sensitive clients.
Potential Workarounds
1. Custom Code for Card Capture
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.
2. Route Payments Through WooCommerce
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:
- Enable a single unified cart for both products and services
- Provide more control over the checkout UX
- Potentially sidestep the card-on-file constraint by handling payment capture within WooCommerce
This is the primary avenue under active investigation. See [1] for details.
3. Replace Bookly
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.
Non-Negotiable Requirements (Client)
Any solution must satisfy both of the following:
- Single checkout cart — products and services must be purchasable in one transaction
- On-site booking — the entire booking flow must remain within the client's website; no redirects to Square's hosted pages or new tabs
The current Bookly/Square integration fails both requirements.
Observed In
- [2] — primary client where this blocker was discovered
- Meeting: La Marie Beauty — Bookly/Square Integration Status & Strategy Reset (2025-10-28)
Related
- [1]
- [3]
- [4]