Use case

Coupon and referral abuse: stop self-referral and code farming

Coupons meant for new customers get reused, and referral programs get farmed by people who invite their own second account. FingerPrint Checker limits coupon claims per device and household, and compares an invitee’s device with the devices the inviter logs in from.

The threat

A first-order discount or a referral reward is a payout. Whoever can create an account cheaply can collect it repeatedly, and shared codes spread beyond the audience you meant.

What we stop

  • One-time coupons claimed again from the same device, email or household.
  • An invitee who is, in practice, the inviter on another account: same device, same browser profile or same computer and network.
  • Scripted coupon and referral claims.

Two checks, two calls

For coupons, ask for an eligibility decision with a coupon claim kind. For referrals, bind the inviter’s devices when they log in, then compare the invitee’s device when they claim. The relation answer is advisory: it returns graded signals and a suggestion of allow, review or deny, and you decide.

Your project handles the trial kind out of the box. Further claim kinds, such as a coupon or a sign-up bonus, and named quotas are switched on for your project on request.

Compare an invitee with the inviter

// At the inviter's login: remember which devices this user uses (does not spend the attestation)
await fetch('https://api.fpchecker.com/v1/subjects/bind', {
  method: 'POST',
  headers: { 'content-type': 'application/json', 'X-Secret-Key': process.env.FPCHECKER_SECRET_KEY },
  body: JSON.stringify({ subject: session.userId, attestation }),
});

// When the invitee claims: compare their device with the inviter's
const r = await (await fetch('https://api.fpchecker.com/v1/subjects/relation', {
  method: 'POST',
  headers: { 'content-type': 'application/json', 'X-Secret-Key': process.env.FPCHECKER_SECRET_KEY },
  body: JSON.stringify({ subject: inviterUserId, attestation: inviteeAttestation }),
})).json();
// r.suggestion is "allow", "review" or "deny"; it is advice, you decide

Frequently asked questions

Can it prove a referral is fake?

No. It reports how closely the invitee’s device matches the inviter’s, and weak signals such as a shared network are labelled as weak. Use review for the unclear cases.

Is the subject my user’s email?

It is your own user id, taken from your session. We store it only as a keyed hash.

Try it on your own sign-up flow

Every new account gets 2,000 free checks. No card required.