Stop multi-accounts and VPN farmers before they cash out
Fraud detection for rewards sites, GPT and offerwall publishers. Catch multi-accounts, VPNs, emulators and bots before cashout. Install in 5 minutes, free up to 1,000 users.
Live in 5 minutes
No SDK to maintain, no sales call. Add a script, send one value to your server, ask for a decision.
- Add the script. One tag with your public key on the pages where users sign up, log in, click offers or cash out.
- Collect at key moments. Call collect() and send the request_id to your server with the form.
- Ask for a decision. Your server calls /v1/evaluate and gets allow, review or block, a 0-100 score and readable reasons.
New sites start in shadow mode: you see every score, nobody gets blocked until you switch to enforce.
Where rewards sites lose money
Every fake account that cashes out is money you paid for nothing. Then the offerwall reverses the conversion and you pay again.
- Multi-accounts. One person, twenty accounts, twenty signup bonuses and twenty referral payouts.
- VPN farms. Datacenter and VPN IPs posing as users in high-paying countries to unlock better offers.
- Emulators and VMs. Android emulators and virtual machines grinding app-install offers around the clock.
- Bots and scripts. Headless browsers and automation tools that sign up, click and complete tasks without a human.
- Reversals and chargebacks. Offerwalls reverse fraudulent conversions weeks later, after you already paid the user.
- Network bans. Send too much bad traffic and ad networks cut your rates or close your account.
Built around the rewards funnel
Offer click, postback, cashout. We watch the whole path, not just the login form.
- Cashout review queue. Every cashout arrives scored. Approve, hold or deny with the evidence in front of you, and ban the whole cluster in one click.
- Linked-accounts graph. See which accounts share a device, payout address or email. Fraud rings stop hiding behind new usernames.
- Offer speed and velocity. Flags offers completed faster than real players can, duplicate transaction IDs and conversion bursts.
- Shadow mode. Score everything without blocking anyone. Switch to enforce when you trust the numbers.
- Rules and lists. Your own allow and block lists, and rules on top of the score.
- Webhooks. Get a signed POST the moment an account turns into a block, so your backend can freeze balances before the next cashout.
55 reason codes. Every decision explains itself.
Each score comes with the reasons behind it, in plain language, in your dashboard and in the API response. Plus your own allow and block lists.
Network
ip_tor: Tor exit nodeip_vpn: VPN connectionip_datacenter: Datacenter / hosting IPtimezone_mismatch: Browser timezone does not match IP locationwebrtc_ip_leak: Real IP leaked in another countryip_multi_timezone: Same IP used with many different timezones (proxy exit)proxy_farm_ip: Several accounts on one IP, all with the same foreign clock (shared proxy)privacy_relay: iCloud Private Relay (privacy feature)proxy_headers: Request came through a proxygeo_sources_disagree: Geolocation sources disagreeip_shared_with_accounts: Same IP used by other accounts todaycountry_changed: Country changedlocale_country_mismatch: Browser language from another countryphone_country_mismatch: Phone from another country than the IPip_flagged_on_network: IP blocked on other websites
Device
device_shared_with_accounts: Device shared with other accountsautomation_detected: Bot or automation toolauto_clicker: Auto-clicker on the phonescripted_behavior: Scripted page useemulator_or_vm: Emulator or virtual machinebrowser_tampering: Browser tampering / spoofingdevice_rooted: Rooted phoneincognito: Private browsingdevice_spoofed: Fake phone modelemulator_profile: Emulator default profilecloud_phone: Cloud phonephone_farm_display: Phone farm displaydevice_market_mismatch: China-only phone abroadstorage_cleared_reappeared: Cleared cookies and came backno_device_data: No device data sentrequest_reused: Device token reused by another accountdevice_farm_proxy: Phone farm on residential proxies
Account
payout_address_shared: Payout address used by other accountsemail_disposable: Disposable emailemail_shared: Same email as another accountphone_shared: Phone number shared by other accountsphone_voip: VoIP or virtual phone numberphone_invalid: Invalid phone numbermany_devices_per_account: Too many devices on one accountflagged_on_network: Blocked on another website protected by CashoutGuard
Behavior
offer_completed_too_fast: Offer completed impossibly fastconversion_velocity: Too many conversions per hourconversion_without_click: Conversion with no click from your wallclick_conversion_country_mismatch: Clicked in one country, converted in anotheroffer_country_mismatch: Offer country differs from the user’sclick_velocity: Too many offer clicks in a few minutesearnings_spike: Earnings far above a normal usersource_high_reversals: Source with many chargebacksoffer_high_reversals: Offer with many chargebacksduplicate_transaction: Duplicate transaction IDoffer_repeated_other_publisher: Same offer already done through another publisheroffer_repeated_other_account: Same offer already done by another account on this devicecashout_velocity: Too many cashouts per daynew_account_cashout: Cashout from a brand-new account
Your lists
blocklisted: On your blocklist
Simple pricing that grows with you
Every plan includes all signals. Start free, upgrade when you need the cashout queue and team tools.
- Free (Try it on a live site): $0/mo, 1,000 monthly active users. History: 7 days. Sites: 1. All signals and reason codes, Shadow mode.
- Starter (Small rewards sites): $29/mo, 25,000 monthly active users. History: 30 days. Sites: 1. All signals and reason codes, Shadow mode, Cashout review queue, Alerts, Linked-accounts graph, Offer speed and velocity, 3 custom rules.
- Growth (Growing GPT and offerwall sites): $79/mo, 100,000 monthly active users. History: 90 days. Sites: 3. All signals and reason codes, Shadow mode, Cashout review queue, Alerts, Linked-accounts graph, Offer speed and velocity, Webhooks, Unlimited rules.
- Pro (Networks and multiple sites): $199/mo, 400,000 monthly active users, then $1.00 per 1,000 extra. History: 1 year. Sites: 10. All signals and reason codes, Shadow mode, Cashout review queue, Alerts, Linked-accounts graph, Offer speed and velocity, Webhooks, Unlimited rules, Priority support.
You get every Growth feature for 14 days without entering a card. When it ends you choose a plan or stay on Free. Nothing is charged automatically.
Questions site owners ask
Will real users get blocked by mistake?
Nobody is blocked by default. New sites start in shadow mode, and every decision shows its reasons so you can check them. Weak signals such as private browsing only add a little to the score, and you can allowlist any account, IP or payout address.
What is shadow mode?
In shadow mode we score every event and return the real decision, but the action field always says allow. You watch the results in the dashboard for a few days, then switch to enforce when you trust them.
Is it GDPR friendly?
We only process what is needed to prevent fraud, which is a legitimate interest under GDPR. Emails and payout addresses are stored as hashes, the collector keeps a single random first-party ID (no advertising or cross-site tracking), and history is deleted after your plan's retention period. We sign a DPA with you, and you mention us in your privacy policy as a fraud prevention processor.
What data does the script collect?
Technical browser and device properties (screen, time zone, language, graphics and audio fingerprints, automation and emulator hints), the page URL without query string, and a random ID stored on your domain. It also counts clicks, key presses and pointer moves, and their timing, to tell people from scripts, but never which keys were pressed, form fields or page content.
Does it work in iOS and Android apps?
Yes, inside WebViews and in-app browsers. Load your page with the script and call collect() as usual. Some apps never send the scan's POST: the script then resends it as a small GET on its own, so the scan still arrives. If your app keeps a list of allowed domains, add cashoutguard.com. Some in-app browsers block storage, so expect more first-time devices there.
How fast is it?
The collector runs in the background and caps its device checks at 1.5 seconds, usually less. The server check is one API call, so you can run it right before you pay a cashout.
What if a user blocks the script?
collect() never throws. Your server can still call evaluate without a request_id, and signups or cashouts without device data get the no_device_data reason so they do not slip through.
Do I need to talk to sales?
No. Sign up, copy the snippet, and see your first scores in minutes. Upgrades and cancellations are self-serve.
Guides
- How to detect multi-accounts on a rewards site
- How to stop VPN fraud on your offerwall without blocking real users
- Offerwall chargebacks: why conversions get reversed and how to stop paying for them
- Residential proxy fraud on offerwalls: how to spot traffic that IP blocklists miss
- Emulators and phone farms on rewards apps: how to catch them without blocking real users
- Cashout fraud checklist: what to check before you pay a withdrawal
- Offer completion speed: how fast is too fast on an offerwall
- Case study: 1 in 5 accounts was a VPN, a phone farm or a multi-account
- How to secure your offerwall postbacks against fake conversions
- Referral and bonus abuse on rewards sites: how to spot self-referrals
- Survey fraud on GPT sites: speeders, bots and duplicate respondents
- How to block fraud at signup, offer click and cashout
- Fraud detection for offerwall networks: score every publisher
- How to stop bots and multi-accounts in Telegram mini apps and airdrops
- How to stop bots on PTC and faucet sites
- Glossary of rewards, GPT and offerwall fraud terms
- Best fraud prevention tools for offerwall and GPT sites (2026)
- CashoutGuard integrations: PHP, Laravel, Node.js, Next.js, Python, WordPress, Android and offerwalls
- Shared wallets: catch multi-accounts that cash out crypto to the same address
- Disposable emails and Gmail aliases: stopping multi-account signups on rewards sites
- Fraud rules for rewards sites: 15 examples you can copy
- Detecting a hidden VPN from the browser clock and language
- Filter offerwall postbacks without touching your code
- Offer clicks from app WebViews without device data: why it happens and how to fix it
- Cloud phones: how offerwall farms rent Android in a data center, and how to catch them
- Offerwall postback parameters: Lootably, AdGate Media, CPX Research and BitLabs
- Anti-detect browsers on rewards sites: how GoLogin, AdsPower and Multilogin farms are caught
- Free fraud protection for a small rewards site: one script, no server code
- CashoutGuard vs IPQS
- CashoutGuard vs Verisoul
- CashoutGuard vs Fingerprint
- CashoutGuard vs SEON
- CashoutGuard vs MaxMind
- CashoutGuard vs proxycheck.io