Staff Sync via Square Integration
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
-
Two-Way Member Information Sync with Smaregi/SquareLearn how ReceiptRoller's member information syncs bidirectionally with connected POS systems like Smaregi and Square. Covers which fields sync, sync timing, conflict priority rules, new customer matching, supported POS systems, and troubleshooting.
-
Square Customer Data and Receipt Roller Customer Data MappingExplains how customers registered in Square Customer Directory are converted into Receipt Roller's customer data (CrmCustomerDto), field by field. Covers the given_name / family_name correspondence, address decomposition logic, and how reference_id is handled.
-
Connecting with POSAn overview of the POS systems that can connect with ReceiptRoller and how to connect them. Supports Square and Smaregi.
-
Square Staff Data and Receipt Roller Staff Data MappingExplains how Square Team Members are linked to Receipt Roller's staff data (StaffDto). Covers how to use manual linking, the logic for resolving who is attributed to a transaction, and the key fields in the Team Member API.
-
How Digital Receipts WorkAn explanation of how ReceiptRoller's digital receipts work, and how to set up POS integration with Square and Smaregi.