Read automation and spoofing flags, the current score and recent attempts associated with the device and account.Use the current Risk Score and flags, plus High-Risk Events where relevant. Treat a missing or incomplete result as an explicit unverified state.
Rate-limit attempts, require verification or send the order to review before further payment processing.Keep card data with your payment provider. Your own payment records supply attempt outcomes and transaction context.
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/card-testing","slug":"/use-case/card-testing","pageMetadata":{"title":"Card testing","description":"Check device activity before repeated payment attempts.","href":"/use-case/card-testing"},"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: \"Check device activity before repeated payment attempts.\"\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:`Combine device and automation evidence with your payment-attempt counters.`}),`\n`,_jsx(Heading,{level:`2`,id:`where-to-integrate`,children:`Where to integrate`}),`\n`,_jsxs(_components.p,{children:[`Identify before submitting a payment attempt to your payment provider. 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 automation and spoofing flags, the current score and recent attempts associated with the device and account.`}),`\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:`Rate-limit attempts, require verification or send the order to review before further payment processing.`}),`\n`,_jsx(_components.p,{children:`Keep card data with your payment provider. Your own payment records supply attempt outcomes and transaction context.`}),`\n`,_jsx(Heading,{level:`2`,id:`build-the-example`,children:`Build the example`}),`\n`,_jsxs(_components.p,{children:[`The `,_jsx(_components.a,{href:`/tutorials/card-testing`,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":"Card testing","description":"Check device activity before repeated payment attempts.","href":"/use-case/card-testing"}}},"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":"Card testing - ShieldLabs","navMaps":{"firstHrefInVersion":{},"firstHrefInLanguage":{}},"lastModified":"2026-10-25T10:42:52.178Z","originalFileLocation":"use-case/card-testing.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=\"Check device activity before repeated payment attempts.\">\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=\"Card testing - ShieldLabs\">\u003cmeta data-mint-head property=\"og:description\" content=\"Check device activity before repeated payment attempts.\">\u003cmeta data-mint-head property=\"og:site_name\" content=\"ShieldLabs\">\u003cmeta data-mint-head property=\"og:url\" content=\"https://docs.shieldlabs.ai/use-case/card-testing\">\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=Payments+and+content\u0026amp;title=Card+testing\u0026amp;description=Check+device+activity+before+repeated+payment+attempts.\u0026amp;theme=8a3a86e7f132e7b0281cd143\u0026amp;signature=04d8a5a71596215270de67b71be01d6988fc3846de7974d7257678321f81b280\">\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=\"Card testing - ShieldLabs\">\u003cmeta data-mint-head name=\"twitter:description\" content=\"Check device activity before repeated payment attempts.\">\u003cmeta data-mint-head name=\"twitter:image\" content=\"https://shieldlabs-725d18f1.mintlify.site/_mintlify/api/og/v2?division=Payments+and+content\u0026amp;title=Card+testing\u0026amp;description=Check+device+activity+before+repeated+payment+attempts.\u0026amp;theme=8a3a86e7f132e7b0281cd143\u0026amp;signature=04d8a5a71596215270de67b71be01d6988fc3846de7974d7257678321f81b280\">\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/card-testing\">\u003clink data-mint-head rel=\"alternate\" type=\"application/xml\" href=\"/sitemap.xml\">\u003clink data-mint-head rel=\"alternate\" type=\"text/markdown\" href=\"/use-case/card-testing.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/card-testing#webpage\",\"url\":\"https://docs.shieldlabs.ai/use-case/card-testing\",\"name\":\"Card testing\",\"description\":\"Check device activity before repeated payment attempts.\",\"dateModified\":\"2026-10-25T10:42:52.178Z\",\"isPartOf\":{\"@id\":\"https://docs.shieldlabs.ai#website\"},\"breadcrumb\":{\"@id\":\"https://docs.shieldlabs.ai/use-case/card-testing#breadcrumb\"}},{\"@type\":\"BreadcrumbList\",\"@id\":\"https://docs.shieldlabs.ai/use-case/card-testing#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Payments and content\",\"item\":\"https://docs.shieldlabs.ai/use-case/payment-fraud\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Card testing\",\"item\":\"https://docs.shieldlabs.ai/use-case/card-testing\"}]},{\"@type\":[\"Article\",\"TechArticle\"],\"@id\":\"https://docs.shieldlabs.ai/use-case/card-testing#article\",\"headline\":\"Card testing\",\"name\":\"Card testing\",\"description\":\"Check device activity before repeated payment attempts.\",\"url\":\"https://docs.shieldlabs.ai/use-case/card-testing\",\"mainEntityOfPage\":{\"@id\":\"https://docs.shieldlabs.ai/use-case/card-testing#webpage\"},\"dateModified\":\"2026-10-25T10:42:52.178Z\",\"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/card-testing.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","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","description":"Review location and network evidence for regional offers.","href":"/use-case/regional-pricing"},{"title":"Card testing","href":"/use-case/card-testing"}]},{"group":"Traffic and experience","pages":[{"title":"Traffic quality","description":"Investigate campaigns using traffic risk and conversion outcomes.","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":"Card testing - ShieldLabs","buildId":"dpl_41S5Z2jG9QnfDRwN1KZrLdBwj7DM","deploymentId":"dpl_41S5Z2jG9QnfDRwN1KZrLdBwj7DM","dynamics":[],"chunks":[]}