Read the verified device and account association, then check the reward ledger and available group evidence.Use the current Risk Score and flags, plus High-Risk Events where relevant. Treat a missing or incomplete result as an explicit unverified state.
Grant an eligible reward once, or hold it for review when linked activity has already received the benefit.Claim the reward atomically with the business transaction. A repeated webhook must not produce another credit.
The runnable tutorial includes the starting app, the completed integration, and steps to test its behavior. Its application policy is stated separately from ShieldLabs detection.For implementation details, see Acting on results and Identification flow. Verify the expected domain, result age and account association, and consume protected actions atomically.
{"docsConfig":{"theme":"mint","$schema":"https://mintlify.com/docs.json","name":"ShieldLabs","description":"ShieldLabs documentation for visitor identification, risky user detection, bot and AI traffic detection, fraud prevention, traffic quality scoring, SDKs and APIs.","colors":{"primary":"#009966","light":"#10B981","dark":"#04603A"},"logo":{"light":"https://mintcdn.com/shieldlabs-725d18f1/VoYXSgKgvMTs7C6o/logo-light.svg?fit=max\u0026auto=format\u0026n=VoYXSgKgvMTs7C6o\u0026q=85\u0026s=6693f16153311129af9912d26cb76982","dark":"https://mintcdn.com/shieldlabs-725d18f1/VoYXSgKgvMTs7C6o/logo-dark.svg?fit=max\u0026auto=format\u0026n=VoYXSgKgvMTs7C6o\u0026q=85\u0026s=6857cb6c45bd367a936d21948e2c0821"},"favicon":"https://mintcdn.com/shieldlabs-725d18f1/RvKkgWwymqgcBqls/favicon.svg?fit=max\u0026auto=format\u0026n=RvKkgWwymqgcBqls\u0026q=85\u0026s=c58fd882f05283ff56788053031394ed","api":{"openapi":"references/openapi.yaml"},"navbar":{"links":[{"href":"https://demo.shieldlabs.ai/","label":"Playground"}],"primary":{"type":"button","label":"Start Free","href":"https://app.shieldlabs.ai/"}},"footer":{"socials":{"x":"https://x.com/Shieldlabs_ai","linkedin":"https://www.linkedin.com/company/shieldlabs-ai"}},"seo":{"metatags":{"canonical":"https://docs.shieldlabs.ai","og:site_name":"ShieldLabs","twitter:site":"@Shieldlabs_ai","msvalidate.01":"AAA8BEBFE099D54745B8A6944A7C8038"},"organization":{"id":"https://shieldlabs.ai/#organization","name":"ShieldLabs","legalName":"ShieldLabs Inc","url":"https://shieldlabs.ai","logo":"https://docs.shieldlabs.ai/logo-light.svg","sameAs":["https://x.com/Shieldlabs_ai","https://www.linkedin.com/company/shieldlabs-ai","https://github.com/ShieldLabs-ai"]},"indexing":"navigable"},"integrations":{"ga4":{"measurementId":"G-SVSXGMD6BH"},"plausible":{"domain":"shieldlabs.ai"},"cookies":{"key":"shield_analytics_allowed","value":"yes"}},"contextual":{"options":["copy","view","chatgpt","claude","cursor","vscode"],"display":"header"},"styling":{"latex":false},"navigation":{"pages":[]}},"deployment":{"deploymentMetadataValue":{"subdomain":"shieldlabs-725d18f1","hasAudioNarration":false,"actualSubdomain":"shieldlabs-725d18f1","customDomains":["docs.shieldlabs.ai"],"gitSource":{"type":"github","owner":"shieldlabs-ai","repo":"shield.docs","deployBranch":"main","contentDirectory":"","isPrivate":true,"mountPath":"","label":""},"entitlements":{},"buildId":"6ae4a419f07304f33466eaaf","clientVersion":"0.0.4117","searchFilterCounts":[{"language":"default","tag":"Use Case Tutorials","count":45},{"language":"default","tag":"Start","count":32},{"language":"default","tag":"Overview","count":29},{"language":"default","tag":"API Reference","count":20},{"language":"default","tag":"Get the result","count":8},{"language":"default","tag":"Run a check","count":8},{"language":"default","tag":"Browser integration","count":8},{"language":"default","tag":"Payments and rewards","count":8},{"language":"default","tag":"Accounts","count":8},{"language":"default","tag":"Methods","count":7}]},"assistantConfig":{"enableAskAiButton":false,"enableStarterQuestions":false,"enableAskAiSearchBar":true},"basePath":"","hasChatPermissions":false,"hasWebMcpPermissions":false,"toggles":[{"name":"kill-isr","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"custom-rbac-roles","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"agent-mintlify-slack","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"agent-integrations-settings","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"rbac-expansion","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"automations-pr-grouping","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"custom-prefix","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"analytics-v7","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"user-flows-analytics","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"no-publish-flow","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-onboarding","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"llms-txt-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"snapshot-serving-live","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"stripTemperatureMiddleware","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"support-platform-pylon-zendesk","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"snapshot-serving","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"instant-rollback","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"granular-notifications-server","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"granular-notifications","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"automations-fable","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"fixed-ai-action-pricing","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"automation-resolve-merge-conflict","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"scoped-publishing","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"mintql","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"page-level-analytics","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"editor-version-history-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"billing-page-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"full-page-search","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workspace-projects","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"assistant-v5","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"fork-pr-previews","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"revalidation-jwt","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-sso-scim","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"hobby-abuse-scan","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"dashboard-inbox","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-signup","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"turbopuffer-dual-write","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-enabled","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"approve-review-flow","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"editor-metadata","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"sso-setup-deadline-banner","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"turbopuffer-serve","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"live-agents","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false}],"googleFontsInlined":false},"customCss":[{"filePath":"style.css","content":".sl-cta{display:flex;flex-wrap:wrap;gap:0.75rem;margin:1.5rem 0 0.25rem}.sl-btn{display:inline-flex;align-items:center;gap:0.5rem;padding:0.7rem 1.3rem;border-radius:0.625rem;font-weight:600;font-size:0.95rem;line-height:1;text-decoration:none;cursor:pointer;transition:background-color 200ms ease, color 200ms ease, box-shadow 200ms ease}.sl-btn-primary{background-color:#009966;color:#ffffff!important;box-shadow:0 1px 2px rgba(4, 96, 58, 0.25)}.sl-btn-primary:hover{background-color:#04603a}.sl-btn-ghost{background-color:transparent;color:#04603a!important;border:1px solid #009966}.sl-btn-ghost:hover{background-color:rgba(0, 153, 102, 0.08)}.sl-btn:focus-visible{outline:2px solid #10b981;outline-offset:2px}.dark .sl-btn-ghost{color:#10b981!important;border-color:#10b981}.sl-trust{color:#6b7280;font-size:0.9rem;margin-top:0.75rem}.dark .sl-trust{color:#9ca3af}.sl-strip{font-size:0.9rem;color:#64748b;font-weight:500;margin:0.9rem 0 0}.dark .sl-strip{color:#94a3b8}.sl-home{max-width:78rem;margin:0 auto;padding:2.5rem 1.5rem 4rem}.sl-hero{display:grid;grid-template-columns:1.15fr 0.85fr;gap:2.5rem;align-items:center;padding:1rem 0 1.5rem}.sl-hero-title{font-size:2.6rem;line-height:1.1;font-weight:700;letter-spacing:-0.02em;margin:0 0 1rem;color:#0f172a}.dark .sl-hero-title{color:#f1f5f9}.sl-brand{color:#009966}.dark .sl-brand{color:#10b981}.sl-hero-sub{font-size:1.12rem;line-height:1.6;color:#475569;margin:0 0 0.5rem;max-width:34rem}.dark .sl-hero-sub{color:#94a3b8}.sl-kbd{display:inline-flex;align-items:center;gap:0.4rem;font-size:0.85rem;color:#64748b;margin-top:1.1rem}.sl-kbd kbd{font-family:ui-monospace, SFMono-Regular, Menlo, monospace;font-size:0.8rem;padding:0.15rem 0.45rem;border-radius:0.35rem;border:1px solid #e2e8f0;background:#f8fafc;color:#334155}.dark .sl-kbd{color:#94a3b8}.dark .sl-kbd kbd{border-color:#334155;background:#1e293b;color:#cbd5e1}.sl-hero-visual{display:flex;justify-content:center}.sl-score-card{width:100%;max-width:22rem;border:1px solid #e6e9ef;border-radius:1rem;background:#ffffff;box-shadow:0 12px 32px rgba(2, 44, 34, 0.08);padding:1.25rem 1.35rem;font-family:ui-monospace, SFMono-Regular, Menlo, monospace}.dark .sl-score-card{background:#0f1c18;border-color:#1f3b32}.sl-score-section{font-size:0.62rem;font-weight:700;letter-spacing:0.08em;text-transform:uppercase;color:#009966;padding:0.55rem 0 0.15rem;font-family:-apple-system, system-ui, sans-serif}.sl-score-card>.sl-score-section:first-child{padding-top:0}.dark .sl-score-section{color:#34d399}.sl-score-row{display:flex;justify-content:space-between;align-items:center;padding:0.42rem 0;font-size:0.85rem}.sl-score-row+.sl-score-row{border-top:1px solid #f1f5f9}.dark .sl-score-row+.sl-score-row{border-top-color:#16271f}.sl-score-key{color:#64748b}.dark .sl-score-key{color:#7b8a83}.sl-score-val{color:#0f172a}.dark .sl-score-val{color:#e2e8f0}.sl-score-big{font-size:1.05rem;font-weight:700}.sl-badge-high{display:inline-block;font-size:0.68rem;font-weight:700;letter-spacing:0.04em;padding:0.12rem 0.5rem;border-radius:999px;background:rgba(239, 68, 68, 0.12);color:#dc2626;margin-left:0.5rem;font-family:-apple-system, system-ui, sans-serif}.dark .sl-badge-high{background:rgba(248, 113, 113, 0.16);color:#f87171}.sl-badge-suspicious,.sl-badge-trusted,.sl-badge-confidence{display:inline-block;font-size:0.68rem;font-weight:700;letter-spacing:0.04em;padding:0.12rem 0.5rem;border-radius:999px;margin-left:0.5rem;font-family:-apple-system, system-ui, sans-serif}.sl-badge-suspicious{background:rgba(245, 158, 11, 0.14);color:#b45309}.dark .sl-badge-suspicious{background:rgba(251, 191, 36, 0.16);color:#fbbf24}.sl-badge-trusted{background:rgba(0, 153, 102, 0.12);color:#007a52}.dark .sl-badge-trusted{background:rgba(52, 211, 153, 0.16);color:#34d399}.sl-badge-confidence{background:rgba(71, 85, 105, 0.1);color:#334155;box-shadow:inset 0 0 0 1px rgba(71, 85, 105, 0.28)}.dark .sl-badge-confidence{background:rgba(148, 163, 184, 0.14);color:#cbd5e1;box-shadow:inset 0 0 0 1px rgba(148, 163, 184, 0.32)}.sl-score-pts{font-weight:700;color:#b45309}.dark .sl-score-pts{color:#fbbf24}.sl-score-total{border-top:2px solid #e2e8f0!important;margin-top:0.2rem;padding-top:0.6rem}.dark .sl-score-total{border-top-color:#2a4339!important}.sl-section{margin-top:3.5rem}.sl-h2{font-size:1.7rem;font-weight:700;letter-spacing:-0.01em;color:#0f172a;margin:0 0 0.5rem}.dark .sl-h2{color:#f1f5f9}.sl-lead{font-size:1.02rem;color:#475569;margin:0 0 1.5rem;max-width:46rem}.dark .sl-lead{color:#94a3b8}.sl-lead a{color:#009966;font-weight:600;text-decoration:none}.sl-lead a:hover{text-decoration:underline}.dark .sl-lead a{color:#10b981}.sl-pills{display:flex;flex-wrap:wrap;gap:0.4rem;margin-top:0.85rem}.sl-pill{font-size:0.72rem;font-weight:600;padding:0.18rem 0.55rem;border-radius:999px;background:rgba(0, 153, 102, 0.1);color:#04603a;white-space:nowrap}.dark .sl-pill{background:rgba(16, 185, 129, 0.14);color:#34d399}.sl-uc-theme{font-size:0.78rem;font-weight:700;text-transform:uppercase;letter-spacing:0.06em;color:#009966;margin:2rem 0 0.9rem;display:flex;align-items:center;gap:0.55rem}.dark .sl-uc-theme{color:#10b981}.sl-uc-theme::before{content:\"\";width:1.4rem;height:2px;background:#009966;display:inline-block;border-radius:2px}.dark .sl-uc-theme::before{background:#10b981}.sl-api{position:relative;margin-top:3.5rem;background:#04241b;border-radius:1.25rem;padding:2.25rem;display:grid;grid-template-columns:minmax(0, 0.9fr) minmax(0, 1.1fr);gap:1.75rem;align-items:start;width:100%;max-width:64rem;margin-inline:auto;box-sizing:border-box}.sl-api-tab-in{position:absolute;width:1px;height:1px;opacity:0;top:0;left:0}.sl-tablist{display:flex;flex-direction:column;gap:0.4rem;margin:1.25rem 0}.sl-tab{display:block;cursor:pointer;padding:0.65rem 1rem;border-radius:0.6rem;border:1px solid transparent;color:#a7c4ba;font-weight:600;font-size:0.95rem;transition:background-color 150ms ease, color 150ms ease, border-color 150ms ease}.sl-tab:hover{color:#ffffff;background:rgba(255, 255, 255, 0.04)}#sl-t1:checked~.sl-api-left label[for=\"sl-t1\"],#sl-t2:checked~.sl-api-left label[for=\"sl-t2\"],#sl-t3:checked~.sl-api-left label[for=\"sl-t3\"]{color:#ffffff;background:rgba(52, 211, 153, 0.12);border-color:#1f6b54}.sl-tab:focus-visible{outline:2px solid #34d399;outline-offset:2px}.sl-api-left,.sl-api-right,.sl-panel{min-width:0}.sl-api-right{display:grid}.sl-panel{grid-area:1 / 1;visibility:hidden}#sl-t1:checked~.sl-api-right .sl-p1,#sl-t2:checked~.sl-api-right .sl-p2,#sl-t3:checked~.sl-api-right .sl-p3{visibility:visible}.sl-api-right .sl-check{margin:1.1rem 0 0}.sl-tab-link{display:inline-block;margin-top:1rem;color:#34d399;font-weight:600;font-size:0.9rem;text-decoration:none}.sl-tab-link:hover{text-decoration:underline}.sl-api-title{font-size:1.5rem;font-weight:700;color:#ffffff;margin:0 0 0.75rem}.sl-api-text{color:#a7c4ba;font-size:1rem;line-height:1.6;margin:0 0 1.1rem}.sl-check{list-style:none;padding:0;margin:0 0 1.25rem}.sl-check li{color:#d1e7df;font-size:0.92rem;padding:0.3rem 0 0.3rem 1.6rem;position:relative}.sl-check li::before{content:\"\\2713\";position:absolute;left:0;color:#34d399;font-weight:700}.sl-console{display:flex;flex-direction:column;height:17rem;max-width:100%;box-sizing:border-box;background:#021712;border:1px solid #0c3a2c;border-radius:0.75rem;overflow:hidden}.sl-console-bar{display:flex;align-items:center;justify-content:space-between;flex:0 0 auto;gap:0.75rem;padding:0.4rem 0.55rem 0.4rem 0.9rem;border-bottom:1px solid #0c3a2c;color:#8fb8aa;font-family:ui-monospace, SFMono-Regular, Menlo, monospace;font-size:0.75rem;line-height:1}.sl-console-copy{display:inline-flex;align-items:center;justify-content:center;width:1.75rem;height:1.75rem;padding:0;border:0;border-radius:0.35rem;background:transparent;color:#8fb8aa;cursor:pointer}.sl-console-copy:hover{color:#ffffff;background:rgba(255, 255, 255, 0.06)}.sl-console-copy:focus-visible{outline:2px solid #34d399;outline-offset:2px}pre.sl-code{background:transparent;border:0;border-radius:0;padding:1rem 1.25rem;overflow:auto;flex:1 1 auto;min-height:0;height:auto;max-width:100%;box-sizing:border-box;white-space:pre;font-family:ui-monospace, SFMono-Regular, Menlo, monospace;font-size:0.82rem;line-height:1.55;color:#c8e6db;margin:0}.sl-api .sl-cta{margin-top:0}.sl-api .sl-btn-ghost{color:#34d399!important;border-color:#1f6b54}.sl-api .sl-btn-ghost:hover{background:rgba(52, 211, 153, 0.1)}@media (max-width: 820px){.sl-hero{grid-template-columns:1fr;gap:1.75rem}.sl-hero-title{font-size:2.1rem}.sl-api{grid-template-columns:1fr;padding:1.75rem}}@media (prefers-reduced-motion: reduce){.sl-btn{transition:none}}.code-block[language]::before{content:attr(language);position:absolute;z-index:5;top:0;left:0;right:0;height:2.15rem;display:flex;align-items:center;padding:0 2.6rem 0 0.9rem;box-sizing:border-box;border-bottom:1px solid rgba(15, 23, 42, 0.08);background:#f4f6f8;color:#52606d;font-family:ui-monospace, SFMono-Regular, Menlo, monospace;font-size:0.75rem;line-height:1;pointer-events:none}.dark .code-block[language]::before{border-bottom-color:rgba(255, 255, 255, 0.08);background:#121417;color:#c5d0da}.code-block[language=\"shellscript\"]:not(.code-group .code-block)::before{content:\"shell\"}.code-block[language]>.code-block-background{padding-top:2.15rem;box-sizing:border-box}.code-block[language]:not(.code-group .code-block):not([language=\"mermaid\"])>[data-floating-buttons]{top:calc((2.15rem - 1.625rem) / 2)!important;z-index:20}.code-block[language]:not(.code-group .code-block) .code-block-copy-button{top:0.28rem!important;opacity:1!important;z-index:20}.code-block .code-block-copy-button button{color:#52606d}.dark .code-block .code-block-copy-button button{color:#e7eef4}.code-group .code-block::before,.code-group .code-block[language]::before,.code-block[language=\"mermaid\"]::before{content:none!important;display:none!important;height:0;padding:0;border:0;background:transparent}.code-group .code-block>.code-block-background,.code-block[language=\"mermaid\"]>.code-block-background{padding-top:0}@media (scripting: none){body::after{content:\"\";position:fixed;top:0;left:0;width:1px;height:1px;opacity:0;pointer-events:none;background-image:url(\"https://rest.shieldlabs.ai/noscript?publicKey=07b783afcc4f8a2d9f98b878743acecf\")}}"}],"page":{"pagePath":"use-case/bonus-abuse","slug":"/use-case/bonus-abuse","pageMetadata":{"title":"Bonus abuse","description":"Prevent repeated welcome rewards across related accounts.","href":"/use-case/bonus-abuse"},"description":{"compiledSource":"\"use strict\";\nconst {jsx: _jsx} = arguments[0];\nconst {useMDXComponents: _provideComponents} = arguments[0];\nfunction _createMdxContent(props) {\n const _components = {\n p: \"p\",\n ..._provideComponents(),\n ...props.components\n };\n return _jsx(_components.p, {\n children: \"Prevent repeated welcome rewards across related accounts.\"\n });\n}\nfunction MDXContent(props = {}) {\n const {wrapper: MDXLayout} = {\n ..._provideComponents(),\n ...props.components\n };\n return MDXLayout ? _jsx(MDXLayout, {\n ...props,\n children: _jsx(_createMdxContent, {\n ...props\n })\n }) : _createMdxContent(props);\n}\nreturn {\n default: MDXContent\n};\n","frontmatter":{},"scope":{}},"pageType":"default","mdx":{"mdxSource":{"compiledSource":"\"use strict\";const{Fragment:_Fragment,jsx:_jsx,jsxs:_jsxs}=arguments[0];const{useMDXComponents:_provideComponents}=arguments[0];function _createMdxContent(props){const _components={a:`a`,p:`p`,..._provideComponents(),...props.components},{Heading}=_components;if(!Heading)_missingMdxReference(`Heading`,true);return _jsxs(_Fragment,{children:[_jsx(_components.p,{children:`Use device recognition and Multi-accounting detection to review repeated bonus claims.`}),`\n`,_jsx(Heading,{level:`2`,id:`where-to-integrate`,children:`Where to integrate`}),`\n`,_jsxs(_components.p,{children:[`Identify signup and the authenticated deposit or bonus claim. Start with the `,_jsx(_components.a,{href:`/api/sdks`,children:`SDK for your stack`}),` and retrieve the result on your backend.`]}),`\n`,_jsx(Heading,{level:`2`,id:`what-to-read`,children:`What to read`}),`\n`,_jsx(_components.p,{children:`Read the verified device and account association, then check the reward ledger and available group evidence.`}),`\n`,_jsxs(_components.p,{children:[`Use the current `,_jsx(_components.a,{href:`/features/risk-signals`,children:`Risk Score and flags`}),`, plus `,_jsx(_components.a,{href:`/features/high-risk-events`,children:`High-Risk Events`}),` where relevant. Treat a missing or incomplete result as an explicit unverified state.`]}),`\n`,_jsx(Heading,{level:`2`,id:`how-to-act`,children:`How to act`}),`\n`,_jsx(_components.p,{children:`Grant an eligible reward once, or hold it for review when linked activity has already received the benefit.`}),`\n`,_jsx(_components.p,{children:`Claim the reward atomically with the business transaction. A repeated webhook must not produce another credit.`}),`\n`,_jsx(Heading,{level:`2`,id:`build-the-example`,children:`Build the example`}),`\n`,_jsxs(_components.p,{children:[`The `,_jsx(_components.a,{href:`/tutorials/welcome-bonus`,children:`runnable tutorial`}),` includes the starting app, the completed integration, and steps to test its behavior. Its application policy is stated separately from ShieldLabs detection.`]}),`\n`,_jsxs(_components.p,{children:[`For implementation details, see `,_jsx(_components.a,{href:`/guides/acting-on-risk-score`,children:`Acting on results`}),` and `,_jsx(_components.a,{href:`/api/identification-flow`,children:`Identification flow`}),`. Verify the expected domain, result age and account association, and consume protected actions atomically.`]})]})}function MDXContent(props={}){const{wrapper:MDXLayout}={..._provideComponents(),...props.components};return MDXLayout?_jsx(MDXLayout,{...props,children:_jsx(_createMdxContent,{...props})}):_createMdxContent(props)}return{default:MDXContent};function _missingMdxReference(id,component){throw new Error(`Expected `+(component?`component`:`object`)+\" `\"+id+\"` to be defined: you likely forgot to import, pass, or provide it.\")}","frontmatter":{},"scope":{"config":{},"pageMetadata":{"title":"Bonus abuse","description":"Prevent repeated welcome rewards across related accounts.","href":"/use-case/bonus-abuse"}}},"mdxSourceWithNoJs":null},"mdxExtracts":{"tableOfContents":[{"title":"Where to integrate","slug":"where-to-integrate","depth":2,"children":[]},{"title":"What to read","slug":"what-to-read","depth":2,"children":[]},{"title":"How to act","slug":"how-to-act","depth":2,"children":[]},{"title":"Build the example","slug":"build-the-example","depth":2,"children":[]}],"codeExamples":{}},"jsLinks":[],"subdomain":"shieldlabs-725d18f1","siteName":"ShieldLabs","title":"Bonus abuse - ShieldLabs","navMaps":{"firstHrefInVersion":{},"firstHrefInLanguage":{}},"lastModified":"2026-10-25T10:42:52.174Z","originalFileLocation":"use-case/bonus-abuse.mdx"},"headHtml":"\u003cscript data-mint-head>(function(){var d=document.documentElement,p=null;if(!p){try{p=localStorage.getItem(\"isDarkMode\")}catch(e){}if(p==='true')p='dark';else if(p==='false')p='light';if(p!=='light'\u0026\u0026p!=='dark'\u0026\u0026p!=='system')p=\"system\"}var r=p==='system'?(matchMedia(\"(prefers-color-scheme: dark)\").matches?'dark':'light'):p;d.classList.remove(r==='dark'?'light':'dark');d.classList.add(r);d.setAttribute(\"data-theme-preference\",p)})();\u003c/script>\u003cmeta data-mint-head name=\"description\" content=\"Prevent repeated welcome rewards across related accounts.\">\u003cmeta data-mint-head name=\"application-name\" content=\"ShieldLabs\">\u003cmeta data-mint-head name=\"generator\" content=\"Mintlify\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"192x192\" href=\"/mintlify-assets/_mintlify/favicons/shieldlabs-725d18f1/Es1ajIh8JexL3lhM/_generated/favicon/android-chrome-192x192.png\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"apple-touch-icon\" type=\"image/png\" sizes=\"180x180\" href=\"/mintlify-assets/_mintlify/favicons/shieldlabs-725d18f1/Es1ajIh8JexL3lhM/_generated/favicon/apple-touch-icon.png\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"16x16\" href=\"/mintlify-assets/_mintlify/favicons/shieldlabs-725d18f1/Es1ajIh8JexL3lhM/_generated/favicon/favicon-16x16.png\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"32x32\" href=\"/mintlify-assets/_mintlify/favicons/shieldlabs-725d18f1/Es1ajIh8JexL3lhM/_generated/favicon/favicon-32x32.png\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"shortcut icon\" type=\"image/x-icon\" href=\"/mintlify-assets/_mintlify/favicons/shieldlabs-725d18f1/Es1ajIh8JexL3lhM/_generated/favicon/favicon.ico\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"192x192\" href=\"/mintlify-assets/_mintlify/favicons/shieldlabs-725d18f1/Es1ajIh8JexL3lhM/_generated/favicon-dark/android-chrome-192x192.png\" media=\"(prefers-color-scheme: dark)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"16x16\" href=\"/mintlify-assets/_mintlify/favicons/shieldlabs-725d18f1/Es1ajIh8JexL3lhM/_generated/favicon-dark/favicon-16x16.png\" media=\"(prefers-color-scheme: dark)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"32x32\" href=\"/mintlify-assets/_mintlify/favicons/shieldlabs-725d18f1/Es1ajIh8JexL3lhM/_generated/favicon-dark/favicon-32x32.png\" media=\"(prefers-color-scheme: dark)\">\u003clink data-mint-head rel=\"shortcut icon\" type=\"image/x-icon\" href=\"/mintlify-assets/_mintlify/favicons/shieldlabs-725d18f1/Es1ajIh8JexL3lhM/_generated/favicon-dark/favicon.ico\" media=\"(prefers-color-scheme: dark)\">\u003cmeta data-mint-head property=\"og:title\" content=\"Bonus abuse - ShieldLabs\">\u003cmeta data-mint-head property=\"og:description\" content=\"Prevent repeated welcome rewards across related accounts.\">\u003cmeta data-mint-head property=\"og:site_name\" content=\"ShieldLabs\">\u003cmeta data-mint-head property=\"og:url\" content=\"https://docs.shieldlabs.ai/use-case/bonus-abuse\">\u003cmeta data-mint-head property=\"og:type\" content=\"website\">\u003cmeta data-mint-head property=\"og:image\" content=\"https://shieldlabs-725d18f1.mintlify.site/_mintlify/api/og/v2?division=Promotions+and+rewards\u0026amp;title=Bonus+abuse\u0026amp;description=Prevent+repeated+welcome+rewards+across+related+accounts.\u0026amp;theme=8a3a86e7f132e7b0281cd143\u0026amp;signature=f7e6413af2be3197138ec227a47e8481c05b330d710390494614daf6a83999a3\">\u003cmeta data-mint-head property=\"og:image:width\" content=\"1200\">\u003cmeta data-mint-head property=\"og:image:height\" content=\"630\">\u003cmeta data-mint-head name=\"twitter:card\" content=\"summary_large_image\">\u003cmeta data-mint-head name=\"twitter:title\" content=\"Bonus abuse - ShieldLabs\">\u003cmeta data-mint-head name=\"twitter:description\" content=\"Prevent repeated welcome rewards across related accounts.\">\u003cmeta data-mint-head name=\"twitter:image\" content=\"https://shieldlabs-725d18f1.mintlify.site/_mintlify/api/og/v2?division=Promotions+and+rewards\u0026amp;title=Bonus+abuse\u0026amp;description=Prevent+repeated+welcome+rewards+across+related+accounts.\u0026amp;theme=8a3a86e7f132e7b0281cd143\u0026amp;signature=f7e6413af2be3197138ec227a47e8481c05b330d710390494614daf6a83999a3\">\u003cmeta data-mint-head name=\"twitter:image:width\" content=\"1200\">\u003cmeta data-mint-head name=\"twitter:image:height\" content=\"630\">\u003cmeta data-mint-head name=\"msapplication-config\" content=\"/mintlify-assets/_mintlify/favicons/shieldlabs-725d18f1/Es1ajIh8JexL3lhM/_generated/favicon/browserconfig.xml\">\u003cmeta data-mint-head name=\"apple-mobile-web-app-title\" content=\"ShieldLabs\">\u003cmeta data-mint-head name=\"msapplication-TileColor\" content=\"#009966\">\u003cmeta data-mint-head name=\"msvalidate.01\" content=\"AAA8BEBFE099D54745B8A6944A7C8038\">\u003clink data-mint-head rel=\"canonical\" href=\"https://docs.shieldlabs.ai/use-case/bonus-abuse\">\u003clink data-mint-head rel=\"alternate\" type=\"application/xml\" href=\"/sitemap.xml\">\u003clink data-mint-head rel=\"alternate\" type=\"text/markdown\" href=\"/use-case/bonus-abuse.md\">\u003cscript data-mint-head type=\"application/ld+json\">{\"@context\":\"https://schema.org\",\"@graph\":[{\"@type\":\"Organization\",\"@id\":\"https://shieldlabs.ai/#organization\",\"name\":\"ShieldLabs\",\"legalName\":\"ShieldLabs Inc\",\"url\":\"https://shieldlabs.ai\",\"logo\":{\"@type\":\"ImageObject\",\"url\":\"https://docs.shieldlabs.ai/logo-light.svg\"},\"sameAs\":[\"https://x.com/Shieldlabs_ai\",\"https://www.linkedin.com/company/shieldlabs-ai\",\"https://github.com/ShieldLabs-ai\"]},{\"@type\":\"WebSite\",\"@id\":\"https://docs.shieldlabs.ai#website\",\"name\":\"ShieldLabs\",\"url\":\"https://docs.shieldlabs.ai\",\"publisher\":{\"@id\":\"https://shieldlabs.ai/#organization\"}},{\"@type\":\"WebPage\",\"@id\":\"https://docs.shieldlabs.ai/use-case/bonus-abuse#webpage\",\"url\":\"https://docs.shieldlabs.ai/use-case/bonus-abuse\",\"name\":\"Bonus abuse\",\"description\":\"Prevent repeated welcome rewards across related accounts.\",\"dateModified\":\"2026-10-25T10:42:52.174Z\",\"isPartOf\":{\"@id\":\"https://docs.shieldlabs.ai#website\"},\"breadcrumb\":{\"@id\":\"https://docs.shieldlabs.ai/use-case/bonus-abuse#breadcrumb\"}},{\"@type\":\"BreadcrumbList\",\"@id\":\"https://docs.shieldlabs.ai/use-case/bonus-abuse#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Promotions and rewards\",\"item\":\"https://docs.shieldlabs.ai/use-case/promo-abuse\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Bonus abuse\",\"item\":\"https://docs.shieldlabs.ai/use-case/bonus-abuse\"}]},{\"@type\":[\"Article\",\"TechArticle\"],\"@id\":\"https://docs.shieldlabs.ai/use-case/bonus-abuse#article\",\"headline\":\"Bonus abuse\",\"name\":\"Bonus abuse\",\"description\":\"Prevent repeated welcome rewards across related accounts.\",\"url\":\"https://docs.shieldlabs.ai/use-case/bonus-abuse\",\"mainEntityOfPage\":{\"@id\":\"https://docs.shieldlabs.ai/use-case/bonus-abuse#webpage\"},\"dateModified\":\"2026-10-25T10:42:52.174Z\",\"publisher\":{\"@id\":\"https://shieldlabs.ai/#organization\"},\"isPartOf\":{\"@id\":\"https://docs.shieldlabs.ai#website\"}}]}\u003c/script>\u003cscript data-mint-head type=\"application/ld+json\">{\"@context\":\"https://schema.org\",\"@type\":\"WebSite\",\"name\":\"ShieldLabs\",\"publisher\":{\"@type\":\"Organization\",\"name\":\"ShieldLabs\"},\"provider\":{\"@type\":\"Organization\",\"name\":\"Mintlify\",\"url\":\"https://mintlify.com\"}}\u003c/script>","agentPointerHref":"/use-case/bonus-abuse.md","siteName":"ShieldLabs","nav":{"global":null,"tabs":[{"tab":"Home","pages":[{"title":"Home","href":""}]},{"tab":"Start","pages":[{"title":"Start","href":"/quickstart"}]},{"tab":"Overview","pages":[{"title":"Overview","href":"/overview"}]},{"tab":"Use Case Tutorials","groups":[{"group":"Overview","pages":[{"title":"Use cases","href":"/use-case"}]},{"group":"Runnable examples","pages":[{"title":"Run a use case tutorial","href":"/tutorials/overview"},{"title":"New account fraud","href":"/tutorials/one-trial-per-device"},{"title":"Checkout review","href":"/tutorials/review-checkout"},{"title":"Paywall enforcement","href":"/tutorials/one-free-article"},{"title":"Account sharing","href":"/tutorials/account-sharing"}]},{"group":"Accounts and applications","pages":[{"title":"Account takeover","href":"/tutorials/new-login-device"},{"title":"Ban evasion","href":"/tutorials/ban-evasion"},{"title":"Credential stuffing","href":"/tutorials/credential-stuffing"},{"title":"Loan application review","href":"/tutorials/loan-application-review"}]},{"group":"Payments and rewards","pages":[{"title":"Welcome bonus","href":"/tutorials/welcome-bonus"},{"title":"Card testing","href":"/tutorials/card-testing"},{"title":"Chargeback evidence","href":"/tutorials/chargeback-evidence"},{"title":"Coupon abuse","href":"/tutorials/coupon-limit"},{"title":"First-order promotion","href":"/tutorials/first-order-promo"},{"title":"Referral fraud","href":"/tutorials/referral-pair"},{"title":"Survey fraud","href":"/tutorials/rewarded-survey"},{"title":"Sybil claims","href":"/tutorials/sybil-claim"}]},{"group":"Experience and traffic","pages":[{"title":"Returning visitor personalization","href":"/tutorials/returning-device"},{"title":"Regional pricing","href":"/tutorials/regional-discount"},{"title":"SMS pumping","href":"/tutorials/verification-sends"},{"title":"Web scraping","href":"/tutorials/automated-scraping"}]},{"group":"Investigate","pages":[{"title":"Investigate a user","href":"/use-case/investigate-a-user"}]},{"group":"Accounts","pages":[{"title":"Multi-accounting","href":"/use-case/multi-accounting"},{"title":"Account sharing","href":"/use-case/account-sharing"},{"title":"Account takeover","href":"/use-case/account-takeover"},{"title":"New account fraud","href":"/use-case/new-account-fraud"},{"title":"Ban evasion","href":"/use-case/ban-evasion"},{"title":"Credential stuffing","href":"/use-case/credential-stuffing"},{"title":"Step-up authentication","href":"/use-case/step-up-authentication"},{"title":"SMS pumping","href":"/use-case/sms-pumping"}]},{"group":"Promotions and rewards","pages":[{"title":"Promo abuse","description":"Protect first-order promotions from repeated claims.","href":"/use-case/promo-abuse"},{"title":"Bonus abuse","href":"/use-case/bonus-abuse"},{"title":"Free-trial abuse","description":"Recognize repeated trials from related device and account activity.","href":"/use-case/free-trial-abuse"},{"title":"Loyalty fraud","href":"/use-case/loyalty-fraud"},{"title":"Affiliate fraud","href":"/use-case/affiliate-fraud"},{"title":"Sybil claims","href":"/use-case/sybil-attack"},{"title":"Coupon abuse","href":"/use-case/coupon-abuse"}]},{"group":"Payments and content","pages":[{"title":"Checkout risk","href":"/use-case/payment-fraud"},{"title":"Chargeback evidence","href":"/use-case/chargeback-fraud"},{"title":"Paywall enforcement","href":"/use-case/paywall"},{"title":"Regional pricing","href":"/use-case/regional-pricing"},{"title":"Card testing","href":"/use-case/card-testing"}]},{"group":"Traffic and experience","pages":[{"title":"Traffic quality","href":"/use-case/traffic-quality"},{"title":"Returning visitor recognition","href":"/use-case/returning-visitor"}]}]},{"tab":"API Reference","pages":[{"title":"API Reference","href":"/api/identification-flow"}]}]},"basePath":"","title":"Bonus abuse - ShieldLabs","buildId":"dpl_41S5Z2jG9QnfDRwN1KZrLdBwj7DM","deploymentId":"dpl_41S5Z2jG9QnfDRwN1KZrLdBwj7DM","dynamics":[],"chunks":[]}