
How to Make an App Like Shopkick

A practical breakdown of the architecture, reward mechanics, and third-party integrations you need to build a loyalty and rewards app in the same class as Shopkick — written for engineers who are scoping the work, not reading a pitch.
What Shopkick Actually Does Under the Hood
Shopkick is a retail rewards app that gives users points (called "kicks") for walking into stores, scanning products, and making purchases. It does not require a purchase to award points, which is what separates it from a standard cashback app. That distinction shapes every architectural decision.
The core loop is:
- User enters a geofenced or beacon-detected store
- App awards kicks passively or after a scan
- Kicks accumulate and redeem for gift cards
To replicate that loop, you need reliable indoor positioning, a product catalogue with scannable barcodes, a points ledger, and a redemption engine connected to gift card APIs. Each of those is a non-trivial engineering problem.
What Does the Technical Stack Look Like?
Location and Proximity Detection
Shopkick uses a combination of GPS geofencing and ultrasonic audio signals (inaudible tones emitted by in-store hardware) rather than Bluetooth Low Energy beacons alone. The audio approach is more accurate indoors and works on devices where Bluetooth is off. If you want comparable accuracy, you have two paths:
- Ultrasonic SDK (e.g., Lisnr or a proprietary solution): High accuracy, requires retailer hardware installation, adds cost per store
- BLE beacons (e.g., Estimote, Kontakt.io): Cheaper to deploy, ~1–3 metre accuracy, susceptible to signal interference in crowded retail environments
GPS geofencing with a radius of 50–100 metres handles the outer layer. It triggers a foreground service or significant-location-change API (on iOS) to wake the app. Combining GPS with audio or BLE gives you two-factor location confidence, which matters when you're awarding points automatically.
On Android, background location access requires ACCESS_BACKGROUND_LOCATION permission and must justify its use to pass Play Store review since Android 10. On iOS, always-on location requires the Always authorisation, which triggers a system-level prompt that most users decline. Design your UX to award kicks on app open inside a zone rather than purely passively, and you reduce your dependency on always-on location.
Product Scanning and Catalogue Management
Barcode scanning is handled well by libraries like Google ML Kit (Vision Barcode Scanning) or Scandit. ML Kit is free and accurate for standard EAN-13 and UPC-A codes. Scandit is significantly faster in poor lighting, which matters in a retail context, but costs roughly $5,000–$15,000 per year depending on volume.
Your product catalogue needs to map barcodes to SKUs, reward values, and campaign windows. Options:
| Approach | Pros | Cons |
|---|---|---|
| Build your own catalogue | Full control, no third-party dependency | Expensive to populate and maintain |
| Open Food Facts / Open Beauty Facts | Free, large coverage | Consumer goods only, variable data quality |
| Syndigo or Salsify | Retail-grade data | Licensing cost, API complexity |
| Retailer-provided feed | Accurate for that retailer | Inconsistent formats, requires per-retailer integration |
In practice, a hybrid works: open datasets for coverage, retailer feeds for campaign-specific items, and a manual admin tool for exceptions.
Points Ledger and Fraud Prevention
The points ledger is the financial core of the app. Model it as an append-only transaction log, not a mutable balance field. Every credit and debit is a row, and the balance is computed from the log. This makes auditing straightforward and prevents silent corruption.
Fraud is a serious problem in rewards apps. Common attacks include GPS spoofing, barcode farming (scanning the same product repeatedly), and account sharing. Mitigations worth implementing:
- Rate limiting per user per SKU per day
- Device fingerprinting (not foolproof, but raises the cost of abuse)
- Velocity checks on point accumulation relative to account age
- Receipt OCR validation for purchase-linked rewards (Google Document AI or AWS Textract work well here)
Do not rely on client-side validation for any of this. Every reward event should be validated server-side before the ledger is updated.
/// Not sure where to start?
Get the architecture before you commit
Tell us what you're building and we'll map the technical approach, stack, and rough timeline. No cost, no obligation, no sales call required.
How Do Redemption and Gift Card APIs Work?
Redemption is where things get operationally complex. Gift cards are typically sourced through aggregators rather than direct retailer integrations. Tango Card (now Rybbon) and Giftbit are the two most common APIs in this space. Both offer REST APIs, sandbox environments, and a catalogue of 100+ retailers.
The flow is:
- User requests redemption above a minimum threshold (Shopkick's minimum is 500 kicks for a $1 gift card equivalent)
- Your backend validates the balance and locks the points
- You call the gift card API, receive a delivery URL or code
- On success, you commit the debit to the ledger
- On failure, you release the lock and surface an error
Use a distributed lock or an idempotency key on the gift card API call. If your network call times out, you need to be able to retry without issuing a duplicate card.
Tango Card charges a percentage of face value (typically 2–5%) plus the card cost itself. Budget this into your unit economics from day one. A rewards programme that bleeds money on redemption margins does not survive.
How Long Does It Take to Build and What Does It Cost?
A minimum viable version — location check-in, product scan, basic points ledger, one redemption partner — takes a small team roughly 4–6 months. That assumes cross-platform development with React Native or Flutter, a Node.js or Python backend, and PostgreSQL for the ledger.
A rough breakdown of engineering effort:
| Module | Estimated Weeks |
|---|---|
| Auth, onboarding, user profile | 2–3 |
| Location detection (GPS + BLE) | 3–4 |
| Barcode scanning + catalogue | 3–4 |
| Points ledger + fraud checks | 4–5 |
| Redemption integration | 3–4 |
| Admin dashboard (campaigns) | 3–4 |
| QA, load testing, app store submission | 3–4 |
The retailer partnership side, signing brands, installing beacon hardware, negotiating reward budgets, takes longer than the engineering. Do not underestimate this. The app is only as valuable as the network of participating stores.
Cloud infrastructure on AWS or GCP for a launch-scale app (tens of thousands of users) runs roughly $800–$2,000 per month. Location event processing is the spiky load; use an event queue (SQS, Pub/Sub) rather than synchronous API calls.
What Are the Hard Problems Nobody Talks About?
Campaign management complexity. Retailers want to run time-limited offers on specific SKUs in specific store locations. That means your data model needs to handle overlapping campaign rules with priority weights, not just a flat reward-per-scan value. Building a flexible rules engine here early saves significant rework.
Push notification strategy. Proximity-triggered notifications are effective but easy to abuse. Sending a push every time someone walks past a participating store will get your app uninstalled. Implement a cool-down period and let users configure notification preferences at the category level.
App size and battery impact. Continuous location polling kills battery. Use significant-location-change monitoring as the coarse trigger, only switching to high-accuracy mode when a user is within range. On Android, a foreground service with a persistent notification is required for reliable background location, which some users find intrusive. Test this UX with real users before launch, not after.
Data privacy compliance. Location data is sensitive under GDPR and, in the US, under CCPA and several state laws that are tighter than CCPA. You need explicit consent flows, data retention limits, and the ability to delete all location history on user request. Build these as first-class features, not afterthoughts.
Conclusion
The engineering for a Shopkick-style app is tractable. The hard parts are fraud prevention, campaign flexibility, and the retailer partnership pipeline, none of which are solved by picking a better framework.
If you are scoping this work, start with the points ledger data model and the redemption integration. Those two components constrain everything else. Get the economics of a single kick-to-redemption cycle right on paper before writing production code.
If you want to talk through architecture, stack choices, or what a realistic build plan looks like for your specific retailer network, get in touch with the Sodio team.
FAQ
How much does it cost to build an app like Shopkick? A functional MVP with location check-in, barcode scanning, a points ledger, and one gift card redemption partner typically costs between $80,000 and $150,000 to build, depending on team location and whether you are building cross-platform or native. Ongoing infrastructure and retailer integration add to that figure post-launch.
What technology does Shopkick use for in-store detection? Shopkick uses a combination of GPS geofencing for outer-zone detection and proprietary ultrasonic audio signals for precise in-store verification. The audio tones are emitted by hardware installed at the retailer and detected by the phone's microphone, which gives higher accuracy than BLE beacons in noisy RF environments.
Can I build a rewards app without retailer hardware installations? Yes. GPS geofencing plus BLE beacons covers most use cases without ultrasonic hardware. Accuracy drops to roughly 1–3 metres rather than room-level precision, which is acceptable for most walk-in reward triggers. You lose the ability to detect which section of a store the user is in, which limits some campaign types.
How do you prevent points fraud in a rewards app? Combine server-side rate limiting per user per SKU, device fingerprinting, velocity anomaly detection, and receipt OCR validation for purchase-linked rewards. No single control is sufficient. GPS spoofing is common; cross-referencing location with Wi-Fi network data and accelerometer patterns raises detection rates without requiring proprietary hardware.
Which gift card API should I use for a rewards app? Tango Card (Rybbon) and Giftbit are both reliable choices with strong documentation and sandbox environments. Tango Card has a wider catalogue and more established enterprise contracts. Giftbit has simpler pricing for early-stage volume. Evaluate both against your target retailer list before committing, since catalogue coverage varies by region.
Have a project in mind? Contact Sodio Technologies to discuss your requirements and explore the right technology solution for your business.
/// Work with us
Talk to the engineers who'd build it
You'll get a technical scope, timeline and cost estimate from the people doing the work, not an account manager. In-house team, no subcontracting, since 2016.
