Prevent Coupon Abuse & Multi-Account Promo Exploitation
Stop users from gaming your promotions. IPASIS detects serial abusers who create multiple accounts with disposable emails and VPNs to repeatedly claim discounts, free trials, and referral bonuses.
The Coupon Abuse Problem
Multi-Account Abuse
Users create dozens of accounts with fake emails to claim "first purchase" discounts, free trial extensions, or referral credits repeatedly.
Revenue Loss
Serial abusers never pay full price, turning your profitable promotions into money-losing schemes that subsidize fraudsters.
Unfair to Real Customers
Limited-quantity promos get exhausted by abusers, leaving legitimate customers unable to benefit from your marketing campaigns.
How IPASIS Detects Coupon Abuse
Disposable Email Detection
Identifies temporary email services (temp-mail.org, 10minutemail.com, guerrillamail.com) and newly registered domains used to create throwaway accounts.
VPN & Proxy Detection
Flags users hiding their true location to bypass geographic restrictions or create accounts that appear to come from different places.
IP Reputation Scoring
Analyzes IP history for patterns of abuse — if an IP has been used to create 50+ accounts in the past month, that's a red flag.
Comprehensive Trust Score
Combines email validation, IP reputation, and anonymization signals into a 0-100 score, enabling smart promo eligibility rules.
Implementation Example
Validate promo code applications and trial signups before granting discounts:
// Promo code redemption handler (Node.js example)
import axios from 'axios';
app.post('/api/apply-promo', async (req, res) => {
const { email, promoCode, userId } = req.body;
const userIP = req.ip;
try {
// Validate with IPASIS
const ipasisResponse = await axios.post(
'https://api.ipasis.com/check',
{
ip: userIP,
email: email
},
{
headers: {
'Authorization': `Bearer ${process.env.IPASIS_API_KEY}`,
'Content-Type': 'application/json'
}
}
);
const { trustScore, signals } = ipasisResponse.data;
// Check if promo has been used before
const promoUsage = await getPromoUsageHistory(promoCode);
// Define abuse risk level
let abuseRisk = 'low';
let allowPromo = true;
// High-value promos: stricter threshold
const isHighValuePromo = promoCode.includes('50OFF') ||
promoCode.includes('FREE');
const threshold = isHighValuePromo ? 70 : 50;
if (trustScore < threshold) {
abuseRisk = trustScore < 30 ? 'high' : 'moderate';
allowPromo = false;
await logBlockedPromoAttempt({
email,
ip: userIP,
promoCode,
userId,
trustScore,
signals,
reason: `Trust score ${trustScore} below threshold ${threshold}`
});
return res.status(400).json({
error: 'Promo code not eligible',
message: 'This promo code cannot be applied to your account.'
});
}
// Check for suspicious patterns
if (signals.isDisposableEmail || signals.isVPN) {
await flagSuspiciousPromoUse({
email,
ip: userIP,
promoCode,
userId,
trustScore,
signals
});
// Allow but require verification for moderate risk
if (trustScore < 60) {
return res.status(200).json({
success: false,
requiresVerification: true,
message: 'Please verify your email to apply this promo.'
});
}
}
// Apply promo code
const discount = await applyPromoCode({
userId,
promoCode,
email,
trustScore,
ipAddress: userIP
});
// Track for analytics
await trackPromoRedemption({
userId,
email,
promoCode,
discountAmount: discount.amount,
trustScore,
timestamp: new Date()
});
res.json({
success: true,
discount: discount.amount,
message: `Promo code applied! You saved $${discount.amount}`
});
} catch (error) {
console.error('Promo validation failed:', error);
// Fallback: require manual approval
await queueForManualReview({
email,
promoCode,
userId,
reason: 'IPASIS_CHECK_FAILED'
});
res.status(400).json({
error: 'Unable to apply promo',
message: 'Please contact support to apply this code.'
});
}
});
// Trial signup with abuse prevention
app.post('/api/start-trial', async (req, res) => {
const { email, plan } = req.body;
const userIP = req.ip;
const ipasisResponse = await axios.post(
'https://api.ipasis.com/check',
{ ip: userIP, email },
{
headers: {
'Authorization': `Bearer ${process.env.IPASIS_API_KEY}`
}
}
);
const { trustScore } = ipasisResponse.data;
// Prevent trial abuse: require trustScore >= 50
if (trustScore < 50) {
return res.status(400).json({
error: 'Trial not available',
message: 'Paid plans start at $9/month. Sign up now!'
// Don't reveal fraud detection
});
}
// Grant trial access
const user = await createTrialUser({ email, plan, trustScore });
res.json({ success: true, userId: user.id });
});💡 Strategy Tip: Use tiered thresholds — high-value promos (50%+ off) require higher trust scores (>70), while small discounts (<20% off) can be more lenient (>50). Adjust based on your abuse patterns.
Impact on Promotion ROI
Reduction in promo abuse
Average annual savings
Better promo campaign ROI
Stop Coupon Abuse Today
Protect your promotions from serial abusers. Start with 1,000 free checks per day.
Start Free Trial1,000 free requests/day • No credit card • 5-minute integration