Meta Conversions API setup for Square
Meta on Square means online purchases deduplicated on the order ID, appointments sent as their own event with a value, and offline conversions uploaded for the joined share of counter revenue where consent allows. The number worth publishing internally is the join rate, because it is the honest ceiling on everything in-person.
Free30 minutesNo obligation
Square + Meta CAPI · what breaks
What goes wrong on Square
- 01
Most transactions happen in person
A card at a terminal has no click, no session and no identifier. That is not a bug to fix; it is a boundary to measure.
- 02
Online and in-person blended into one number
Two channels with different margins and completely different attribution potential.
- 03
Appointments and orders in separate Square products
Square Appointments, Square Online and the POS each hold part of the picture.
- 04
No native path from a click to a counter payment
The bridge has to be built, usually through an appointment or an identified customer.
Square + Meta CAPI · the fix
What changes — Square + Meta CAPI
Online orders attributed properly
From Square's webhooks, server-side, with the identifier carried through checkout.
In-person revenue bridged where a bridge exists
Through appointment bookings or the customer directory, honestly, with the join rate stated.
The unattributable share reported openly
Rather than a number that quietly implies more coverage than exists.
Square + Meta CAPI · architecture
How Meta tracking behaves on Square
The Meta destination on Square.
- 1
Online purchases with a shared event_id
So the checkout pixel and the webhook count once.
- 2
Appointment bookings as a Lead or Schedule event
The realistic optimization target for in-person businesses.
- 3
Customer data hashed from the Square customer record
Normalized before hashing.
- 4
Offline conversions where you have identified customers
Only where consent allows and the customer directory has real data.
- 5
Refunds reversed
Available and rarely wired.
Square + Meta CAPI · diagnose
Where Square tracking breaks, in diagnostic order
Each check rules out a class of cause, so by the last one there is usually a single explanation standing.
- 01
Split Square revenue by channel first
Online versus in-person. Every subsequent number depends on it.
- 02
Measure what share of in-person payments have an identifiable customer
That is the ceiling on in-person attribution and it is usually low.
- 03
Check whether the identifier survives Square Online checkout
One real order answers it.
- 04
Check whether appointments carry the identifier
If they do not, the only available bridge is broken.
- 05
Confirm refunds reverse
Usually they do not.
Square + Meta CAPI · prove
The QA evidence — Square + Meta CAPI
Run on Square specifically, on a live conversion rather than in preview mode.
Source of truth
Square's transaction records — completed payments by date, with the online and in-person channels separated
- An online test order with the identifier confirmed on the Square order.
- An appointment booked from a paid click, followed through to the in-person payment and confirmed joined.
- The in-person join rate measured and stated as a number before any claim is made about coverage.
- Square transactions reconciled by channel against each platform for a closed window.
- A refund confirmed to reverse.
- Reconciled over a fully closed window, matched per record rather than on totals.
- Re-checked 30 days later, and after any platform update.
Square + Meta CAPI · free audit
What we check in the free audit
- Split Square revenue by channel first
- Measure what share of in-person payments have an identifiable customer
- Check whether the identifier survives Square Online checkout
- Check whether appointments carry the identifier
- Confirm refunds reverse
Checked against
Square's transaction records — completed payments by date, with the online and in-person channels separated
Free30 minutesNo obligation
Square + Meta CAPI · when not to buy
When you don't need this on Square
Worth reading before you buy anything, from us or anyone.
- If nearly all your revenue is in person with no appointments and no identified customers, there is very little here to attribute and we will tell you that rather than build a bridge to nothing.
- If you only sell online through Square Online and the numbers already reconcile, this is working.
- Measure your online-versus-in-person split yourself first. It determines whether any of this is worth doing.
- If you are not running paid media at meaningful spend, the channel split alone is the useful deliverable.
Square + Meta CAPI · what we deliver
What gets built for Meta on Square
A shared event ID on both paths
the Square order or payment ID
Standard event names, exactly cased
Meta matches on name and ID together, so a case difference alone produces two events.
Customer data normalized then hashed
Lowercase and trimmed email, phone in E.164. This is where nearly every low match quality score comes from.
fbc and fbp forwarded from the browser
fbc only exists if fbclid was captured on landing — a very common gap.
Written guarantee
95%+ tracking accuracy
Measured against Square's transaction records — completed payments by date, with the online and in-person channels separated. Miss it and we keep working at no cost.
Pricing
Pick the package that fits your ad spend
Browser-side starter
$400One-time fee · lifetime ownership
Repairs and verifies the browser-side setup you already have, on a live conversion. Honest about its ceiling on this platform.
- Root cause fixed, not worked around
- Verified on a live conversion
- Reconciled against your own records
- Written handover
1st-party server-side
Recommended$800One-time fee · most popular
Money events sent from your own records through a first-party container on your subdomain, so the browser can no longer lose them.
- First-party server container on your own subdomain
- Money events from your records, not the browser
- Deduplicated on a shared event ID at every destination
- First-party cookies beyond Safari's 7-day cap
- 95%+ accuracy and 8+ Meta EMQ, guaranteed in writing
Full 1st-party stack
$1,800One-time fee · lifetime ownership
Every paid channel server-side plus the offline loop, with monitoring so the next break surfaces in days.
- Everything in 1st-party server-side
- Pinterest, Snapchat, Reddit and LinkedIn CAPI
- CRM and offline conversion loop
- Refunds and cancellations corrected wherever each platform allows it
- Monitoring on every destination
FAQ
Square + Meta CAPI questions, answered
For the joined share, yes, where consent allows. Meta's offline event upload exists for this and it is the right mechanism. Be clear internally that it covers a fraction of in-person revenue, so nobody reads the number as the whole.
Schedule or Lead, consistently, with a value. What matters more than the name is that it is a separate event from Purchase, so in-person and online performance stay readable.
The Square customer directory holds email and phone for customers who have given them. Normalized and hashed, that is good matching data — and it only exists for identified customers, which is the same population you can attribute at all.
Yes, particularly in hospitality and services where voids and comps are routine. Square exposes them and wiring the reversal keeps the reported figure honest.
Free · 30 min
Get Pixel and CAPI counting once on Square
Free30 minutesNo obligation
