Square hardware cannot be paired to Sandbox. Tuturuuu uses Square’s special
Sandbox Terminal device IDs to produce deterministic results. Sandbox
payments do not reach a bank and do not incur processing fees.
What Sandbox can and cannot prove
Create isolated demo data
Use records that are unmistakably temporary and owned by the test:Simulator device IDs
Copy these from Square’s current Terminal API Sandbox test values into the Sandbox device ID field one scenario at a time:
Keep the test total at or below USD 25 for the standard success simulator.
Square deliberately leaves larger attempts pending rather than treating them as
an ordinary approval.
Test flow
For every scenario:- Open Payments → Connect & set up → Square POS → Sandbox and save the intended simulator ID.
- Confirm all five Sandbox checks are complete.
- Confirm the demo Storefront uses Square Terminal checkout.
- Open Payments → Test & verify in one tab and the Sandbox Square Dashboard in another.
- Submit one checkout only. Do not double-click or start a second checkout while the first is pending.
- Match the checkout ID, amount, currency, status, and timestamps across both systems.
- Record the final stock and reservation result before changing the simulator.
Required checkout matrix
Reservation expiry test
Tuturuuu checkout reservations expire 15 minutes after creation. Expiry is materialized by the scheduled sweep and also reconciled during checkout reads and new checkout creation.- Use the unavailable Terminal simulator.
- Create one checkout and verify the item becomes reserved.
- Do not create a replacement checkout.
- Cancel it through the Inventory Commerce action for a fast test, or allow the reservation to expire for the full expiry-path test.
- Verify the checkout is no longer sellable as pending, the reservation is released, and stock returns exactly once.
Duplicate webhook test
Square can retry webhooks and does not guarantee delivery order. Tuturuuu uses Square event IDs and provider identifiers to reconcile duplicates safely.1
Complete one successful Sandbox checkout
Record its Tuturuuu checkout ID, Square Terminal checkout ID, payment ID,
stock before and after, and finance transaction if the workspace records
one.
2
Resend a Square webhook delivery
In the Square Developer Console, open the relevant Sandbox webhook delivery
and resend it once. Use the same event; do not create a second payment.
3
Verify idempotency
The webhook may appear twice in delivery history, but Tuturuuu must still
show one checkout, one payment link, one completion transition, one stock
change, and at most one finance sale.
Catalog and stock rehearsal
Run this after the checkout matrix so the payment flow and catalog flow can be diagnosed separately.- Open Payments → Catalog sync.
- Enable sync actions with the compact edit control.
- Choose Import from Square and verify the demo item appears as one linked Square variation.
- Change only the demo item’s name, price, or physical count on one side.
- Run the matching one-way sync and verify the other side once.
- Make different changes on both sides, run Two-way sync, and confirm the item becomes a review conflict instead of silently overwriting either side.
- Restore the demo item through an intentional one-way sync after deciding which side is authoritative.
inventory.count.updated event. Use an actual demo count change when validating
that webhook, then restore the count deliberately.
For the full data model and conflict rules, see
Catalog and stock synchronization.
Exit criteria
Sandbox is complete only when:- all five connection checks are ready;
- the seven webhook events are subscribed and a test delivery returns
2xx; - approved, canceled, timed-out, and unavailable-device scenarios match the matrix;
- duplicate webhook delivery does not duplicate payment, stock, or finance;
- a 15-minute or explicitly canceled reservation releases correctly;
- the demo catalog item is visible as a linked variation;
- a two-sided edit becomes a review conflict;
- no Production token, object, device, or payment was touched.