Two-Way Member Information Sync with Smaregi/Square

POS Integration Smaregi Square Member Information Sync Two-Way Sync Member Number CRM

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.

  1. Member number (exact match)
  2. Email address (exact match after lowercasing and trimming leading/trailing whitespace)
  3. 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.

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

Published: 2026-05-25 Updated: 2026-07-02
Related articles