Connecting Square Appointments to Meta Conversions API
Square Appointments settles into the same Square ledger as the card taken at the counter, so the appointment and the payment are already joined — provided you filter for the right channel. Meta's pixel loses a large share of conversions to Safari, ad blockers and iOS, and the Conversions API exists because of it. The join between them succeeds or fails on one thing: whether the fbc and fbp values reaches the Square Appointments booking before the conversion happens, because Meta can only match a conversion it can tie back to a click it recognizes.
Free30 minutesNo obligation
Specific to this pair
Square Appointments to Meta CAPI: Schedule now, Purchase at payment
Send Meta a Schedule event when a Square appointment is booked online and Purchase when the payment completes, valued without the tip, promptly, since Meta rejects events over seven days old. Check whether Instagram or Facebook booking buttons are already reported and share event_ids with browser events. Clinics should send no service names or appointment types.
Meta gives this pair two natural events. Send Schedule when the appointment is booked online, seconds after the visit and well inside every window, and Purchase when the Square payment completes, valued without the tip. Because payment can come days after booking, send Purchase promptly when it happens: Meta rejects web events whose event_time is more than 7 days old, so a weekly sync from Square will lose some.
Square Appointments can also connect to booking buttons on Instagram and Facebook; check what is enabled on your account. Bookings made through those buttons start inside Meta's apps, so check whether Meta already reports them before sending them again from Square, and give any server event the same event_id as its browser counterpart so Meta can deduplicate.
Many Square Appointments users are clinics, therapists, med spas and wellness practices. If that is you, do not send service names, appointment types or notes to Meta: a Schedule labeled with a treatment discloses health information, and HIPAA-covered providers should not send appointment data to Meta at all without legal review. A generic event with value and hashed email and phone is the most to consider.
Square Appointments → Meta · what breaks
Why this join usually fails — Square Appointments → Meta
- 01
The fbc and fbp values never reaches Square Appointments
The booking site is Square-hosted, and the payment may be taken in person days later.
- 02
Counter sales counted as booked appointments
The shared ledger is convenient and it is the trap. If the booking channel is not filtered, walk-in revenue flows straight into your reported campaign performance.
- 03
Double counting from broken deduplication
Server and browser both fire, the event_id does not match, and Meta counts two purchases. Reported ROAS goes up, the business does not, and it can run for months before anyone reconciles against the store.
- 04
Nothing reconciles afterwards
Events Manager shows received events, the deduplication state and an Event Match Quality score per event. Events arriving is not the test — deduplicated, well-matched events arriving is. Compare Meta's reported purchases against your store's order count for the same window.
Square Appointments → Meta · the fix
What working looks like — Square Appointments → Meta
The fbc and fbp values on every appointment
Conversions arriving in Meta
Events appear in Events Manager with an Event Match Quality score, deduplicated against the pixel, and become usable for optimization and attribution.
Reconciled against the source
Square Appointments → Meta · architecture
How Square Appointments and Meta actually connect
- 1
Square Appointments holds the truth
Walk-ins and rebookings made at the counter land in the same ledger. Without the filter, every in-person sale becomes an advertising conversion.
- 2
Meta Conversions API needs a click to match
Meta matches server events to people using whatever identifiers you send, hashed with SHA-256 where required. There is no single mandatory key, which is why quality varies so much between implementations — a poorly matched event is accepted, reported, and worth much less than it appears.
- 3
The identifier is the bridge
The fbc and fbp values, captured at the visit and carried into the Square Appointments booking.
- 4
The event source decides reliability
Send completed appointment transactions net of tips.
- 5
Deduplication at the destination
Meta deduplicates on the pair of event_name and event_id. The browser pixel and the server event must send the same event_id for the same conversion, within the deduplication window. Get this wrong and every purchase counts twice — which is by far the most common Conversions API failure and it inflates reported ROAS rather than reducing it.
Square Appointments → Meta · normal or broken
Working vs. broken, side by side — Square Appointments → Meta
Normal, not a fault
The fbc and fbp values present on the appointment
Sent from the Square transaction record
Deduplicated correctly
Meta deduplicates on the pair of event_name and event_id. The browser pixel and the server event must send the same event_id for the same conversion, within the deduplication window. Get this wrong and every purchase counts twice — which is by far the most common Conversions API failure and it inflates reported ROAS rather than reducing it.
Reconciles with the source
Actually broken
The fbc and fbp values missing on most records
The booking site is Square-hosted, and the payment may be taken in person days later.
Sent from the browser
The shared ledger is convenient and it is the trap. If the booking channel is not filtered, walk-in revenue flows straight into your reported campaign performance.
Counted twice, or not at all
Server and browser both fire, the event_id does not match, and Meta counts two purchases. Reported ROAS goes up, the business does not, and it can run for months before anyone reconciles against the store.
Nobody has reconciled it
Square Appointments → Meta · diagnose
Diagnostic order — Square Appointments → Meta
- 01
Count appointments carrying the fbc and fbp values
- 02
Follow one real conversion end to end
- 03
Filter by booking channel and re-check the total
Compare against the online booking count. A mismatch means the filter is wrong before the tracking is.
- 04
Read Event Match Quality and the deduplication indicator
In Events Manager, open the event and check both. A low match quality means weak identifiers; a missing deduplication indicator means your event_id pairing is broken.
- 05
Read the match rate, not the success message
Events Manager shows received events, the deduplication state and an Event Match Quality score per event. Events arriving is not the test — deduplicated, well-matched events arriving is. Compare Meta's reported purchases against your store's order count for the same window.
Square Appointments → Meta · prove
How it gets proven — Square Appointments → Meta
Source of truth
Square transactions tied to an appointment, filtered to those booked online.
- The fbc and fbp values confirmed present on a live appointment.
- Deduplication confirmed in Events Manager on a real purchase, with the browser and server events visibly paired rather than counted twice.
- Online-booked completed appointments reconciled against imported conversions.
Square Appointments → Meta · free audit
What we check in the free audit
- Count appointments carrying the fbc and fbp values
- Follow one real conversion end to end
- Filter by booking channel and re-check the total
- Read Event Match Quality and the deduplication indicator
- Read the match rate, not the success message
Checked against
Square transactions tied to an appointment, filtered to those booked online.
Free30 minutesNo obligation
Square Appointments → Meta · when not to buy
When you don't need this — Square Appointments → Meta
- Measure identifier coverage yourself first — pull your last hundred appointments and count how many carry the fbc and fbp values.
- If almost all your business is walk-in, measure it on appointment volume and do not build a revenue import.
- If you are not running Meta ads at meaningful spend, the Conversions API is effort without payoff. It earns its cost when the optimization signal is worth improving.
Square Appointments → Meta · what we deliver
What gets built — Square Appointments → Meta
Identifier capture into Square Appointments
Capture on your own domain, persist against the customer, and let the completed transaction rather than the booking be the reported event.
Event source: the Square transaction record
Send completed appointment transactions net of tips.
Dispatch to Meta
Server-side events to the Conversions API with the event_id matched to the pixel, action_source set correctly, and customer data hashed before it leaves your infrastructure.
Reversals where they exist
Refunds and no-shows reverse.
Written guarantee
95%+ tracking accuracy
Measured against Square transactions tied to an appointment, filtered to those booked online.. Miss it and we keep working at no cost.
From $400 · See packages
FAQ
Square Appointments → Meta questions, answered
Check Square's current Meta integrations for your account. Otherwise send Schedule at booking and Purchase at payment server-side, driven by Square's booking and payment records.
Treat it as a HIPAA question first. Do not send service names or appointment details, and get legal review before sending any appointment events for a covered provider.
Almost always because the fbc and fbp values never reached the Square Appointments booking. The booking site is Square-hosted, and the payment may be taken in person days later. Measure coverage before debugging the dispatch.
Two things. The _fbc cookie, derived from the fbclid parameter on the landing URL in the format fb.1.<timestamp>.<fbclid>, is the click identifier. The _fbp cookie is the browser identifier. Beyond those, Meta matches on hashed customer information — email, phone, name, city, country — and every additional field raises the Event Match Quality score. Unlike Google, Meta does not need a click ID at all if the customer data is good, but match quality drops noticeably without it.
The Square transaction record. Send completed appointment transactions net of tips.
Events Manager shows received events, the deduplication state and an Event Match Quality score per event. Events arriving is not the test — deduplicated, well-matched events arriving is. Compare Meta's reported purchases against your store's order count for the same window.
More on Square Appointments → Meta
- Square Online → MetaConnecting Square Online to Meta Conversions API
- Square + Meta CAPIMeta Conversions API setup for Square
- Stripe → MetaConnecting Stripe to Meta Conversions API
Using Square Appointments for bookings? How Square Appointments bookings get tracked end to end
RELATED GUIDES
Where Square Appointments → Meta fits in the rest of your tracking
- Meta · Local servicesMeta Ads conversion tracking for local service businesses
- Meta · Coaches & consultantsMeta Ads conversion tracking for coaches and consultants
- Meta × Appointment SystemHow to reconcile Meta Ads against your practice or scheduling system
- Meta · Booked call → closed wonHow to track booked call to closed won for Meta Ads
- Appointy → MetaConnecting Appointy to Meta Conversions API
- Square Appointments → LinkedInConnecting Square Appointments to LinkedIn Ads
- Coaches & consultantsConversion tracking for coaches and consultants, where every booked call counts
- Acuity → MetaConnecting Acuity Scheduling to Meta Conversions API
Free · 30 min
Get Square Appointments and Meta joined properly
Free30 minutesNo obligation
