Let browser agents complete purchases without handling raw payment details
your browser agent can complete purchases with KERNEL while your application keeps control of the purchase and user approval. native wallet integrations connect the user’s payment method to a vault, so your agent works with payment items rather than raw card details.KERNEL’s fill api safely injects stored values into browser fields without passing them through your application’s injection code or the model’s context. you provide an item reference, browser, and field selectors; KERNEL writes the values and returns per-field outcomes, not the values. wallet integrations supply payment material and approval; fill is a KERNEL operation shared with non-payment vault items.agentcard uses an integration-specific alternative: the agent enters non-sensitive aliases, and KERNEL holds a recognized checkout request for approval before agentcard executes it and KERNEL replays the response. the underlying card stays outside the browser.
keep raw values out of the application and model handoff. use KERNEL’s fill api to inject stored payment values instead of retrieving them and passing them through application code or agent prompts.
connect wallets through native integrations. use vault items, advertised operations, and hosted actions for connection and purchase approval. KERNEL handles the provider interaction, including link card issuance or agentcard’s approved request execution and response replay.
control the purchase. verify purchase details in your application and present provider-hosted approval to the user outside the agent. vault attachments and item lifecycle checks control which browser can use the payment item.
observe the attempt. inspect value-free operation outcomes and item events, then reconcile with the merchant’s order record. a completed fill or approval is not proof of payment.
create a wallet item and send the user through the provider-hosted collection flow.
attach the vault when you create the browser session. the attachment also covers items created later in that vault.
create a card item for the verified, user-confirmed purchase. complete the provider’s required preparation and approval. link authorizes at the checkout page and issues a merchant-bound link pay token on supported stripe checkouts or a single-use virtual card elsewhere; agentcard can reuse a card item with separate approval for each checkout.
invoke KERNEL’s advertised fill operation to inject payment fields without supplying their values, then inspect the outcomes before submitting. for agentcard’s alias-based flow, enter aliases and keep a trusted approval observer running while the checkout request is held.
submit checkout once, complete any remaining provider-hosted approval, and reconcile with the merchant’s order state. fill or approval alone is not payment success.
wallet and card are vault item types. the wallet supplies the provider connection; the card represents payment material and its authorization state. retrieve the item and check available_operations before invoking an operation. don’t assume every item supports fill.
your application must independently verify the merchant, items, amount, and currency before creating or authorizing a purchase. keep wallet collection and approval urls in trusted user-facing surfaces, not model context. after submission, use the merchant’s order record to establish whether the expected purchase succeeded.
don’t retry a failed, timed-out, rejected, or indeterminate payment. a browser error, missing response, completed fill, or reusable card item does not prove whether the merchant created an order or money moved. inspect existing outcomes, item events, and merchant state before taking another action.
{"docsConfig":{"theme":"palm","$schema":"https://mintlify.com/docs.json","name":"Kernel","colors":{"primary":"#212225","light":"#CAB168","dark":"#CAB168"},"logo":{"light":"https://mintcdn.com/tbd-6fc993ce/Lt3m2NlMiCztMtQK/logo/black.svg?fit=max\u0026auto=format\u0026n=Lt3m2NlMiCztMtQK\u0026q=85\u0026s=68e987c751954bbc1d35886a02636c73","dark":"https://mintcdn.com/tbd-6fc993ce/y3CmyOX_b9m5t8tc/logo/white.svg?fit=max\u0026auto=format\u0026n=y3CmyOX_b9m5t8tc\u0026q=85\u0026s=c197f34af93346f9141a9a79870f101e"},"favicon":"https://mintcdn.com/tbd-6fc993ce/G-Oz940pmbilrFx5/favicon.svg?fit=max\u0026auto=format\u0026n=G-Oz940pmbilrFx5\u0026q=85\u0026s=ce38e3ee0e5d07700bccd70f5df08733","appearance":{"default":"light","strict":false},"background":{"color":{"light":"#F0F0F3","dark":"#212225"}},"navbar":{"links":[{"href":"https://dashboard.onkernel.com","label":"Dashboard"},{"href":"https://jobs.ashbyhq.com/usekernel","label":"Careers"}],"primary":{"type":"button","label":"Sign up","href":"https://dashboard.onkernel.com/sign-up"}},"footer":{"socials":{"x":"https://x.com/usekernel","github":"https://github.com/orgs/kernel","linkedin":"https://www.linkedin.com/company/trykernel"}},"seo":{"metatags":{"canonical":"https://www.kernel.sh/docs","og:image":"https://www.kernel.sh/docs/images/og-image.png","twitter:image":"https://www.kernel.sh/docs/images/og-image.png"},"indexing":"all"},"fonts":{"family":"Inter","weight":400},"integrations":{"ga4":{"measurementId":"G-GVEXRLYSN4"}},"contextual":{"options":["copy","chatgpt","claude"],"display":"header"},"styling":{"latex":true},"navigation":{"pages":[]}},"deployment":{"deploymentMetadataValue":{"subdomain":"tbd-6fc993ce","hasAudioNarration":false,"actualSubdomain":"tbd-6fc993ce","customDomains":["www.kernel.sh"],"gitSource":{"type":"github","owner":"kernel","repo":"docs","deployBranch":"main","contentDirectory":"","isPrivate":true,"mountPath":"","label":""},"chroma":{"liveDeploymentHistoryId":"6ae4301f0c59e275effff739","collectionId":"801f3a20-be5f-438c-ae29-21e630e0c574","schemaVersion":"v3","latestBuiltDeploymentHistoryId":"6ae4301f0c59e275effff739"},"feedback":{"thumbs":false},"entitlements":{"AI_CHAT":{"status":"ENABLED"},"WEB_MCP":{"status":"ENABLED"},"NARRATION":{"status":"ENABLED"}},"buildId":"6ae4af7e5507c0d0db08bc81","clientVersion":"0.0.4043","searchFilterCounts":[{"language":"default","tag":"API Reference","count":166},{"language":"default","tag":"Guides","count":91},{"language":"default","tag":"How it works","count":68},{"language":"default","tag":"Configure","count":39},{"language":"default","tag":"MCP","count":31},{"language":"default","tag":"Vaults","count":23},{"language":"default","tag":"Managed Auth","count":15},{"language":"default","tag":"Partnering with KERNEL","count":15},{"language":"default","tag":"CLI","count":15},{"language":"default","tag":"Browser Filesystem","count":15}]},"assistantConfig":{},"basePath":"/docs","hasChatPermissions":true,"hasWebMcpPermissions":true,"toggles":[{"name":"kill-isr","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":"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":"byok-sep-25","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":"vite-origin","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"billing-updated-9-15","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}],"googleFontsInlined":false},"customCss":[{"filePath":"style.css","content":"*{text-transform:lowercase!important}.kernel-brand-name{text-transform:uppercase!important}.code-group code,.code-group pre,[class*=highlight] code,[class*=highlight] pre,code,code *,kbd,pre,pre *{text-transform:none!important}*,::after,::before{border-radius:0!important}:root{--btn-selected-bg:#CAB168;--btn-border:#000}#navigation-items .sidebar-group-header{font-weight:300!important;font-size:11px!important}html.dark #navigation-items .sidebar-group-header{color:rgba(237,238,240,.55)!important}#navigation-items div[class*=mt-]>.sidebar-group-header{margin-top:.75rem;padding-top:1rem;border-top:1px solid rgba(33,34,37,.1)}html.dark #navigation-items div[class*=mt-]>.sidebar-group-header{border-top-color:rgba(237,238,240,.1)}#navigation-items li[data-title]>button.group,#navigation-items li[data-title]>div.group{width:100%!important;flex-direction:row-reverse!important;justify-content:space-between!important}#navigation-items li[data-title]>button.group>svg,#navigation-items li[data-title]>div.group>svg{margin-right:0!important;margin-left:0!important}.prose table,article table,table{width:100%!important;border-collapse:separate!important;border-spacing:0!important;border-radius:0!important;overflow:hidden!important;border:1px solid rgb(var(--gray-950)/.1)!important;background-color:#f9fafb!important;margin:0!important;display:table!important}.prose table thead th,article table thead th,table thead th{padding:10px 16px!important;text-align:left!important;font-weight:600!important;font-size:.875rem!important;line-height:1.5rem!important;background-color:rgba(0,0,0,.02)!important;border-bottom:1px solid rgba(0,0,0,.1)!important;word-wrap:break-word!important;word-break:break-word!important;overflow-wrap:break-word!important;white-space:normal!important;max-width:0!important}.prose table tbody tr,article table tbody tr,table tbody tr{transition:background-color .15s ease!important;border-bottom:1px solid rgba(0,0,0,.06)!important}.prose table tbody tr:last-child,article table tbody tr:last-child,table tbody tr:last-child{border-bottom:none!important}.prose table tbody tr:hover,article table tbody tr:hover,table tbody tr:hover{background-color:rgba(0,0,0,.02)!important}.prose table tbody td,article table tbody td,table tbody td{padding:10px 16px!important;font-size:.875rem!important;line-height:1.5rem!important;word-wrap:break-word!important;word-break:break-word!important;overflow-wrap:break-word!important;white-space:normal!important;max-width:0!important;min-width:130px!important}.prose table code,article table code,table code{font-size:.8125rem!important;padding:2px 6px!important;border-radius:0!important}.prose code:not(pre *),article code:not(pre *),code:not(pre *){padding:1px 4px!important;background-color:transparent!important;border:1px solid #d0d2d9!important}html.dark .prose code:not(pre *),html.dark article code:not(pre *),html.dark code:not(pre *){border-color:rgba(237,238,240,.1)!important}.prose table tbody td:first-child,article table tbody td:first-child,table tbody td:first-child{font-weight:500!important}.tinker-box{display:flex;flex-direction:column;gap:32px;padding:32px;border:1px solid rgba(0,0,0,.12);margin-top:2rem;margin-bottom:2rem}.tinker-box-row{display:flex;align-items:center;gap:32px}.tinker-box-content{display:flex;flex-direction:column;gap:32px;flex:1;min-width:0}.copy-prompt-full button,.tinker-box-content button{width:100%!important;max-width:100%!important}@media (max-width:640px){.tinker-box{padding:24px;gap:24px}.tinker-box-row{flex-direction:column;align-items:stretch;gap:24px;width:100%}.tinker-box-content{width:100%}}html.dark .callout[class*=yellow],html.dark .prose table,html.dark article table,html.dark table{border-color:rgba(237,238,240,.1)!important;background-color:rgba(237,238,240,.02)!important}html.dark .prose table thead th,html.dark article table thead th,html.dark table thead th{background-color:rgba(237,238,240,.04)!important;border-bottom-color:rgba(237,238,240,.1)!important}html.dark .prose table tbody tr,html.dark article table tbody tr,html.dark table tbody tr{border-bottom-color:rgba(237,238,240,.08)!important}html.dark .prose table tbody tr:hover,html.dark article table tbody tr:hover,html.dark table tbody tr:hover{background-color:rgba(237,238,240,.04)!important}html.dark .tinker-box{border-color:rgba(237,238,240,.14)}html.dark{--btn-border:#EDEEF0}html.dark .callout[class*=yellow]{background-color:rgba(237,238,240,.03)!important}html.dark .callout[class*=yellow] svg{color:#cab168!important}.dark .card:hover{border-color:rgb(223 223 223)!important}.dark .link{border-bottom-color:#edeef0}#navigation-items img[src*=\"/images/integration-icons/\"]{width:14px;height:14px;opacity:.68}#navigation-items img[src*=\"/images/integration-icons/nousresearch.svg\"]{opacity:.72;transform:scale(1.06)}#navigation-items img[src*=\"/images/integration-icons/browser-use-logo-transparent.svg\"]{transform:scale(.9)}#navigation-items img[src*=\"/images/integration-icons/computer-cursor-rounded.svg\"]{transform:scale(.95)}#navigation-items img[src*=\"/images/integration-icons/laminar-outline.svg\"]{transform:scale(.9)}#navigation-items img[src*=\"/images/integration-icons/stagehand-logo-transparent.svg\"]{transform:scale(.88)}#navigation-items img[src*=\"/images/integration-icons/stripe.svg\"]{transform:scale(.82)}#navigation-items img[src*=\"/images/integration-icons/vercel.svg\"]{transform:scale(.76)}#navigation-items img[src*=\"/images/integration-icons/1password-logo-transparent.svg\"]{opacity:.6;transform:scale(.82)}#navigation-items li>button:has(img[src*=\"/images/integration-icons/\"])>div:has(>svg){order:1}#navigation-items li>button:has(img[src*=\"/images/integration-icons/\"])>div:has(>img[src*=\"/images/integration-icons/\"]){order:3}#navigation-items li>button:has(img[src*=\"/images/integration-icons/\"])>div:not(:has(>svg)):not(:has(>img[src*=\"/images/integration-icons/\"])){order:2}html.dark #navigation-items img[src*=\"/images/integration-icons/\"]{filter:invert(1)}#pagination a[href^=\"/cookbooks/\"]{display:none}#header .eyebrow[data-parent-group]{font-size:0}#header .eyebrow[data-parent-group]::after{content:attr(data-parent-group);font-size:.875rem}.cookbook-tag{display:block;font-size:.6875rem;font-weight:400;letter-spacing:-.015em;opacity:.72;margin-bottom:.5rem}html.dark .cookbook-tag{color:rgba(237,238,240,.7)}html[data-current-path=\"/\"] #header>div.prose{display:none!important}"}],"page":{"pagePath":"browsers/payments","slug":"/browsers/payments","pageMetadata":{"title":"Payments","sidebarTitle":"Overview","description":"Let browser agents complete purchases without handling raw payment details","href":"/browsers/payments"},"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: \"Let browser agents complete purchases without handling raw payment details\"\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,Mermaid,Warning}=_components;if(!Heading)_missingMdxReference(`Heading`,true);if(!Mermaid)_missingMdxReference(`Mermaid`,true);if(!Warning)_missingMdxReference(`Warning`,true);return _jsxs(_Fragment,{children:[_jsxs(_components.p,{children:[`your browser agent can complete purchases with KERNEL while your application keeps control of the purchase and user approval. native `,_jsx(_components.a,{href:`/integrations/wallets/overview`,children:`wallet integrations`}),` connect the user’s payment method to a `,_jsx(_components.a,{href:`/vaults/overview`,children:`vault`}),`, so your agent works with payment items rather than raw card details.`]}),`\n`,_jsxs(_components.p,{children:[`KERNEL’s `,_jsxs(_components.a,{href:`/vaults/fill`,children:[_jsx(_components.code,{children:`fill`}),` api`]}),` safely injects stored values into browser fields without passing them through your application’s injection code or the model’s context. you provide an item reference, browser, and field selectors; KERNEL writes the values and returns per-field outcomes, not the values. wallet integrations supply payment material and approval; `,_jsx(_components.code,{children:`fill`}),` is a KERNEL operation shared with non-payment vault items.`]}),`\n`,_jsx(_components.p,{children:`agentcard uses an integration-specific alternative: the agent enters non-sensitive aliases, and KERNEL holds a recognized checkout request for approval before agentcard executes it and KERNEL replays the response. the underlying card stays outside the browser.`}),`\n`,_jsx(Heading,{level:`2`,id:`why-use-kernel-payments`,children:`Why use KERNEL payments`}),`\n`,_jsxs(_components.ul,{children:[`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:`keep raw values out of the application and model handoff.`}),` use KERNEL’s `,_jsx(_components.code,{children:`fill`}),` api to inject stored payment values instead of retrieving them and passing them through application code or agent prompts.`]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:`connect wallets through native integrations.`}),` use vault items, advertised operations, and hosted actions for connection and purchase approval. KERNEL handles the provider interaction, including link card issuance or agentcard’s approved request execution and response replay.`]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:`control the purchase.`}),` verify purchase details in your application and present provider-hosted approval to the user outside the agent. vault attachments and item lifecycle checks control which browser can use the payment item.`]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:`observe the attempt.`}),` inspect value-free operation outcomes and item events, then reconcile with the merchant’s order record. a completed fill or approval is not proof of payment.`]}),`\n`]}),`\n`,_jsx(Heading,{level:`2`,id:`how-payments-work`,children:`How payments work`}),`\n`,_jsxs(_components.ol,{children:[`\n`,_jsx(_components.li,{children:`create a vault for the user or task.`}),`\n`,_jsx(_components.li,{children:`create a wallet item and send the user through the provider-hosted collection flow.`}),`\n`,_jsx(_components.li,{children:`attach the vault when you create the browser session. the attachment also covers items created later in that vault.`}),`\n`,_jsx(_components.li,{children:`create a card item for the verified, user-confirmed purchase. complete the provider’s required preparation and approval. link authorizes at the checkout page and issues a merchant-bound link pay token on supported stripe checkouts or a single-use virtual card elsewhere; agentcard can reuse a card item with separate approval for each checkout.`}),`\n`,_jsxs(_components.li,{children:[`invoke KERNEL’s advertised `,_jsx(_components.code,{children:`fill`}),` operation to inject payment fields without supplying their values, then inspect the outcomes before submitting. for agentcard’s alias-based flow, enter aliases and keep a trusted approval observer running while the checkout request is held.`]}),`\n`,_jsx(_components.li,{children:`submit checkout once, complete any remaining provider-hosted approval, and reconcile with the merchant’s order state. fill or approval alone is not payment success.`}),`\n`]}),`\n`,_jsxs(_components.p,{children:[_jsx(_components.code,{children:`wallet`}),` and `,_jsx(_components.code,{children:`card`}),` are vault item types. the wallet supplies the provider connection; the card represents payment material and its authorization state. retrieve the item and check `,_jsx(_components.code,{children:`available_operations`}),` before invoking an operation. don’t assume every item supports `,_jsx(_components.code,{children:`fill`}),`.`]}),`\n`,_jsx(Mermaid,{chart:`%%{init: {\"flowchart\": {\"nodeSpacing\": 24, \"rankSpacing\": 28, \"padding\": 12}}}%%\nflowchart TD\n U[user] --> H[\"wallet connection\u003cbr/>and approval\"]\n H --> W[wallet item]\n W --> C[prepared card item]\n C -->|fill| T[\"trusted controller:\u003cbr/>references and\u003cbr/>selectors\"]\n T --> F[\"KERNEL fills\u003cbr/>browser fields;\u003cbr/>returns value-free\u003cbr/>outcomes\"]\n F --> S[\"merchant form\u003cbr/>submission\"]\n C -->|agentcard| A[\"non-sensitive\u003cbr/>aliases\"]\n A --> E[\"KERNEL intercepts\u003cbr/>and holds request\u003cbr/>for approval\"]\n E --> X[\"agentcard\u003cbr/>executes request\"]\n X --> R[\"KERNEL replays\u003cbr/>response\"]`}),`\n`,_jsx(Heading,{level:`2`,id:`verify-the-purchase`,children:`Verify the purchase`}),`\n`,_jsx(_components.p,{children:`your application must independently verify the merchant, items, amount, and currency before creating or authorizing a purchase. keep wallet collection and approval urls in trusted user-facing surfaces, not model context. after submission, use the merchant’s order record to establish whether the expected purchase succeeded.`}),`\n`,_jsx(Warning,{children:_jsxs(_components.p,{children:[`don’t retry a failed, timed-out, rejected, or indeterminate payment. a browser error, missing response, completed `,_jsx(_components.code,{children:`fill`}),`, or reusable card item does not prove whether the merchant created an order or money moved. inspect existing outcomes, item events, and merchant state before taking another action.`]})}),`\n`,_jsx(Heading,{level:`2`,id:`get-started`,children:`Get started`}),`\n`,_jsxs(_components.ul,{children:[`\n`,_jsxs(_components.li,{children:[_jsx(_components.a,{href:`/integrations/wallets/overview`,children:`choose a wallet integration`}),` for payment-method connection, approval, and reuse options.`]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.a,{href:`/integrations/wallets/kernel`,children:`KERNEL card`}),` to collect a user’s card directly, with hosted or embedded enrollment.`]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.a,{href:`/browsers/enable-payments-in-browser-agent`,children:`enable payments in a browser agent`}),` for the controller, agent, and checkout walkthrough.`]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.a,{href:`/vaults/fill`,children:`fill browser fields`}),` for KERNEL’s injection api, field selection, and outcome contract.`]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.a,{href:`/info/pricing`,children:`pricing`}),` for vault limits and payment charges.`]}),`\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":"Payments","sidebarTitle":"Overview","description":"Let browser agents complete purchases without handling raw payment details","href":"/browsers/payments"}}},"mdxSourceWithNoJs":null},"mdxExtracts":{"tableOfContents":[{"title":"Why use KERNEL payments","slug":"why-use-kernel-payments","depth":2,"children":[]},{"title":"How payments work","slug":"how-payments-work","depth":2,"children":[]},{"title":"Verify the purchase","slug":"verify-the-purchase","depth":2,"children":[]},{"title":"Get started","slug":"get-started","depth":2,"children":[]}],"codeExamples":{}},"jsLinks":["/docs/_mintlify/custom/tbd-6fc993ce/ab7a5fd22e95880d/conceptual.js","/docs/_mintlify/custom/tbd-6fc993ce/08c6845006936328/eyebrow.js"],"subdomain":"tbd-6fc993ce","siteName":"Kernel","title":"Payments - Kernel","navMaps":{"firstHrefInVersion":{},"firstHrefInLanguage":{}},"lastModified":"2026-10-27T21:08:58.000Z","originalFileLocation":"browsers/payments.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=\"light\"}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=\"Let browser agents complete purchases without handling raw payment details\">\u003cmeta data-mint-head name=\"application-name\" content=\"Kernel\">\u003cmeta data-mint-head name=\"generator\" content=\"Mintlify\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"192x192\" href=\"/docs/mintlify-assets/_mintlify/favicons/tbd-6fc993ce/CjCJZGCXnaix-Ex0/_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=\"/docs/mintlify-assets/_mintlify/favicons/tbd-6fc993ce/CjCJZGCXnaix-Ex0/_generated/favicon/apple-touch-icon.png\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"16x16\" href=\"/docs/mintlify-assets/_mintlify/favicons/tbd-6fc993ce/CjCJZGCXnaix-Ex0/_generated/favicon/favicon-16x16.png\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"32x32\" href=\"/docs/mintlify-assets/_mintlify/favicons/tbd-6fc993ce/CjCJZGCXnaix-Ex0/_generated/favicon/favicon-32x32.png\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"shortcut icon\" type=\"image/x-icon\" href=\"/docs/mintlify-assets/_mintlify/favicons/tbd-6fc993ce/CjCJZGCXnaix-Ex0/_generated/favicon/favicon.ico\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"192x192\" href=\"/docs/mintlify-assets/_mintlify/favicons/tbd-6fc993ce/CjCJZGCXnaix-Ex0/_generated/favicon-dark/android-chrome-192x192.png\" media=\"(prefers-color-scheme: dark)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"16x16\" href=\"/docs/mintlify-assets/_mintlify/favicons/tbd-6fc993ce/CjCJZGCXnaix-Ex0/_generated/favicon-dark/favicon-16x16.png\" media=\"(prefers-color-scheme: dark)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"32x32\" href=\"/docs/mintlify-assets/_mintlify/favicons/tbd-6fc993ce/CjCJZGCXnaix-Ex0/_generated/favicon-dark/favicon-32x32.png\" media=\"(prefers-color-scheme: dark)\">\u003clink data-mint-head rel=\"shortcut icon\" type=\"image/x-icon\" href=\"/docs/mintlify-assets/_mintlify/favicons/tbd-6fc993ce/CjCJZGCXnaix-Ex0/_generated/favicon-dark/favicon.ico\" media=\"(prefers-color-scheme: dark)\">\u003cmeta data-mint-head property=\"og:title\" content=\"Payments - Kernel\">\u003cmeta data-mint-head property=\"og:description\" content=\"Let browser agents complete purchases without handling raw payment details\">\u003cmeta data-mint-head property=\"og:site_name\" content=\"Kernel\">\u003cmeta data-mint-head property=\"og:url\" content=\"https://www.kernel.sh/docs/browsers/payments\">\u003cmeta data-mint-head property=\"og:type\" content=\"website\">\u003cmeta data-mint-head property=\"og:image\" content=\"https://www.kernel.sh/docs/images/og-image.png\">\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=\"Payments - Kernel\">\u003cmeta data-mint-head name=\"twitter:description\" content=\"Let browser agents complete purchases without handling raw payment details\">\u003cmeta data-mint-head name=\"twitter:image\" content=\"https://www.kernel.sh/docs/images/og-image.png\">\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=\"/docs/mintlify-assets/_mintlify/favicons/tbd-6fc993ce/CjCJZGCXnaix-Ex0/_generated/favicon/browserconfig.xml\">\u003cmeta data-mint-head name=\"apple-mobile-web-app-title\" content=\"Kernel\">\u003cmeta data-mint-head name=\"msapplication-TileColor\" content=\"#212225\">\u003clink data-mint-head rel=\"canonical\" href=\"https://www.kernel.sh/docs/browsers/payments\">\u003clink data-mint-head rel=\"alternate\" type=\"application/xml\" href=\"/docs/sitemap.xml\">\u003clink data-mint-head rel=\"alternate\" type=\"text/markdown\" href=\"/docs/browsers/payments.md\">\u003cscript data-mint-head type=\"application/ld+json\">{\"@context\":\"https://schema.org\",\"@graph\":[{\"@type\":\"Organization\",\"@id\":\"https://www.kernel.sh/#organization\",\"name\":\"Kernel\",\"url\":\"https://www.kernel.sh\",\"logo\":{\"@type\":\"ImageObject\",\"url\":\"https://mintcdn.com/tbd-6fc993ce/Lt3m2NlMiCztMtQK/logo/black.svg?fit=max\u0026auto=format\u0026n=Lt3m2NlMiCztMtQK\u0026q=85\u0026s=68e987c751954bbc1d35886a02636c73\"}},{\"@type\":\"WebSite\",\"@id\":\"https://www.kernel.sh/docs#website\",\"name\":\"Kernel\",\"url\":\"https://www.kernel.sh/docs\",\"publisher\":{\"@id\":\"https://www.kernel.sh/#organization\"}},{\"@type\":\"WebPage\",\"@id\":\"https://www.kernel.sh/docs/browsers/payments#webpage\",\"url\":\"https://www.kernel.sh/docs/browsers/payments\",\"name\":\"Payments\",\"description\":\"Let browser agents complete purchases without handling raw payment details\",\"dateModified\":\"2026-10-27T21:08:58.000Z\",\"isPartOf\":{\"@id\":\"https://www.kernel.sh/docs#website\"},\"breadcrumb\":{\"@id\":\"https://www.kernel.sh/docs/browsers/payments#breadcrumb\"}},{\"@type\":\"BreadcrumbList\",\"@id\":\"https://www.kernel.sh/docs/browsers/payments#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"How it works\",\"item\":\"https://www.kernel.sh/docs/introduction/configure\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Configure\",\"item\":\"https://www.kernel.sh/docs/introduction/configure\"},{\"@type\":\"ListItem\",\"position\":3,\"name\":\"Payments\",\"item\":\"https://www.kernel.sh/docs/browsers/payments\"}]},{\"@type\":[\"Article\",\"TechArticle\"],\"@id\":\"https://www.kernel.sh/docs/browsers/payments#article\",\"headline\":\"Payments\",\"name\":\"Payments\",\"description\":\"Let browser agents complete purchases without handling raw payment details\",\"url\":\"https://www.kernel.sh/docs/browsers/payments\",\"mainEntityOfPage\":{\"@id\":\"https://www.kernel.sh/docs/browsers/payments#webpage\"},\"image\":\"https://www.kernel.sh/docs/images/og-image.png\",\"dateModified\":\"2026-10-27T21:08:58.000Z\",\"publisher\":{\"@id\":\"https://www.kernel.sh/#organization\"},\"isPartOf\":{\"@id\":\"https://www.kernel.sh/docs#website\"}}]}\u003c/script>\u003cscript data-mint-head type=\"application/ld+json\">{\"@context\":\"https://schema.org\",\"@type\":\"WebSite\",\"name\":\"Kernel\",\"creator\":{\"@type\":\"Organization\",\"name\":\"Mintlify\",\"url\":\"https://mintlify.com\"}}\u003c/script>","siteName":"Kernel","nav":{"global":null,"tabs":[{"tab":"Guides","groups":[{"group":"Overview","pages":[{"title":"wrangle the wild web","sidebarTitle":"Introduction","mode":"wide","href":""},{"title":"See All Features","mode":"wide","href":"/overview/features"},{"title":"How KERNEL Fits Between Your Agent and the Internet","sidebarTitle":"Important Concepts","mode":"wide","href":"/overview/concepts"},{"title":"Why KERNEL?","href":"/overview/why-kernel"}]},{"group":"Start building","pages":[{"title":"Quickstart","mode":"wide","href":"/start/quickstart"},{"title":"Agent Skills","sidebarTitle":"Agent Skills","mode":"wide","href":"/skills/overview"},{"title":"Integrations","sidebarTitle":"Integrations","mode":"wide","href":"/integrations/overview"},{"title":"cookbooks","sidebarTitle":"Cookbooks","mode":"wide","href":"/cookbooks"}]},{"group":"How it works","pages":[{"group":"Configure","pages":[{"title":"Configure","sidebarTitle":"Overview","mode":"wide","href":"/introduction/configure"},{"group":"Stealth","pages":[{"title":"Stealth","sidebarTitle":"Overview","href":"/browsers/bot-detection/overview"},{"title":"Stealth Mode","href":"/browsers/bot-detection/stealth"},{"title":"Web Bot Auth (WBA)","href":"/browsers/bot-detection/web-bot-auth"}]},{"group":"Proxies","pages":[{"title":"Proxies","sidebarTitle":"Overview","href":"/proxies/overview"},{"title":"Residential Proxies","href":"/proxies/residential"},{"title":"ISP Proxies","href":"/proxies/isp"},{"title":"Mobile Proxies","href":"/proxies/mobile"},{"title":"Custom Proxies","href":"/proxies/custom"},{"title":"Per-Host Proxy Routes","href":"/proxies/routes"},{"title":"Egress Allowlists","href":"/browsers/egress-allowlists"},{"title":"Proxy Errors","href":"/proxies/errors"}]},{"group":"Profiles","pages":[{"title":"Profiles","sidebarTitle":"Overview","href":"/browsers/profiles"},{"title":"Save and Reuse Profile State","sidebarTitle":"Save and Reuse State","href":"/browsers/profiles/save-and-reuse"},{"title":"Profile Sharing and Concurrency","sidebarTitle":"Sharing and Concurrency","href":"/browsers/profiles/concurrency"},{"title":"Browser Profile Patterns for AI Agents","sidebarTitle":"Patterns for AI Agents","href":"/browsers/profiles/agent-patterns"}]},{"group":"Vaults","pages":[{"title":"Vaults","sidebarTitle":"Overview","href":"/vaults/overview"},{"title":"Credential Items","href":"/vaults/credentials"},{"title":"Passkeys","href":"/vaults/passkeys"},{"title":"Use an Existing Credential Vault","href":"/vaults/existing-credential-vault"},{"title":"Fill Browser Fields","href":"/vaults/fill"},{"title":"1Password Agentic Autofill","href":"/vaults/1password"}]},{"group":"Authentication","pages":[{"title":"Authentication","sidebarTitle":"Overview","href":"/auth/overview"},{"title":"Fill from Vault","href":"/auth/fill-from-vault"},{"title":"Fill from Managed Auth","href":"/auth/fill-from-managed-auth"},{"group":"Managed Auth","pages":[{"title":"Managed Auth","sidebarTitle":"Overview","href":"/auth/managed-auth"},{"title":"Hosted UI","href":"/auth/hosted-ui"},{"title":"React Component","href":"/auth/react"},{"title":"Programmatic Flow","href":"/auth/programmatic"},{"title":"Connection Configuration","sidebarTitle":"Configuration","href":"/auth/configuration"},{"title":"Connection Lifecycle","sidebarTitle":"Lifecycle","description":"How connections stay authenticated, and what to do when one breaks","href":"/auth/connection-lifecycle"}]}]},{"group":"Payments","pages":[{"title":"Payments","sidebarTitle":"Overview","href":"/browsers/payments"},{"title":"Wallets","description":"Connect user wallets through KERNEL's native integrations","href":"/integrations/wallets/overview"},{"title":"KERNEL Card","href":"/integrations/wallets/kernel"},{"title":"Link by Stripe","href":"/integrations/wallets/stripe-link"},{"title":"AgentCard","href":"/integrations/wallets/agentcard"},{"title":"Embedded Card Capture","href":"/integrations/wallets/embedded-card-capture"},{"title":"Embedded Card CVC","href":"/integrations/wallets/embedded-card-cvc"}]},{"title":"Config Registry","href":"/config-registry"}]},{"group":"Control","pages":[{"title":"Control","sidebarTitle":"Overview","href":"/introduction/control"},{"title":"Playwright Execution","href":"/browsers/playwright-execution"},{"title":"Computer Controls","href":"/browsers/computer-controls"},{"title":"WebMCP","href":"/browsers/webmcp"},{"title":"Browser REPL","href":"/browsers/repl"},{"title":"Process Execution","href":"/browsers/process-execution"},{"title":"File I/O","href":"/browsers/file-io"},{"group":"Code Execution Platform","pages":[{"title":"Develop an App","sidebarTitle":"Develop","href":"/apps/develop"},{"title":"Deploy an App","sidebarTitle":"Deploy","href":"/apps/deploy"},{"title":"Invoke an App","sidebarTitle":"Invoke","href":"/apps/invoke"},{"title":"Invocation Status","sidebarTitle":"Status","href":"/apps/status"},{"title":"Invocation Logs","sidebarTitle":"Logs","href":"/apps/logs"}]}]},{"group":"Scale","pages":[{"title":"Scale","sidebarTitle":"Overview","href":"/introduction/scale"},{"title":"Concurrency and Limits","href":"/browsers/concurrency-and-limits"},{"title":"Performance","href":"/browsers/performance"},{"title":"Browser Pools","href":"/browsers/pools"}]},{"group":"Observe","pages":[{"title":"Observe","sidebarTitle":"Overview","href":"/introduction/observe"},{"title":"Live View","href":"/browsers/live-view"},{"title":"Replays","href":"/browsers/replays"},{"group":"Browser Telemetry","pages":[{"title":"Browser Telemetry","sidebarTitle":"Overview","href":"/browsers/telemetry/overview"},{"title":"Telemetry Categories","sidebarTitle":"Categories","href":"/browsers/telemetry/categories"},{"title":"Stream Telemetry","sidebarTitle":"Streaming","href":"/browsers/telemetry/streaming"},{"title":"Export Telemetry","sidebarTitle":"Export","href":"/browsers/telemetry/export"}]}]},{"group":"Manage","pages":[{"title":"Manage","sidebarTitle":"Overview","mode":"wide","href":"/introduction/manage"},{"title":"Projects","href":"/info/projects"},{"title":"API Keys","href":"/info/api-keys"},{"title":"API Key Permissions","href":"/info/api-key-permissions"},{"title":"Audit Logs","href":"/info/audit-logs"},{"title":"Allowlist KERNEL Domains","sidebarTitle":"Firewall Allowlist","href":"/info/network-access"}]}]},{"group":"Partnering with KERNEL","pages":[{"group":"Plans and Billing","pages":[{"title":"Pricing","sidebarTitle":"Plans and Pricing","href":"/info/pricing"},{"title":"Spending Caps","href":"/info/spending-caps"},{"title":"Buy a Browser with MPP","href":"/info/mpp"}]},{"group":"Security and Trust","pages":[{"title":"Shared Responsibility Model","href":"/shared-responsibility-model"},{"title":"Trust Center","href":"/info/trust-center"},{"title":"Bug Bounty Program: Scope and Policy","sidebarTitle":"Vulnerability Reporting","href":"/security-vulnerability-reporting"},{"title":"KERNEL Bots and Agents","sidebarTitle":"Verify KERNEL Traffic","href":"/bots"}]},{"group":"Enterprise","pages":[{"title":"Enterprise","sidebarTitle":"Overview","href":"/info/enterprise"},{"title":"Single Sign-On (SSO)","sidebarTitle":"SSO","href":"/info/sso"},{"title":"HIPAA","href":"/info/hipaa"},{"title":"Zero Data Retention","href":"/info/zero-data-retention"},{"title":"Contact Sales","href":"/info/contact-sales"}]},{"group":"Support and Community","pages":[{"title":"Support","href":"/info/support"},{"title":"Discord","url":"https://discord.gg/FBrveQRcud","href":"/community/discord"},{"title":"Github","url":"https://github.com/onkernel/kernel-images","href":"/community/github"}]}]}]},{"tab":"API Reference","pages":[{"title":"API Reference","href":"/api-reference/apps/list-apps"}]},{"tab":"CLI","pages":[{"title":"CLI","href":"/reference/cli"}]},{"tab":"MCP","pages":[{"title":"MCP","href":"/reference/mcp-server"}]},{"tab":"Changelog","href":"https://www.kernel.sh/changelog"}]},"basePath":"","title":"Payments - Kernel","buildId":"dpl_4RHMRqtvdHvKgaEfTTjFqjzja3B6","deploymentId":"dpl_4RHMRqtvdHvKgaEfTTjFqjzja3B6","dynamics":[],"chunks":[]}