StaffDto reference

Staff Employee Data Model Reference POS Integration
Who this article is for
This is for developers working with ReceiptRoller's staff (employee) master via the API or MCP. It explains the linkage with POS operator information and the logic for resolving the "responsible staff" of transaction data.

StaffDto is the canonical model for ReceiptRoller's staff (employee) master. It is used for shift management, time clocking, aggregating sales by responsible staff, labor cost calculation, and so on. It is managed per business account and can be assigned to multiple stores underneath it.

It is managed entirely separately from customers (CrmCustomerDto). Customers are visitors; staff are the employees who work at the store.

Main fields

Identifiers and basic information

FieldTypeDescription
OrganizationIdstringBusiness account ID. PartitionKey.
StaffIdstringRR internal staff ID (GUID). RowKey.
UserIdstringLink to an RR user account (optional). For future employee login. Has an IsLinkedToUser helper.
EmployeeNumberstringEmployee number (the number used by the store operator).
LastName / FirstNamestringLast and first name. Has a FullName property.
DisplayNamestringDisplay name. A fallback (nickname-style) used when the last/first name are empty.

Employment information

FieldDescription
PositionJob title (store manager, assistant manager, staff, etc.). Free text.
EmploymentTypeFullTime (full-time employee) / PartTime (part-time / casual) / Contract (contract employee) / Other. Localized via EmploymentTypeDisplayName.
HourlyRateHourly wage (decimal). Formatted into "¥1,200/hr" form via FormattedHourlyRate.
HireDateDate of hire.
AssignedStoreIdsComma-separated list of assigned store IDs. Readable and writable as an array via AssignedStoreIdList.

Contact and personal information

Phone, Email, DateOfBirth, Address, ProfileImageUrl. As emergency contacts, EmergencyContactName / EmergencyContactPhone / EmergencyContactRelation.

Fields for POS integration

FieldDescription
SquareTeamMemberIdThe Team Member ID of Square Team. An explicit link for associating an RR staff member with a Square operator. Reverse-lookupable via StaffService.FindBySquareTeamMemberIdAsync().

In the case of Smaregi, the current version does not keep a dedicated field on the StaffDto side; it references the StaffId (Smaregi's internal ID) on the transaction line item as-is. For details, see Mapping Smaregi staff data.

Other

Notes (free text), IsActive (false for retired staff), CreatedAt, UpdatedAt.

Resolving the responsible operator from the POS

A POS transaction (PosTransactionDto) includes the ID and name of the responsible staff. How you resolve this to an RR StaffDto depends on the POS.

  • Square: match the transaction's team_member_id against StaffDto.SquareTeamMemberId. You need to create the staff on the RR side in advance and enter the Square Team Member ID.
  • Smaregi: use the transaction's staffId (Smaregi's internal ID) and staffName directly for receipt display and sales aggregation. Automatic matching with an RR StaffDto is not supported in the current version.

Mapping from the POS

Notes

  • The combination of OrganizationId and StaffId is the unique key.
  • Retirement is represented with IsActive = false. Avoid physical deletion; a logical delete is recommended, because the responsible-operator resolution of past transactions is still needed after retirement.
  • Setting SquareTeamMemberId is a manual operation. When you add a new Square Team Member, create the corresponding RR staff record and paste in the ID.
  • Use AssignedStoreIds to assign a staff member to multiple stores. It is used for filtering in shift management and sales aggregation.

Related guides

Published: 2026-05-29 Updated: 2026-07-05