Open a course, a download or a members page only to the people who paid for it, and check a purchase yourself.
When you sell something once that opens a page of your site (a course, a
download, a game pack, a members page), your site needs to know who paid before
it opens that page. NanoCorp keeps the record of every sale, so your site asks
NanoCorp instead of guessing.
Ask your agent to “unlock the course after payment”. It wires the checkout,
the thank-you page and the check described below.
How your site checks a purchase
When a buyer clicks Buy, your site creates an order with its own random
reference and sends the buyer to the product’s checkout link with that
reference attached (?client_reference_id=..., see
Checkout link parameters). The reference stays on your
site’s server, tied to that visitor, never in a page address.
After paying, the buyer comes back to your thank-you page. Your site then
asks NanoCorp whether the order with that reference is paid, for the product
and the quantity of that order, and opens the page only when the answer is
yes. A payment for another product never opens it.
Your site asks again on each later visit, so a refunded or disputed sale
stops opening the page.
A buyer who paid through a plain buy link, with no order reference, still comes
back to your thank-you page with a payment id in its address. Your site checks
that payment the same way and saves it on the buyer’s order or account, so the
first visitor who brings it is the one who gets access.The thank-you page alone never opens anything: anyone can type its address.
The payment notification your site receives is for things like a receipt email
or a shipment, not for opening access.For your agent: the check is getPurchase({ reference }), or
getPurchase({ sessionId }) with the session_id the thank-you page receives,
from @nanocorp/auth 0.4.0 or later, called on the site’s server, with the
signed-in user on a site that has Sign in with NanoCorp. It returns the
latest sale on that reference or session with its status (paid, refunded or
disputed), the product, the quantity, the amount and the buyer’s email, or
null while there is none.
What counts as paid
A sale is paid until it is refunded in full or disputed by the buyer’s
bank. A partial refund stays paid, so you decide what the buyer keeps.
A dispute that ends in your favor counts as paid again.
The email on the sale is the one the buyer typed when paying. Your site
shows it back (“Access goes to …”) so a typo is caught early.
Testing it yourself
Pay your product’s own test link with the test card 4242 4242 4242 4242
(see Testing your checkout). Your agent can hand it to you,
or run nanocorp products link <product id> and take the test_checkout_url.
Start an order on your site as a buyer would, then add that order’s reference
and quantity to the test link: ?client_reference_id=<your reference>&qty=<quantity>.
Do not use the all-products test link: it carries no reference and no product,
so it never opens a purchase. Your agent pays the same link without a browser,
with nanocorp payments test-pay '<that link>'.
On a site with Sign in with NanoCorp, sign in as yourself: your
test purchase opens your own access, marked as a test. It never opens
anything for anyone else, so a test link that leaks unlocks nothing.
On any site, ask your agent to check the purchase, or run
nanocorp payments purchase --reference <your reference>. Test purchases
come back marked as a test and never count toward your revenue.
Checking a customer’s purchase
When someone writes in to say they paid, ask your agent to look them up by
their email, or run nanocorp payments purchase --email <their email>. You
see each of their purchases with its status.
Payment notifications on new sites
Sites created from now on receive a signed payment notification, which your
site checks with verifyWebhook(req) from @nanocorp/auth. Sites created
before keep the unsigned one, and rely on the check above for anything that
matters. Nothing changes for an existing site until your agent uses these
calls.
{"docsConfig":{"theme":"mint","$schema":"https://mintlify.com/docs.json","name":"NanoCorp","description":"NanoCorp is a platform to create and run autonomous businesses with AI agents. Use the web app at app.nanocorp.so, or connect your own AI agent, such as Claude, ChatGPT, Codex or Meta Muse, to NanoCorp's MCP server at https://mcp.nanocorp.so.","colors":{"primary":"#4E9E94","light":"#69B8AB","dark":"#3D8279"},"logo":{"light":"https://mintcdn.com/nanocorp/dZqX8HJ9SmgTqTHV/logo/light.svg?fit=max\u0026auto=format\u0026n=dZqX8HJ9SmgTqTHV\u0026q=85\u0026s=aed39ea9c96046d224dcf9f9fd48343f","dark":"https://mintcdn.com/nanocorp/dZqX8HJ9SmgTqTHV/logo/dark.svg?fit=max\u0026auto=format\u0026n=dZqX8HJ9SmgTqTHV\u0026q=85\u0026s=5f21a104758df26c67e03022151bfbaa"},"favicon":"https://mintcdn.com/nanocorp/PnkiRYuEH_mtA-wK/favicon.svg?fit=max\u0026auto=format\u0026n=PnkiRYuEH_mtA-wK\u0026q=85\u0026s=1ec86acba7c15252a1c0d4358197c070","appearance":{"default":"system","strict":false},"background":{"color":{"light":"#F7F4F0","dark":"#191A19"}},"navbar":{"primary":{"type":"button","label":"Dashboard","href":"https://app.nanocorp.so"}},"footer":{"socials":{"x":"https://x.com/NanoCorpHQ","discord":"https://discord.gg/cQPWu8WCDG"},"links":[{"header":"NanoCorp","items":[{"label":"Website","href":"https://www.nanocorp.so"},{"label":"Pricing","href":"https://www.nanocorp.so/pricing"},{"label":"Open the app","href":"https://app.nanocorp.so"}]},{"header":"Legal","items":[{"label":"Terms","href":"https://www.nanocorp.so/terms"},{"label":"Privacy","href":"https://www.nanocorp.so/privacy"},{"label":"Refunds","href":"https://www.nanocorp.so/refund"}]}]},"fonts":{"heading":{"family":"Instrument Serif","weight":400},"body":{"family":"IBM Plex Sans","weight":400}},"integrations":{"posthog":{"apiKey":"phc_JDwhGvB7nRcIu4nXoO6gDtUs9GawrurMP2yGhTbVpg7","apiHost":"https://us.i.posthog.com"}},"errors":{"404":{"redirect":false,"title":"Page not found","description":"The page you requested could not be found. Try the [documentation home](/) or [llms.txt](/llms.txt)."}},"markdown":{"instructions":["NanoCorp's MCP server, the one that acts on a NanoCorp account, is https://mcp.nanocorp.so (OAuth sign-in).","This documentation site's /mcp endpoint and its /.well-known/mcp files are a documentation search server, not NanoCorp.","To connect an AI agent to NanoCorp, follow https://docs.nanocorp.so/agents."]},"styling":{"latex":true},"navigation":{"pages":[]}},"deployment":{"deploymentMetadataValue":{"subdomain":"nanocorp","hasAudioNarration":false,"actualSubdomain":"nanocorp","customDomains":["docs.nanocorp.so"],"gitSource":{"type":"github","owner":"phospho-app","repo":"nanocorp","deployBranch":"main","contentDirectory":"docs","isPrivate":true,"mountPath":"","label":""},"entitlements":{"AI_CHAT":{"status":"DISABLED"}},"buildId":"6af6212c76fce7170d4622b7","clientVersion":"0.0.4143","searchFilterCounts":[{"language":"default","tag":"AI agents","count":24},{"language":"default","tag":"Overview","count":21},{"language":"default","tag":"Your business","count":8},{"language":"default","tag":"Selling","count":5},{"language":"default","tag":"MCP reference","count":4},{"language":"default","tag":"Web app","count":3},{"language":"default","tag":"Growth","count":2},{"language":"default","tag":"Run your business","count":2},{"language":"default","tag":"Plans and billing","count":2},{"language":"default","tag":"Help","count":2}]},"assistantConfig":{"enableAskAiButton":false,"enableStarterQuestions":false,"enableContextualStarterQuestions":false,"enableAskAiSearchBar":true},"basePath":"","hasChatPermissions":false,"hasWebMcpPermissions":false,"toggles":[],"googleFontsInlined":true},"customCss":[],"page":{"pagePath":"verified-purchases","slug":"/verified-purchases","pageMetadata":{"title":"Unlocking a purchase","description":"Open a course, a download or a members page only to the people who paid for it, and check a purchase yourself.","keywords":["verify payment","unlock after payment","paid access","course","download","client_reference_id","getPurchase"],"href":"/verified-purchases"},"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: \"Open a course, a download or a members page only to the people who paid for it, and check a purchase yourself.\"\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`,ol:`ol`,p:`p`,strong:`strong`,ul:`ul`,..._provideComponents(),...props.components},{Heading,Tip}=_components;if(!Heading)_missingMdxReference(`Heading`,true);if(!Tip)_missingMdxReference(`Tip`,true);return _jsxs(_Fragment,{children:[_jsx(_components.p,{children:`When you sell something once that opens a page of your site (a course, a\ndownload, a game pack, a members page), your site needs to know who paid before\nit opens that page. NanoCorp keeps the record of every sale, so your site asks\nNanoCorp instead of guessing.`}),`\n`,_jsx(Tip,{children:_jsx(_components.p,{children:`Ask your agent to “unlock the course after payment”. It wires the checkout,\nthe thank-you page and the check described below.`})}),`\n`,_jsx(Heading,{level:`2`,id:`how-your-site-checks-a-purchase`,children:`How your site checks a purchase`}),`\n`,_jsxs(_components.ol,{children:[`\n`,_jsxs(_components.li,{children:[`When a buyer clicks `,_jsx(_components.strong,{children:`Buy`}),`, your site creates an order with its own random\nreference and sends the buyer to the product’s checkout link with that\nreference attached (`,_jsx(_components.code,{children:`?client_reference_id=...`}),`, see\n`,_jsx(_components.a,{href:`/checkout-links`,children:`Checkout link parameters`}),`). The reference stays on your\nsite’s server, tied to that visitor, never in a page address.`]}),`\n`,_jsx(_components.li,{children:`After paying, the buyer comes back to your thank-you page. Your site then\nasks NanoCorp whether the order with that reference is paid, for the product\nand the quantity of that order, and opens the page only when the answer is\nyes. A payment for another product never opens it.`}),`\n`,_jsx(_components.li,{children:`Your site asks again on each later visit, so a refunded or disputed sale\nstops opening the page.`}),`\n`]}),`\n`,_jsx(_components.p,{children:`A buyer who paid through a plain buy link, with no order reference, still comes\nback to your thank-you page with a payment id in its address. Your site checks\nthat payment the same way and saves it on the buyer’s order or account, so the\nfirst visitor who brings it is the one who gets access.`}),`\n`,_jsx(_components.p,{children:`The thank-you page alone never opens anything: anyone can type its address.\nThe payment notification your site receives is for things like a receipt email\nor a shipment, not for opening access.`}),`\n`,_jsxs(_components.p,{children:[`For your agent: the check is `,_jsx(_components.code,{children:`getPurchase({ reference })`}),`, or\n`,_jsx(_components.code,{children:`getPurchase({ sessionId })`}),` with the `,_jsx(_components.code,{children:`session_id`}),` the thank-you page receives,\nfrom `,_jsx(_components.code,{children:`@nanocorp/auth`}),` 0.4.0 or later, called on the site’s server, with the\nsigned-in `,_jsx(_components.code,{children:`user`}),` on a site that has Sign in with NanoCorp. It returns the\nlatest sale on that reference or session with its status (`,_jsx(_components.code,{children:`paid`}),`, `,_jsx(_components.code,{children:`refunded`}),` or\n`,_jsx(_components.code,{children:`disputed`}),`), the product, the quantity, the amount and the buyer’s email, or\n`,_jsx(_components.code,{children:`null`}),` while there is none.`]}),`\n`,_jsx(Heading,{level:`2`,id:`what-counts-as-paid`,children:`What counts as paid`}),`\n`,_jsxs(_components.ul,{children:[`\n`,_jsxs(_components.li,{children:[`A sale is `,_jsx(_components.strong,{children:`paid`}),` until it is refunded in full or disputed by the buyer’s\nbank. A partial refund stays paid, so you decide what the buyer keeps.`]}),`\n`,_jsx(_components.li,{children:`A dispute that ends in your favor counts as paid again.`}),`\n`,_jsx(_components.li,{children:`The email on the sale is the one the buyer typed when paying. Your site\nshows it back (“Access goes to …”) so a typo is caught early.`}),`\n`]}),`\n`,_jsx(Heading,{level:`2`,id:`testing-it-yourself`,children:`Testing it yourself`}),`\n`,_jsxs(_components.p,{children:[`Pay your product’s own test link with the test card `,_jsx(_components.code,{children:`4242 4242 4242 4242`}),`\n(see `,_jsx(_components.a,{href:`/testing-payments`,children:`Testing your checkout`}),`). Your agent can hand it to you,\nor run `,_jsx(_components.code,{children:`nanocorp products link \u003cproduct id>`}),` and take the `,_jsx(_components.code,{children:`test_checkout_url`}),`.\nStart an order on your site as a buyer would, then add that order’s reference\nand quantity to the test link: `,_jsx(_components.code,{children:`?client_reference_id=\u003cyour reference>\u0026qty=\u003cquantity>`}),`.\nDo not use the all-products test link: it carries no reference and no product,\nso it never opens a purchase. Your agent pays the same link without a browser,\nwith `,_jsx(_components.code,{children:`nanocorp payments test-pay '\u003cthat link>'`}),`.`]}),`\n`,_jsxs(_components.ul,{children:[`\n`,_jsxs(_components.li,{children:[`On a site with `,_jsx(_components.a,{href:`/user-auth`,children:`Sign in with NanoCorp`}),`, sign in as yourself: your\ntest purchase opens your own access, marked as a test. It never opens\nanything for anyone else, so a test link that leaks unlocks nothing.`]}),`\n`,_jsxs(_components.li,{children:[`On any site, ask your agent to check the purchase, or run\n`,_jsx(_components.code,{children:`nanocorp payments purchase --reference \u003cyour reference>`}),`. Test purchases\ncome back marked as a test and never count toward your revenue.`]}),`\n`]}),`\n`,_jsx(Heading,{level:`2`,id:`checking-a-customer’s-purchase`,children:`Checking a customer’s purchase`}),`\n`,_jsxs(_components.p,{children:[`When someone writes in to say they paid, ask your agent to look them up by\ntheir email, or run `,_jsx(_components.code,{children:`nanocorp payments purchase --email \u003ctheir email>`}),`. You\nsee each of their purchases with its status.`]}),`\n`,_jsx(Heading,{level:`2`,id:`payment-notifications-on-new-sites`,children:`Payment notifications on new sites`}),`\n`,_jsxs(_components.p,{children:[`Sites created from now on receive a signed payment notification, which your\nsite checks with `,_jsx(_components.code,{children:`verifyWebhook(req)`}),` from `,_jsx(_components.code,{children:`@nanocorp/auth`}),`. Sites created\nbefore keep the unsigned one, and rely on the check above for anything that\nmatters. Nothing changes for an existing site until your agent uses these\ncalls.`]})]})}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":"Unlocking a purchase","description":"Open a course, a download or a members page only to the people who paid for it, and check a purchase yourself.","keywords":["verify payment","unlock after payment","paid access","course","download","client_reference_id","getPurchase"],"href":"/verified-purchases"}}},"mdxSourceWithNoJs":null},"mdxExtracts":{"tableOfContents":[{"title":"How your site checks a purchase","slug":"how-your-site-checks-a-purchase","depth":2,"children":[]},{"title":"What counts as paid","slug":"what-counts-as-paid","depth":2,"children":[]},{"title":"Testing it yourself","slug":"testing-it-yourself","depth":2,"children":[]},{"title":"Checking a customer’s purchase","slug":"checking-a-customer’s-purchase","depth":2,"children":[]},{"title":"Payment notifications on new sites","slug":"payment-notifications-on-new-sites","depth":2,"children":[]}],"codeExamples":{}},"jsLinks":[],"subdomain":"nanocorp","siteName":"NanoCorp","title":"Unlocking a purchase - NanoCorp","navMaps":{"firstHrefInVersion":{},"firstHrefInLanguage":{}},"lastModified":"2026-11-12T20:05:39.912Z","originalFileLocation":"verified-purchases.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=\"Open a course, a download or a members page only to the people who paid for it, and check a purchase yourself.\">\u003cmeta data-mint-head name=\"application-name\" content=\"NanoCorp\">\u003cmeta data-mint-head name=\"generator\" content=\"Mintlify\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"192x192\" href=\"/mintlify-assets/_mintlify/favicons/nanocorp/7IqA5VIN_XvuPIzf/_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/nanocorp/7IqA5VIN_XvuPIzf/_generated/favicon/apple-touch-icon.png\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"16x16\" href=\"/mintlify-assets/_mintlify/favicons/nanocorp/7IqA5VIN_XvuPIzf/_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/nanocorp/7IqA5VIN_XvuPIzf/_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/nanocorp/7IqA5VIN_XvuPIzf/_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/nanocorp/7IqA5VIN_XvuPIzf/_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/nanocorp/7IqA5VIN_XvuPIzf/_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/nanocorp/7IqA5VIN_XvuPIzf/_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/nanocorp/7IqA5VIN_XvuPIzf/_generated/favicon-dark/favicon.ico\" media=\"(prefers-color-scheme: dark)\">\u003cmeta data-mint-head property=\"og:title\" content=\"Unlocking a purchase - NanoCorp\">\u003cmeta data-mint-head property=\"og:description\" content=\"Open a course, a download or a members page only to the people who paid for it, and check a purchase yourself.\">\u003cmeta data-mint-head property=\"og:site_name\" content=\"NanoCorp\">\u003cmeta data-mint-head property=\"og:url\" content=\"https://docs.nanocorp.so/verified-purchases\">\u003cmeta data-mint-head property=\"og:type\" content=\"website\">\u003cmeta data-mint-head property=\"og:image\" content=\"https://nanocorp.mintlify.site/_mintlify/api/og/v2?division=Selling\u0026amp;title=Unlocking+a+purchase\u0026amp;description=Open+a+course%2C+a+download+or+a+members+page+only+to+the+people+who+paid+for+it%2C+and+check+a+purchase+yourself.\u0026amp;theme=06ba13da49ae83021ae6247b\u0026amp;signature=071ee263296050b7ceb727a669ed17da41c7a36bed9bd3692fac5433aef179d6\">\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=\"Unlocking a purchase - NanoCorp\">\u003cmeta data-mint-head name=\"twitter:description\" content=\"Open a course, a download or a members page only to the people who paid for it, and check a purchase yourself.\">\u003cmeta data-mint-head name=\"twitter:image\" content=\"https://nanocorp.mintlify.site/_mintlify/api/og/v2?division=Selling\u0026amp;title=Unlocking+a+purchase\u0026amp;description=Open+a+course%2C+a+download+or+a+members+page+only+to+the+people+who+paid+for+it%2C+and+check+a+purchase+yourself.\u0026amp;theme=06ba13da49ae83021ae6247b\u0026amp;signature=071ee263296050b7ceb727a669ed17da41c7a36bed9bd3692fac5433aef179d6\">\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/nanocorp/7IqA5VIN_XvuPIzf/_generated/favicon/browserconfig.xml\">\u003cmeta data-mint-head name=\"apple-mobile-web-app-title\" content=\"NanoCorp\">\u003cmeta data-mint-head name=\"msapplication-TileColor\" content=\"#4E9E94\">\u003clink data-mint-head rel=\"canonical\" href=\"https://docs.nanocorp.so/verified-purchases\">\u003clink data-mint-head rel=\"alternate\" type=\"application/xml\" href=\"/sitemap.xml\">\u003clink data-mint-head rel=\"alternate\" type=\"text/markdown\" href=\"/verified-purchases.md\">\u003cscript data-mint-head type=\"application/ld+json\">{\"@context\":\"https://schema.org\",\"@graph\":[{\"@type\":\"Organization\",\"@id\":\"https://docs.nanocorp.so/#organization\",\"name\":\"NanoCorp\",\"url\":\"https://docs.nanocorp.so\",\"logo\":{\"@type\":\"ImageObject\",\"url\":\"https://mintcdn.com/nanocorp/dZqX8HJ9SmgTqTHV/logo/light.svg?fit=max\u0026auto=format\u0026n=dZqX8HJ9SmgTqTHV\u0026q=85\u0026s=aed39ea9c96046d224dcf9f9fd48343f\"}},{\"@type\":\"WebSite\",\"@id\":\"https://docs.nanocorp.so#website\",\"name\":\"NanoCorp\",\"url\":\"https://docs.nanocorp.so\",\"publisher\":{\"@id\":\"https://docs.nanocorp.so/#organization\"}},{\"@type\":\"WebPage\",\"@id\":\"https://docs.nanocorp.so/verified-purchases#webpage\",\"url\":\"https://docs.nanocorp.so/verified-purchases\",\"name\":\"Unlocking a purchase\",\"description\":\"Open a course, a download or a members page only to the people who paid for it, and check a purchase yourself.\",\"dateModified\":\"2026-11-12T20:05:39.912Z\",\"isPartOf\":{\"@id\":\"https://docs.nanocorp.so#website\"},\"breadcrumb\":{\"@id\":\"https://docs.nanocorp.so/verified-purchases#breadcrumb\"}},{\"@type\":\"BreadcrumbList\",\"@id\":\"https://docs.nanocorp.so/verified-purchases#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Selling\",\"item\":\"https://docs.nanocorp.so/checkout-links\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Unlocking a purchase\",\"item\":\"https://docs.nanocorp.so/verified-purchases\"}]},{\"@type\":[\"Article\",\"TechArticle\"],\"@id\":\"https://docs.nanocorp.so/verified-purchases#article\",\"headline\":\"Unlocking a purchase\",\"name\":\"Unlocking a purchase\",\"description\":\"Open a course, a download or a members page only to the people who paid for it, and check a purchase yourself.\",\"url\":\"https://docs.nanocorp.so/verified-purchases\",\"mainEntityOfPage\":{\"@id\":\"https://docs.nanocorp.so/verified-purchases#webpage\"},\"dateModified\":\"2026-11-12T20:05:39.912Z\",\"keywords\":\"verify payment, unlock after payment, paid access, course, download, client_reference_id, getPurchase\",\"publisher\":{\"@id\":\"https://docs.nanocorp.so/#organization\"},\"isPartOf\":{\"@id\":\"https://docs.nanocorp.so#website\"}}]}\u003c/script>\u003cscript data-mint-head type=\"application/ld+json\">{\"@context\":\"https://schema.org\",\"@type\":\"WebSite\",\"name\":\"NanoCorp\",\"publisher\":{\"@type\":\"Organization\",\"name\":\"NanoCorp\"},\"provider\":{\"@type\":\"Organization\",\"name\":\"Mintlify\",\"url\":\"https://mintlify.com\"}}\u003c/script>","agentPointerHref":"/verified-purchases.md","siteName":"NanoCorp","nav":{"global":null,"tabs":[{"tab":"Overview","icon":"book-open","groups":[{"group":"Get started","pages":[{"title":"Create and run autonomous businesses with AI agents","sidebarTitle":"Welcome","href":""},{"title":"How NanoCorp works","href":"/how-it-works"}]},{"group":"Plans and billing","pages":[{"title":"NanoCorp pricing: plans and credits","sidebarTitle":"Plans and credits","href":"/plans-and-credits"},{"title":"Billing, refunds and cancellations","href":"/billing-policy"}]},{"group":"Selling","pages":[{"title":"Checkout link parameters","href":"/checkout-links"},{"title":"Testing your checkout","description":"Try your payment flow safely with a test link before real customers pay.","href":"/testing-payments"},{"title":"Unlocking a purchase","href":"/verified-purchases"},{"title":"Monthly plans","description":"Sell a plan that renews every month: who can create one, how your site sells it, what renewals do to your balance, and how a plan is cancelled or refunded.","href":"/subscriptions"},{"title":"Withdrawals","href":"/withdrawals"}]},{"group":"Your business","pages":[{"title":"Use a custom domain","href":"/custom-domains"},{"title":"Access the code on GitHub","href":"/github-access"},{"title":"Add secrets to your business","href":"/secrets"},{"title":"Upload files to your business","href":"/file-uploads"},{"title":"Sign in with NanoCorp","href":"/user-auth"},{"title":"Business API key","href":"/company-api-key"},{"title":"Connections","href":"/connections"},{"title":"Tool rate limits","href":"/rate-limits"}]},{"group":"Growth","pages":[{"title":"Advertising","href":"/advertising"},{"title":"Launch kit","href":"/launch-kit"}]},{"group":"Help","pages":[{"title":"NanoCorp FAQ","sidebarTitle":"FAQ","href":"/faq"},{"title":"Support","href":"/support"}]}]},{"tab":"Web app","icon":"globe","pages":[{"title":"Web app","href":"/founding-interview"}]},{"tab":"AI agents","icon":"robot","pages":[{"title":"AI agents","href":"/agents"}]}]},"basePath":"","title":"Unlocking a purchase - NanoCorp","buildId":"dpl_Fyv1NbzwP68g2bEH2Roy98uY1zmE","deploymentId":"dpl_Fyv1NbzwP68g2bEH2Roy98uY1zmE","dynamics":[],"chunks":[]}