Two-Way Member Information Sync with Smaregi/Square
ReceiptRoller's member information is synced bidirectionally with your connected POS (Smaregi, Square, etc.). Registering a member on the ReceiptRoller side reflects it on the POS's customer master, and conversely, member registrations made on the POS are pulled into ReceiptRoller's CRM. There's no need to manage member information in two separate places.
This article covers how the two-way sync works, which fields are synced, timing, conflict priority rules, supported POS systems, and setup.
What is two-way sync
"Two-way" means data flows in both directions.
- ReceiptRoller → POS (outbound): information for customers who registered as members via the app is registered into the POS's customer master. This lets POS staff identify a customer the first time they visit
- POS → ReceiptRoller (inbound): information for customers registered as members on the POS is pulled into ReceiptRoller's CRM. This lets customers who registered in-store also receive Wallet membership verification and push notifications
Fields that are synced
- Member number: either the number issued by ReceiptRoller, or the number issued by the POS. Whichever comes first is used consistently
- Name: first and last name (supports both kanji and kana)
- Email address
- Phone number (normalized to E.164 format)
- Membership rank: General, Silver, Gold, etc.
- Birthday (optional)
- Status: active, withdrawn, blocked, etc.
Behavioral data such as visit history, purchase history, and cumulative purchase amount is aggregated by ReceiptRoller based on POS receipt data, so it doesn't need to be synced separately.
Sync timing
ReceiptRoller → POS
- On new registration: the moment a customer registers as a member in the app, a registration job to the POS is added to the queue. It's typically reflected on the POS side within seconds to a few minutes
- On information update: when a customer updates their contact information, name, birthday, etc. in the app, it's also reflected on the POS
- On rank change: when the membership rank changes based on the store management screen or purchase history, the POS's membership rank is also updated
POS → ReceiptRoller
- Via webhook (instant): when the POS performs new member registration or an update, ReceiptRoller is notified instantly via webhook. It's reflected in the CRM within seconds
- Periodic sync (backup): as a safeguard in case a webhook doesn't arrive, ReceiptRoller periodically retrieves the entire POS customer master and reflects any differences (every hour by default)
Conflict priority
If the same customer's information is updated on both sides, the data with the more recent update timestamp takes priority. For example:
- 10:00 — customer updates their email address in the app
- 10:05 — store staff updates the phone number on the POS
- → the email address is fixed at the 10:00 app value, and the phone number is fixed at the 10:05 POS value
If updated at the exact same moment (no difference down to the millisecond), the POS-side value takes priority. Since the POS is the core of the store's operational workflow, the design respects POS input.
Matching new customers
When a customer registered as a member on the POS is pulled into ReceiptRoller's CRM, the system automatically matches whether they're the same person as an existing customer. The matching key is checked in the following order.
- Member number (exact match)
- Email address (exact match after lowercasing and trimming leading/trailing whitespace)
- Phone number (exact match after normalizing to E.164 format)
If a match is found, the existing customer's information is updated. If no match is found, the customer is added to the CRM as a new customer.
Supported POS systems
- Smaregi: supports two-way sync of the customer master and transaction data. Uses the Smaregi Platform API
- Square: supports two-way sync with the Customer Directory. Uses the Square Customers API
For connection steps, see the separate articles "Square POS Connection Steps" and "Smaregi Connection Steps." Support for additional POS systems is planned in sequence.
Field support per POS
Which field of ReceiptRoller's customer data (CrmCustomerDto) each POS's member field corresponds to is documented per POS in the technical documentation. If you have questions like "why isn't the date of birth I registered in Smaregi reflected on the RR side," please see the following.
- Smaregi Member Data Mapping
- Square Customer Data Mapping
- CrmCustomerDto Reference (developer-facing, full field specification of the canonical model)
Setup steps
Once the POS connection is complete, two-way sync of member information is automatically enabled. No additional setup is required.
If you want to temporarily pause syncing, or restrict which fields are synced, you can adjust this from the store management screen → "POS Integration" → "Sync Settings."
Checking sync status
From "POS Integration" → "Sync Log" in the store management screen, you can review past sync history. Each entry records the following.
- Direction (ReceiptRoller → POS / POS → ReceiptRoller)
- Target customer's member number and name
- Synced fields (email, phone, rank, etc.)
- Result (success / failure / skipped)
- Timestamp
Failed entries are automatically retried up to 3 times. If it still fails, the cause (such as a POS-side authentication error or data format error) is logged and displayed in the notification center on the store management screen.
Troubleshooting
- A customer registered on the POS isn't reflected in the CRM: check that customer's sync status in the "Sync Log." If the webhook hasn't arrived, please check the POS-side webhook settings, or wait for the next periodic sync (every hour)
- Member number differs between POS and CRM: a conflict may have occurred during two-way sync. Check the conflicting entry in the "Sync Log." As a rule, the number issued first is retained on both sides
- The POS's membership rank isn't updated: the field name for membership rank on the POS side may differ from what ReceiptRoller expects. Please contact our support team
- The same customer was registered twice in the CRM: if none of the matching keys (member number, email, phone) matched, the customer is registered as a separate person. You can manually merge them from "Duplicate Candidates" in the CRM screen
Notes
- If member data is completely deleted (physically deleted) on the POS side, matching becomes impossible on the ReceiptRoller side. We recommend using logical deletion (deactivation) on the POS
- The initial sync of a large volume of data (existing member data of several thousand to tens of thousands of records) is processed sequentially via periodic sync, so it may take a few hours to half a day to complete
- Due to rate limits on the POS-side API, some syncing may be delayed if a large volume of updates occurs momentarily
Related help
- Mapping Between Smaregi Member Data and ReceiptRoller Customer Data
- Mapping Between Square Customer Data and ReceiptRoller Customer Data
- CrmCustomerDto Reference (developer-facing)
- Automatic Member Number Issuance Settings
- Square POS Connection Steps
- Smaregi Connection Steps
- Customer Data Management
- Overview of Apple Wallet / Google Wallet Membership Cards
- Back to Store Help Index
-
Staff Sync via Square IntegrationExplains how stores connected to Square POS can sync Team Member information bidirectionally with ReceiptRoller — job assignments, pay rates, assigned stores, owner permissions, and more, kept aligned with Square.
-
Smaregi Transaction Data and Receipt Roller Transaction Data MappingA technical explanation of how transaction data fetched from the Smaregi Platform API is mapped into Receipt Roller's transaction data model. Covers the field mapping table, status code conversion, payment method normalization, resolving line items/customer/staff information, timezone handling, and idempotency.
-
Purchase History by Customer (POS Integration)Learn how to review each customer's receipt-level purchase history from the CRM customer detail screen. Covers the conditions under which POS-issued receipts appear, why scanned paper receipts are excluded, how member matching works, privacy handling, and API access.
-
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.
-
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.