Staff Sync via Square Integration

Square Staff Management POS Integration Sync Team Members

If you're connected to Square POS, you can import Team Member information registered on the Square side into ReceiptRoller and keep it synced in both directions. Whether you add a staff member on the Square side or edit one on the ReceiptRoller side, the change is reflected on the other side.

What gets synced

  • Name, name reading (kana), email address, and phone number
  • Staff number (reference_id)
  • Status (active / on leave / terminated)
  • Owner permission (is_owner), overtime-exempt flag (is_overtime_exempt), and tip eligibility (tip_eligible)
  • Assigned store(s) (all stores or specific stores)
  • Job title and pay (job assignments: job title, pay type, hourly rate, annual salary, expected weekly hours)

Fields unique to ReceiptRoller (internal memos, emergency contacts, profile photos, etc.) don't exist on the Square side, so they're preserved as-is during bidirectional sync.

Initial import (manual sync)

After registering a POS terminal with Square integration enabled, click "Import from Square" on the staff list screen. This retrieves the staff list from the Square Team Members API and registers it on the ReceiptRoller side. If you have multiple Square merchant accounts connected, staff are imported from each one.

Automatic sync

  • When something changes on the Square side: A webhook receives team_member.created / team_member.updated events, and the change is automatically reflected on the ReceiptRoller side as well
  • When you edit on the ReceiptRoller side: The change is pushed back to Square in the background at the moment you save, so saving doesn't get delayed waiting on the sync

Handling multiple jobs

In Square, a single staff member can have multiple job assignments (job title + pay + assigned store). The same structure is imported on the ReceiptRoller side and managed as a JSON block on the edit screen. The primary job (the one shown in list views) is automatically treated as the first entry.

Sync conflicts and the override rule

Conflicts in bidirectional sync are resolved with "the side written most recently wins" (last-write-wins). Avoid editing both sides at the same time. Fields that exist only on the Square side, or only on the ReceiptRoller side, are preserved without being lost during sync.

What doesn't get synced

  • A staff member deleted on the Square side has their status changed to "terminated" on the ReceiptRoller side (the record itself remains as history)
  • Deleting on the ReceiptRoller side does not automatically delete the record on the Square side (to prevent accidental data loss)

Related articles

Published: 2026-06-03 Updated: 2026-07-02