A loyalty program with clear connection boundaries.
Rewardfinity connects to Shopify through an approved app, to Square with your own access token, and to any other till through a signed webhook or the REST API. Each path records a retried purchase once.
02 / Connection desk
The purchase moment becomes a return visit.
Use the connection the merchant has set up, then keep the customer’s balance and reward progress easy to see in the existing workflow.
Illustrative member view
Review state before relying on a connection.
- Shopify connection
- Review the merchant’s existing Shopify connection state in the dashboard.
- Webhook delivery
- Review configured webhook delivery outcomes in the existing merchant workflow.
- Readiness
- An unavailable or unconfigured state is not presented as a supported connection.
Every connection, and what it actually does
A loyalty program is only as good as the purchases that reach it. If a sale never arrives, the customer never earns, and a program customers cannot see moving is one they stop using. So the first question about any loyalty tool is not which logos it shows but how a purchase at your till becomes points on a card.
Rewardfinity has five ways in and two ways out. The table lists each one with the direction data moves, where you set it up, and what it does not do. A row marked gated is built and switched off in production until an operator enables it; read it as unavailable to you today.
| Connection | Direction | Set up in | What it does | What it does not do |
|---|---|---|---|---|
| Shopify app | In | Shopify App Store | Paid orders earn points and stamps and enrol the customer by email. Refunds claw points back. | Shopify POS rewards and redemption stay off; POS sales arrive as orders. |
| Square | In | Dashboard, Integrations | You paste your own Square access token. Rewardfinity registers the webhook and matches payments to members by email. | A payment with no email on it or on its Square customer record cannot be matched. |
| Signed inbound webhook | In | Dashboard, signing secret | Any system that can send a signed JSON POST records a purchase, a refund or a flat points grant. | It does not enrol a new customer; the email must already belong to a member. |
| REST API | In and out | Dashboard, Settings, API keys | Enrol members, record purchases and refunds, create rewards and record redemptions with a bearer key. | No published rate limits and no per-endpoint key scopes: a key is owner or scanner. |
| CSV import and export | In and out | Dashboard, Members | Bring an existing member list across with its balances, and export members at any time. | It is a file, not a live sync. |
| Outbound webhook | Out | Dashboard, Settings, Developer | Signed batches of loyalty events (joins, earns, redemptions, claims) posted to an HTTPS address you own. | It is queued, so it is not the confirmation that a write happened. |
| Member wallet and push | Out | Dashboard | Web push reaches members who allowed it. Google Wallet is a configured path; Apple Wallet cards and updates are available for standalone web programs after program setup. Members must add their card to Apple Wallet. Shopify access is not enabled. | Does not enable wallet-native marketing campaigns or Apple Pay/VAS automatic enrollment. |
Email, SMS and WhatsApp to members can queue through an operator-enabled provider path; none of the three is switched on for merchants today. NFC is unavailable.
Which path fits your till
Pick by where your sales already happen, not by which option sounds most technical. The simplest path that carries every sale is the right one.
An online store on Shopify uses the approved Shopify app. It is the only path that enrols a customer on their first order without anyone at a counter, because Shopify hands over the customer email with the order.
A counter on Square connects directly. Paste a production access token from your Square developer dashboard and the webhook is registered for you. The email on the payment, or on the Square customer record it belongs to, is what joins a sale to a member.
Any other till, including Clover, Lightspeed, Loyverse and Zettle, has no native connection. It reaches Rewardfinity through the signed inbound webhook, sent directly by your own server or through an automation tool such as Zapier or Make with an HMAC-SHA256 signing step. A plain POST without the signature is rejected, which is what stops a guessed address from minting points.
A counter with no till integration at all still works. Staff scan the member QR on the card at the counter and the visit is recorded, which is how the in-store loyalty flow runs today.
Why a retried sale is counted once
A till on a weak connection resends. That is the normal case in a shop, not the edge case, so every purchase path is keyed on the order identifier your system sends rather than on when the request arrived.
Work it through. A $40 sale is sent once and the member earns on it. The till times out and sends the same order twice more. Rewardfinity holds one entry for that order, so the member has earned on $40, not $120. A refund sent later is keyed on its own identifier and claws back at the rate that applied when the purchase was recorded.
The full request shapes, the idempotency rules and the signature check are in the Rewardfinity reward API reference, which is where to start if you are wiring a till yourself.
How the outbound webhook drains a busy day
Events you subscribe to are queued first, then posted in batches of up to 100 per run. Runs happen about every five minutes. A batch your server rejects stays pending and is sent again on the next run rather than dropped.
Illustrative arithmetic, not a measured result: a morning rush that queues 250 events drains in three runs. The first run posts 100, the second posts 100 about five minutes later, and the third posts the last 50 about ten minutes after the first. If your server is down for twenty minutes, nothing is lost; the backlog arrives in batches of up to 100 once it answers again.
Each batch is signed with the header x-torna-signature, a hex HMAC-SHA256 of the raw request body. Verify it against the raw bytes, not a re-serialised object.
What does not connect
These gaps are the ones most likely to change a buying decision, so they are listed rather than left for you to discover during setup.
- No native app for Clover, Lightspeed, Toast or Loyverse. Each goes through the signed inbound webhook.
- No Zapier app in the Zapier directory. Zapier and Make work as the sender of a signed webhook, which needs a signing step.
- New web workspaces start a 60-day no-card trial. Paid web plans require an available Stripe-hosted checkout; Shopify plans are approved separately through Shopify.
- No sync with an email-marketing platform switched on today.
- No provider that buys and sends gift cards on your behalf. Codes you already own can be issued from the gift-card vault.
Questions people ask
Does Rewardfinity integrate with Square?
Does Rewardfinity work with Clover or Lightspeed?
Is there a Rewardfinity Zapier integration?
Does a Shopify refund remove loyalty points?
What happens if my till sends the same sale twice?
Can Rewardfinity send loyalty events to my own system?
See the next step for your program.
Create your account, or contact support to evaluate the operating path that fits your store.