Join device and account evidence with your own points, purchase and reward records.Use the current Risk Score and flags, plus High-Risk Events where relevant. Treat a missing or incomplete result as an explicit unverified state.
Hold ambiguous claims and atomically credit eligible rewards.Use the rewarded-survey tutorial as an implementation example; adapt its ledger to your loyalty rules.
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/loyalty-fraud","slug":"/use-case/loyalty-fraud","pageMetadata":{"title":"Loyalty fraud","description":"Review account relationships before crediting rewards.","href":"/use-case/loyalty-fraud"},"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: \"Review account relationships before crediting rewards.\"\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:`Connect reward claims to verified accounts and devices, then use High-Risk Events to review coordinated activity.`}),`\n`,_jsx(Heading,{level:`2`,id:`where-to-integrate`,children:`Where to integrate`}),`\n`,_jsxs(_components.p,{children:[`Identify the authenticated reward claim or redemption. 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:`Join device and account evidence with your own points, purchase and reward records.`}),`\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:`Hold ambiguous claims and atomically credit eligible rewards.`}),`\n`,_jsx(_components.p,{children:`Use the rewarded-survey tutorial as an implementation example; adapt its ledger to your loyalty rules.`}),`\n`,_jsx(Heading,{level:`2`,id:`build-the-example`,children:`Build the example`}),`\n`,_jsxs(_components.p,{children:[`The `,_jsx(_components.a,{href:`/tutorials/rewarded-survey`,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":"Loyalty fraud","description":"Review account relationships before crediting rewards.","href":"/use-case/loyalty-fraud"}}},"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":"Loyalty fraud - ShieldLabs","navMaps":{"firstHrefInVersion":{},"firstHrefInLanguage":{}},"lastModified":"2026-10-25T10:42:52.174Z","originalFileLocation":"use-case/loyalty-fraud.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=\"Review account relationships before crediting rewards.\">\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=\"Loyalty fraud - ShieldLabs\">\u003cmeta data-mint-head property=\"og:description\" content=\"Review account relationships before crediting rewards.\">\u003cmeta data-mint-head property=\"og:site_name\" content=\"ShieldLabs\">\u003cmeta data-mint-head property=\"og:url\" content=\"https://docs.shieldlabs.ai/use-case/loyalty-fraud\">\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=Loyalty+fraud\u0026amp;description=Review+account+relationships+before+crediting+rewards.\u0026amp;theme=8a3a86e7f132e7b0281cd143\u0026amp;signature=bb65a6a095208e5cf4082c568731347b76aed3b1fad882143588be089f2bb30d\">\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=\"Loyalty fraud - ShieldLabs\">\u003cmeta data-mint-head name=\"twitter:description\" content=\"Review account relationships before crediting rewards.\">\u003cmeta data-mint-head name=\"twitter:image\" content=\"https://shieldlabs-725d18f1.mintlify.site/_mintlify/api/og/v2?division=Promotions+and+rewards\u0026amp;title=Loyalty+fraud\u0026amp;description=Review+account+relationships+before+crediting+rewards.\u0026amp;theme=8a3a86e7f132e7b0281cd143\u0026amp;signature=bb65a6a095208e5cf4082c568731347b76aed3b1fad882143588be089f2bb30d\">\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/loyalty-fraud\">\u003clink data-mint-head rel=\"alternate\" type=\"application/xml\" href=\"/sitemap.xml\">\u003clink data-mint-head rel=\"alternate\" type=\"text/markdown\" href=\"/use-case/loyalty-fraud.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/loyalty-fraud#webpage\",\"url\":\"https://docs.shieldlabs.ai/use-case/loyalty-fraud\",\"name\":\"Loyalty fraud\",\"description\":\"Review account relationships before crediting rewards.\",\"dateModified\":\"2026-10-25T10:42:52.174Z\",\"isPartOf\":{\"@id\":\"https://docs.shieldlabs.ai#website\"},\"breadcrumb\":{\"@id\":\"https://docs.shieldlabs.ai/use-case/loyalty-fraud#breadcrumb\"}},{\"@type\":\"BreadcrumbList\",\"@id\":\"https://docs.shieldlabs.ai/use-case/loyalty-fraud#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Promotions and rewards\",\"item\":\"https://docs.shieldlabs.ai/use-case/promo-abuse\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Loyalty fraud\",\"item\":\"https://docs.shieldlabs.ai/use-case/loyalty-fraud\"}]},{\"@type\":[\"Article\",\"TechArticle\"],\"@id\":\"https://docs.shieldlabs.ai/use-case/loyalty-fraud#article\",\"headline\":\"Loyalty fraud\",\"name\":\"Loyalty fraud\",\"description\":\"Review account relationships before crediting rewards.\",\"url\":\"https://docs.shieldlabs.ai/use-case/loyalty-fraud\",\"mainEntityOfPage\":{\"@id\":\"https://docs.shieldlabs.ai/use-case/loyalty-fraud#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/loyalty-fraud.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","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","description":"Review referred accounts before releasing partner rewards.","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":"Loyalty fraud - ShieldLabs","buildId":"dpl_41S5Z2jG9QnfDRwN1KZrLdBwj7DM","deploymentId":"dpl_41S5Z2jG9QnfDRwN1KZrLdBwj7DM","dynamics":[],"chunks":[]}