This is how most orders are paid. You create an experiment, Adaptyv prices it
into a quote, you confirm the quote, and Stripe issues a hosted invoice page for
whoever pays your bills. No payment header, no wallet.You need a token whose role grants Quote:Update — Member, Billing, or
Admin. Creating the experiment additionally needs Experiment:Create, which
Member and Admin carry but Billing does not.
Send no X-Adaptyv-Payment-Method header. Its absence selects this rail for an
ordinary token and pins the experiment to it. If you hold a token issued with a
machine payment policy, send X-Adaptyv-Payment-Method: async_invoice
explicitly to get the hosted invoice.
Confirming finalizes the invoice. You may attach a purchase-order number, which
appears on it. A JSON body is required either way — send {} if you have
nothing to attach.
Send hosted_invoice_url to whoever pays your bills. They can view the invoice,
pay it with any method you have enabled, and download the PDF and receipt — see
Stripe’s hosted invoice page.
Confirming is one-way. A second confirm on the same quote returns 409. To
decline, call POST /quotes/{quote_id}/reject first.
Payment happens on Stripe’s page, outside the API: there is no credential to
submit and no endpoint that completes it. Stripe notifies the API when the money
clears, and the invoice flips from open to paid.
To remove the browser step, have an agent settle the invoice with
x402 or
MPP-SPT instead. Both are selected at
experiment creation.
Was this page helpful?
{"docsConfig":{"theme":"mint","$schema":"https://mintlify.com/docs.json","name":"Adaptyv Bio Docs","colors":{"primary":"#5db0dd","light":"#5db0dd","dark":"#5db0dd"},"logo":{"light":"https://mintcdn.com/adaptyv-a4917ef6/3kX9xKvyzUlLV3Dj/logo/logo-light.svg?fit=max\u0026auto=format\u0026n=3kX9xKvyzUlLV3Dj\u0026q=85\u0026s=28a1e3df60674482d4bac1fc9d190568","dark":"https://mintcdn.com/adaptyv-a4917ef6/3kX9xKvyzUlLV3Dj/logo/logo-dark.svg?fit=max\u0026auto=format\u0026n=3kX9xKvyzUlLV3Dj\u0026q=85\u0026s=9af068e2ee0cfcd18651c6d5de78183b"},"favicon":"https://mintcdn.com/adaptyv-a4917ef6/3kX9xKvyzUlLV3Dj/favicon.svg?fit=max\u0026auto=format\u0026n=3kX9xKvyzUlLV3Dj\u0026q=85\u0026s=3c844e90e21e045d7ed937e532aa2bdf","background":{"decoration":"gradient"},"navbar":{"links":[{"href":"mailto:support@adaptyvbio.com","label":"Support"}],"primary":{"type":"button","label":"Test Your Proteins","href":"https://start.adaptyvbio.com"}},"footer":{"socials":{"x":"https://twitter.com/adaptyvbio","linkedin":"https://www.linkedin.com/company/adaptyvbio"}},"integrations":{"posthog":{"apiKey":"phc_BakxHKWkh2YgICIAQeQJuGpagepWpTNHGzWmf6dGAsU"}},"contextual":{"options":["copy","view","claude","chatgpt"],"display":"header"},"styling":{"latex":true},"navigation":{"global":{"anchors":[{"anchor":"Careers","icon":"users","href":"https://www.adaptyvbio.com/careers"},{"anchor":"Blog","icon":"newspaper","href":"https://www.adaptyvbio.com/blog"},{"anchor":"Experiment Configurator","icon":"flask","href":"https://start.adaptyvbio.com"},{"anchor":"Foundry Portal","icon":"desktop","href":"https://foundry.adaptyvbio.com"}]},"pages":[]}},"deployment":{"deploymentMetadataValue":{"subdomain":"adaptyv-a4917ef6","hasAudioNarration":false,"actualSubdomain":"adaptyv-a4917ef6","customDomains":["docs.adaptyvbio.com"],"gitSource":{"type":"github","owner":"adaptyvbio","repo":"monorepo","deployBranch":"master","contentDirectory":"apps/docs-public","isPrivate":true,"mountPath":"","label":""},"chroma":{"liveDeploymentHistoryId":"6ac81a5673ce31311a1c600a","collectionId":"8d0ec86c-0af8-4714-8a77-5f724947b672","schemaVersion":"v3","latestBuiltDeploymentHistoryId":"6ac81a5673ce31311a1c600a"},"feedback":{"thumbs":true},"entitlements":{"AI_CHAT":{"status":"ENABLED"},"WEB_MCP":{"status":"ENABLED"},"NARRATION":{"status":"ENABLED"}},"buildId":"6adff8dc8f9b4f0222625cf9","clientVersion":"0.0.3971","searchFilterCounts":[{"language":"default","tag":"API","count":50},{"language":"default","tag":"API Endpoints","count":43},{"language":"default","tag":"Wiki","count":26},{"language":"default","tag":"Documentation","count":14},{"language":"default","tag":"experiments","count":13},{"language":"default","tag":"Technologies","count":10},{"language":"default","tag":"Proteins","count":9},{"language":"default","tag":"Getting Started","count":5},{"language":"default","tag":"Experiment Setup","count":5},{"language":"default","tag":"Experiment Types","count":5}]},"assistantConfig":{"enableAskAiButton":true,"enableStarterQuestions":false,"enableAskAiSearchBar":false,"deflection":{"enabled":true,"email":"support@adaptyvbio.com","showHelpButton":true}},"basePath":"","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":"editor-v7-file-tree","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":"pause-universal-search-reconcile","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":"per-site-search-delta","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":"editor-private-page-search","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":"editor-nav-generations","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":"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":"editor-agent-model-picker","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":"workos-enabled","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false}],"isAtlas":false,"googleFontsInlined":false},"customCss":[{"filePath":"style.css","content":".shape-grid{margin:1rem 0 1.5rem}.sg-cards{display:grid;grid-template-columns:repeat(4,1fr);gap:10px}@media (max-width:640px){.sg-cards{grid-template-columns:repeat(2,1fr)}}.sg-card{position:relative;display:block;border:2px solid #e6e8ec;border-radius:10px;padding:7px 7px 5px;background:#fff;cursor:pointer;transition:border-color .12s,box-shadow .12s,background .12s,transform .12s}.sg-radio{position:absolute;width:1px;height:1px;opacity:0;pointer-events:none;margin:0}.sg-card img{width:100%;height:auto;display:block;margin:0}.sg-card span{display:block;font-size:11.5px;font-weight:600;text-align:center;margin-top:5px;line-height:1.25;color:#5b6472}.sg-card:hover,.shape-grid:not(:has(.sg-card:hover)) .sg-card:has(.sg-radio:checked){border-color:#3b6cf0;background:#eef3ff;box-shadow:0 0 0 3px #3b6cf0;transform:translateY(-2px)}.sg-card:hover span,.shape-grid:not(:has(.sg-card:hover)) .sg-card:has(.sg-radio:checked) span{color:#2b56c8}.sg-card:has(.sg-radio:focus-visible){outline:2px solid #3b6cf0;outline-offset:2px}.sg-caption{margin-top:16px;border:1px solid #e6e8ec;border-left:3px solid #3b6cf0;border-radius:8px;padding:14px 16px;min-height:72px}.sg-cap{display:none}.sg-sugg{display:block;margin-top:9px;padding-top:9px;border-top:1px solid #e6e8ec;font-size:.93em}.sg-sugg strong{color:#2b56c8}.shape-grid:not(:has(.sg-card:hover)):has(.sg-card[data-k=biphasic] .sg-radio:checked) .sg-cap[data-k=biphasic],.shape-grid:not(:has(.sg-card:hover)):has(.sg-card[data-k=drift] .sg-radio:checked) .sg-cap[data-k=drift],.shape-grid:not(:has(.sg-card:hover)):has(.sg-card[data-k=flat-dissoc] .sg-radio:checked) .sg-cap[data-k=flat-dissoc],.shape-grid:not(:has(.sg-card:hover)):has(.sg-card[data-k=ideal] .sg-radio:checked) .sg-cap[data-k=ideal],.shape-grid:not(:has(.sg-card:hover)):has(.sg-card[data-k=mass-transport] .sg-radio:checked) .sg-cap[data-k=mass-transport],.shape-grid:not(:has(.sg-card:hover)):has(.sg-card[data-k=no-plateau] .sg-radio:checked) .sg-cap[data-k=no-plateau],.shape-grid:not(:has(.sg-card:hover)):has(.sg-card[data-k=square-wave] .sg-radio:checked) .sg-cap[data-k=square-wave],.shape-grid:not(:has(.sg-card:hover)):has(.sg-card[data-k=super-stoich] .sg-radio:checked) .sg-cap[data-k=super-stoich]{display:block}.shape-grid:has(.sg-card[data-k=biphasic]:hover) .sg-cap[data-k=biphasic],.shape-grid:has(.sg-card[data-k=drift]:hover) .sg-cap[data-k=drift],.shape-grid:has(.sg-card[data-k=flat-dissoc]:hover) .sg-cap[data-k=flat-dissoc],.shape-grid:has(.sg-card[data-k=ideal]:hover) .sg-cap[data-k=ideal],.shape-grid:has(.sg-card[data-k=mass-transport]:hover) .sg-cap[data-k=mass-transport],.shape-grid:has(.sg-card[data-k=no-plateau]:hover) .sg-cap[data-k=no-plateau],.shape-grid:has(.sg-card[data-k=square-wave]:hover) .sg-cap[data-k=square-wave],.shape-grid:has(.sg-card[data-k=super-stoich]:hover) .sg-cap[data-k=super-stoich]{display:block}.dark .sg-card{background:#111827}.dark .sg-card span{color:#9aa4b2}.dark .sg-caption,.dark .sg-card{border-color:#243040}.dark .sg-sugg{border-top-color:#243040}.dark .sg-sugg strong{color:#9db8ff}.dark .sg-card:hover,.dark .shape-grid:not(:has(.sg-card:hover)) .sg-card:has(.sg-radio:checked){border-color:#6c95ff;background:#17233d;box-shadow:0 0 0 3px #6c95ff}.dark .sg-card:hover span,.dark .shape-grid:not(:has(.sg-card:hover)) .sg-card:has(.sg-radio:checked) span{color:#9db8ff}"}],"page":{"pagePath":"api-reference/payments/pay-hosted-invoice","slug":"/api-reference/payments/pay-hosted-invoice","pageMetadata":{"title":"Pay by hosted invoice","description":"The default flow: create an experiment, confirm the quote, and pay the Stripe-hosted invoice in a browser.","href":"/api-reference/payments/pay-hosted-invoice"},"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: \"The default flow: create an experiment, confirm the quote, and pay the Stripe-hosted invoice in a browser.\"\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`,p:`p`,pre:`pre`,span:`span`,strong:`strong`,..._provideComponents(),...props.components},{CodeBlock,Heading,Mermaid,Warning}=_components;if(!CodeBlock)_missingMdxReference(`CodeBlock`,true);if(!Heading)_missingMdxReference(`Heading`,true);if(!Mermaid)_missingMdxReference(`Mermaid`,true);if(!Warning)_missingMdxReference(`Warning`,true);return _jsxs(_Fragment,{children:[_jsx(Heading,{level:`1`,id:`pay-by-hosted-invoice`,children:`Pay by hosted invoice`}),`\n`,_jsx(_components.p,{children:`This is how most orders are paid. You create an experiment, Adaptyv prices it\ninto a quote, you confirm the quote, and Stripe issues a hosted invoice page for\nwhoever pays your bills. No payment header, no wallet.`}),`\n`,_jsxs(_components.p,{children:[`You need a token whose role grants `,_jsx(_components.code,{children:`Quote:Update`}),` — `,_jsx(_components.strong,{children:`Member`}),`, `,_jsx(_components.strong,{children:`Billing`}),`, or\n`,_jsx(_components.strong,{children:`Admin`}),`. Creating the experiment additionally needs `,_jsx(_components.code,{children:`Experiment:Create`}),`, which\n`,_jsx(_components.strong,{children:`Member`}),` and `,_jsx(_components.strong,{children:`Admin`}),` carry but `,_jsx(_components.strong,{children:`Billing`}),` does not.`]}),`\n`,_jsx(Mermaid,{chart:`sequenceDiagram\n autonumber\n participant You\n participant API\n participant Stripe\n participant Payer as Whoever pays your bills\n\n You->>API: POST /experiments (no X-Adaptyv-Payment-Method)\n API-->>You: experiment id\n Note over API: Adaptyv prices the work\n You->>API: POST /quotes/{quote_id}/confirm\n API-->>You: invoice_id + payment.hosted_invoice_url\n You->>Payer: send hosted_invoice_url\n Payer->>Stripe: pay on the hosted page\n Stripe->>API: notify that the invoice is paid\n You->>API: GET /invoices/{invoice_id}\n API-->>You: 200 — paid`}),`\n`,_jsx(Heading,{level:`2`,id:`create-the-experiment`,children:`Create the experiment`}),`\n`,_jsxs(_components.p,{children:[`Send no `,_jsx(_components.code,{children:`X-Adaptyv-Payment-Method`}),` header. Its absence selects this rail for an\nordinary token and pins the experiment to it. If you hold a token issued with a\nmachine payment policy, send `,_jsx(_components.code,{children:`X-Adaptyv-Payment-Method: async_invoice`}),`\nexplicitly to get the hosted invoice.`]}),`\n`,_jsx(CodeBlock,{filename:``,numberOfLines:`4`,language:`shellscript`,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:`shellscript`,children:_jsxs(_components.code,{language:`shellscript`,numberOfLines:`4`,children:[_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#953800`,\"--shiki-dark\":`#DCDCAA`},children:`curl`}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#569CD6`},children:` -X`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` POST`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` \"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:`$FOUNDRY_API_URL`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`/experiments\"`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D7BA7D`},children:` \\\\`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#569CD6`},children:` -H`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` \"Authorization: Bearer `}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:`$FOUNDRY_API_TOKEN`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D7BA7D`},children:` \\\\`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#569CD6`},children:` -H`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` \"Content-Type: application/json\"`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D7BA7D`},children:` \\\\`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#569CD6`},children:` -d`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` @experiment.json`})]}),`\n`]})})}),`\n`,_jsx(Heading,{level:`2`,id:`read-the-quote`,children:`Read the quote`}),`\n`,_jsx(CodeBlock,{filename:``,numberOfLines:`5`,language:`shellscript`,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:`shellscript`,children:_jsxs(_components.code,{language:`shellscript`,numberOfLines:`5`,children:[_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#953800`,\"--shiki-dark\":`#DCDCAA`},children:`curl`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` \"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:`$FOUNDRY_API_URL`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`/quotes/`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:`$QUOTE_ID`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D7BA7D`},children:` \\\\`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#569CD6`},children:` -H`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` \"Authorization: Bearer `}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:`$FOUNDRY_API_TOKEN`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"`})]}),`\n`,_jsx(_components.span,{className:`line`}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#953800`,\"--shiki-dark\":`#DCDCAA`},children:`curl`}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#569CD6`},children:` -L`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` \"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:`$FOUNDRY_API_URL`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`/experiments/`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:`$EXPERIMENT_ID`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`/quote/pdf\"`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D7BA7D`},children:` \\\\`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#569CD6`},children:` -H`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` \"Authorization: Bearer `}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:`$FOUNDRY_API_TOKEN`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"`}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#569CD6`},children:` -o`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` quote.pdf`})]}),`\n`]})})}),`\n`,_jsx(Heading,{level:`2`,id:`confirm-the-quote`,children:`Confirm the quote`}),`\n`,_jsxs(_components.p,{children:[`Confirming finalizes the invoice. You may attach a purchase-order number, which\nappears on it. A JSON body is required either way — send `,_jsx(_components.code,{children:`{}`}),` if you have\nnothing to attach.`]}),`\n`,_jsx(CodeBlock,{filename:``,numberOfLines:`4`,language:`shellscript`,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:`shellscript`,children:_jsxs(_components.code,{language:`shellscript`,numberOfLines:`4`,children:[_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#953800`,\"--shiki-dark\":`#DCDCAA`},children:`curl`}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#569CD6`},children:` -X`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` POST`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` \"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:`$FOUNDRY_API_URL`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`/quotes/`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:`$QUOTE_ID`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`/confirm\"`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D7BA7D`},children:` \\\\`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#569CD6`},children:` -H`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` \"Authorization: Bearer `}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:`$FOUNDRY_API_TOKEN`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D7BA7D`},children:` \\\\`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#569CD6`},children:` -H`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` \"Content-Type: application/json\"`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D7BA7D`},children:` \\\\`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#569CD6`},children:` -d`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` '{\"purchase_order_number\": \"PO-2026-00142\"}'`})]}),`\n`]})})}),`\n`,_jsx(CodeBlock,{filename:``,numberOfLines:`9`,language:`json`,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:`json`,children:_jsxs(_components.code,{language:`json`,numberOfLines:`9`,children:[_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`{`})}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"id\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"qt_1OqLk2...\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"status\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"accepted\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"invoice_id\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"in_1OqLk2LkdIwHu7ix6OboRpXl\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"payment\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: {`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"kind\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"hosted_invoice\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"hosted_invoice_url\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"https://invoice.stripe.com/i/acct_1234/test_5678\"`})]}),`\n`,_jsx(_components.span,{className:`line`,children:_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`]})})}),`\n`,_jsxs(_components.p,{children:[`Send `,_jsx(_components.code,{children:`hosted_invoice_url`}),` to whoever pays your bills. They can view the invoice,\npay it with any method you have enabled, and download the PDF and receipt — see\nStripe’s `,_jsx(_components.a,{href:`https://docs.stripe.com/invoicing/hosted-invoice-page`,children:`hosted invoice page`}),`.`]}),`\n`,_jsx(Warning,{children:_jsxs(_components.p,{children:[`Confirming is one-way. A second confirm on the same quote returns `,_jsx(_components.code,{children:`409`}),`. To\ndecline, call `,_jsx(_components.code,{children:`POST /quotes/{quote_id}/reject`}),` first.`]})}),`\n`,_jsx(Heading,{level:`2`,id:`check-that-it-settled`,children:`Check that it settled`}),`\n`,_jsxs(_components.p,{children:[`Payment happens on Stripe’s page, outside the API: there is no credential to\nsubmit and no endpoint that completes it. Stripe notifies the API when the money\nclears, and the invoice flips from `,_jsx(_components.code,{children:`open`}),` to `,_jsx(_components.code,{children:`paid`}),`.`]}),`\n`,_jsx(CodeBlock,{filename:``,numberOfLines:`5`,language:`shellscript`,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:`shellscript`,children:_jsxs(_components.code,{language:`shellscript`,numberOfLines:`5`,children:[_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#953800`,\"--shiki-dark\":`#DCDCAA`},children:`curl`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` \"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:`$FOUNDRY_API_URL`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`/invoices/`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:`$INVOICE_ID`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D7BA7D`},children:` \\\\`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#569CD6`},children:` -H`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` \"Authorization: Bearer `}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:`$FOUNDRY_API_TOKEN`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"`})]}),`\n`,_jsx(_components.span,{className:`line`}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#953800`,\"--shiki-dark\":`#DCDCAA`},children:`curl`}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#569CD6`},children:` -L`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` \"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:`$FOUNDRY_API_URL`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`/invoices/`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:`$INVOICE_ID`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`/pdf\"`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D7BA7D`},children:` \\\\`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#569CD6`},children:` -H`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` \"Authorization: Bearer `}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:`$FOUNDRY_API_TOKEN`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"`}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#569CD6`},children:` -o`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` invoice.pdf`})]}),`\n`]})})}),`\n`,_jsxs(_components.p,{children:[`To remove the browser step, have an agent settle the invoice with\n`,_jsx(_components.a,{href:`/api-reference/payments/pay-x402-exact`,children:`x402`}),` or\n`,_jsx(_components.a,{href:`/api-reference/payments/pay-mpp-spt`,children:`MPP-SPT`}),` instead. Both are selected at\nexperiment creation.`]})]})}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":"Pay by hosted invoice","description":"The default flow: create an experiment, confirm the quote, and pay the Stripe-hosted invoice in a browser.","href":"/api-reference/payments/pay-hosted-invoice"}}},"mdxSourceWithNoJs":null},"mdxExtracts":{"tableOfContents":[{"title":"Pay by hosted invoice","slug":"pay-by-hosted-invoice","depth":1,"children":[]},{"title":"Create the experiment","slug":"create-the-experiment","depth":2,"children":[]},{"title":"Read the quote","slug":"read-the-quote","depth":2,"children":[]},{"title":"Confirm the quote","slug":"confirm-the-quote","depth":2,"children":[]},{"title":"Check that it settled","slug":"check-that-it-settled","depth":2,"children":[]}],"codeExamples":{}},"jsLinks":[],"subdomain":"adaptyv-a4917ef6","siteName":"Adaptyv Bio Docs","title":"Pay by hosted invoice - Adaptyv Bio Docs","navMaps":{"firstHrefInVersion":{},"firstHrefInLanguage":{}},"lastModified":"2026-08-15T15:11:29.938Z","originalFileLocation":"api-reference/payments/pay-hosted-invoice.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=\"The default flow: create an experiment, confirm the quote, and pay the Stripe-hosted invoice in a browser.\">\u003cmeta data-mint-head name=\"application-name\" content=\"Adaptyv Bio Docs\">\u003cmeta data-mint-head name=\"generator\" content=\"Mintlify\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"192x192\" href=\"/mintlify-assets/_mintlify/favicons/adaptyv-a4917ef6/zzyucPz0fZkqpoJX/_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/adaptyv-a4917ef6/zzyucPz0fZkqpoJX/_generated/favicon/apple-touch-icon.png\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"16x16\" href=\"/mintlify-assets/_mintlify/favicons/adaptyv-a4917ef6/zzyucPz0fZkqpoJX/_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/adaptyv-a4917ef6/zzyucPz0fZkqpoJX/_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/adaptyv-a4917ef6/zzyucPz0fZkqpoJX/_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/adaptyv-a4917ef6/zzyucPz0fZkqpoJX/_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/adaptyv-a4917ef6/zzyucPz0fZkqpoJX/_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/adaptyv-a4917ef6/zzyucPz0fZkqpoJX/_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/adaptyv-a4917ef6/zzyucPz0fZkqpoJX/_generated/favicon-dark/favicon.ico\" media=\"(prefers-color-scheme: dark)\">\u003cmeta data-mint-head property=\"og:title\" content=\"Pay by hosted invoice - Adaptyv Bio Docs\">\u003cmeta data-mint-head property=\"og:description\" content=\"The default flow: create an experiment, confirm the quote, and pay the Stripe-hosted invoice in a browser.\">\u003cmeta data-mint-head property=\"og:site_name\" content=\"Adaptyv Bio Docs\">\u003cmeta data-mint-head property=\"og:url\" content=\"https://docs.adaptyvbio.com/api-reference/payments/pay-hosted-invoice\">\u003cmeta data-mint-head property=\"og:type\" content=\"website\">\u003cmeta data-mint-head property=\"og:image\" content=\"https://adaptyv-a4917ef6.mintlify.app/_mintlify/api/og/v2?division=Payments\u0026amp;title=Pay+by+hosted+invoice\u0026amp;description=The+default+flow%3A+create+an+experiment%2C+confirm+the+quote%2C+and+pay+the+Stripe-hosted+invoice+in+a+browser.\u0026amp;theme=43e189271cead89711960f8b\u0026amp;signature=23b322fe05f1e9514e9ffb5801cf38a6b32e43b81ee9063caef7a515a51af9da\">\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=\"Pay by hosted invoice - Adaptyv Bio Docs\">\u003cmeta data-mint-head name=\"twitter:description\" content=\"The default flow: create an experiment, confirm the quote, and pay the Stripe-hosted invoice in a browser.\">\u003cmeta data-mint-head name=\"twitter:image\" content=\"https://adaptyv-a4917ef6.mintlify.app/_mintlify/api/og/v2?division=Payments\u0026amp;title=Pay+by+hosted+invoice\u0026amp;description=The+default+flow%3A+create+an+experiment%2C+confirm+the+quote%2C+and+pay+the+Stripe-hosted+invoice+in+a+browser.\u0026amp;theme=43e189271cead89711960f8b\u0026amp;signature=23b322fe05f1e9514e9ffb5801cf38a6b32e43b81ee9063caef7a515a51af9da\">\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/adaptyv-a4917ef6/zzyucPz0fZkqpoJX/_generated/favicon/browserconfig.xml\">\u003cmeta data-mint-head name=\"apple-mobile-web-app-title\" content=\"Adaptyv Bio Docs\">\u003cmeta data-mint-head name=\"msapplication-TileColor\" content=\"#5db0dd\">\u003clink data-mint-head rel=\"canonical\" href=\"https://docs.adaptyvbio.com/api-reference/payments/pay-hosted-invoice\">\u003clink data-mint-head rel=\"alternate\" type=\"application/xml\" href=\"/sitemap.xml\">\u003clink data-mint-head rel=\"alternate\" type=\"text/markdown\" href=\"/api-reference/payments/pay-hosted-invoice.md\">\u003cscript data-mint-head type=\"application/ld+json\">{\"@context\":\"https://schema.org\",\"@graph\":[{\"@type\":\"Organization\",\"@id\":\"https://docs.adaptyvbio.com/#organization\",\"name\":\"Adaptyv Bio Docs\",\"url\":\"https://docs.adaptyvbio.com\",\"logo\":{\"@type\":\"ImageObject\",\"url\":\"https://mintcdn.com/adaptyv-a4917ef6/3kX9xKvyzUlLV3Dj/logo/logo-light.svg?fit=max\u0026auto=format\u0026n=3kX9xKvyzUlLV3Dj\u0026q=85\u0026s=28a1e3df60674482d4bac1fc9d190568\"}},{\"@type\":\"WebSite\",\"@id\":\"https://docs.adaptyvbio.com#website\",\"name\":\"Adaptyv Bio Docs\",\"url\":\"https://docs.adaptyvbio.com\",\"publisher\":{\"@id\":\"https://docs.adaptyvbio.com/#organization\"}},{\"@type\":\"WebPage\",\"@id\":\"https://docs.adaptyvbio.com/api-reference/payments/pay-hosted-invoice#webpage\",\"url\":\"https://docs.adaptyvbio.com/api-reference/payments/pay-hosted-invoice\",\"name\":\"Pay by hosted invoice\",\"description\":\"The default flow: create an experiment, confirm the quote, and pay the Stripe-hosted invoice in a browser.\",\"dateModified\":\"2026-08-15T15:11:29.938Z\",\"isPartOf\":{\"@id\":\"https://docs.adaptyvbio.com#website\"},\"breadcrumb\":{\"@id\":\"https://docs.adaptyvbio.com/api-reference/payments/pay-hosted-invoice#breadcrumb\"}},{\"@type\":\"BreadcrumbList\",\"@id\":\"https://docs.adaptyvbio.com/api-reference/payments/pay-hosted-invoice#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Payments\",\"item\":\"https://docs.adaptyvbio.com/api-reference/payments/overview\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Pay by hosted invoice\",\"item\":\"https://docs.adaptyvbio.com/api-reference/payments/pay-hosted-invoice\"}]},{\"@type\":[\"Article\",\"TechArticle\"],\"@id\":\"https://docs.adaptyvbio.com/api-reference/payments/pay-hosted-invoice#article\",\"headline\":\"Pay by hosted invoice\",\"name\":\"Pay by hosted invoice\",\"description\":\"The default flow: create an experiment, confirm the quote, and pay the Stripe-hosted invoice in a browser.\",\"url\":\"https://docs.adaptyvbio.com/api-reference/payments/pay-hosted-invoice\",\"mainEntityOfPage\":{\"@id\":\"https://docs.adaptyvbio.com/api-reference/payments/pay-hosted-invoice#webpage\"},\"dateModified\":\"2026-08-15T15:11:29.938Z\",\"publisher\":{\"@id\":\"https://docs.adaptyvbio.com/#organization\"},\"isPartOf\":{\"@id\":\"https://docs.adaptyvbio.com#website\"}}]}\u003c/script>\u003cscript data-mint-head type=\"application/ld+json\">{\"@context\":\"https://schema.org\",\"@type\":\"WebSite\",\"name\":\"Adaptyv Bio Docs\",\"creator\":{\"@type\":\"Organization\",\"name\":\"Mintlify\",\"url\":\"https://mintlify.com\"}}\u003c/script>","siteName":"Adaptyv Bio Docs","nav":{"global":{"anchors":[{"anchor":"Careers","icon":"users","href":"https://www.adaptyvbio.com/careers"},{"anchor":"Blog","icon":"newspaper","href":"https://www.adaptyvbio.com/blog"},{"anchor":"Experiment Configurator","icon":"flask","href":"https://start.adaptyvbio.com"},{"anchor":"Foundry Portal","icon":"desktop","href":"https://foundry.adaptyvbio.com"}]},"tabs":[{"tab":"Documentation","icon":"file-lines","pages":[{"title":"Documentation","href":"/docs/getting-started/introduction"}]},{"tab":"Wiki","icon":"book","pages":[{"title":"Wiki","href":"/wiki/technologies/cell-free-protein-expression"}]},{"tab":"Guides","icon":"lightbulb","pages":[{"title":"Guides","href":"/guides/improve-protein-expression"}]},{"tab":"API","icon":"code","groups":[{"group":"Getting Started","pages":[{"title":"Foundry API","href":"/api-reference/api-introduction"},{"title":"MCP Server","href":"/api-reference/mcp-server"},{"title":"Integrator \u0026 Partner Guide","href":"/api-reference/integrator-partner-guide"}]},{"group":"Payments","pages":[{"title":"Payments Overview","description":"How an order gets paid: confirm the quote to issue an invoice, then settle it through the hosted invoice page, x402, or a Stripe Shared Payment Token.","href":"/api-reference/payments/overview"},{"title":"Pay by hosted invoice","href":"/api-reference/payments/pay-hosted-invoice"},{"title":"Pay with x402 (exact)","description":"Sign an EIP-3009 transferWithAuthorization, send it in the PAYMENT-SIGNATURE header, and let the facilitator verify and settle the USDC transfer on-chain.","href":"/api-reference/payments/pay-x402-exact"},{"title":"Pay with a Shared Payment Token (MPP-SPT)","href":"/api-reference/payments/pay-mpp-spt"}]},{"group":"API Endpoints","pages":[{"group":"experiments","pages":[{"title":"List experiments","deprecated":null,"version":null,"openapi":"https://devs.adaptyvbio.com/api/v1/openapi.json get /api/v1/experiments","href":"/api-reference/experiments/list-experiments"},{"title":"Create experiment","deprecated":null,"version":null,"openapi":"https://devs.adaptyvbio.com/api/v1/openapi.json post /api/v1/experiments","href":"/api-reference/experiments/create-experiment"},{"title":"Estimate experiment cost","deprecated":null,"version":null,"openapi":"https://devs.adaptyvbio.com/api/v1/openapi.json post /api/v1/experiments/cost-estimate","href":"/api-reference/experiments/estimate-experiment-cost"},{"title":"Get experiment","deprecated":null,"version":null,"openapi":"https://devs.adaptyvbio.com/api/v1/openapi.json get /api/v1/experiments/{experiment_id}","href":"/api-reference/experiments/get-experiment"},{"title":"Update experiment","deprecated":null,"version":null,"openapi":"https://devs.adaptyvbio.com/api/v1/openapi.json patch /api/v1/experiments/{experiment_id}","href":"/api-reference/experiments/update-experiment"},{"title":"Get experiment invoice","deprecated":null,"version":null,"openapi":"https://devs.adaptyvbio.com/api/v1/openapi.json get /api/v1/experiments/{experiment_id}/invoice","href":"/api-reference/experiments/get-experiment-invoice"},{"title":"Get experiment quote","deprecated":null,"version":null,"openapi":"https://devs.adaptyvbio.com/api/v1/openapi.json get /api/v1/experiments/{experiment_id}/quote","href":"/api-reference/experiments/get-experiment-quote"},{"title":"Accept an experiment's quote and create an invoice","deprecated":null,"version":null,"openapi":"https://devs.adaptyvbio.com/api/v1/openapi.json post /api/v1/experiments/{experiment_id}/quote/confirm","href":"/api-reference/experiments/accept-an-experiments-quote-and-create-an-invoice"},{"title":"Get experiment quote PDF","deprecated":null,"version":null,"openapi":"https://devs.adaptyvbio.com/api/v1/openapi.json get /api/v1/experiments/{experiment_id}/quote/pdf","href":"/api-reference/experiments/get-experiment-quote-pdf"},{"title":"List results for an experiment","deprecated":null,"version":null,"openapi":"https://devs.adaptyvbio.com/api/v1/openapi.json get /api/v1/experiments/{experiment_id}/results","href":"/api-reference/experiments/list-results-for-an-experiment"},{"title":"List sequences for an experiment","deprecated":null,"version":null,"openapi":"https://devs.adaptyvbio.com/api/v1/openapi.json get /api/v1/experiments/{experiment_id}/sequences","href":"/api-reference/experiments/list-sequences-for-an-experiment"},{"title":"Submit experiment","deprecated":null,"version":null,"openapi":"https://devs.adaptyvbio.com/api/v1/openapi.json post /api/v1/experiments/{experiment_id}/submit","href":"/api-reference/experiments/submit-experiment"},{"title":"List experiment updates","deprecated":null,"version":null,"openapi":"https://devs.adaptyvbio.com/api/v1/openapi.json get /api/v1/experiments/{experiment_id}/updates","href":"/api-reference/experiments/list-experiment-updates"}]},{"group":"feedback","pages":[{"title":"Submit feedback, bug reports, or feature requests","deprecated":null,"version":null,"openapi":"https://devs.adaptyvbio.com/api/v1/openapi.json post /api/v1/feedback/submit","href":"/api-reference/feedback/submit-feedback-bug-reports-or-feature-requests"}]},{"group":"info","pages":[{"title":"Liveness probe","deprecated":null,"version":null,"openapi":"https://devs.adaptyvbio.com/api/v1/openapi.json get /api/v1/info/health","href":"/api-reference/info/liveness-probe"},{"title":"Database connectivity probe","deprecated":null,"version":null,"openapi":"https://devs.adaptyvbio.com/api/v1/openapi.json get /api/v1/info/health-db","href":"/api-reference/info/database-connectivity-probe"}]},{"group":"invoices","pages":[{"title":"List invoices","deprecated":null,"version":null,"openapi":"https://devs.adaptyvbio.com/api/v1/openapi.json get /api/v1/invoices","href":"/api-reference/invoices/list-invoices"},{"title":"Get invoice","deprecated":null,"version":null,"openapi":"https://devs.adaptyvbio.com/api/v1/openapi.json get /api/v1/invoices/{invoice_id}","href":"/api-reference/invoices/get-invoice"},{"title":"Pay invoice","deprecated":null,"version":null,"openapi":"https://devs.adaptyvbio.com/api/v1/openapi.json post /api/v1/invoices/{invoice_id}/pay","href":"/api-reference/invoices/pay-invoice"},{"title":"Get invoice PDF","deprecated":null,"version":null,"openapi":"https://devs.adaptyvbio.com/api/v1/openapi.json get /api/v1/invoices/{invoice_id}/pdf","href":"/api-reference/invoices/get-invoice-pdf"}]},{"group":"quotes","pages":[{"title":"List quotes","deprecated":null,"version":null,"openapi":"https://devs.adaptyvbio.com/api/v1/openapi.json get /api/v1/quotes","href":"/api-reference/quotes/list-quotes"},{"title":"Get quote","deprecated":null,"version":null,"openapi":"https://devs.adaptyvbio.com/api/v1/openapi.json get /api/v1/quotes/{quote_id}","href":"/api-reference/quotes/get-quote"},{"title":"Accept quote","deprecated":null,"version":null,"openapi":"https://devs.adaptyvbio.com/api/v1/openapi.json post /api/v1/quotes/{quote_id}/confirm","href":"/api-reference/quotes/accept-quote"},{"title":"Reject quote","deprecated":null,"version":null,"openapi":"https://devs.adaptyvbio.com/api/v1/openapi.json post /api/v1/quotes/{quote_id}/reject","href":"/api-reference/quotes/reject-quote"}]},{"group":"results","pages":[{"title":"List results","deprecated":null,"version":null,"openapi":"https://devs.adaptyvbio.com/api/v1/openapi.json get /api/v1/results","href":"/api-reference/results/list-results"},{"title":"Get result","deprecated":null,"version":null,"openapi":"https://devs.adaptyvbio.com/api/v1/openapi.json get /api/v1/results/{result_id}","href":"/api-reference/results/get-result"}]},{"group":"sequences","pages":[{"title":"List sequences","deprecated":null,"version":null,"openapi":"https://devs.adaptyvbio.com/api/v1/openapi.json get /api/v1/sequences","href":"/api-reference/sequences/list-sequences"},{"title":"Add sequences to experiment","deprecated":null,"version":null,"openapi":"https://devs.adaptyvbio.com/api/v1/openapi.json post /api/v1/sequences","href":"/api-reference/sequences/add-sequences-to-experiment"},{"title":"Get sequence","deprecated":null,"version":null,"openapi":"https://devs.adaptyvbio.com/api/v1/openapi.json get /api/v1/sequences/{sequence_id}","href":"/api-reference/sequences/get-sequence"}]},{"group":"targets","pages":[{"title":"List targets","deprecated":null,"version":null,"openapi":"https://devs.adaptyvbio.com/api/v1/openapi.json get /api/v1/targets","href":"/api-reference/targets/list-targets"},{"title":"List custom target requests","deprecated":null,"version":null,"openapi":"https://devs.adaptyvbio.com/api/v1/openapi.json get /api/v1/targets/request-custom","href":"/api-reference/targets/list-custom-target-requests"},{"title":"Submit custom target request","deprecated":null,"version":null,"openapi":"https://devs.adaptyvbio.com/api/v1/openapi.json post /api/v1/targets/request-custom","href":"/api-reference/targets/submit-custom-target-request"},{"title":"Get custom target request","deprecated":null,"version":null,"openapi":"https://devs.adaptyvbio.com/api/v1/openapi.json get /api/v1/targets/request-custom/{request_id}","href":"/api-reference/targets/get-custom-target-request"},{"title":"Get target","deprecated":null,"version":null,"openapi":"https://devs.adaptyvbio.com/api/v1/openapi.json get /api/v1/targets/{target_id}","href":"/api-reference/targets/get-target"}]},{"group":"tokens","pages":[{"title":"List tokens","deprecated":null,"version":null,"openapi":"https://devs.adaptyvbio.com/api/v1/openapi.json get /api/v1/tokens","href":"/api-reference/tokens/list-tokens"},{"title":"Attenuate token","deprecated":null,"version":null,"openapi":"https://devs.adaptyvbio.com/api/v1/openapi.json post /api/v1/tokens/attenuate","href":"/api-reference/tokens/attenuate-token"},{"title":"Revoke the calling token and its entire lineage","deprecated":null,"version":null,"openapi":"https://devs.adaptyvbio.com/api/v1/openapi.json post /api/v1/tokens/revoke","href":"/api-reference/tokens/revoke-the-calling-token-and-its-entire-lineage"}]},{"group":"updates","pages":[{"title":"List updates","deprecated":null,"version":null,"openapi":"https://devs.adaptyvbio.com/api/v1/openapi.json get /api/v1/updates","href":"/api-reference/updates/list-updates"}]},{"group":"webhooks","pages":[{"title":"List the organization's webhook registrations.","deprecated":null,"version":null,"openapi":"https://devs.adaptyvbio.com/api/v1/openapi.json get /api/v1/webhooks","href":"/api-reference/webhooks/list-the-organizations-webhook-registrations"},{"title":"Register a webhook for the organization.","deprecated":null,"version":null,"openapi":"https://devs.adaptyvbio.com/api/v1/openapi.json post /api/v1/webhooks","href":"/api-reference/webhooks/register-a-webhook-for-the-organization"},{"title":"Remove a webhook registration.","deprecated":null,"version":null,"openapi":"https://devs.adaptyvbio.com/api/v1/openapi.json delete /api/v1/webhooks/{webhook_id}","href":"/api-reference/webhooks/remove-a-webhook-registration"},{"title":"Modify a webhook registration, including rotating or clearing its secret.","deprecated":null,"version":null,"openapi":"https://devs.adaptyvbio.com/api/v1/openapi.json patch /api/v1/webhooks/{webhook_id}","href":"/api-reference/webhooks/modify-a-webhook-registration-including-rotating-or-clearing-its-secret"}]},{"group":"whoami","pages":[{"title":"Who am I","deprecated":null,"version":null,"openapi":"https://devs.adaptyvbio.com/api/v1/openapi.json get /api/v1/whoami","href":"/api-reference/whoami/who-am-i"}]}]}]},{"tab":"Changelog","icon":"newspaper","pages":[{"title":"Changelog","href":"/changelog/changelog"}]}]},"title":"Pay by hosted invoice - Adaptyv Bio Docs","buildId":"dpl_DFJrtvUi8HS5F9nkooKuDJsuD5BM","deploymentId":"dpl_DFJrtvUi8HS5F9nkooKuDJsuD5BM","dynamics":[],"chunks":[]}