Subscribe to a strict-mode claim being confirmed by the advertiser’s postback
Fires when the advertiser’s postback confirms a claim. Applies only when
configure() set
unlockMode: 'strict'.
Structure
Encore.onStrictUnlockVerified( callback: (transactionId: string) => void): () => void; // returns an unsubscribe function
Parameter
Type
Description
callback
(transactionId: string) => void
Receives the transaction id of the confirmed claim.
When to use it
Subscribe when running in strict mode and you want to react to a confirmation that lands
after show() has resolved. The postback usually
arrives once the user is already at the advertiser, and sometimes after the page that made
the claim is gone, so no return value can carry it.Register the callback immediately after configure(). A claim left pending by an earlier
page load is re-checked during SDK initialization, so a late subscription misses it.
Once per verified claim, for both an in-session confirmation and one recovered on a later page load. The callback does not distinguish them.
Retries
A claim that has not verified is re-checked on every return to the tab, for up to seven days.
Payload
The transaction id and nothing else. A recovered verification has no presentation left in scope to describe.
Unsubscribing
Call the returned function.
Optimistic mode
Never fires, since nothing is verified.
This is a signal, not an authorization. It reports that Encore observed the advertiser’s
postback, and it is delivered by client-side code. Treat it as a prompt to re-read
entitlements from your backend through Encore’s server-side entitlements API, which is
authoritative.
show(): resolves 'claimed' when the sheet closes, in both modes.
{"docsConfig":{"theme":"mint","$schema":"https://mintlify.com/docs.json","name":"Encore","colors":{"primary":"#3B82F6","light":"#60A5FA","dark":"#2563EB"},"favicon":"https://mintcdn.com/encore-5242061e/Q9j45w34T3HE6gEF/favicon.ico?fit=max\u0026auto=format\u0026n=Q9j45w34T3HE6gEF\u0026q=85\u0026s=f4a721bc5092e5517ad5bb0e80acd195","appearance":{"default":"dark"},"navbar":{"links":[{"href":"mailto:admin@encorekit.com","label":"Support"}]},"contextual":{"options":["copy","view","chatgpt","claude","perplexity","mcp","cursor","vscode"],"display":"header"},"styling":{"latex":false},"navigation":{"global":{"anchors":[{"anchor":"My Dashboard","icon":"gauge","href":"https://dashboard.encorekit.com"},{"anchor":"Support","icon":"envelope","href":"mailto:admin@encorekit.com"}]},"pages":[]}},"deployment":{"deploymentMetadataValue":{"subdomain":"encore-5242061e","hasAudioNarration":false,"actualSubdomain":"encore-5242061e","customDomains":["docs.encorekit.com"],"gitSource":{"type":"github","owner":"encorekit","repo":"docs","deployBranch":"main","contentDirectory":"","isPrivate":true,"mountPath":"","label":""},"entitlements":{},"buildId":"6af3c97776df4a87c19a8a2f","clientVersion":"0.0.4138","searchFilterCounts":[{"language":"default","tag":"Publishers","count":179},{"language":"default","tag":"SDKs","count":160},{"language":"default","tag":"SDK Reference","count":100},{"language":"default","tag":"Bridges","count":71},{"language":"default","tag":"iOS","count":33},{"language":"default","tag":"Web","count":33},{"language":"default","tag":"Unity","count":29},{"language":"default","tag":"Quickstart","count":27},{"language":"default","tag":"Android","count":23},{"language":"default","tag":"Flutter","count":22}]},"assistantConfig":{},"basePath":"","hasChatPermissions":false,"hasWebMcpPermissions":false,"toggles":[],"googleFontsInlined":false},"customCss":[],"page":{"pagePath":"publishers/web/sdk-reference/on-strict-unlock-verified","slug":"/publishers/web/sdk-reference/on-strict-unlock-verified","pageMetadata":{"title":"onStrictUnlockVerified()","description":"Subscribe to a strict-mode claim being confirmed by the advertiser's postback","href":"/publishers/web/sdk-reference/on-strict-unlock-verified"},"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: \"Subscribe to a strict-mode claim being confirmed by the advertiser’s postback\"\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`,code:`code`,li:`li`,p:`p`,pre:`pre`,span:`span`,tbody:`tbody`,td:`td`,th:`th`,thead:`thead`,tr:`tr`,ul:`ul`,..._provideComponents(),...props.components},{CodeBlock,Heading,Table,Warning}=_components;if(!CodeBlock)_missingMdxReference(`CodeBlock`,true);if(!Heading)_missingMdxReference(`Heading`,true);if(!Table)_missingMdxReference(`Table`,true);if(!Warning)_missingMdxReference(`Warning`,true);return _jsxs(_Fragment,{children:[_jsxs(_components.p,{children:[`Fires when the advertiser’s postback confirms a claim. Applies only when\n`,_jsx(_components.a,{href:`/publishers/web/sdk-reference/configure#unlock-mode`,children:_jsx(_components.code,{children:`configure()`})}),` set\n`,_jsx(_components.code,{children:`unlockMode: 'strict'`}),`.`]}),`\n`,_jsx(Heading,{level:`2`,id:`structure`,children:`Structure`}),`\n`,_jsx(CodeBlock,{filename:``,numberOfLines:`3`,language:`typescript`,children:_jsx(_components.pre,{className:`shiki shiki-themes github-light-default dark-plus`,style:{backgroundColor:`#ffffff`,\"--shiki-dark-bg\":`#0B0C0E`,color:`#1f2328`,\"--shiki-dark\":`#D4D4D4`},language:`typescript`,children:_jsxs(_components.code,{language:`typescript`,numberOfLines:`3`,children:[_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`Encore.onStrictUnlockVerified(`})}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` callback: (transactionId: string) => `}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#C586C0`},children:`void`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`): () => `}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#C586C0`},children:`void`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`; `}),_jsx(_components.span,{style:{color:`#6E7781`,\"--shiki-dark\":`#6A9955`},children:`// returns an unsubscribe function`})]}),`\n`]})})}),`\n`,_jsxs(Table,{children:[_jsx(_components.thead,{children:_jsxs(_components.tr,{children:[_jsx(_components.th,{children:`Parameter`}),_jsx(_components.th,{children:`Type`}),_jsx(_components.th,{children:`Description`})]})}),_jsx(_components.tbody,{children:_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`callback`})}),_jsx(_components.td,{children:_jsx(_components.code,{children:`(transactionId: string) => void`})}),_jsx(_components.td,{children:`Receives the transaction id of the confirmed claim.`})]})})]}),`\n`,_jsx(Heading,{level:`2`,id:`when-to-use-it`,children:`When to use it`}),`\n`,_jsxs(_components.p,{children:[`Subscribe when running in strict mode and you want to react to a confirmation that lands\nafter `,_jsx(_components.a,{href:`/publishers/web/sdk-reference/show`,children:_jsx(_components.code,{children:`show()`})}),` has resolved. The postback usually\narrives once the user is already at the advertiser, and sometimes after the page that made\nthe claim is gone, so no return value can carry it.`]}),`\n`,_jsxs(_components.p,{children:[`Register the callback immediately after `,_jsx(_components.code,{children:`configure()`}),`. A claim left pending by an earlier\npage load is re-checked during SDK initialization, so a late subscription misses it.`]}),`\n`,_jsx(CodeBlock,{filename:``,numberOfLines:`9`,language:`javascript`,children:_jsx(_components.pre,{className:`shiki shiki-themes github-light-default dark-plus`,style:{backgroundColor:`#ffffff`,\"--shiki-dark-bg\":`#0B0C0E`,color:`#1f2328`,\"--shiki-dark\":`#D4D4D4`},language:`javascript`,children:_jsxs(_components.code,{language:`javascript`,numberOfLines:`9`,children:[_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`Encore.configure({`})}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` apiKey: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`'pk_live_yourpublishablekey'`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` unlockMode: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`'strict'`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`});`})}),`\n`,_jsx(_components.span,{className:`line`}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#C586C0`},children:`const`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` unsubscribe = Encore.onStrictUnlockVerified((transactionId) => {`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` console.debug(`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`'claim verified'`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`, transactionId);`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#C586C0`},children:` void`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` refreshEntitlementsFromYourBackend(transactionId);`})]}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`});`})}),`\n`]})})}),`\n`,_jsx(Heading,{level:`2`,id:`behavior`,children:`Behavior`}),`\n`,_jsxs(Table,{children:[_jsx(_components.thead,{children:_jsxs(_components.tr,{children:[_jsx(_components.th,{children:`Aspect`}),_jsx(_components.th,{children:`Behavior`})]})}),_jsxs(_components.tbody,{children:[_jsxs(_components.tr,{children:[_jsx(_components.td,{children:`Firing`}),_jsx(_components.td,{children:`Once per verified claim, for both an in-session confirmation and one recovered on a later page load. The callback does not distinguish them.`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:`Retries`}),_jsx(_components.td,{children:`A claim that has not verified is re-checked on every return to the tab, for up to seven days.`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:`Payload`}),_jsx(_components.td,{children:`The transaction id and nothing else. A recovered verification has no presentation left in scope to describe.`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:`Unsubscribing`}),_jsx(_components.td,{children:`Call the returned function.`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:`Optimistic mode`}),_jsx(_components.td,{children:`Never fires, since nothing is verified.`})]})]})]}),`\n`,_jsx(Warning,{children:_jsx(_components.p,{children:`This is a signal, not an authorization. It reports that Encore observed the advertiser’s\npostback, and it is delivered by client-side code. Treat it as a prompt to re-read\nentitlements from your backend through Encore’s server-side entitlements API, which is\nauthoritative.`})}),`\n`,_jsx(Heading,{level:`2`,id:`related`,children:`Related`}),`\n`,_jsxs(_components.ul,{children:[`\n`,_jsxs(_components.li,{children:[_jsx(_components.a,{href:`/publishers/web/sdk-reference/configure#unlock-mode`,children:_jsx(_components.code,{children:`configure()`})}),`: turning on strict mode.`]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.a,{href:`/publishers/web/sdk-reference/show`,children:_jsx(_components.code,{children:`show()`})}),`: resolves `,_jsx(_components.code,{children:`'claimed'`}),` when the sheet closes, in both modes.`]}),`\n`]})]})}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":"onStrictUnlockVerified()","description":"Subscribe to a strict-mode claim being confirmed by the advertiser's postback","href":"/publishers/web/sdk-reference/on-strict-unlock-verified"}}},"mdxSourceWithNoJs":null},"mdxExtracts":{"tableOfContents":[{"title":"Structure","slug":"structure","depth":2,"children":[]},{"title":"When to use it","slug":"when-to-use-it","depth":2,"children":[]},{"title":"Behavior","slug":"behavior","depth":2,"children":[]},{"title":"Related","slug":"related","depth":2,"children":[]}],"codeExamples":{}},"jsLinks":[],"subdomain":"encore-5242061e","siteName":"Encore","title":"onStrictUnlockVerified() - Encore","navMaps":{"firstHrefInVersion":{},"firstHrefInLanguage":{}},"lastModified":"2026-10-02T22:20:26.076Z","originalFileLocation":"publishers/web/sdk-reference/on-strict-unlock-verified.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=\"dark\"}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=\"Subscribe to a strict-mode claim being confirmed by the advertiser\u0026#x27;s postback\">\u003cmeta data-mint-head name=\"application-name\" content=\"Encore\">\u003cmeta data-mint-head name=\"generator\" content=\"Mintlify\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"192x192\" href=\"/mintlify-assets/_mintlify/favicons/encore-5242061e/xhPViPNw21djssdp/_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/encore-5242061e/xhPViPNw21djssdp/_generated/favicon/apple-touch-icon.png\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"16x16\" href=\"/mintlify-assets/_mintlify/favicons/encore-5242061e/xhPViPNw21djssdp/_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/encore-5242061e/xhPViPNw21djssdp/_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/encore-5242061e/xhPViPNw21djssdp/_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/encore-5242061e/xhPViPNw21djssdp/_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/encore-5242061e/xhPViPNw21djssdp/_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/encore-5242061e/xhPViPNw21djssdp/_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/encore-5242061e/xhPViPNw21djssdp/_generated/favicon-dark/favicon.ico\" media=\"(prefers-color-scheme: dark)\">\u003cmeta data-mint-head property=\"og:title\" content=\"onStrictUnlockVerified() - Encore\">\u003cmeta data-mint-head property=\"og:description\" content=\"Subscribe to a strict-mode claim being confirmed by the advertiser\u0026#x27;s postback\">\u003cmeta data-mint-head property=\"og:site_name\" content=\"Encore\">\u003cmeta data-mint-head property=\"og:url\" content=\"https://docs.encorekit.com/publishers/web/sdk-reference/on-strict-unlock-verified\">\u003cmeta data-mint-head property=\"og:type\" content=\"website\">\u003cmeta data-mint-head property=\"og:image\" content=\"https://encore-5242061e.mintlify.site/_mintlify/api/og/v2?division=SDK+Reference\u0026amp;title=onStrictUnlockVerified%28%29\u0026amp;description=Subscribe+to+a+strict-mode+claim+being+confirmed+by+the+advertiser%27s+postback\u0026amp;theme=a8629d4b4cdc3312cab43c0f\u0026amp;signature=4a7a49766ae82ad8655123c40e23576bc63f31aec9261780bde713935e9fca11\">\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=\"onStrictUnlockVerified() - Encore\">\u003cmeta data-mint-head name=\"twitter:description\" content=\"Subscribe to a strict-mode claim being confirmed by the advertiser\u0026#x27;s postback\">\u003cmeta data-mint-head name=\"twitter:image\" content=\"https://encore-5242061e.mintlify.site/_mintlify/api/og/v2?division=SDK+Reference\u0026amp;title=onStrictUnlockVerified%28%29\u0026amp;description=Subscribe+to+a+strict-mode+claim+being+confirmed+by+the+advertiser%27s+postback\u0026amp;theme=a8629d4b4cdc3312cab43c0f\u0026amp;signature=4a7a49766ae82ad8655123c40e23576bc63f31aec9261780bde713935e9fca11\">\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/encore-5242061e/xhPViPNw21djssdp/_generated/favicon/browserconfig.xml\">\u003cmeta data-mint-head name=\"apple-mobile-web-app-title\" content=\"Encore\">\u003cmeta data-mint-head name=\"msapplication-TileColor\" content=\"#3B82F6\">\u003clink data-mint-head rel=\"canonical\" href=\"https://docs.encorekit.com/publishers/web/sdk-reference/on-strict-unlock-verified\">\u003clink data-mint-head rel=\"alternate\" type=\"application/xml\" href=\"/sitemap.xml\">\u003clink data-mint-head rel=\"alternate\" type=\"text/markdown\" href=\"/publishers/web/sdk-reference/on-strict-unlock-verified.md\">\u003cscript data-mint-head type=\"application/ld+json\">{\"@context\":\"https://schema.org\",\"@graph\":[{\"@type\":\"Organization\",\"@id\":\"https://docs.encorekit.com/#organization\",\"name\":\"Encore\",\"url\":\"https://docs.encorekit.com\"},{\"@type\":\"WebSite\",\"@id\":\"https://docs.encorekit.com#website\",\"name\":\"Encore\",\"url\":\"https://docs.encorekit.com\",\"publisher\":{\"@id\":\"https://docs.encorekit.com/#organization\"}},{\"@type\":\"WebPage\",\"@id\":\"https://docs.encorekit.com/publishers/web/sdk-reference/on-strict-unlock-verified#webpage\",\"url\":\"https://docs.encorekit.com/publishers/web/sdk-reference/on-strict-unlock-verified\",\"name\":\"onStrictUnlockVerified()\",\"description\":\"Subscribe to a strict-mode claim being confirmed by the advertiser's postback\",\"dateModified\":\"2026-10-02T22:20:26.076Z\",\"isPartOf\":{\"@id\":\"https://docs.encorekit.com#website\"},\"breadcrumb\":{\"@id\":\"https://docs.encorekit.com/publishers/web/sdk-reference/on-strict-unlock-verified#breadcrumb\"}},{\"@type\":\"BreadcrumbList\",\"@id\":\"https://docs.encorekit.com/publishers/web/sdk-reference/on-strict-unlock-verified#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Web\",\"item\":\"https://docs.encorekit.com/publishers/web/quickstart/install\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"SDK Reference\",\"item\":\"https://docs.encorekit.com/publishers/web/sdk-reference/overview\"},{\"@type\":\"ListItem\",\"position\":3,\"name\":\"onStrictUnlockVerified()\",\"item\":\"https://docs.encorekit.com/publishers/web/sdk-reference/on-strict-unlock-verified\"}]},{\"@type\":[\"Article\",\"TechArticle\"],\"@id\":\"https://docs.encorekit.com/publishers/web/sdk-reference/on-strict-unlock-verified#article\",\"headline\":\"onStrictUnlockVerified()\",\"name\":\"onStrictUnlockVerified()\",\"description\":\"Subscribe to a strict-mode claim being confirmed by the advertiser's postback\",\"url\":\"https://docs.encorekit.com/publishers/web/sdk-reference/on-strict-unlock-verified\",\"mainEntityOfPage\":{\"@id\":\"https://docs.encorekit.com/publishers/web/sdk-reference/on-strict-unlock-verified#webpage\"},\"dateModified\":\"2026-10-02T22:20:26.076Z\",\"publisher\":{\"@id\":\"https://docs.encorekit.com/#organization\"},\"isPartOf\":{\"@id\":\"https://docs.encorekit.com#website\"}}]}\u003c/script>\u003cscript data-mint-head type=\"application/ld+json\">{\"@context\":\"https://schema.org\",\"@type\":\"WebSite\",\"name\":\"Encore\",\"publisher\":{\"@type\":\"Organization\",\"name\":\"Encore\"},\"provider\":{\"@type\":\"Organization\",\"name\":\"Mintlify\",\"url\":\"https://mintlify.com\"}}\u003c/script>","agentPointerHref":"/publishers/web/sdk-reference/on-strict-unlock-verified.md","siteName":"Encore","nav":{"global":{"anchors":[{"anchor":"My Dashboard","icon":"gauge","href":"https://dashboard.encorekit.com"},{"anchor":"Support","icon":"envelope","href":"mailto:admin@encorekit.com"}]},"products":[{"product":"Publishers","icon":"code","tabs":[{"tab":"Documentation","icon":"book-open","pages":[{"title":"Documentation","href":""}]},{"tab":"SDKs","icon":"cubes","groups":[{"group":"iOS","pages":[{"group":"Quickstart","pages":[{"title":"Install the SDK","href":"/publishers/ios/quickstart/install"},{"title":"Configure the SDK","href":"/publishers/ios/quickstart/configure"},{"title":"User Management","href":"/publishers/ios/quickstart/user-management"},{"title":"Presenting Offers","href":"/publishers/ios/quickstart/present-offers"},{"title":"Configure Analytics","href":"/publishers/ios/quickstart/configure-analytics"}]},{"group":"Platform Integration","pages":[{"title":"App Store Server Notifications","href":"/publishers/ios/platform-setup/server-notifications"}]},{"group":"Integration Guides","pages":[{"title":"Integration Patterns","href":"/publishers/ios/guides/integration-patterns"},{"group":"3rd Party Subscription Managers","pages":[{"group":"Superwall","pages":[{"title":"Configure Analytics with Superwall","sidebarTitle":"Configure Analytics","href":"/publishers/ios/guides/managers/superwall/configure-analytics"}]},{"group":"RevenueCat","pages":[{"title":"Configure Analytics with RevenueCat","sidebarTitle":"Configure Analytics","href":"/publishers/ios/guides/managers/revenuecat/configure-analytics"}]},{"group":"Adapty","pages":[{"title":"Configure Analytics with Adapty","sidebarTitle":"Configure Analytics","href":"/publishers/ios/guides/managers/adapty/configure-analytics"}]},{"group":"Qonversion","pages":[{"title":"Configure Analytics with Qonversion","sidebarTitle":"Configure Analytics","href":"/publishers/ios/guides/managers/qonversion/configure-analytics"}]}]}]},{"group":"Updating the SDK","pages":[{"title":"Routine updates","href":"/publishers/ios/guides/updating-sdk"},{"title":"Updating to 2.x","href":"/publishers/ios/guides/updating-to-2-x"}]},{"group":"SDK Reference","pages":[{"title":"Overview","href":"/publishers/ios/sdk-reference/overview"},{"title":"configure()","href":"/publishers/ios/sdk-reference/configure"},{"title":"identify()","href":"/publishers/ios/sdk-reference/identify"},{"title":"setUserAttributes()","href":"/publishers/ios/sdk-reference/set-user-attributes"},{"title":"setLanguage()","href":"/publishers/ios/sdk-reference/set-language"},{"title":"clearLanguage()","href":"/publishers/ios/sdk-reference/clear-language"},{"title":"reset()","href":"/publishers/ios/sdk-reference/reset"},{"title":"isActive()","href":"/publishers/ios/sdk-reference/is-active"},{"title":"isActivePublisher()","href":"/publishers/ios/sdk-reference/is-active-publisher"},{"title":"placement()","href":"/publishers/ios/sdk-reference/placement"},{"title":"EncorePurchaseController","href":"/publishers/ios/sdk-reference/purchase-controller"},{"title":"outcomes","href":"/publishers/ios/sdk-reference/outcomes"},{"title":"isClaimEnabled","href":"/publishers/ios/sdk-reference/is-claim-enabled"},{"title":"revokeEntitlements()","href":"/publishers/ios/sdk-reference/revoke-entitlements"},{"title":"UserAttributes","href":"/publishers/ios/sdk-reference/user-attributes"},{"title":"PresentationResult","href":"/publishers/ios/sdk-reference/presentation-result"},{"title":"Entitlements","href":"/publishers/ios/sdk-reference/entitlements"},{"title":"EntitlementScope","href":"/publishers/ios/sdk-reference/entitlement-scope"},{"title":"DismissReason","href":"/publishers/ios/sdk-reference/dismiss-reason"},{"title":"Errors","href":"/publishers/ios/sdk-reference/errors"}]}]},{"group":"Android","pages":[{"group":"Quickstart","pages":[{"title":"Install the SDK","href":"/publishers/android/quickstart/install"},{"title":"Configure the SDK","href":"/publishers/android/quickstart/configure"},{"title":"User Management","href":"/publishers/android/quickstart/user-management"},{"title":"Presenting Offers","href":"/publishers/android/quickstart/present-offers"},{"title":"Configure Analytics","href":"/publishers/android/quickstart/configure-analytics"}]},{"group":"Platform Integration","pages":[{"title":"Real-Time Developer Notifications","href":"/publishers/android/platform-setup/server-notifications"}]},{"group":"Integration Guides","pages":[{"title":"Integration Patterns","href":"/publishers/android/guides/integration-patterns"}]},{"group":"Updating the SDK","pages":[{"title":"Routine updates","href":"/publishers/android/guides/updating-sdk"},{"title":"Updating to 2.x","href":"/publishers/android/guides/updating-to-2-x"}]},{"group":"SDK Reference","pages":[{"title":"Overview","href":"/publishers/android/sdk-reference/overview"},{"title":"configure()","href":"/publishers/android/sdk-reference/configure"},{"title":"identify()","href":"/publishers/android/sdk-reference/identify"},{"title":"setUserAttributes()","href":"/publishers/android/sdk-reference/set-user-attributes"},{"title":"setLanguage()","href":"/publishers/android/sdk-reference/set-language"},{"title":"clearLanguage()","href":"/publishers/android/sdk-reference/clear-language"},{"title":"reset()","href":"/publishers/android/sdk-reference/reset"},{"title":"EncorePurchaseController","href":"/publishers/android/sdk-reference/purchase-controller"},{"title":"placement()","href":"/publishers/android/sdk-reference/placement"},{"title":"PresentationResult","href":"/publishers/android/sdk-reference/presentation-result"},{"title":"DismissReason","href":"/publishers/android/sdk-reference/dismiss-reason"},{"title":"Encore.outcomes","href":"/publishers/android/sdk-reference/outcomes"},{"title":"UserAttributes","href":"/publishers/android/sdk-reference/user-attributes"},{"title":"EncoreError","href":"/publishers/android/sdk-reference/errors"}]}]},{"group":"Web","pages":[{"group":"Quickstart","pages":[{"title":"Install the SDK","href":"/publishers/web/quickstart/install"},{"title":"Configure the SDK","href":"/publishers/web/quickstart/configure"},{"title":"User Management","href":"/publishers/web/quickstart/user-management"},{"title":"Present Offers","href":"/publishers/web/quickstart/present-offers"},{"title":"Configure Analytics","href":"/publishers/web/quickstart/configure-analytics"}]},{"group":"Integration Guides","pages":[{"title":"Web Integration Patterns","href":"/publishers/web/guides/integration-patterns"},{"title":"Hosted Offer Page (No SDK)","sidebarTitle":"Hosted Offer Page","href":"/publishers/web/guides/hosted-offer-page"},{"group":"Frameworks","pages":[{"title":"React","href":"/publishers/web/frameworks/react"},{"title":"Vue","href":"/publishers/web/frameworks/vue"},{"title":"Svelte","href":"/publishers/web/frameworks/svelte"},{"title":"Angular","href":"/publishers/web/frameworks/angular"},{"title":"Vanilla JavaScript","href":"/publishers/web/frameworks/vanilla-js"}]},{"group":"Reward Users","pages":[{"title":"Post-Purchase Placements","href":"/publishers/web/guides/post-purchase-placements"}]},{"group":"3rd Party Subscription Managers","pages":[{"title":"Using RevenueCat","sidebarTitle":"RevenueCat","href":"/publishers/web/guides/managers/revenuecat"}]},{"title":"Advanced UI","href":"/publishers/web/guides/advanced-ui"}]},{"group":"Updating the SDK","pages":[{"title":"Routine updates","href":"/publishers/web/guides/updating-sdk"},{"title":"Updating to 2.x","href":"/publishers/web/guides/updating-to-2-x"}]},{"group":"Concepts","pages":[{"title":"The Claim Flow","href":"/publishers/web/concepts/claim-flow"},{"title":"Sheet Variants","href":"/publishers/web/concepts/sheet-variants"}]},{"group":"SDK Reference","pages":[{"title":"Overview","href":"/publishers/web/sdk-reference/overview"},{"title":"configure()","href":"/publishers/web/sdk-reference/configure"},{"title":"identify()","href":"/publishers/web/sdk-reference/identify"},{"title":"setUserAttributes()","href":"/publishers/web/sdk-reference/set-user-attributes"},{"title":"setLanguage()","href":"/publishers/web/sdk-reference/set-language"},{"title":"clearLanguage()","href":"/publishers/web/sdk-reference/clear-language"},{"title":"reset()","href":"/publishers/web/sdk-reference/reset"},{"title":"show()","href":"/publishers/web/sdk-reference/show"},{"title":"redeem()","href":"/publishers/web/sdk-reference/redeem"},{"title":"placement()","href":"/publishers/web/sdk-reference/placement"},{"title":"isClaimEnabled","description":"Turn off the claim call to action while leaving the rest of the offer sheet intact","href":"/publishers/web/sdk-reference/is-claim-enabled"},{"title":"onStrictUnlockVerified()","href":"/publishers/web/sdk-reference/on-strict-unlock-verified"},{"title":"Error Handling","description":"The Web SDK's error contract: errors arrive as values, never as exceptions.","href":"/publishers/web/sdk-reference/errors"},{"title":"Webhook Ingestion","href":"/publishers/web/sdk-reference/webhook-ingestion"}]}]},{"group":"Bridges","pages":[{"group":"React Native","pages":[{"group":"Quickstart","pages":[{"title":"Install the SDK","href":"/publishers/react-native/quickstart/install"},{"title":"Configure the SDK","href":"/publishers/react-native/quickstart/configure"},{"title":"User Management","href":"/publishers/react-native/quickstart/user-management"},{"title":"Presenting Offers","href":"/publishers/react-native/quickstart/present-offers"}]},{"group":"Guides","pages":[{"title":"React Native Integration Patterns","href":"/publishers/react-native/guides/integration-patterns"}]},{"group":"Updating the SDK","pages":[{"title":"Routine updates","href":"/publishers/react-native/guides/updating-sdk"},{"title":"Updating to 2.x","href":"/publishers/react-native/guides/updating-to-2-x"}]},{"group":"SDK Reference","pages":[{"title":"configure()","href":"/publishers/react-native/sdk-reference/configure"},{"title":"identify()","href":"/publishers/react-native/sdk-reference/identify"},{"title":"setUserAttributes()","href":"/publishers/react-native/sdk-reference/set-user-attributes"},{"title":"setLanguage()","href":"/publishers/react-native/sdk-reference/set-language"},{"title":"clearLanguage()","href":"/publishers/react-native/sdk-reference/clear-language"},{"title":"reset()","href":"/publishers/react-native/sdk-reference/reset"},{"title":"placement()","href":"/publishers/react-native/sdk-reference/placement"},{"title":"PurchaseController","href":"/publishers/react-native/sdk-reference/purchase-controller"},{"title":"onOutcome()","href":"/publishers/react-native/sdk-reference/outcomes"},{"title":"setClaimEnabled()","href":"/publishers/react-native/sdk-reference/set-claim-enabled"},{"title":"UserAttributes","href":"/publishers/react-native/sdk-reference/user-attributes"},{"title":"PresentationResult","href":"/publishers/react-native/sdk-reference/presentation-result"},{"title":"Errors","href":"/publishers/react-native/sdk-reference/errors"}]}]},{"group":"Flutter","pages":[{"group":"Quickstart","pages":[{"title":"Install the SDK","href":"/publishers/flutter/quickstart/install"},{"title":"Configure the SDK","href":"/publishers/flutter/quickstart/configure"},{"title":"User Management","href":"/publishers/flutter/quickstart/user-management"},{"title":"Presenting Offers","href":"/publishers/flutter/quickstart/present-offers"}]},{"group":"Guides","pages":[{"title":"Flutter Integration Patterns","href":"/publishers/flutter/guides/integration-patterns"}]},{"group":"Updating the SDK","pages":[{"title":"Routine updates","href":"/publishers/flutter/guides/updating-sdk"},{"title":"Updating to 2.x","href":"/publishers/flutter/guides/updating-to-2-x"}]},{"group":"SDK Reference","pages":[{"title":"Overview","href":"/publishers/flutter/sdk-reference/overview"},{"title":"configure()","href":"/publishers/flutter/sdk-reference/configure"},{"title":"identify()","href":"/publishers/flutter/sdk-reference/identify"},{"title":"setUserAttributes()","href":"/publishers/flutter/sdk-reference/set-user-attributes"},{"title":"setLanguage()","href":"/publishers/flutter/sdk-reference/set-language"},{"title":"clearLanguage()","href":"/publishers/flutter/sdk-reference/clear-language"},{"title":"reset()","href":"/publishers/flutter/sdk-reference/reset"},{"title":"placement()","href":"/publishers/flutter/sdk-reference/placement"},{"title":"EncorePurchaseController","href":"/publishers/flutter/sdk-reference/purchase-controller"},{"title":"outcomes","href":"/publishers/flutter/sdk-reference/outcomes"},{"title":"setClaimEnabled()","href":"/publishers/flutter/sdk-reference/set-claim-enabled"},{"title":"EncoreUserAttributes","href":"/publishers/flutter/sdk-reference/user-attributes"},{"title":"EncorePresentationResult","href":"/publishers/flutter/sdk-reference/presentation-result"},{"title":"EncoreDismissReason","href":"/publishers/flutter/sdk-reference/dismiss-reason"},{"title":"Errors","href":"/publishers/flutter/sdk-reference/errors"}]}]},{"group":"Unity","pages":[{"group":"Quickstart","pages":[{"title":"Install the SDK","href":"/publishers/unity/quickstart/install"},{"title":"Configure the SDK","href":"/publishers/unity/quickstart/configure"},{"title":"User Management","href":"/publishers/unity/quickstart/user-management"},{"title":"Presenting Offers","href":"/publishers/unity/quickstart/present-offers"}]},{"group":"Guides","pages":[{"title":"Build Compatibility","href":"/publishers/unity/guides/build-compatibility"}]},{"group":"SDK Reference","pages":[{"title":"Overview","href":"/publishers/unity/sdk-reference/overview"},{"title":"Configure()","href":"/publishers/unity/sdk-reference/configure"},{"title":"IEncorePurchaseController","href":"/publishers/unity/sdk-reference/purchase-controller"},{"title":"Identify()","href":"/publishers/unity/sdk-reference/identify"},{"title":"SetUserAttributes()","href":"/publishers/unity/sdk-reference/set-user-attributes"},{"title":"SetLanguage()","href":"/publishers/unity/sdk-reference/set-language"},{"title":"ClearLanguage()","href":"/publishers/unity/sdk-reference/clear-language"},{"title":"Reset()","href":"/publishers/unity/sdk-reference/reset"},{"title":"Placement()","href":"/publishers/unity/sdk-reference/placement"},{"title":"PresentationResult","href":"/publishers/unity/sdk-reference/presentation-result"},{"title":"Outcomes","href":"/publishers/unity/sdk-reference/outcomes"},{"title":"IsClaimEnabled","href":"/publishers/unity/sdk-reference/is-claim-enabled"},{"title":"IsActive()","href":"/publishers/unity/sdk-reference/is-active"},{"title":"IsActivePublisher()","href":"/publishers/unity/sdk-reference/is-active-publisher"},{"title":"Entitlement","href":"/publishers/unity/sdk-reference/entitlements"},{"title":"LinkPurchase()","href":"/publishers/unity/sdk-reference/link-purchase"},{"title":"CurrentEntitlement()","href":"/publishers/unity/sdk-reference/current-entitlement"},{"title":"RevokeEntitlements()","href":"/publishers/unity/sdk-reference/revoke-entitlements"},{"title":"ClearOfferCache()","href":"/publishers/unity/sdk-reference/clear-offer-cache"},{"title":"UserAttributes","href":"/publishers/unity/sdk-reference/user-attributes"},{"title":"AppearanceConfig","href":"/publishers/unity/sdk-reference/appearance-config"},{"title":"GiftsButton","href":"/publishers/unity/sdk-reference/gifts-button"},{"title":"ClaimReminder","href":"/publishers/unity/sdk-reference/claim-reminder"},{"title":"EncoreTrigger","href":"/publishers/unity/sdk-reference/encore-trigger"}]}]}]}]},{"tab":"Server API","icon":"server","pages":[{"title":"Server API","href":"/publishers/offers-api/guides/receive-completion-events"}]}]},{"product":"Advertisers","icon":"bullhorn","pages":[{"title":"Advertisers","href":"/advertisers/integration"}]}]},"basePath":"","title":"onStrictUnlockVerified() - Encore","buildId":"dpl_715YoAgvjTGBDdo8RtXmHKM22b5p","deploymentId":"dpl_715YoAgvjTGBDdo8RtXmHKM22b5p","dynamics":[],"chunks":[]}