Connecting Square Online to TikTok Events API
Square Online orders settle into the same Square account as the card taken at the counter, which is a genuine advantage: the online and in-person halves of the business are already denominated in one ledger. TikTok's audience skews to exactly the browsers and app contexts where browser-side tracking performs worst. The join between them succeeds or fails on one thing: whether the ttclid reaches the Square Online order before the conversion happens, because TikTok can only match a conversion it can tie back to a click it recognizes.
Free30 minutesNo obligation
Specific to this pair
Square Online to TikTok: food and retail orders from the app
Send CompletePayment for online-channel Square orders, valued net of tips and tax, with the order ID as event_id shared with any confirmation pixel. If you control your own landing site, store the ttclid there and pass it to the store. Always include hashed email and phone, since the ttclid is often missing, and never send walk-in sales.
TikTok sends local food and retail traffic through its in-app browser, straight to a Square Online store that is often on a Square-provided domain. The ttclid lands on that domain, so if you do not control scripts there, there is little chance to store it; check what tracking settings your Square Online plan offers, including whether a TikTok pixel can be added. If your ads point to your own site first, store the ttclid server-side there and pass it in the link to the store.
Send CompletePayment from Square transactions filtered to the online channel, at the order total net of tips and tax, with the order ID as event_id. Expect the ttclid to be missing on many orders, so send hashed email and phone from the Square order every time; for pickup and delivery orders the phone number is usually present even when the email is not. If a pixel fires on the order confirmation page, it must send the same event_id.
The TikTok-specific failure for Square sellers is assuming the ad worked because the shop got busy. A viral post can fill the counter for a week, and none of those walk-in sales should be sent to TikTok. Keep TikTok's reported purchases to online orders and look at counter sales on TikTok-heavy days as a separate, unattributed comparison.
Square Online → TikTok · what breaks
Why this join usually fails — Square Online → TikTok
- 01
The ttclid never reaches Square Online
Square Online sites are frequently on a Square-provided domain, and checkout may hand off to Square-hosted payment pages depending on configuration.
- 02
Counter sales counted as online conversions
The convenience of one ledger is also the trap. If the sales channel is not filtered, every card swipe at the register lands in your ad reporting as a conversion you paid for.
- 03
The ttclid is lost in the in-app browser
TikTok traffic arrives through an in-app webview whose storage behavior is inconsistent. An identifier captured but not immediately persisted server-side often is not there by the time the conversion happens.
- 04
Nothing reconciles afterwards
TikTok Events Manager shows received events and their match status. As with Meta, arriving is not the test — deduplicated and matched is. Reconcile TikTok's reported conversions against the source system for the same window.
Square Online → TikTok · the fix
What working looks like — Square Online → TikTok
The ttclid on every order
Conversions arriving in TikTok
Events appear in TikTok Events Manager, deduplicated against the pixel, and become usable for optimization.
Reconciled against the source
Square Online → TikTok · architecture
How Square Online and TikTok actually connect
- 1
Square Online holds the truth
The filter is the whole job. Square's default reporting cheerfully sums counter sales and online orders, and that total is not something any ad platform should be optimizing toward.
- 2
TikTok Events API needs a click to match
TikTok matches server events using ttclid where available, falling back to hashed contact information. Both should be sent — the fallback is what carries the events where the click ID did not survive.
- 3
The identifier is the bridge
The ttclid, captured at the visit and carried into the Square Online order.
- 4
The event source decides reliability
Send net of tips and taxes. Tips on food orders are substantial and are not your revenue.
- 5
Deduplication at the destination
TikTok deduplicates on event_id, the same pattern as Meta: the pixel and the Events API must send the same event_id for the same conversion. Mismatched IDs mean double counting.
Square Online → TikTok · normal or broken
Working vs. broken, side by side — Square Online → TikTok
Normal, not a fault
The ttclid present on the order
Sent from the Square transaction record
Deduplicated correctly
TikTok deduplicates on event_id, the same pattern as Meta: the pixel and the Events API must send the same event_id for the same conversion. Mismatched IDs mean double counting.
Reconciles with the source
Actually broken
The ttclid missing on most records
Square Online sites are frequently on a Square-provided domain, and checkout may hand off to Square-hosted payment pages depending on configuration.
Sent from the browser
The convenience of one ledger is also the trap. If the sales channel is not filtered, every card swipe at the register lands in your ad reporting as a conversion you paid for.
Counted twice, or not at all
TikTok traffic arrives through an in-app webview whose storage behavior is inconsistent. An identifier captured but not immediately persisted server-side often is not there by the time the conversion happens.
Nobody has reconciled it
Square Online → TikTok · diagnose
Diagnostic order — Square Online → TikTok
- 01
Count orders carrying the ttclid
- 02
Follow one real conversion end to end
- 03
Filter by sales channel and re-check the total
Compare the filtered online total against Square Online's own order count. If they disagree, the filter is wrong before the tracking is.
- 04
Measure ttclid capture rate on TikTok traffic specifically
Not on all traffic. TikTok's in-app browser is the failure case, so a healthy overall capture rate can hide a poor one on exactly the traffic that matters.
- 05
Read the match rate, not the success message
TikTok Events Manager shows received events and their match status. As with Meta, arriving is not the test — deduplicated and matched is. Reconcile TikTok's reported conversions against the source system for the same window.
Square Online → TikTok · prove
How it gets proven — Square Online → TikTok
Source of truth
Square transactions filtered to the online sales channel, by location.
- The ttclid confirmed present on a live order.
- Deduplication confirmed in Events Manager, and ttclid capture rate measured on TikTok traffic specifically.
- Online-channel transactions reconciled against imported conversions for a settled week.
Square Online → TikTok · free audit
What we check in the free audit
- Count orders carrying the ttclid
- Follow one real conversion end to end
- Filter by sales channel and re-check the total
- Measure ttclid capture rate on TikTok traffic specifically
- Read the match rate, not the success message
Checked against
Square transactions filtered to the online sales channel, by location.
Free30 minutesNo obligation
Square Online → TikTok · when not to buy
When you don't need this — Square Online → TikTok
- Measure identifier coverage yourself first — pull your last hundred orders and count how many carry the ttclid.
- If Square Online is a small side channel next to your counter business, measure it on order count and do not build an import for it.
- If TikTok is a small share of spend, the effort is hard to justify. It pays when TikTok is a channel you are actively scaling.
Square Online → TikTok · what we deliver
What gets built — Square Online → TikTok
Identifier capture into Square Online
Persist the identifier in first-party storage on your own domain before the handoff, and reattach it to the order at the point the transaction is written.
Event source: the Square transaction record
Send net of tips and taxes. Tips on food orders are substantial and are not your revenue.
Dispatch to TikTok
Server events to the TikTok Events API with the ttclid, hashed contact information and a matching event_id.
Reversals where they exist
Refunds appear in Square as their own records and should be sent as reversals.
Written guarantee
95%+ tracking accuracy
Measured against Square transactions filtered to the online sales channel, by location.. Miss it and we keep working at no cost.
From $400 · See packages
FAQ
Square Online → TikTok questions, answered
Check the tracking or integrations settings in your Square Online dashboard for your plan. Either way, send CompletePayment from online-channel Square orders through the Events API with hashed email and phone.
No. Counter sales carry no click identifier and were not measured as ad conversions. Report them separately as an unattributed lift.
Almost always because the ttclid never reached the Square Online order. Square Online sites are frequently on a Square-provided domain, and checkout may hand off to Square-hosted payment pages depending on configuration. Measure coverage before debugging the dispatch.
The ttclid — TikTok's click identifier, appended to your landing page URL and also stored in the _ttp cookie. TikTok additionally matches on hashed email and phone. In-app browser behavior makes ttclid capture more fragile than the equivalents on other platforms, so persisting it server-side as soon as it is seen matters more here than elsewhere.
The Square transaction record. Send net of tips and taxes. Tips on food orders are substantial and are not your revenue.
TikTok Events Manager shows received events and their match status. As with Meta, arriving is not the test — deduplicated and matched is. Reconcile TikTok's reported conversions against the source system for the same window.
More on Square Online → TikTok
- Square → TikTokConnecting Square to TikTok Events API
- Square Online → Google AdsConnecting Square Online to Google Ads
- Square Online → MetaConnecting Square Online to Meta Conversions API
RELATED GUIDES
Where Square Online → TikTok fits in the rest of your tracking
- TikTok · CateringTikTok Ads conversion tracking for catering companies
- TikTok · RestaurantsTikTok Ads conversion tracking for restaurants
- TikTok × POS SystemHow to reconcile TikTok Ads against your point-of-sale system
- TikTok · Checkout → purchaseHow to track checkout to purchase for TikTok Ads
- ChowNow → TikTokConnecting ChowNow to TikTok Events API
- Square Online → Microsoft AdsConnecting Square Online to Microsoft Ads
- CateringConversion tracking for catering, measured in confirmed events
- Olo → TikTokConnecting Olo to TikTok Events API
Free · 30 min
Get Square Online and TikTok joined properly
Free30 minutesNo obligation
