What we did

The card in the phone

A card designer in the company's brand - colours, logo, banner, up to 10 locations with a reminder nearby. Customers do not install any app.

Checkout

The scanner runs on any phone. The code on the card changes every minute, so a forwarded screenshot of someone else's card does not work.

Promotions and referrals

Each promotion has its own discount, points, term and issue limit. Referrals are protected against people inviting themselves.

Influencers

An influencer has their own dashboard with links, QR codes, visits and earnings. They never see customers' names or phone numbers.

Tickets and entry

Events with fares and capacity, one order - one entry, season passes, cancelling and reissuing a ticket from the dashboard.

Many companies

Different companies work on one platform. Each has its own address, staff and customers, and their data never mix.

The project in detail

We built Apex Loop ourselves, with no client behind it. We wanted to see whether an ordinary shop or club could get a loyalty programme like the big chains have, without asking customers to install yet another app. The result is a working platform: loyalty cards and tickets sit in Apple Wallet and Google Wallet next to bank cards, and the owner changes the rules in their own dashboard.

It is on this site as a reference. If you need your own loyalty system, a portal for a chain, or a product you will later sell to other companies by subscription, this is how we will work on it.

Why we built it

Plastic cards get lost and every one has to be printed. A discount code spreads through group chats within an hour. A mobile app of your own costs from a million roubles and half a year of development, and then every customer has to be persuaded to install it. A subscription loyalty service is cheaper at the start, but the customers stay with the service, and a company that leaves it leaves without its base.

We wanted the middle ground: a card in the company’s brand in the phone’s built-in wallet, while the customer list, purchase history and settings belong to the company.

How it works

  1. The company designs the card: programme name, colours, logo, banner, what goes on the front. Changes show up on the card image straight away.
  2. The system issues a link and a QR code. They are printed at the till, sent in chats, handed to an influencer.
  3. The customer opens the link, leaves a name and phone number and consents to data processing. The consent is stored with its date and source, as the law requires.
  4. The card appears in the wallet, with a welcome discount or points if the promotion includes them.
  5. At the till, staff scan the card or look the customer up by phone number. The screen shows the name, discount, points and orders waiting to be collected.
  6. The purchase adds points and triggers promotion and referral rules. Later the company sends a message straight to the card, and it pops up on the phone’s screen.

The wallet itself tells the system when a card is added and when it is removed. So the report shows how many cards really live in phones, which a count of shared links can never tell you.

Where it was hard

Neither Apple nor Google allows custom fonts on a card, so the brand’s typography has to go into the banner image. On Android a new design reaches every issued card at once. On iPhone the card has to be reissued and the phone woken with a silent signal, and Apple does not guarantee delivery. The wallet allows waking the phone no more than three times a day per card, so messages go out silently by default, with a 15-minute pause during which they can be cancelled.

Screenshot protection works like a bank’s confirmation codes. The code on the card changes every minute and is calculated on the phone, the secret never travels over the network. For a forwarded picture the till answers “Code expired. Ask the customer to open the card on their phone”. If one card is used at two tills in a row, the second one sees “The discount was just applied at another till”.

Influencers required care with personal data law: an influencer sees their visits, issued cards and earnings, but not who exactly came through their link. They can be paid a fixed fee, per new customer or a share of purchases, and a refund removes the accrual automatically.

The owner’s dashboard

Sections depend on the type of business. A shop gets: summary, customers and cards, scans, links and promotions, influencers, refer-a-friend, card messages, card design, duplicates, staff. A club or event venue gets: events and fares, orders, guests, entries, member tiers, mailings.

Rights are split by role. A cashier works only with the till, a storekeeper hands out orders, a finance officer sees money but not guests’ names. Every thirty seconds the system checks whether an employee still works there and with what rights, so a dismissed employee loses access at once.

If a customer asks to delete their data, it takes one button: name and contacts are anonymised and the discount is reset.

Who else this fits

Shops, coffee places, salons, clubs and ticketed venues that want customers to come back and want to keep the customer base themselves. And companies that need their own product for many clients: Apex Loop was built from day one for many companies on one platform, and adding a new one is a setting in the dashboard, not new development.

Product website: al-360.ru.

Discuss a similar project

Tell us about your task, and we will suggest how to build something like this for you.

  1. 01
    Analysis

    We study processes, data and the points where value is lost, and fix the result we are working towards.

  2. 02
    Architecture and prototype

    We design the system and build the first version on your real data. Stages and cost are agreed before work begins.

  3. 03
    Pilot

    We launch in one area. Every stage is checked in a test version before it goes into operation.

  4. 04
    Scale and support

    We connect the remaining areas, take responsibility for how the system runs and keep developing it.

How should we contact you

Could not send the request. Please try again a little later.