← Back to blog
Need setup details while you read? Visit the Help Center.
You cannot detect your way out of self-referral. Decide the policy first, then block what the policy forbids, and do not treat a fast purchase as suspicious, because it is normal.
Published on September 24, 2026
by Fawaz

You cannot detect your way out of this one.
Every other guide on self-referral starts with detection, and most of them open with a signal our data on Shopify programs says is meaningless.
Detection is the second step anyway.
The first step is to decide where your line sits, because self-referral is not a single behaviour and the blunt rules merchants reach for catch their best customers along with the people they were aimed at.
Skip the policy step and you end up in one of two places.
So this article does the policy first, the signals second, and the automatic block third, in that order.
If you have not written your program terms yet, the decisions underneath them are in our guide to affiliate program settings, and self-referral is the policy most terms leave out entirely.
Self-referral is when an affiliate puts their own link or code on an order they placed themselves, and so earns commission on a sale they never actually referred.
Personally, I think of self-referral as a spectrum rather than a single behaviour, and the difficulty sits in the middle, where two orders can look identical while only one of them deserves a commission.
Here are some examples of what is generally considered self-referral:
Block hard enough to catch case one and you will catch case three, and sometimes case four.
Your best affiliates are very often already your customers, which means a blunt rule is aimed squarely at the people with the most reason to promote you.
But that doesn't mean this isn't still a real issue to solve.
I have seen merchants call out self-referral issues on our support chat.
Especially self-referral fraud where an affiliate buys a product using their own referral link so they get the product and earn a commission from bringing in no new customer.
Now, we do have a solution for this on Affilitrak and I'll guide you on exactly how to use it.
But before that, I'd like you to better understand what self-referrals actually cost you as a merchant.
Now that you understand what self-referrals cost your business, you'll need to define the exact policy that clarifies what self-referral is for your program.
Four decisions. Each one is a line you can paste into your terms today.
I would ban it unless you have a specific reason not to, and this is the wording I would use, because affiliates understand it and do not resent it:
You may not use your own affiliate link or code on your own orders. If you want to buy from us, use the standard customer discount available to everyone.
Give affiliates a small standing customer discount as well, because that is what makes the rule stick: it removes the incentive instead of merely banning the behaviour.
This is the decision merchants skip, and it is the one that produces the unfair outcome later. Pick one and write it down:
Orders placed by members of your household are not eligible for commission.
Or, the version I would pick for most programs:
Orders placed by other people are eligible for commission, including people you know, as long as the order is theirs and paid for by them.
The second is more generous, and it is also the only one you can enforce consistently, because you cannot distinguish a partner's own order from a disguised self-purchase, and you should not pretend otherwise.
It is easy to void an unpaid commission, but to recover one you have already paid takes a conversation nobody enjoys, so say which you will do:
Commission on ineligible orders will be removed before payout. Where a payment has already been made, the amount will be deducted from your next payout.
Section 5 has the setting that keeps you on the easy side of this line.
Decide now, in writing, because if you decide in the moment you will make an example of someone:
The first ineligible order will be removed and we will let you know why. Repeated ineligible orders will close your account.
Most first offences are ignorance rather than intent, and a program that bans on first contact loses someone who might have become a genuine affiliate.
These four lines belong alongside the other decisions you make at setup, next to your approval bar and your payout rules.
A fast purchase is not evidence of anything.
Nearly every article on this topic lists "customer bought within minutes of clicking" as a red flag.
Across Shopify stores in our data, the median time from an affiliate click to the resulting order is about nine and a half minutes, and the distribution is bimodal: a large group buys almost immediately, and a much smaller group takes days.
A purchase within minutes is not suspicious behaviour, it is the most common behaviour there is.
So if you flag on speed you will flag your best affiliates, which is precisely backwards, and I would leave speed out of your checks altogether.
The easiest way to detect a self-referral is to check if the customer's email matches the affiliate's email.
Every time a user has reached out to me about a self-referral, it's never been about noticing a fast purchase.
It was always when they noticed the customer and affiliate emails matched, which is as close to proof of a self-referral as you will get.
The signals that do hold up, in order of how much weight to give them:

Treat one signal as a question and two as an answer.
None of these on its own proves intent, and if you get it wrong you lose an advocate.
The signals above are checks you run. The first one you can stop at the door.
Affilitrak's self-referral prevention compares the customer's email on the order against the email registered to the affiliate whose link or code was used.
When they match, the order is not credited.
It takes one toggle to turn on, under Settings → Extra features → Prevent self-referrals, and it costs you nothing in false positives, because an exact email match between the referrer and the buyer is not a coincidence that occurs in normal trading.

It also runs at the point of attribution rather than at payout, so a blocked order never becomes a pending commission at all.
The email check settles case one, but it cannot read intent, so cases two, three and four from section 1 stay policy questions.
What you can do is stop them becoming irreversible while you answer them.
Affilitrak lets you decide when a commission is approved rather than leaving every one of them to approve itself. You can:
I haven't received a question regarding this from our merchants but I believe the second option is the one most merchants would want, because manual approval on every order becomes a job, while a delay costs nothing and runs by itself.
This is what decision three in your terms rests on.
It is also the practical answer when you suspect one specific affiliate.
Switch approval to manual, or lengthen the delay, and then open that affiliate's profile and look at their orders against the four signals above before anything is approved.

Set the delay to your returns window rather than a round number, so a commission is never approved on an order that can still come back.
Run the manual checks from section 4 as a monthly review of your top affiliates rather than a per-order habit, and you will catch the patterns that no single-order rule can see.
Assume ignorance first, because most of the time you will be right.
A large share of self-referral is someone who joined a program, was told they earn commission on orders through their link, and never thought of their own order as a special case. Nobody told them otherwise, and if your terms did not say it plainly, then nobody really did.
Send this before you send anything else:
Hi [name],
A quick note about order [number]. Our program terms do not allow commission on your own orders, so I have removed the commission on that one.
This is not a problem and nothing has changed with your account. I should have made it clearer when you joined.
If you want to order from us yourself, use [customer discount code] instead, which is the standard discount and better than the commission would have been anyway.
[Your name]
Three things that message does:
Escalate only when it repeats after that message, and when it does, apply exactly what decision four in your terms says, which is why you wrote it down in advance.
The related but separate problem is a code that has escaped into the wild, so that strangers use it rather than the affiliate.
That is a different failure with a different fix, and we covered it in how to stop affiliate coupon code leaks.
Do these in order.
And stop treating speed as a signal.
The affiliate whose referrals buy within ten minutes has not gamed you, they have done the job better than the rest of your program.
You can install Affilitrak free and set the self-referral rule before your first commission is due.