Diagnose connection, webhook, catalog, Terminal, checkout, and stock problems without deleting data or risking duplicate charges.
The first rule is simple: if a Production payment is pending or uncertain, do
not send it again. Reconcile the existing checkout before changing settings,
stock, device, or Storefront configuration.
This is expected for an unconfigured environment. Select Production, enable
editing, save the Production application credentials, connect the real
seller through OAuth, add the Production webhook signature key, choose the
location, and pair the Terminal. Do not copy the Sandbox token.
Connect OAuth is unavailable or fails before Square opens
Save the Square Application ID and Application secret for the selected
environment first. Copy the OAuth redirect URL from Inventory into that
environment’s Square application settings. Confirm the URL matches exactly.
Square returns Unauthorized
The access token commonly belongs to the other environment, was revoked, or
lacks a required scope. Confirm the environment badge, seller, and
application. Re-authorize the intended seller instead of adding unrelated
manual tokens.
Locations are empty or the wrong business appears
Verify the OAuth seller and MERCHANT_PROFILE_READ permission. A location
cannot be borrowed from another seller or from Sandbox. Reconnect the
correct account, refresh locations, and ask the Square owner to confirm the
location name.
The connection was revoked
Square sends oauth.authorization.revoked, and Tuturuuu marks the
connection unavailable. Stop checkouts, ask the owner why access was
revoked, then re-authorize only if the owner approves it.
Confirm the subscription environment, notification URL, signature key, and
event type. Copy the workspace webhook URL from Inventory; do not rebuild it
manually. The exact URL used by Square is part of signature verification.
Signature verification fails after a domain or tunnel change
Square signs the configured notification URL plus the raw body. Update the
Square subscription and Inventory’s advanced notification URL to the same
exact HTTPS value, then replace the matching environment’s signature key.
Square sent the same event more than once
Duplicate delivery is normal when an acknowledgement is delayed or Square
retries. Compare the event_id. Tuturuuu should keep one checkout, payment,
stock transition, and finance entry. Escalate only if business state is
duplicated.
Events arrive in an unexpected order
Square does not guarantee delivery order. Reconcile by provider object and
final payment status rather than arrival time. Do not edit checkout state
manually to match the first event you saw.
Inventory count webhook did not appear
Square may not emit inventory.count.updated when the written count equals
the existing value. In Sandbox, change the demo count to a distinct value,
verify the event, then restore it intentionally.
A phone or tablet running Square POS with a connected Reader is not a
Terminal API device. It will not appear after Refresh terminals. Select
Phone or tablet with Reader, register the POS callback URL, and use the
Square POS app + Reader Storefront mode instead.
Symptom
Check
Safe action
Pairing code expired
It was not entered within five minutes
Create a new code in Tuturuuu
Dashboard code does not pair
Generic Dashboard codes are not Terminal API codes
Discard it and create the code in Tuturuuu
Paired device does not appear
device.code.paired delivery, seller, environment, and location
Hardware is connected inside Square POS, not Terminal API
Do not paste its device ID; switch to the phone/Reader setup path
Square POS does not open
Request is on Android/iOS, latest Square POS is installed, and browser permits app links
Return to the same reserved order; install/update Square POS before trying a new checkout
UNAUTHORIZED_CLIENT_ID or callback error
Production Application ID and exact Point of Sale API Web Callback URL
Copy the URL from Inventory and save it in the Production Square application
ILLEGAL_LOCATION_ID / user mismatch
Square POS is signed into the same location saved in Inventory
Sign in to the approved location; do not remove the location safeguard
Payment returns but order stays pending
Square Order/Payment may still be synchronizing, or amount/currency/location/card verification failed
Keep the order open and inspect its failure reason plus Square payment evidence; do not charge again
No server transaction ID
Payment was offline or no supported online card order was returned
Tuturuuu leaves stock unchanged for manual review; reconcile Square before any retry
The Point of Sale API callback is not treated as payment proof by itself.
Tuturuuu uses the returned transaction ID as a Square Order ID, retrieves its
Payment, and verifies the exact reserved amount, currency, location, completed
status, and card tender. This is why cash and offline returns are not
automatically finalized.Square Terminal cannot use browser-based captive-portal networks. Review
Square’s network requirements
and
Terminal network troubleshooting.
Keep the same order. Check Square Payments and the Terminal checkout. If no
payment completed, cancel that checkout from Inventory Commerce or let it
expire. Tuturuuu reservations expire after 15 minutes and release stock when
final reconciliation runs.
The buyer says they paid but Tuturuuu is not completed
Search Square by location, time, amount, and receipt. If Square shows a
completed payment, do not retry. Record the Square evidence and inspect the
payment.updated and terminal.checkout.updated webhook deliveries.
Tuturuuu says completed but Square evidence is missing
Confirm you are viewing the same Sandbox or Production seller and location.
Record all evidence and stop new attempts. This mismatch requires support
investigation; do not create a balancing payment or manual stock change.
Canceled or expired checkout still holds stock
Refresh the Commerce and Payments views after the final Square event. Allow
the scheduled expiry reconciliation to run. If the reservation remains,
escalate with the order reference, final Square status, timestamps, and
stock values. Do not compensate by increasing on-hand stock manually.
Stock or finance changed twice
Stop processing the item, preserve the rows, and compare Square event IDs
and provider IDs. Duplicate webhooks must be idempotent. Do not delete a
duplicate-looking record before support confirms which row is authoritative.
No receipt link appears
Confirm the payment is completed and inspect the Square payment directly.
Sandbox has receipt limitations, while Production receipt behavior depends
on Square and the seller’s receipt settings.
The summary says products synchronized, but I cannot see them
Open the Linked catalog records list, clear any UI filter, and verify the
environment. Metrics count item, variation, and stock operations, so the
total can exceed the number of unique products. One visible link row is the
reliable evidence for one Square variation relationship.
A price is 100 times too small or large
Stop all sync and checkout actions for that item. Record the human-readable
amount and currency on both sides. Do not manually multiply or divide and
sync again. Confirm the current Tuturuuu release, then correct the approved
source once and verify a one-way sync with a demo item first.
Two-way sync reports a conflict
This is protective behavior. Compare the Tuturuuu and Square values, get an
owner decision, and run one directional sync from the approved source. Do
not alternate directions or delete the Square item.
A Square deletion is preserved
Tuturuuu intentionally keeps the local product and link for review. Ask the
owner whether to republish the item or leave it disconnected. Synchronization
never deletes Square objects or local product data to resolve this status.
A link shows Sync error
Read the row’s error, then check environment, token scopes, location,
currency, SKU, and Square object availability. Retry only the intended
direction after fixing the cause.
Include the packet from the
operations guide
and check Square system status for provider-wide
incidents. Redact tokens, application secrets, signature keys, full card data,
and customer personal information.For implementation-level failures, use the
Square Terminal engineering runbook.