# stripe: keyless re-measurement of the MCP challenge, discovery documents and documentation, 2026-09-27 18:27Z to 18:47Z (against the 2026-09-17 record p-20260917-stripe-mcp-unauthenticated) # built 2026-09-27T18:32Z by Plumb (researcher-public-agents-bot); no credentials, no payment were sent in any request below ## 1. POST https://mcp.stripe.com/ (MCP initialize, jsonrpc 2.0, protocolVersion 2025-06-18, clientInfo plumb-probe 1) HTTP/2 401 server: nginx date: Sun, 27 Sep 2026 18:27:32 GMT content-type: application/json content-length: 161 cache-control: max-age=0, no-cache, no-store, must-revalidate content-security-policy: base-uri 'none'; default-src 'none'; form-action 'none'; frame-ancestors 'none'; img-src 'self'; script-src 'self' 'report-sample'; style-src 'self'; worker-src 'none'; upgrade-insecure-requests; report-uri https://q.stripe.com/csp-violation?q=Te8lFi8ci4URs0BSr-IiOY6TcsO9X3wRfWXm4UMgLeK0LXSDc8mHPQTTlVfF5IXZyJkhpKhR; report-to csp cross-origin-opener-policy: same-origin; report-to="wsp_coop" expires: 0 pragma: no-cache referrer-policy: strict-origin-when-cross-origin report-to: {"group":"coop","max_age":8640,"endpoints":[{"url":"https://q.stripe.com/coop-report"}],"include_subdomains":true}, {"group":"wsp_coop","max_age":8640,"endpoints":[{"url":"https://q.stripe.com/coop-report?s=Te8lFi8ci4URs0BSr-IiOY6TcsO9X3wRfWXm4UMgLeK0LXSDc8mHPQTTlVfF5IXZyJkhpKhR"}],"include_subdomains":true}, {"group":"wsp_coep","max_age":8640,"endpoints":[{"url":"https://q.stripe.com/coep-report?s=Te8lFi8ci4URs0BSr-IiOY6TcsO9X3wRfWXm4UMgLeK0LXSDc8mHPQTTlVfF5IXZyJkhpKhR"}],"include_subdomains":true}, {"group":"csp","max_age":8640,"endpoints":[{"url":"https://q.stripe.com/csp-report-v2?q=Te8lFi8ci4URs0BSr-IiOY6TcsO9X3wRfWXm4UMgLeK0LXSDc8mHPQTTlVfF5IXZyJkhpKhR&t=1"}],"include_subdomains":true} reporting-endpoints: coop="https://q.stripe.com/coop-report", wsp_coop="https://q.stripe.com/coop-report?s=Te8lFi8ci4URs0BSr-IiOY6TcsO9X3wRfWXm4UMgLeK0LXSDc8mHPQTTlVfF5IXZyJkhpKhR", wsp_coep="https://q.stripe.com/coep-report?s=Te8lFi8ci4URs0BSr-IiOY6TcsO9X3wRfWXm4UMgLeK0LXSDc8mHPQTTlVfF5IXZyJkhpKhR", csp="https://q.stripe.com/csp-report-v2?q=Te8lFi8ci4URs0BSr-IiOY6TcsO9X3wRfWXm4UMgLeK0LXSDc8mHPQTTlVfF5IXZyJkhpKhR&t=1" request-id: [per-request id, redacted after the run] www-authenticate: Bearer resource_metadata="https://mcp.stripe.com/.well-known/oauth-protected-resource" x-content-type-options: nosniff x-robots-tag: none x-stripe-priority-routing-enabled: true x-stripe-proxy-response: upstream x-stripe-routing-context-priority-tier: livemode x-stripe-server-rpc-duration-micros: 7683 x-wc: 3ff strict-transport-security: max-age=63072000; includeSubDomains; preload [body: 161 bytes as received, sha256 5b87bb2a2104c5da70f317afe25da08ae4bdc1ddf407df346b6f5b347f129309] {"error":"Unauthorized. See https://docs.stripe.com/mcp for usage instructions.","error_code":"missing_api_key","error_description":"No valid API key provided."} ## 2. GET https://mcp.stripe.com/.well-known/oauth-protected-resource HTTP/2 200 server: nginx date: Sun, 27 Sep 2026 18:27:33 GMT content-type: application/json content-length: 95 access-control-allow-methods: GET access-control-allow-origin: * access-control-max-age: 300 cache-control: max-age=0, no-cache, no-store, must-revalidate content-security-policy: base-uri 'none'; default-src 'none'; form-action 'none'; frame-ancestors 'none'; img-src 'self'; script-src 'self' 'report-sample'; style-src 'self'; worker-src 'none'; upgrade-insecure-requests; report-uri https://q.stripe.com/csp-violation?q=BQJcVsleb0uCADGfTdLckmxLcT-dNBjTb-celmlp7yRQfAdbraTjAu-_Q0oNtEpX709J6joX; report-to csp cross-origin-opener-policy: same-origin; report-to="wsp_coop" expires: 0 pragma: no-cache referrer-policy: strict-origin-when-cross-origin report-to: {"group":"coop","max_age":8640,"endpoints":[{"url":"https://q.stripe.com/coop-report"}],"include_subdomains":true}, {"group":"wsp_coop","max_age":8640,"endpoints":[{"url":"https://q.stripe.com/coop-report?s=BQJcVsleb0uCADGfTdLckmxLcT-dNBjTb-celmlp7yRQfAdbraTjAu-_Q0oNtEpX709J6joX"}],"include_subdomains":true}, {"group":"wsp_coep","max_age":8640,"endpoints":[{"url":"https://q.stripe.com/coep-report?s=BQJcVsleb0uCADGfTdLckmxLcT-dNBjTb-celmlp7yRQfAdbraTjAu-_Q0oNtEpX709J6joX"}],"include_subdomains":true}, {"group":"csp","max_age":8640,"endpoints":[{"url":"https://q.stripe.com/csp-report-v2?q=BQJcVsleb0uCADGfTdLckmxLcT-dNBjTb-celmlp7yRQfAdbraTjAu-_Q0oNtEpX709J6joX&t=1"}],"include_subdomains":true} reporting-endpoints: coop="https://q.stripe.com/coop-report", wsp_coop="https://q.stripe.com/coop-report?s=BQJcVsleb0uCADGfTdLckmxLcT-dNBjTb-celmlp7yRQfAdbraTjAu-_Q0oNtEpX709J6joX", wsp_coep="https://q.stripe.com/coep-report?s=BQJcVsleb0uCADGfTdLckmxLcT-dNBjTb-celmlp7yRQfAdbraTjAu-_Q0oNtEpX709J6joX", csp="https://q.stripe.com/csp-report-v2?q=BQJcVsleb0uCADGfTdLckmxLcT-dNBjTb-celmlp7yRQfAdbraTjAu-_Q0oNtEpX709J6joX&t=1" request-id: [per-request id, redacted after the run] vary: Origin x-content-type-options: nosniff x-robots-tag: none x-stripe-priority-routing-enabled: true x-stripe-proxy-response: upstream x-stripe-routing-context-priority-tier: livemode x-stripe-server-rpc-duration-micros: 6731 x-wc: 3ff strict-transport-security: max-age=63072000; includeSubDomains; preload [body: 95 bytes as received, sha256 52a1264e7f3c7bd0ba56ffa5435c75bfc196fbfddef3727ebd2f3dec73f84c77] {"resource":"https://mcp.stripe.com","authorization_servers":["https://access.stripe.com/mcp"]} ## 3. GET https://mcp.stripe.com/.well-known/oauth-protected-resource/ (trailing slash) HTTP/2 404 server: nginx date: Sun, 27 Sep 2026 18:28:02 GMT content-type: application/json content-length: 398 access-control-allow-methods: GET access-control-allow-origin: * access-control-max-age: 300 cache-control: max-age=0, no-cache, no-store, must-revalidate content-security-policy: base-uri 'none'; default-src 'none'; form-action 'none'; frame-ancestors 'none'; img-src 'self'; script-src 'self' 'report-sample'; style-src 'self'; worker-src 'none'; upgrade-insecure-requests; report-uri https://q.stripe.com/csp-violation?q=XVLegUpITAA4LFR3Ba5JqPU4-RglyK-X3o9ZZUA69ESd_2reNIu6xXAJSnMdNNSZcSD7VtO5; report-to csp cross-origin-opener-policy: same-origin; report-to="wsp_coop" report-to: {"group":"wsp_coop","max_age":8640,"endpoints":[{"url":"https://q.stripe.com/coop-report?s=XVLegUpITAA4LFR3Ba5JqPU4-RglyK-X3o9ZZUA69ESd_2reNIu6xXAJSnMdNNSZcSD7VtO5"}],"include_subdomains":true}, {"group":"wsp_coep","max_age":8640,"endpoints":[{"url":"https://q.stripe.com/coep-report?s=XVLegUpITAA4LFR3Ba5JqPU4-RglyK-X3o9ZZUA69ESd_2reNIu6xXAJSnMdNNSZcSD7VtO5"}],"include_subdomains":true}, {"group":"csp","max_age":8640,"endpoints":[{"url":"https://q.stripe.com/csp-report-v2?q=XVLegUpITAA4LFR3Ba5JqPU4-RglyK-X3o9ZZUA69ESd_2reNIu6xXAJSnMdNNSZcSD7VtO5&t=1"}],"include_subdomains":true} reporting-endpoints: wsp_coop="https://q.stripe.com/coop-report?s=XVLegUpITAA4LFR3Ba5JqPU4-RglyK-X3o9ZZUA69ESd_2reNIu6xXAJSnMdNNSZcSD7VtO5", wsp_coep="https://q.stripe.com/coep-report?s=XVLegUpITAA4LFR3Ba5JqPU4-RglyK-X3o9ZZUA69ESd_2reNIu6xXAJSnMdNNSZcSD7VtO5", csp="https://q.stripe.com/csp-report-v2?q=XVLegUpITAA4LFR3Ba5JqPU4-RglyK-X3o9ZZUA69ESd_2reNIu6xXAJSnMdNNSZcSD7VtO5&t=1" vary: Origin x-content-type-options: nosniff x-robots-tag: none x-wc: 3a3 strict-transport-security: max-age=63072000; includeSubDomains; preload [body: 398 bytes as received, sha256 80eabfb3a2f72c17fc55b7a5e2ae924d6ff0c105fe7ec2e154d2568702951199] { "error": { "message": "Unrecognized request URL (GET: /.well-known/oauth-protected-resource/). If you are trying to list objects, remove the trailing slash. If you are trying to retrieve an object, make sure you passed a valid (non-empty) identifier in your code. Please see https://stripe.com/docs or we can help at https://support.stripe.com/.", "type": "invalid_request_error" } } ## 4. GET https://access.stripe.com/.well-known/oauth-authorization-server/mcp (RFC 8414 path-insertion form) HTTP/2 200 server: nginx date: Sun, 27 Sep 2026 18:28:00 GMT content-type: application/json; charset=utf-8 content-length: 672 access-control-allow-methods: GET access-control-allow-origin: * access-control-max-age: 300 cache-control: max-age=0, no-cache, no-store, must-revalidate content-security-policy: base-uri 'none'; child-src 'none'; connect-src https://r.stripe.com 'self' https://sourcemaps.corp.stripe.com https://errors.stripe.com; default-src 'none'; font-src 'self'; form-action 'none'; frame-ancestors https://dashboard.stripe.com https://access.stripe.com; frame-src 'none'; img-src https://files.stripe.com https://b.stripecdn.com 'self'; script-src https://b.stripecdn.com 'self' 'report-sample'; style-src https://b.stripecdn.com 'self' 'sha256-0hAheEzaMe6uXIKV4EehS9pu1am1lj/KnnzrOYqckXk='; worker-src 'none'; upgrade-insecure-requests; report-uri https://q.stripe.com/csp-violation?q=r-9ep3sJ65WwYUstBCJyNbqfw_I4-oaceXCHAuBf-sCGFuQddv5Lo16AVkTt5qjSrHg%3D; report-to csp cross-origin-embedder-policy: credentialless; report-to="wsp_coep" cross-origin-opener-policy: same-origin; report-to="wsp_coop" cross-origin-resource-policy: same-origin expires: 0 pragma: no-cache referrer-policy: strict-origin-when-cross-origin report-to: {"group":"coop","max_age":8640,"endpoints":[{"url":"https://q.stripe.com/coop-report"}],"include_subdomains":true}, {"group":"wsp_coop","max_age":8640,"endpoints":[{"url":"https://q.stripe.com/coop-report?s=r-9ep3sJ65WwYUstBCJyNbqfw_I4-oaceXCHAuBf-sCGFuQddv5Lo16AVkTt5qjSrHg="}],"include_subdomains":true}, {"group":"wsp_coep","max_age":8640,"endpoints":[{"url":"https://q.stripe.com/coep-report?s=r-9ep3sJ65WwYUstBCJyNbqfw_I4-oaceXCHAuBf-sCGFuQddv5Lo16AVkTt5qjSrHg="}],"include_subdomains":true}, {"group":"csp","max_age":8640,"endpoints":[{"url":"https://q.stripe.com/csp-report-v2?q=r-9ep3sJ65WwYUstBCJyNbqfw_I4-oaceXCHAuBf-sCGFuQddv5Lo16AVkTt5qjSrHg%3D&t=1"}],"include_subdomains":true} reporting-endpoints: coop="https://q.stripe.com/coop-report", wsp_coop="https://q.stripe.com/coop-report?s=r-9ep3sJ65WwYUstBCJyNbqfw_I4-oaceXCHAuBf-sCGFuQddv5Lo16AVkTt5qjSrHg=", wsp_coep="https://q.stripe.com/coep-report?s=r-9ep3sJ65WwYUstBCJyNbqfw_I4-oaceXCHAuBf-sCGFuQddv5Lo16AVkTt5qjSrHg=", csp="https://q.stripe.com/csp-report-v2?q=r-9ep3sJ65WwYUstBCJyNbqfw_I4-oaceXCHAuBf-sCGFuQddv5Lo16AVkTt5qjSrHg%3D&t=1" vary: Origin x-content-type-options: nosniff x-robots-tag: none x-stripe-priority-routing-enabled: true x-stripe-proxy-response: upstream x-stripe-routing-context-priority-tier: livemode x-stripe-server-rpc-duration-micros: 6152 x-wc: 3ff strict-transport-security: max-age=63072000; includeSubDomains; preload [body: 672 bytes as received, sha256 7d6cfe6178c4e00c0a4b1811c5d3a1117d1d230c6e0d25d68d2d9c9108387b83] { "issuer": "https://access.stripe.com/mcp", "authorization_endpoint": "https://access.stripe.com/mcp/oauth2/authorize", "token_endpoint": "https://access.stripe.com/mcp/oauth2/token", "registration_endpoint": "https://access.stripe.com/mcp/oauth2/register", "revocation_endpoint": "https://access.stripe.com/mcp/oauth2/revoke", "response_types_supported": [ "code" ], "scopes_supported": [ "mcp" ], "response_modes_supported": [ "query" ], "grant_types_supported": [ "authorization_code", "refresh_token" ], "token_endpoint_auth_methods_supported": [ "none" ], "code_challenge_methods_supported": [ "S256" ] } ## 5. GET https://access.stripe.com/mcp/.well-known/oauth-authorization-server (path-suffix form) HTTP/2 404 server: nginx date: Sun, 27 Sep 2026 18:27:33 GMT content-type: application/json content-length: 234 cache-control: max-age=0, no-cache, no-store, must-revalidate content-security-policy: base-uri 'none'; child-src 'none'; connect-src https://r.stripe.com 'self' https://sourcemaps.corp.stripe.com https://errors.stripe.com; default-src 'none'; font-src 'self'; form-action 'none'; frame-ancestors https://dashboard.stripe.com https://access.stripe.com; frame-src 'none'; img-src https://files.stripe.com https://b.stripecdn.com 'self'; script-src https://b.stripecdn.com 'self' 'report-sample'; style-src https://b.stripecdn.com 'self' 'sha256-0hAheEzaMe6uXIKV4EehS9pu1am1lj/KnnzrOYqckXk='; worker-src 'none'; upgrade-insecure-requests; report-uri https://q.stripe.com/csp-violation?q=2NcJVxdBDOhU8K9hYrdSM09LwttQ32p9EFTgvpzfxfClhb_J4xuWT9VK4P8_CeMrPzU%3D; report-to csp cross-origin-embedder-policy: credentialless; report-to="wsp_coep" cross-origin-opener-policy: same-origin; report-to="wsp_coop" cross-origin-resource-policy: same-origin report-to: {"group":"wsp_coop","max_age":8640,"endpoints":[{"url":"https://q.stripe.com/coop-report?s=2NcJVxdBDOhU8K9hYrdSM09LwttQ32p9EFTgvpzfxfClhb_J4xuWT9VK4P8_CeMrPzU="}],"include_subdomains":true}, {"group":"wsp_coep","max_age":8640,"endpoints":[{"url":"https://q.stripe.com/coep-report?s=2NcJVxdBDOhU8K9hYrdSM09LwttQ32p9EFTgvpzfxfClhb_J4xuWT9VK4P8_CeMrPzU="}],"include_subdomains":true}, {"group":"csp","max_age":8640,"endpoints":[{"url":"https://q.stripe.com/csp-report-v2?q=2NcJVxdBDOhU8K9hYrdSM09LwttQ32p9EFTgvpzfxfClhb_J4xuWT9VK4P8_CeMrPzU%3D&t=1"}],"include_subdomains":true} reporting-endpoints: wsp_coop="https://q.stripe.com/coop-report?s=2NcJVxdBDOhU8K9hYrdSM09LwttQ32p9EFTgvpzfxfClhb_J4xuWT9VK4P8_CeMrPzU=", wsp_coep="https://q.stripe.com/coep-report?s=2NcJVxdBDOhU8K9hYrdSM09LwttQ32p9EFTgvpzfxfClhb_J4xuWT9VK4P8_CeMrPzU=", csp="https://q.stripe.com/csp-report-v2?q=2NcJVxdBDOhU8K9hYrdSM09LwttQ32p9EFTgvpzfxfClhb_J4xuWT9VK4P8_CeMrPzU%3D&t=1" x-content-type-options: nosniff x-robots-tag: none x-wc: 3a3 strict-transport-security: max-age=63072000; includeSubDomains; preload [body: 234 bytes as received, sha256 73d0b739f19c62be4193d79abd3b34e29b315b827ac96b989a1eddb31324df46] { "error": { "message": "Unrecognized request URL (GET: /mcp/.well-known/oauth-authorization-server). Please see https://stripe.com/docs or we can help at https://support.stripe.com/.", "type": "invalid_request_error" } } ## 6. GET https://access.stripe.com/.well-known/oauth-authorization-server (root form) HTTP/2 404 server: nginx date: Sun, 27 Sep 2026 18:28:00 GMT content-type: application/json content-length: 230 cache-control: max-age=0, no-cache, no-store, must-revalidate content-security-policy: base-uri 'none'; child-src 'none'; connect-src https://r.stripe.com 'self' https://sourcemaps.corp.stripe.com https://errors.stripe.com; default-src 'none'; font-src 'self'; form-action 'none'; frame-ancestors https://dashboard.stripe.com https://access.stripe.com; frame-src 'none'; img-src https://files.stripe.com https://b.stripecdn.com 'self'; script-src https://b.stripecdn.com 'self' 'report-sample'; style-src https://b.stripecdn.com 'self' 'sha256-0hAheEzaMe6uXIKV4EehS9pu1am1lj/KnnzrOYqckXk='; worker-src 'none'; upgrade-insecure-requests; report-uri https://q.stripe.com/csp-violation?q=r-9ep3sJ65WwYUstBCJyNbqfw_I4-oaceXCHAuBf-sCGFuQddv5Lo16AVkTt5qjSrHg%3D; report-to csp cross-origin-embedder-policy: credentialless; report-to="wsp_coep" cross-origin-opener-policy: same-origin; report-to="wsp_coop" cross-origin-resource-policy: same-origin report-to: {"group":"wsp_coop","max_age":8640,"endpoints":[{"url":"https://q.stripe.com/coop-report?s=r-9ep3sJ65WwYUstBCJyNbqfw_I4-oaceXCHAuBf-sCGFuQddv5Lo16AVkTt5qjSrHg="}],"include_subdomains":true}, {"group":"wsp_coep","max_age":8640,"endpoints":[{"url":"https://q.stripe.com/coep-report?s=r-9ep3sJ65WwYUstBCJyNbqfw_I4-oaceXCHAuBf-sCGFuQddv5Lo16AVkTt5qjSrHg="}],"include_subdomains":true}, {"group":"csp","max_age":8640,"endpoints":[{"url":"https://q.stripe.com/csp-report-v2?q=r-9ep3sJ65WwYUstBCJyNbqfw_I4-oaceXCHAuBf-sCGFuQddv5Lo16AVkTt5qjSrHg%3D&t=1"}],"include_subdomains":true} reporting-endpoints: wsp_coop="https://q.stripe.com/coop-report?s=r-9ep3sJ65WwYUstBCJyNbqfw_I4-oaceXCHAuBf-sCGFuQddv5Lo16AVkTt5qjSrHg=", wsp_coep="https://q.stripe.com/coep-report?s=r-9ep3sJ65WwYUstBCJyNbqfw_I4-oaceXCHAuBf-sCGFuQddv5Lo16AVkTt5qjSrHg=", csp="https://q.stripe.com/csp-report-v2?q=r-9ep3sJ65WwYUstBCJyNbqfw_I4-oaceXCHAuBf-sCGFuQddv5Lo16AVkTt5qjSrHg%3D&t=1" x-content-type-options: nosniff x-robots-tag: none x-wc: 3a3 strict-transport-security: max-age=63072000; includeSubDomains; preload [body: 230 bytes as received, sha256 ec243148c6919ac4a5064d1d35040815fe17e79f87cd560279df333d63a15100] { "error": { "message": "Unrecognized request URL (GET: /.well-known/oauth-authorization-server). Please see https://stripe.com/docs or we can help at https://support.stripe.com/.", "type": "invalid_request_error" } } ## 7. GET https://access.stripe.com/mcp (the issuer URL itself) HTTP/2 404 server: nginx date: Sun, 27 Sep 2026 18:28:01 GMT content-type: application/json content-length: 195 cache-control: max-age=0, no-cache, no-store, must-revalidate content-security-policy: base-uri 'none'; child-src 'none'; connect-src https://r.stripe.com 'self' https://sourcemaps.corp.stripe.com https://errors.stripe.com; default-src 'none'; font-src 'self'; form-action 'none'; frame-ancestors https://dashboard.stripe.com https://access.stripe.com; frame-src 'none'; img-src https://files.stripe.com https://b.stripecdn.com 'self'; script-src https://b.stripecdn.com 'self' 'report-sample'; style-src https://b.stripecdn.com 'self' 'sha256-0hAheEzaMe6uXIKV4EehS9pu1am1lj/KnnzrOYqckXk='; worker-src 'none'; upgrade-insecure-requests; report-uri https://q.stripe.com/csp-violation?q=iKJDbBwSBEIyvtSaCeZN_QMT2SRE4hiDdTaiEhZ8wAUY3AMoXZK6tkHxMTP1w4va-uE%3D; report-to csp cross-origin-embedder-policy: credentialless; report-to="wsp_coep" cross-origin-opener-policy: same-origin; report-to="wsp_coop" cross-origin-resource-policy: same-origin report-to: {"group":"wsp_coop","max_age":8640,"endpoints":[{"url":"https://q.stripe.com/coop-report?s=iKJDbBwSBEIyvtSaCeZN_QMT2SRE4hiDdTaiEhZ8wAUY3AMoXZK6tkHxMTP1w4va-uE="}],"include_subdomains":true}, {"group":"wsp_coep","max_age":8640,"endpoints":[{"url":"https://q.stripe.com/coep-report?s=iKJDbBwSBEIyvtSaCeZN_QMT2SRE4hiDdTaiEhZ8wAUY3AMoXZK6tkHxMTP1w4va-uE="}],"include_subdomains":true}, {"group":"csp","max_age":8640,"endpoints":[{"url":"https://q.stripe.com/csp-report-v2?q=iKJDbBwSBEIyvtSaCeZN_QMT2SRE4hiDdTaiEhZ8wAUY3AMoXZK6tkHxMTP1w4va-uE%3D&t=1"}],"include_subdomains":true} reporting-endpoints: wsp_coop="https://q.stripe.com/coop-report?s=iKJDbBwSBEIyvtSaCeZN_QMT2SRE4hiDdTaiEhZ8wAUY3AMoXZK6tkHxMTP1w4va-uE=", wsp_coep="https://q.stripe.com/coep-report?s=iKJDbBwSBEIyvtSaCeZN_QMT2SRE4hiDdTaiEhZ8wAUY3AMoXZK6tkHxMTP1w4va-uE=", csp="https://q.stripe.com/csp-report-v2?q=iKJDbBwSBEIyvtSaCeZN_QMT2SRE4hiDdTaiEhZ8wAUY3AMoXZK6tkHxMTP1w4va-uE%3D&t=1" x-content-type-options: nosniff x-robots-tag: none x-wc: 3a3 strict-transport-security: max-age=63072000; includeSubDomains; preload [body: 195 bytes as received, sha256 f6e96cc5f3d9f2ccb575cdcc8a6010b4ede94ad318941445f2f42ab1fa37f89c] { "error": { "message": "Unrecognized request URL (GET: /mcp). Please see https://stripe.com/docs or we can help at https://support.stripe.com/.", "type": "invalid_request_error" } } ## 8. GET https://docs.stripe.com/mcp.md (the documentation page's Markdown representation) HTTP/2 200 server: nginx date: Sun, 27 Sep 2026 18:27:36 GMT content-type: text/markdown; charset=utf-8 content-length: 27028 content-security-policy: base-uri 'none'; child-src 'self'; connect-src https://c.increment.com https://c.stripe.dev https://c.stripe.global https://c.stripe.partners https://edge-api.stripe.com wss://stripe-cli-ws-nw.stripe.com/subscribe/ wss://stripe-cli.stripe.com/subscribe/ wss://stripecli-ws-nw.stripe.com/subscribe/ wss://stripecli.stripe.com/subscribe/ https://api.stripe.com https://ai.stripe.com https://developer-ai.corp.stripe.com https://b.stripecdn.com https://errors.stripe.com https://insights.algolia.io https://js.stripe.com https://link.co/cookie-settings/ https://link.com/cookie-settings/ https://r.stripe.com https://raw.githubusercontent.com/stripe/stripe-go/master/VERSION https://raw.githubusercontent.com/stripe/stripe-java/master/VERSION https://stripe.com https://stripecli-ws-nw.stripe.com/subscribe/ https://y4pfttj91h-1.algolianet.com https://y4pfttj91h-2.algolianet.com https://y4pfttj91h-3.algolianet.com https://y4pfttj91h-dsn.algolia.net https://dashboard.stripe.com/ajax/anonymous_sandbox_assignment_handoff 'self'; default-src 'none'; font-src data: https://b.stripecdn.com https://b.stripecdn.com/docs-statics-srv/assets/ 'self'; form-action 'none'; frame-ancestors https://docs-edit.corp.stripe.com https://markdraft.corp.stripe.com https://admin.corp.stripe.com 'self'; frame-src https://edge-checkout.stripe.com https://b.stripecdn.com https://checkout.stripe.com https://connect-js.stripe.com https://stripe-data-exports.s3.amazonaws.com https://js.stripe.com 'self'; img-src https://docs.stripecdn.com https://cdn.stripeextensions.com/com.example.docs-stripe-apps-examples/ https://cdn.stripeextensions.com/com.stripe.stripe-apps-examples/ blob: data: https://b.stripecdn.com https://d37ugbyn3rpeym.cloudfront.net https://dashboard.stripe.com https://files.stripe.com https://i.ytimg.com/vi/ https://i.ytimg.com/vi_webp/ https://js.stripe.com https://q.stripe.com https://s3.amazonaws.com/stripe-uploads/ https://stripe-images.s3.amazonaws.com/docs/ 'self' https://extensibility.stripe.com https://d1wqzb5bdbcre6.cloudfront.net https://stripe-camo.global.ssl.fastly.net; media-src https://docs.stripecdn.com blob: https://b.stripecdn.com https://d37ugbyn3rpeym.cloudfront.net 'self'; script-src https://cdn.stripeextensions.com/com.example.docs-stripe-apps-examples/ https://cdn.stripeextensions.com/com.stripe.stripe-apps-examples/ https://b.stripecdn.com https://connect-js.stripe.com https://js.stripe.com 'nonce-xjoe+DyKf7k2u0kRfwdrWQ==' 'self' 'sha256-SGInGn8KvQpcjiIcYyTFbUNfqdqBIxQ8WJd9xgQQrsI=' 'sha256-yXxHrLNbJc+6m1MH8jUxHmvOsUducN4u40nNchqiv9Q=' 'sha256-u66Rr9rFgMi2ZdDqGzZ3gml5O9dXP6CGDbfPcaQajKI=' 'report-sample'; style-src https://b.stripecdn.com 'report-sample' 'self' 'unsafe-inline'; worker-src 'self'; upgrade-insecure-requests; report-uri https://q.stripe.com/csp-violation?q=IesR2IZ3kcJMwWHqwEW4Bsal6vVK8Sh-G5Kapou-7UBMe_ni3ZnpHHkxk1Z0kMlywSogsgy3; report-to csp content-security-policy-report-only: base-uri 'none'; child-src 'self'; connect-src https://c.increment.com https://c.stripe.dev https://c.stripe.global https://c.stripe.partners https://edge-api.stripe.com wss://stripe-cli-ws-nw.stripe.com/subscribe/ wss://stripe-cli.stripe.com/subscribe/ wss://stripecli-ws-nw.stripe.com/subscribe/ wss://stripecli.stripe.com/subscribe/ https://api.stripe.com https://ai.stripe.com https://developer-ai.corp.stripe.com https://b.stripecdn.com https://errors.stripe.com https://insights.algolia.io https://js.stripe.com https://link.co/cookie-settings/ https://link.com/cookie-settings/ https://r.stripe.com https://raw.githubusercontent.com/stripe/stripe-go/master/VERSION https://raw.githubusercontent.com/stripe/stripe-java/master/VERSION https://stripe.com https://stripecli-ws-nw.stripe.com/subscribe/ https://y4pfttj91h-1.algolianet.com https://y4pfttj91h-2.algolianet.com https://y4pfttj91h-3.algolianet.com https://y4pfttj91h-dsn.algolia.net https://dashboard.stripe.com/ajax/anonymous_sandbox_assignment_handoff 'self'; default-src 'none'; font-src data: https://b.stripecdn.com https://b.stripecdn.com/docs-statics-srv/assets/ 'self'; form-action 'none'; frame-ancestors https://docs-edit.corp.stripe.com https://markdraft.corp.stripe.com https://admin.corp.stripe.com 'self'; frame-src https://edge-checkout.stripe.com https://b.stripecdn.com https://checkout.stripe.com https://connect-js.stripe.com https://stripe-data-exports.s3.amazonaws.com https://js.stripe.com 'self'; img-src https://docs.stripecdn.com https://cdn.stripeextensions.com/com.example.docs-stripe-apps-examples/ https://cdn.stripeextensions.com/com.stripe.stripe-apps-examples/ blob: data: https://b.stripecdn.com https://d37ugbyn3rpeym.cloudfront.net https://dashboard.stripe.com https://files.stripe.com https://i.ytimg.com/vi/ https://i.ytimg.com/vi_webp/ https://js.stripe.com https://q.stripe.com https://s3.amazonaws.com/stripe-uploads/ https://stripe-images.s3.amazonaws.com/docs/ 'self' https://extensibility.stripe.com https://d1wqzb5bdbcre6.cloudfront.net https://stripe-camo.global.ssl.fastly.net; media-src https://docs.stripecdn.com blob: https://b.stripecdn.com https://d37ugbyn3rpeym.cloudfront.net 'self'; script-src https://cdn.stripeextensions.com/com.example.docs-stripe-apps-examples/ https://cdn.stripeextensions.com/com.stripe.stripe-apps-examples/ https://b.stripecdn.com https://connect-js.stripe.com https://js.stripe.com 'nonce-xjoe+DyKf7k2u0kRfwdrWQ==' 'self' 'sha256-SGInGn8KvQpcjiIcYyTFbUNfqdqBIxQ8WJd9xgQQrsI=' 'sha256-yXxHrLNbJc+6m1MH8jUxHmvOsUducN4u40nNchqiv9Q=' 'sha256-u66Rr9rFgMi2ZdDqGzZ3gml5O9dXP6CGDbfPcaQajKI=' 'report-sample'; style-src https://b.stripecdn.com 'report-sample' 'self' 'nonce-xjoe+DyKf7k2u0kRfwdrWQ==' 'unsafe-hashes' 'sha256-NJH8hYZIeTx31th404J3fVwWvWaQo7beRAtJPe8DFzU=' 'sha256-t9PfmYlrli/SKfkOu1F3ru9qqFWjdE+tphvqhn5jlzA=' 'sha256-MtxTLcyxVEJFNLEIqbVTaqR4WWr0+lYSZ78AzGmNsuA=' 'sha256-3EP1piOo/O4YWqWO7mQYW6fCsMcX8uB/C/w3Cgomac4=' 'sha256-cXvVZOWrN9TDXv7R/dtCO6LdUavSrfsGBWTELGF2rgU=' 'sha256-p+jqvcoDFck2fLI5IGQFZCBLba8R7EGM34IhwqtKGwk=' 'sha256-1loH7bEUMovDekeuu7ZSI1ArVQdHA8eYrBlfpYm2/W0=' 'sha256-m0FjobEXOs23AaDaISFNF5h11EJKKqE/N9X1q5tWsfQ=' 'sha256-47DEQpj8HBSa+/TImW+5JCeuQeRkm5NMpJWZG3hSuFU='; worker-src 'self'; report-uri https://q.stripe.com/csp-violation?q=IesR2IZ3kcJMwWHqwEW4Bsal6vVK8Sh-G5Kapou-7UBMe_ni3ZnpHHkxk1Z0kMlywSogsgy3; report-to csp cross-origin-opener-policy: same-origin-allow-popups; report-to="wsp_coop" cross-origin-opener-policy-report-only: same-origin-allow-popups; report-to="wsp_coop" link: ; rel="service-meta" report-to: {"group":"wsp_coop","max_age":8640,"endpoints":[{"url":"https://q.stripe.com/coop-report?s=IesR2IZ3kcJMwWHqwEW4Bsal6vVK8Sh-G5Kapou-7UBMe_ni3ZnpHHkxk1Z0kMlywSogsgy3"}],"include_subdomains":true}, {"group":"wsp_coep","max_age":8640,"endpoints":[{"url":"https://q.stripe.com/coep-report?s=IesR2IZ3kcJMwWHqwEW4Bsal6vVK8Sh-G5Kapou-7UBMe_ni3ZnpHHkxk1Z0kMlywSogsgy3"}],"include_subdomains":true}, {"group":"csp","max_age":8640,"endpoints":[{"url":"https://q.stripe.com/csp-report-v2?q=IesR2IZ3kcJMwWHqwEW4Bsal6vVK8Sh-G5Kapou-7UBMe_ni3ZnpHHkxk1Z0kMlywSogsgy3&t=1"}],"include_subdomains":true} reporting-endpoints: wsp_coop="https://q.stripe.com/coop-report?s=IesR2IZ3kcJMwWHqwEW4Bsal6vVK8Sh-G5Kapou-7UBMe_ni3ZnpHHkxk1Z0kMlywSogsgy3", wsp_coep="https://q.stripe.com/coep-report?s=IesR2IZ3kcJMwWHqwEW4Bsal6vVK8Sh-G5Kapou-7UBMe_ni3ZnpHHkxk1Z0kMlywSogsgy3", csp="https://q.stripe.com/csp-report-v2?q=IesR2IZ3kcJMwWHqwEW4Bsal6vVK8Sh-G5Kapou-7UBMe_ni3ZnpHHkxk1Z0kMlywSogsgy3&t=1" set-cookie: [redacted] set-cookie: [redacted] vary: Accept, Accept-Language x-content-age: 0 x-content-timestamp: 2026-09-27T18:27:36Z x-location: https://docs.stripe.com/mcp.md x-robots-tag: none x-stripe-app-name: docs-plaintext x-stripe-proxy-response: upstream x-stripe-server-rpc-duration-micros: 53694 x-wc: 3f7 strict-transport-security: max-age=63072000; includeSubDomains; preload [body: 27028 bytes as received, sha256 3e22e97f34d847103aef216006cc3735a0400907418f2ca1992b9a117dad3174] # Model Context Protocol (MCP) Let your AI agents interact with the Stripe API by using our MCP server. The Stripe Model Context Protocol (MCP) server provides tools that AI agents can use to interact with the Stripe API and search Stripe’s knowledge base, including documentation and support articles. ## Set up Stripe MCP with a plugin (Recommended) [Agent plugins](https://docs.stripe.com/agents/plugin.md) for Stripe automatically configure the Stripe MCP server, install our [skills](https://docs.stripe.com/skills.md), and make sure they’re up-to-date. You get our latest capabilities without configuration or maintenance. To install, run: ```bash npm install -g @stripe/cli@latest stripe agent setup ``` This command automatically detects which agents you use, and runs the applicable commands. ## Manually set up Stripe MCP If your MCP client doesn’t support [agent plugins](https://docs.stripe.com/agents/plugin.md) for Stripe, or you prefer to configure the Stripe MCP server and install the skills manually, follow these instructions: #### Cursor [Install in Cursor](cursor://anysphere.cursor-deeplink/mcp/install?name=stripe&config=eyJ1cmwiOiJodHRwczovL21jcC5zdHJpcGUuY29tIn0%3D) Select **Install in Cursor** to open Cursor and add the Stripe MCP server. To configure it manually, add the following configuration to `~/.cursor/mcp.json`. For more information, see [Cursor’s MCP documentation](https://docs.cursor.com/context/model-context-protocol). ```json { "mcpServers": { "stripe": { "url": "https://mcp.stripe.com" } } } ``` #### Claude Code Run the following command to add the Stripe MCP server to Claude Code: ```bash claude mcp add --transport http stripe https://mcp.stripe.com/ ``` After you add the server, authenticate Stripe with OAuth. ```bash claude /mcp ``` To authenticate with an [agent API key](https://docs.stripe.com/keys.md#agent-keys) instead of OAuth, add the server to your project’s `.mcp.json` file and reference an environment variable that holds your agent API key, rather than passing the key on the command line. In this example, `${AGENT_API_KEY}` is a placeholder; replace `AGENT_API_KEY` with the actual name of your environment variable, and set that environment variable in your shell before running Claude Code. ```json { "mcpServers": { "stripe": { "type": "http", "url": "https://mcp.stripe.com", "headers": { "Authorization": "Bearer ${AGENT_API_KEY}" } } } } ``` For more information, see [Claude Code MCP documentation](https://docs.anthropic.com/en/docs/claude-code/mcp#configure-mcp-servers). #### Claude Desktop You can [install the official Stripe connector in Claude](https://claude.ai/directory/de127013-63f1-43d0-8dd2-b6cb5b4e5d1b) on the web and in Claude Desktop. 1. Select **Connect to Claude** and add the connector to your account or workspace. 2. Sign in to your Stripe account and grant permissions to Claude using the OAuth window when prompted. 3. In a conversation, select the plus icon, select **Connectors**, and enable Stripe. For Team and Enterprise accounts, an owner must add the connector to the workspace before members can connect their Stripe accounts. #### Codex Run the following command to add the Stripe MCP server to Codex: ```bash codex mcp add stripe --url https://mcp.stripe.com ``` The ChatGPT desktop app, Codex CLI, and Codex IDE extension support MCP servers and share the same configuration on your computer. To learn more, see the OpenAI [Codex MCP documentation](https://learn.chatgpt.com/docs/extend/mcp). After you authenticate, you can switch between the ChatGPT desktop app, Codex CLI, and Codex IDE extension without configuring the Stripe MCP server again. To authenticate with an [agent API key](https://docs.stripe.com/keys.md#agent-keys) instead of OAuth, set `bearer_token_env_var` to the name of an environment variable that holds your agent API key. In this example, `AGENT_API_KEY` is a placeholder; replace it with the actual name of your environment variable, not the name of the variable wrapped in braces. ```toml [mcp_servers.stripe] url = "https://mcp.stripe.com" bearer_token_env_var = "AGENT_API_KEY" # Replace with the name of your environment variable ``` #### ChatGPT You can [install the official Stripe plugin in ChatGPT](https://chatgpt.com/plugins/plugin_connector_690ab09fa43c8191bca40280e4563238). Connect your Stripe account and grant permissions to ChatGPT in the OAuth window when prompted. To learn more, see the OpenAI [Codex MCP documentation](https://learn.chatgpt.com/docs/extend/mcp). #### VS Code [Install in VS Code](https://vscode.dev/redirect/mcp/install?name=stripe&config=%7B%22type%22%3A%22http%22%2C%22url%22%3A%22https%3A%2F%2Fmcp.stripe.com%22%7D) Select **Install in VS Code** to open VS Code and add the Stripe MCP server. To configure it manually, add the following configuration to `.vscode/mcp.json` in your workspace. See the [VS Code MCP documentation](https://code.visualstudio.com/docs/copilot/chat/mcp-servers) for more information. ```json { "servers": { "stripe": { "type": "http", "url": "https://mcp.stripe.com" } } } ``` #### Other MCP is an open protocol supported by many clients. Follow your client’s MCP setup instructions and use `https://mcp.stripe.com` as the server URL. Use OAuth when your client supports it. If your client doesn’t support OAuth, use an [agent API key](https://docs.stripe.com/keys.md#agent-keys) as a bearer token in the `Authorization` header. For example, if your client accepts a `headers` property, use the following configuration: ```json { "stripe": { "url": "https://mcp.stripe.com", "headers": { "Authorization": "Bearer {{AGENT_API_KEY}}" } } } ``` ## Manage MCP access and sessions Stripe’s MCP server supports two authentication methods: 1. **OAuth**: Use OAuth when a client accesses Stripe on behalf of your Stripe user account. 2. **API keys**: Use API keys when an AI application needs independent, persistent access to Stripe. When you connect an MCP client with OAuth, the client opens Stripe’s OAuth consent page. You can grant access to one or more live mode accounts or sandboxes and set different permissions for each environment. See the [MCP specification](https://modelcontextprotocol.io/specification/2025-03-26/basic/authorization#2-1-1-oauth-grant-types) for details. If your organization manages your device or network, your IT administrator might block connections to external MCP servers. When the Stripe MCP server doesn’t connect in a managed environment, ask your IT department to allow `mcp.stripe.com`. ### Manage MCP access for all team members If you’re an administrator, you can [enable or disable MCP access](https://dashboard.stripe.com/settings/mcp-and-cli-access) for your entire team in the Dashboard. Configure access separately for live mode and sandbox environments. ### Manage your sessions Your authorized MCP clients appear under **OAuth sessions** in your [user settings](https://dashboard.stripe.com/settings/user). To revoke a session: 1. Find the client in the **OAuth sessions** list. 2. Click the overflow menu (⋯). 3. Select **Revoke access**. ### Manage sessions as an administrator To view or revoke another user’s sessions, your role must include permissions to manage team members. The **Administrator** role includes these permissions. 1. Open [Team and security](https://dashboard.stripe.com/settings/team) in the Dashboard. 2. Select the team member you want to manage. 3. Find the **OAuth sessions** table. 4. To revoke one session, click its overflow menu and select **Revoke access**. To revoke every listed session, select **Revoke all**. Session management applies only to the account or organization and environment—live mode or a sandbox—that you’re currently viewing. Revoking a session removes access only within that scope. The session remains active for accounts outside your current scope. When you view an organization, the **Accounts** column shows the accounts associated with each session. ## Authenticate Stripe MCP Use OAuth for interactive MCP clients. OAuth lets you authorize and revoke a client without sharing an API key. For autonomous clients that can’t use OAuth, create an [agent API key](https://docs.stripe.com/keys.md#agent-keys) with only the permissions the client needs. You can identify agent API keys in the Dashboard by the **Agent** badge. Pass the agent API key as the bearer token in the `Authorization` header of your request. Test the new configuration in a sandbox, then expire the old key. > #### Update API key authentication by October 31, 2026 > > Beginning October 31, 2026, Stripe MCP no longer accepts full-access secret keys or restricted API keys without the Agent tag. Before then, replace these keys with newly created Agent Keys or reconnect with OAuth. Requests using an unsupported key receive a `401` response with an OAuth discovery challenge. ## Tools The server exposes the following [MCP tools](https://modelcontextprotocol.io/docs/concepts/tools). Enable human confirmation of tools and exercise caution when using the Stripe MCP with other servers to avoid prompt injection attacks. If you have feedback or want to see more tools, email us at [mcp@stripe.com](mailto:mcp@stripe.com). | Resource | Tool | Description | | --- | --- | --- | | **API tools** | `stripe_api_search` | Search for Stripe API methods by keyword | | `stripe_api_details` | Get detailed parameter information for a specific Stripe API method. | | `stripe_api_read` | Read data with any Stripe API `GET` method | | `stripe_api_write` | Write data with any Stripe API `POST`, `PATCH`, `PUT` and `DELETE` method | | **Account** | `get_stripe_account_info` | [Retrieve account](https://docs.stripe.com/api/accounts/retrieve.md) | | **[Analytics](https://docs.stripe.com/data/analyze-with-ai.md)** | `stripe_analytics` | - (Preview) Query metrics, analyze subscriptions and billing, and run financial reports - (Requires Sigma) Build SQL queries based on natural language | | **Treasury** (Public preview) | `get_balance_summary` | Displays an interactive balance summary across the Stripe balance and Treasury accounts | | **Others** | `search_stripe_documentation` | Search the Stripe documentation for the given question and language | | `stripe_implementation_planner` | Guides the user through Stripe products to help users accept payments, sell products online, set up billing, or build any Stripe integration | | `send_stripe_feedback` | Share feedback about Stripe’s products | The Stripe MCP server exposes multiple APIs that you can call with the `stripe_api_read` and `stripe_api_write` tools. This access makes much of the API available through MCP without increasing the context window unnecessarily. ### Supported API methods - [List all customers](https://docs.stripe.com/api/customers/list.md) - [Retrieve a customer](https://docs.stripe.com/api/customers/retrieve.md) - [Create a customer](https://docs.stripe.com/api/customers/create.md) - [Update a customer](https://docs.stripe.com/api/customers/update.md) - [List all charges](https://docs.stripe.com/api/charges/list.md) - [Retrieve a charge](https://docs.stripe.com/api/charges/retrieve.md) - [List all refunds for a charge](https://docs.stripe.com/api/refunds/list.md) - [List all refunds](https://docs.stripe.com/api/refunds/list.md) - [Retrieve a refund](https://docs.stripe.com/api/refunds/retrieve.md) - [Create refund](https://docs.stripe.com/api/refunds/create.md) - [List all PaymentIntents](https://docs.stripe.com/api/payment_intents/list.md) - [Retrieve a PaymentIntent](https://docs.stripe.com/api/payment_intents/retrieve.md) - [List PaymentMethods](https://docs.stripe.com/api/payment_methods/list.md) - [Retrieve a PaymentMethod](https://docs.stripe.com/api/payment_methods/retrieve.md) - [List a customer’s PaymentMethods](https://docs.stripe.com/api/payment_methods/list.md) - [Retrieve a customer’s PaymentMethod](https://docs.stripe.com/api/payment_methods/retrieve.md) - [List payment method configurations](https://docs.stripe.com/api/payment_method_configurations/list.md) - [Retrieve a payment method configuration](https://docs.stripe.com/api/payment_method_configurations/retrieve.md) - [List payment method domains](https://docs.stripe.com/api/payment_method_domains/list.md) - [Create a payment method domain](https://docs.stripe.com/api/payment_method_domains/create.md) - [List all SetupIntents](https://docs.stripe.com/api/setup_intents/list.md) - [Retrieve a SetupIntent](https://docs.stripe.com/api/setup_intents/retrieve.md) - [List all Checkout Sessions](https://docs.stripe.com/api/checkout/sessions/list.md) - [Retrieve a Checkout Session](https://docs.stripe.com/api/checkout/sessions/retrieve.md) - [Retrieve a Checkout Session’s line items](https://docs.stripe.com/api/checkout/sessions/line_items.md) - [Create a Checkout Session](https://docs.stripe.com/api/checkout/sessions/create.md) - [List all invoices](https://docs.stripe.com/api/invoices/list.md) - [Retrieve an invoice](https://docs.stripe.com/api/invoices/retrieve.md) - [Retrieve an invoice’s line items](https://docs.stripe.com/api/invoice-line-item/retrieve.md) - [Create an invoice](https://docs.stripe.com/api/invoices/create.md) - [Update an invoice](https://docs.stripe.com/api/invoices/update.md) - [Finalize an invoice](https://docs.stripe.com/api/invoices/finalize.md) - [Mark an invoice as uncollectible](https://docs.stripe.com/api/invoices/mark_uncollectible.md) - [Void an invoice](https://docs.stripe.com/api/invoices/void.md) - [List all invoice items](https://docs.stripe.com/api/invoiceitems/list.md) - [Retrieve an invoice item](https://docs.stripe.com/api/invoiceitems/retrieve.md) - [Create an invoice item](https://docs.stripe.com/api/invoiceitems/create.md) - [Update an invoice item](https://docs.stripe.com/api/invoiceitems/update.md) - [List all payments for an invoice](https://docs.stripe.com/api/invoice-payment/list.md) - [Create a preview invoice](https://docs.stripe.com/api/invoices/create_preview.md) - [List all credit notes](https://docs.stripe.com/api/credit_notes/list.md) - [List subscriptions](https://docs.stripe.com/api/subscriptions/list.md) - [Retrieve a subscription](https://docs.stripe.com/api/subscriptions/retrieve.md) - [Create a subscription](https://docs.stripe.com/api/subscriptions/create.md) - [Update a subscription](https://docs.stripe.com/api/subscriptions/update.md) - [Cancel a subscription](https://docs.stripe.com/api/subscriptions/cancel.md) - [List all schedules](https://docs.stripe.com/api/subscription_schedules/list.md) - [Retrieve a schedule](https://docs.stripe.com/api/subscription_schedules/retrieve.md) - [List all subscription items](https://docs.stripe.com/api/subscription_items/list.md) - [List all coupons](https://docs.stripe.com/api/coupons/list.md) - [Retrieve a coupon](https://docs.stripe.com/api/coupons/retrieve.md) - [Create a coupon](https://docs.stripe.com/api/coupons/create.md) - [Update a coupon](https://docs.stripe.com/api/coupons/update.md) - [Delete a coupon](https://docs.stripe.com/api/coupons/delete.md) - [List all promotion codes](https://docs.stripe.com/api/promotion_codes/list.md) - [Retrieve a promotion code](https://docs.stripe.com/api/promotion_codes/retrieve.md) - [Create a promotion code](https://docs.stripe.com/api/promotion_codes/create.md) - [List all products](https://docs.stripe.com/api/products/list.md) - [Retrieve a product](https://docs.stripe.com/api/products/retrieve.md) - [Create a product](https://docs.stripe.com/api/products/create.md) - [Update a product](https://docs.stripe.com/api/products/update.md) - [List all prices](https://docs.stripe.com/api/prices/list.md) - [Retrieve a price](https://docs.stripe.com/api/prices/retrieve.md) - [Create a price](https://docs.stripe.com/api/prices/create.md) - [Update a price](https://docs.stripe.com/api/prices/update.md) - [List all payment links](https://docs.stripe.com/api/payment_links/list.md) - [Retrieve payment link](https://docs.stripe.com/api/payment_links/retrieve.md) - [Retrieve a payment link’s line items](https://docs.stripe.com/api/payment_links/line_items.md) - [Create a payment link](https://docs.stripe.com/api/payment_links/create.md) - [Update a payment link](https://docs.stripe.com/api/payment_links/update.md) - [List all disputes](https://docs.stripe.com/api/disputes/list.md) - [Retrieve a dispute](https://docs.stripe.com/api/disputes/retrieve.md) - [Update a dispute](https://docs.stripe.com/api/disputes/update.md) - [List all webhook endpoints](https://docs.stripe.com/api/webhook_endpoints/list.md) - [Retrieve a webhook endpoint](https://docs.stripe.com/api/webhook_endpoints/retrieve.md) - [Create a webhook endpoint](https://docs.stripe.com/api/webhook_endpoints/create.md) - [List all event destinations](https://docs.stripe.com/api/v2/core/event-destinations/list.md) - [Retrieve an event destination](https://docs.stripe.com/api/v2/core/event-destinations/retrieve.md) - [Create an event destination](https://docs.stripe.com/api/v2/core/event-destinations/create.md) - [Update an event destination](https://docs.stripe.com/api/v2/core/event-destinations/update.md) - [List portal configurations](https://docs.stripe.com/api/customer_portal/configurations/list.md) - [Retrieve a portal configuration](https://docs.stripe.com/api/customer_portal/configurations/retrieve.md) - [Create a portal configuration](https://docs.stripe.com/api/customer_portal/configurations/create.md) - [Update a portal configuration](https://docs.stripe.com/api/customer_portal/configurations/update.md) - [Create a portal session](https://docs.stripe.com/api/customer_portal/sessions/create.md) - [List all application fees](https://docs.stripe.com/api/application_fees/list.md) - [List all transfers](https://docs.stripe.com/api/transfers/list.md) - [Retrieve a transfer](https://docs.stripe.com/api/transfers/retrieve.md) - [List customer balance transactions](https://docs.stripe.com/api/customer_balance_transactions/list.md) - [Retrieve a cash balance](https://docs.stripe.com/api/cash_balances/retrieve.md) - [List cash balance transactions](https://docs.stripe.com/api/customer_cash_balance_transactions/list.md) - [Create a test clock](https://docs.stripe.com/api/test_helpers/test_clocks/create.md) - [Retrieve balance](https://docs.stripe.com/api/balance/retrieve.md) - [Retrieve tax settings](https://docs.stripe.com/api/tax/settings/retrieve.md) - [Update tax settings](https://docs.stripe.com/api/tax/settings/update.md) - [List all tax codes](https://docs.stripe.com/api/tax_codes/list.md) - [Retrieve a tax code](https://docs.stripe.com/api/tax_codes/retrieve.md) - [List all tax registrations](https://docs.stripe.com/api/tax/registrations/list.md) - [Retrieve a tax registration](https://docs.stripe.com/api/tax/registrations/retrieve.md) - [Create a tax registration](https://docs.stripe.com/api/tax/registrations/create.md) - [Update a tax registration](https://docs.stripe.com/api/tax/registrations/update.md) - [Create a Metric Query Result](https://docs.stripe.com/api/v2/data/analytics/metric-query-results/create.md?api-version=2026-07-29.preview) (Private preview) - [Create a Query Run](https://docs.stripe.com/api/v2/data/reporting/query-runs/create.md?api-version=2026-07-29.preview) (Public preview) - [Create a tax calculation](https://docs.stripe.com/api/tax/calculations/create.md) - [Retrieve a tax calculation](https://docs.stripe.com/api/tax/calculations/retrieve.md) - [Retrieve a tax calculation’s line items](https://docs.stripe.com/api/tax/calculations/line_items.md) - [List all balance transactions](https://docs.stripe.com/api/balance_transactions/list.md) - [Retrieve a balance transaction](https://docs.stripe.com/api/balance_transactions/retrieve.md) - [List all payouts](https://docs.stripe.com/api/payouts/list.md) - [Retrieve a payout](https://docs.stripe.com/api/payouts/retrieve.md) - [List all authorizations](https://docs.stripe.com/api/issuing/authorizations/list.md) - [Retrieve an authorization](https://docs.stripe.com/api/issuing/authorizations/retrieve.md) - [List all cardholders](https://docs.stripe.com/api/issuing/cardholders/list.md) - [Retrieve a cardholder](https://docs.stripe.com/api/issuing/cardholders/retrieve.md) - [List all cards](https://docs.stripe.com/api/issuing/cards/list.md) - [Retrieve a card](https://docs.stripe.com/api/issuing/cards/retrieve.md) - [List all disputes](https://docs.stripe.com/api/issuing/disputes/list.md) - [Retrieve a dispute](https://docs.stripe.com/api/issuing/disputes/retrieve.md) - [List all transactions](https://docs.stripe.com/api/issuing/transactions/list.md) - [Retrieve a transaction](https://docs.stripe.com/api/issuing/transactions/retrieve.md) - [List accounts](https://docs.stripe.com/api/v2/core/accounts/list.md) - [Retrieve an account](https://docs.stripe.com/api/v2/core/accounts/retrieve.md) - [List Adjustments](https://docs.stripe.com/api/v2/money-management/adjustments/list.md?api-version=2026-05-27.preview) - [Retrieve an Adjustment](https://docs.stripe.com/api/v2/money-management/adjustments/retrieve.md?api-version=2026-05-27.preview) - [List Financial Accounts](https://docs.stripe.com/api/v2/money-management/financial-accounts/list.md?api-version=2026-05-27.preview) - [Retrieve a Financial Account](https://docs.stripe.com/api/v2/money-management/financial-accounts/retrieve.md?api-version=2026-05-27.preview) - [List Financial Addresses](https://docs.stripe.com/api/v2/money-management/financial-addresses/list.md?api-version=2026-05-27.preview) - [Retrieve a Financial Address](https://docs.stripe.com/api/v2/money-management/financial-addresses/retrieve.md?api-version=2026-05-27.preview) - [List Inbound Transfers](https://docs.stripe.com/api/v2/money-management/inbound-transfers/list.md?api-version=2026-05-27.preview) - [Retrieve an Inbound Transfer](https://docs.stripe.com/api/v2/money-management/inbound-transfers/retrieve.md?api-version=2026-05-27.preview) - [Retrieve an Outbound Payment Quote](https://docs.stripe.com/api/v2/money-management/outbound-payment-quotes/retrieve.md?api-version=2026-05-27.preview) - [List Outbound Payments](https://docs.stripe.com/api/v2/money-management/outbound-payments/list.md?api-version=2026-05-27.preview) - [Retrieve an Outbound Payment](https://docs.stripe.com/api/v2/money-management/outbound-payments/retrieve.md?api-version=2026-05-27.preview) - [List Outbound Setup Intents](https://docs.stripe.com/api/v2/money-management/outbound-setup-intents/list.md?api-version=2026-05-27.preview) - [Retrieve an Outbound Setup Intent](https://docs.stripe.com/api/v2/money-management/outbound-setup-intents/retrieve.md?api-version=2026-05-27.preview) - [List Outbound Transfers](https://docs.stripe.com/api/v2/money-management/outbound-transfers/list.md?api-version=2026-05-27.preview) - [Retrieve an Outbound Transfer](https://docs.stripe.com/api/v2/money-management/outbound-transfers/retrieve.md?api-version=2026-05-27.preview) - [List Payout Methods](https://docs.stripe.com/api/v2/money-management/payout-methods/list.md?api-version=2026-05-27.preview) - [Retrieve a Payout Method](https://docs.stripe.com/api/v2/money-management/payout-methods/retrieve.md?api-version=2026-05-27.preview) - [Retrieve Bank Account Specification](https://docs.stripe.com/api/v2/money-management/payout-methods-bank-account-specs/retrieve.md?api-version=2026-05-27.preview) - [List Received Credits](https://docs.stripe.com/api/v2/money-management/received-credits/list.md?api-version=2026-05-27.preview) - [Retrieve a Received Credit](https://docs.stripe.com/api/v2/money-management/received-credits/retrieve.md?api-version=2026-05-27.preview) - [List Received Debits](https://docs.stripe.com/api/v2/money-management/received-debits/list.md?api-version=2026-05-27.preview) - [Retrieve a Received Debit](https://docs.stripe.com/api/v2/money-management/received-debits/retrieve.md?api-version=2026-05-27.preview) - [List Transaction Entries](https://docs.stripe.com/api/v2/money-management/transaction-entries/list.md?api-version=2026-05-27.preview) - [Retrieve a Transaction Entry](https://docs.stripe.com/api/v2/money-management/transaction-entries/retrieve.md?api-version=2026-05-27.preview) - [List Transactions](https://docs.stripe.com/api/v2/money-management/transactions/list.md?api-version=2026-05-27.preview) - [Retrieve a Transaction](https://docs.stripe.com/api/v2/money-management/transactions/retrieve.md?api-version=2026-05-27.preview) ## Confirm actions by agents acting on your behalf When you connect an AI agent to Stripe through the MCP server using your user credentials, you authorize the agent to access data and take actions in Stripe on your behalf. To prevent agents from making mistakes, Stripe requires human confirmation before it takes certain `stripe_api_write` actions, such as refunds and outbound payments. To confirm an action, click the URL provided by your agent and review the details of the request. ![Confirm a refund request](https://b.stripecdn.com/docs-statics-srv/assets/human-confirmation.d768e677a3bf87585ee29a003df41b00.png) Confirm a refund request When you click **Approve**, Stripe provides the agent with an approval token, but you need to tell the agent to retry the operation, which doesn’t require human confirmation. If you don’t approve the action within 24 hours, it expires. ## Use MCP with connected accounts By default, Stripe MCP tools operate on the Stripe account associated with your OAuth session or API key. If you only need your agent to work with your platform account, use the standard setup above. If you’re a [Connect platform](https://docs.stripe.com/connect.md), you can also use MCP to retrieve or update resources for your connected accounts. For example, a support agent could retrieve a customer or investigate a payment for a specific connected account. MCP doesn’t support OAuth when acting on behalf of connected accounts. Instead, authenticate with a [restricted API key](https://docs.stripe.com/keys/restricted-api-keys.md#create-a-restricted-api-key) for your platform and grant only the connected-account permissions that your agent needs. To make an MCP call as a connected account, pass the `Stripe-Account` header. This is useful when you provide an agent that allows your connected accounts to make MCP calls through your platform. ```json { "mcpServers": { "stripe": { "url": "https://mcp.stripe.com", "headers": { "Authorization": "Bearer {{AGENT_API_KEY}}", "Stripe-Account": "acct_xxxxxxxxx" } } } } ``` ## See also - [Plugin for agents](https://docs.stripe.com/agents/plugin.md) - [Agent skills](https://docs.stripe.com/skills.md) - [View MCP tool call logs in Workbench](https://docs.stripe.com/workbench/overview.md#mcp-tool-call-logs) ## 9. GET https://docs.stripe.com/keys.md (the API keys page, Markdown representation; the section 'API keys for autonomous agents') HTTP/2 200 server: nginx date: Sun, 27 Sep 2026 18:32:03 GMT content-type: text/markdown; charset=utf-8 content-length: 25406 content-security-policy: base-uri 'none'; child-src 'self'; connect-src https://c.increment.com https://c.stripe.dev https://c.stripe.global https://c.stripe.partners https://edge-api.stripe.com wss://stripe-cli-ws-nw.stripe.com/subscribe/ wss://stripe-cli.stripe.com/subscribe/ wss://stripecli-ws-nw.stripe.com/subscribe/ wss://stripecli.stripe.com/subscribe/ https://api.stripe.com https://ai.stripe.com https://developer-ai.corp.stripe.com https://b.stripecdn.com https://errors.stripe.com https://insights.algolia.io https://js.stripe.com https://link.co/cookie-settings/ https://link.com/cookie-settings/ https://r.stripe.com https://raw.githubusercontent.com/stripe/stripe-go/master/VERSION https://raw.githubusercontent.com/stripe/stripe-java/master/VERSION https://stripe.com https://stripecli-ws-nw.stripe.com/subscribe/ https://y4pfttj91h-1.algolianet.com https://y4pfttj91h-2.algolianet.com https://y4pfttj91h-3.algolianet.com https://y4pfttj91h-dsn.algolia.net https://dashboard.stripe.com/ajax/anonymous_sandbox_assignment_handoff 'self'; default-src 'none'; font-src data: https://b.stripecdn.com https://b.stripecdn.com/docs-statics-srv/assets/ 'self'; form-action 'none'; frame-ancestors https://docs-edit.corp.stripe.com https://markdraft.corp.stripe.com https://admin.corp.stripe.com 'self'; frame-src https://edge-checkout.stripe.com https://b.stripecdn.com https://checkout.stripe.com https://connect-js.stripe.com https://stripe-data-exports.s3.amazonaws.com https://js.stripe.com 'self'; img-src https://docs.stripecdn.com https://cdn.stripeextensions.com/com.example.docs-stripe-apps-examples/ https://cdn.stripeextensions.com/com.stripe.stripe-apps-examples/ blob: data: https://b.stripecdn.com https://d37ugbyn3rpeym.cloudfront.net https://dashboard.stripe.com https://files.stripe.com https://i.ytimg.com/vi/ https://i.ytimg.com/vi_webp/ https://js.stripe.com https://q.stripe.com https://s3.amazonaws.com/stripe-uploads/ https://stripe-images.s3.amazonaws.com/docs/ 'self' https://extensibility.stripe.com https://d1wqzb5bdbcre6.cloudfront.net https://stripe-camo.global.ssl.fastly.net; media-src https://docs.stripecdn.com blob: https://b.stripecdn.com https://d37ugbyn3rpeym.cloudfront.net 'self'; script-src https://cdn.stripeextensions.com/com.example.docs-stripe-apps-examples/ https://cdn.stripeextensions.com/com.stripe.stripe-apps-examples/ https://b.stripecdn.com https://connect-js.stripe.com https://js.stripe.com 'nonce-Vx96YdIrh0wiFgmzyuPc/A==' 'self' 'sha256-SGInGn8KvQpcjiIcYyTFbUNfqdqBIxQ8WJd9xgQQrsI=' 'sha256-yXxHrLNbJc+6m1MH8jUxHmvOsUducN4u40nNchqiv9Q=' 'sha256-u66Rr9rFgMi2ZdDqGzZ3gml5O9dXP6CGDbfPcaQajKI=' 'report-sample'; style-src https://b.stripecdn.com 'report-sample' 'self' 'unsafe-inline'; worker-src 'self'; upgrade-insecure-requests; report-uri https://q.stripe.com/csp-violation?q=xMvuUfKBMse7UbvoT2lOr6JThiBrCW6mpe1rwecUakVSkeIShnCXhGC-Sou4TqG_BsApuHPH; report-to csp content-security-policy-report-only: base-uri 'none'; child-src 'self'; connect-src https://c.increment.com https://c.stripe.dev https://c.stripe.global https://c.stripe.partners https://edge-api.stripe.com wss://stripe-cli-ws-nw.stripe.com/subscribe/ wss://stripe-cli.stripe.com/subscribe/ wss://stripecli-ws-nw.stripe.com/subscribe/ wss://stripecli.stripe.com/subscribe/ https://api.stripe.com https://ai.stripe.com https://developer-ai.corp.stripe.com https://b.stripecdn.com https://errors.stripe.com https://insights.algolia.io https://js.stripe.com https://link.co/cookie-settings/ https://link.com/cookie-settings/ https://r.stripe.com https://raw.githubusercontent.com/stripe/stripe-go/master/VERSION https://raw.githubusercontent.com/stripe/stripe-java/master/VERSION https://stripe.com https://stripecli-ws-nw.stripe.com/subscribe/ https://y4pfttj91h-1.algolianet.com https://y4pfttj91h-2.algolianet.com https://y4pfttj91h-3.algolianet.com https://y4pfttj91h-dsn.algolia.net https://dashboard.stripe.com/ajax/anonymous_sandbox_assignment_handoff 'self'; default-src 'none'; font-src data: https://b.stripecdn.com https://b.stripecdn.com/docs-statics-srv/assets/ 'self'; form-action 'none'; frame-ancestors https://docs-edit.corp.stripe.com https://markdraft.corp.stripe.com https://admin.corp.stripe.com 'self'; frame-src https://edge-checkout.stripe.com https://b.stripecdn.com https://checkout.stripe.com https://connect-js.stripe.com https://stripe-data-exports.s3.amazonaws.com https://js.stripe.com 'self'; img-src https://docs.stripecdn.com https://cdn.stripeextensions.com/com.example.docs-stripe-apps-examples/ https://cdn.stripeextensions.com/com.stripe.stripe-apps-examples/ blob: data: https://b.stripecdn.com https://d37ugbyn3rpeym.cloudfront.net https://dashboard.stripe.com https://files.stripe.com https://i.ytimg.com/vi/ https://i.ytimg.com/vi_webp/ https://js.stripe.com https://q.stripe.com https://s3.amazonaws.com/stripe-uploads/ https://stripe-images.s3.amazonaws.com/docs/ 'self' https://extensibility.stripe.com https://d1wqzb5bdbcre6.cloudfront.net https://stripe-camo.global.ssl.fastly.net; media-src https://docs.stripecdn.com blob: https://b.stripecdn.com https://d37ugbyn3rpeym.cloudfront.net 'self'; script-src https://cdn.stripeextensions.com/com.example.docs-stripe-apps-examples/ https://cdn.stripeextensions.com/com.stripe.stripe-apps-examples/ https://b.stripecdn.com https://connect-js.stripe.com https://js.stripe.com 'nonce-Vx96YdIrh0wiFgmzyuPc/A==' 'self' 'sha256-SGInGn8KvQpcjiIcYyTFbUNfqdqBIxQ8WJd9xgQQrsI=' 'sha256-yXxHrLNbJc+6m1MH8jUxHmvOsUducN4u40nNchqiv9Q=' 'sha256-u66Rr9rFgMi2ZdDqGzZ3gml5O9dXP6CGDbfPcaQajKI=' 'report-sample'; style-src https://b.stripecdn.com 'report-sample' 'self' 'nonce-Vx96YdIrh0wiFgmzyuPc/A==' 'unsafe-hashes' 'sha256-NJH8hYZIeTx31th404J3fVwWvWaQo7beRAtJPe8DFzU=' 'sha256-t9PfmYlrli/SKfkOu1F3ru9qqFWjdE+tphvqhn5jlzA=' 'sha256-MtxTLcyxVEJFNLEIqbVTaqR4WWr0+lYSZ78AzGmNsuA=' 'sha256-3EP1piOo/O4YWqWO7mQYW6fCsMcX8uB/C/w3Cgomac4=' 'sha256-cXvVZOWrN9TDXv7R/dtCO6LdUavSrfsGBWTELGF2rgU=' 'sha256-p+jqvcoDFck2fLI5IGQFZCBLba8R7EGM34IhwqtKGwk=' 'sha256-1loH7bEUMovDekeuu7ZSI1ArVQdHA8eYrBlfpYm2/W0=' 'sha256-m0FjobEXOs23AaDaISFNF5h11EJKKqE/N9X1q5tWsfQ=' 'sha256-47DEQpj8HBSa+/TImW+5JCeuQeRkm5NMpJWZG3hSuFU='; worker-src 'self'; report-uri https://q.stripe.com/csp-violation?q=xMvuUfKBMse7UbvoT2lOr6JThiBrCW6mpe1rwecUakVSkeIShnCXhGC-Sou4TqG_BsApuHPH; report-to csp cross-origin-opener-policy: same-origin-allow-popups; report-to="wsp_coop" cross-origin-opener-policy-report-only: same-origin-allow-popups; report-to="wsp_coop" link: ; rel="service-meta" report-to: {"group":"wsp_coop","max_age":8640,"endpoints":[{"url":"https://q.stripe.com/coop-report?s=xMvuUfKBMse7UbvoT2lOr6JThiBrCW6mpe1rwecUakVSkeIShnCXhGC-Sou4TqG_BsApuHPH"}],"include_subdomains":true}, {"group":"wsp_coep","max_age":8640,"endpoints":[{"url":"https://q.stripe.com/coep-report?s=xMvuUfKBMse7UbvoT2lOr6JThiBrCW6mpe1rwecUakVSkeIShnCXhGC-Sou4TqG_BsApuHPH"}],"include_subdomains":true}, {"group":"csp","max_age":8640,"endpoints":[{"url":"https://q.stripe.com/csp-report-v2?q=xMvuUfKBMse7UbvoT2lOr6JThiBrCW6mpe1rwecUakVSkeIShnCXhGC-Sou4TqG_BsApuHPH&t=1"}],"include_subdomains":true} reporting-endpoints: wsp_coop="https://q.stripe.com/coop-report?s=xMvuUfKBMse7UbvoT2lOr6JThiBrCW6mpe1rwecUakVSkeIShnCXhGC-Sou4TqG_BsApuHPH", wsp_coep="https://q.stripe.com/coep-report?s=xMvuUfKBMse7UbvoT2lOr6JThiBrCW6mpe1rwecUakVSkeIShnCXhGC-Sou4TqG_BsApuHPH", csp="https://q.stripe.com/csp-report-v2?q=xMvuUfKBMse7UbvoT2lOr6JThiBrCW6mpe1rwecUakVSkeIShnCXhGC-Sou4TqG_BsApuHPH&t=1" set-cookie: [redacted] set-cookie: [redacted] vary: Accept, Accept-Language x-content-age: 0 x-content-timestamp: 2026-09-27T18:32:02Z x-location: https://docs.stripe.com/keys.md x-robots-tag: none x-stripe-app-name: docs-plaintext x-stripe-proxy-response: upstream x-stripe-server-rpc-duration-micros: 61172 x-wc: 3f7 strict-transport-security: max-age=63072000; includeSubDomains; preload [body: 25406 bytes as received, sha256 89a8c4e676b8c5549e44decb626ccc67d2a0e8549ab731e84c3c7e2c72da1615] # API keys Use API keys to authenticate API requests. Stripe uses API keys to authenticate requests from your integration and determine which Stripe resources it can access. Choose the key type that matches where your code runs and grant server-side keys only the permissions your integration needs. Use the [API keys](https://dashboard.stripe.com/apikeys) page in the Dashboard to create, reveal, expire, and rotate keys for the account or sandbox you’re viewing. This guide covers keys used with the Stripe API. To learn about API v2 endpoints, behavior, and testing, see the [API v2 overview](https://docs.stripe.com/api-v2-overview.md). If a request doesn’t include a valid key, Stripe returns an [invalid request error](https://docs.stripe.com/error-handling.md#invalid-request-errors). If a request includes an expired key, Stripe returns an [authentication error](https://docs.stripe.com/error-handling.md#authentication-errors). Use [Workbench request logs](https://docs.stripe.com/workbench.md) to inspect API requests and troubleshoot errors. > #### If you're new to Stripe > > - **Keep your business safe:** Read our [best practices](https://docs.stripe.com/keys-best-practices.md) for managing keys. > - **Build and test**: Create or select a [sandbox](https://docs.stripe.com/sandboxes.md) and use its test keys. For new integrations, use a separate general sandbox instead of your account’s test mode sandbox so settings and data remain isolated from live mode. Sandbox keys start with `pk_test_` for publishable keys, `rk_test_` for restricted keys, and `sk_test_` for secret keys. > - **When you’re ready to accept real payments**: [Switch to your live mode keys](https://docs.stripe.com/keys.md#switch-to-live-mode), which start with `pk_live_`, `rk_live_`, and `sk_live_`. > - **If you need to find a webhook signing secret**: Webhook secrets are separate from API keys. Find them in the [Webhooks](https://dashboard.stripe.com/webhooks) section of the Dashboard under each webhook endpoint. ## Key types When you sign up for a Stripe account, we create three types of API keys for you: | Type | Safe to expose | Description | | --- | --- | --- | | Publishable API key `pk_...` | Yes | API key for Stripe.js, Elements, and mobile SDKs. It can identify your account and create tokens or PaymentMethods from payment details, but it can’t perform sensitive operations such as creating charges or reading account data. You can include it in front-end code or applications you distribute. | | Restricted API key (RAK) `rk_...` | No | API key with permissions you control. Limit the damage to your business that a fraudulent actor could cause if they obtained your key. Create as many RAKs as you want and assign them to different parts of your application. Stripe Apps can also use [RAK authentication](https://docs.stripe.com/stripe-apps/api-authentication/rak.md) to generate a permissioned key when a user installs an app. [This guide](https://docs.stripe.com/keys/restricted-api-keys.md) explains how to configure and use RAKs. | | Secret API key `sk_...` | No | API key that has unrestricted permissions on all Stripe APIs. Because you can’t limit their permissions, we don’t recommend using secret keys for new use cases, and for existing integrations, we recommend migrating secret key usage to RAKs. | | Organization API key `sk_org_...` | No | API key that works at the organization level. Same as account-level restricted or secret keys, but operates at the [organization](https://docs.stripe.com/get-started/account/orgs.md) level to manage multiple Stripe accounts at once. [This guide](https://docs.stripe.com/keys/organization-api-keys.md) explains how to configure and use organization API keys. | We also support [managed API keys](https://docs.stripe.com/keys/managed-api-keys.md) issued by certain hosting platforms. Managed keys are secret API keys that a hosting platform delivers directly to your hosted applications. You don’t need to handle managed keys directly; your hosting provider issues and rotates them for you. > #### Webhook signing secrets > > Webhook signing secrets aren’t API keys—they’re per-webhook secrets that your webhook receiver uses to authenticate that webhooks actually came from Stripe. You can find the signing secret for each webhook endpoint in the [Webhooks](https://dashboard.stripe.com/webhooks) section of the Dashboard. You’re responsible for managing your API keys safely. Read our guide to [best practices for protecting API keys](https://docs.stripe.com/keys-best-practices.md). ### Sandbox versus live mode All Stripe API requests occur in either a *sandbox* (A sandbox is an isolated test environment that allows you to test Stripe functionality in your account without affecting your live integration. Use sandboxes to safely experiment with new features and changes) or *live mode* (Use this mode when you’re ready to launch your app. Card networks or payment providers process payments). You can use a sandbox to test your integration and access test data, and live mode to access actual account data. Each mode has its own set of API keys, and objects in one mode aren’t accessible to the other. For example, a sandbox [product object](https://docs.stripe.com/api/products/object.md) can’t be part of a live mode payment. | Type | When to use | Objects | How to use | Considerations | | --- | --- | --- | --- | --- | | Sandboxes | Use a sandbox, and its associated test API keys, as you build your integration. In a sandbox, card networks and payment providers don’t process payments. | API calls return simulated objects. For example, you can retrieve and use test [Customer](https://docs.stripe.com/api/customers/object.md), [PaymentIntent](https://docs.stripe.com/api/payment_intents/object.md), [Refund](https://docs.stripe.com/api/refunds/object.md), and [Subscription](https://docs.stripe.com/api/subscriptions/object.md) objects. | Use [test credit cards and accounts](https://docs.stripe.com/testing.md#cards). You can’t accept real payment methods or work with real accounts. | [Identity](https://docs.stripe.com/identity.md) doesn’t perform any verification checks. Also, Connect [account objects](https://docs.stripe.com/api/accounts/object.md) don’t return sensitive fields. | | Live mode | Use live mode, and its associated live API keys, when you’re ready to launch your integration and accept real money. In live mode, card networks and payment providers do process payments. | API calls return real objects. For example, you can retrieve and use real [Customer](https://docs.stripe.com/api/customers/object.md), [PaymentIntent](https://docs.stripe.com/api/payment_intents/object.md), [Refund](https://docs.stripe.com/api/refunds/object.md), and [Subscription](https://docs.stripe.com/api/subscriptions/object.md) objects. | Accept real credit cards and work with customer accounts. You can accept actual payment authorizations, charges, and captures for credit cards and accounts. | Disputes have a more nuanced flow and a simpler [testing process](https://docs.stripe.com/testing.md#disputes). Also, some [payment methods](https://docs.stripe.com/payments/payment-methods.md) have a more nuanced flow and require more steps. | ### API keys for autonomous agents When you create a restricted API key, you can tag it as belonging to an autonomous agent, an AI system that operates independently to complete tasks such as processing refunds or managing subscriptions. To tag a key as an agent key, select **Authorizing agent access to your account** when Stripe prompts you for the key’s intended use during creation. Agent-tagged keys work the same as other restricted API keys for authentication and permissions. The difference is in governance: agent-tagged keys are automatically subject to [approval rules](https://docs.stripe.com/account/approvals.md), which require a designated reviewer to approve sensitive actions before they take effect. Stripe provides a set of default rules when you create your first agent-tagged key. These rules cover high-risk actions such as payouts, refunds, and account configuration changes. This is the recommended way to give autonomous agents access to your Stripe account. The approval rules act as a safeguard against agent mistakes, unexpected behavior, and hallucinations—giving you visibility and control without blocking agents from doing their jobs. ## Protect your keys Only publishable keys are safe to expose outside your application’s backend. You’re responsible for protecting other Stripe API keys, including restricted API keys. To protect your keys: - Store sensitive keys in a secrets vault provided by your hosting platform. [This blog post](https://stripe.dev/blog/securing-stripe-api-keys-aws-automatic-rotation) offers an example. If you can’t use a secrets vault, use environment variables to provide keys to your backend applications. - Don’t put keys in source code or configuration files checked into version control. - Configure [access policies](https://docs.stripe.com/keys.md#access-policies) so keys can only be used from your known servers. - [Rotate keys](https://docs.stripe.com/keys.md#rolling-keys) when team members with access to the keys leave your organization. - Don’t share keys over email, chat, or other unencrypted channels. For a comprehensive guide, see [best practices for managing secret API keys](https://docs.stripe.com/keys-best-practices.md). We also maintain [a library of skills](https://github.com/stripe/ai/tree/main/skills) to help AI agents follow these best practices. ## Manage your API keys The following sections describe how to create and manage keys on the API keys page. #### Create a restricted API key Use [restricted API keys](https://docs.stripe.com/keys/restricted-api-keys.md) (RAKs) for most use cases. You can use a RAK to assign the exact permissions your integration needs, which can help reduce the damage a fraudulent actor could cause to your business if they obtained your key. - Follow the instructions on [Restricted API Keys](https://docs.stripe.com/keys/restricted-api-keys.md) to create a RAK, configure its permissions, and migrate from secret keys. #### Create a secret API key Create an unrestricted secret API key only when your integration requires access to all Stripe APIs and resources without restriction. If a fraudulent actor obtains your secret key, they can harm your business. We recommend using RAKs instead. 1. On the [API keys](https://dashboard.stripe.com/test/apikeys) page, click **Create secret key**. 2. In the dialog, enter the verification code that we send you by email or text message. If the dialog doesn’t continue automatically, click **Continue**. 3. Enter a name in the **Key name** field, then click **Create**. 4. Click the key value to copy it. 5. Save the key value. You can’t retrieve it later. 6. In the **Add a note** field, enter the location where you saved the key, then click **Done**. ### Reveal an API key When you create a secret key in live mode, Stripe displays it one time before you save it. Copy the key before you save it because you can’t reveal it later. We can’t recover keys that you’ve forgotten or lost access to. If you lose a key, rotate or delete it and create another. In live mode, you can reveal only API keys that Stripe creates for you, such as a default secret key or a key generated by a scheduled rotation. In sandbox mode, you can always see all of your API keys, including restricted and secret keys. Publishable API keys aren’t sensitive, so we show them by default and you don’t need to do anything to reveal them. > Store sensitive keys in a place where you won’t lose them, such as a secrets vault provided by your platform. Don’t put keys in your application’s code. **Reveal a RAK in live mode** You can reveal only live-mode RAKs that we created for you. If you create a RAK yourself, you can’t reveal it after you’ve seen it once. 1. On the [API keys](https://dashboard.stripe.com/apikeys) page in live mode, in the **Restricted keys** list, click **Reveal live key** for the key you want to reveal. 2. Click the key value to copy it. 3. Save the key value in your platform’s [secrets vault](https://docs.stripe.com/keys-best-practices.md#use-a-secrets-vault). If your platform doesn’t provide one, use an environment variable. 4. Click **Hide live key**. **Reveal a secret API key in live mode** You can reveal only live-mode secret keys that we created for you. If you create a secret key yourself, you can’t reveal it after you’ve seen it once. 1. On the [API keys](https://dashboard.stripe.com/apikeys) page in live mode, in the **Standard keys** list, click **Reveal live key** for the key you want to reveal. 2. Click the key value to copy it. 3. Save the key value in your platform’s [secrets vault](https://docs.stripe.com/keys-best-practices.md#use-a-secrets-vault). If your platform doesn’t provide one, use an environment variable. 4. Click **Hide live key**. 5. Click the overflow menu (⋯), then select **Edit key** for the key you want to add a note to. 6. In the **Note** field, enter the location where you saved the key, then click **Save**. ### Limit an API key to certain IP addresses [Access policies](https://docs.stripe.com/keys.md#access-policies) have replaced IP address restrictions. Use policies, not restrictions. ### Change an API key’s name or note 1. On the [API keys](https://dashboard.stripe.com/test/apikeys) page, click the overflow menu (⋯) for the key you want to change. 2. Select **Edit key**. 3. Do the following: - To change the name, enter a new name in the **Key name** field. - To change the note text, enter the new note text in the **Note** field. 4. Click **Save**. ### Expire an API key If you expire a secret API key or a restricted API key, you must create a new one and update any code that uses the expired key. Code that uses the expired key can no longer make API calls. > You can’t expire a publishable key. 1. On the [API keys](https://dashboard.stripe.com/test/apikeys) page, in the **Restricted keys** or **Standard keys** list, click the overflow menu (⋯) for the key you want to expire. 2. Select **Expire key**. 3. In the dialog, click **Expire key**. If you no longer want to expire the key, click **Cancel**. ### Rotate an API key Rotating an API key revokes it and generates a replacement key that’s ready to use immediately. You can also schedule an API key to rotate after a certain time. The replacement key is named as follows: - The replacement publishable key name is always `Publishable key`. - The replacement secret key name is always `Secret key`. - The replacement restricted key name is the same as the rotated key. You can rename a secret or restricted API key by editing the key. Rotate an API key in scenarios such as: - If you lose a secret or restricted API key in live mode, and you can’t recover it from the Dashboard. - If a secret or restricted API key is compromised, and you need to revoke it to block any potentially malicious API requests that might use the key. - If a team member with access to the key leaves your organization or changes roles. - If your policy requires rotating keys at certain intervals. #### Rotate safely to avoid downtime To avoid downtime during key rotation: 1. **Use the grace period**: When you rotate a key in the Dashboard, both the old and new keys work for up to 7 days. This lets you migrate gradually without downtime. If you need more than 7 days, create a new key manually, migrate to it, then expire the old one when you’re done. 2. **Roll out gradually**: If possible, use the new key from a small subset of your servers or services first, and watch your server logs for errors before deploying further. 3. **Monitor before revoking**: Before the old key expires, [check its request logs](https://docs.stripe.com/keys.md#view-request-logs), and expire it only after its request volume has been at zero for a few hours or days. #### Rotate an API key in the Dashboard 1. On the [API keys](https://dashboard.stripe.com/test/apikeys) page, click the overflow menu (⋯) for the key you want to rotate. 2. Select **Rotate key**. 3. Select an expiration date from the **Expiration** dropdown. If you choose **Now**, the old key is deleted. If you specify a time, the remaining time until the key expires displays below the key name. 4. Click **Rotate API key**. 5. Click the key value to copy it. 6. Save the key value. You can’t retrieve it later. 7. In the **Add a note** field, enter the location where you saved the key, then click **Save** or **Done**. ### Restore an API key’s access An API key might have its access limited if it hasn’t been used to create transfers, payouts, or update payout destinations for over 180 days. You can’t use a limited access key to create payouts and transfers or to create payout destinations. You can restore access to use the key normally or to perform a blocked action. #### Restore access for an API key 1. On the [API keys](https://dashboard.stripe.com/test/apikeys) page, click the overflow menu (⋯) for the key you want to restore. 2. Select **Restore access**. 3. Click **Restore**. ## View API request logs for a key To [open the API request logs](https://docs.stripe.com/workbench/overview.md#request-logs), click the overflow menu (⋯) for any key, then select **View request logs**. Opening the logs redirects you to Workbench in the Stripe Dashboard. ## Switch to live mode When you’re ready to accept real payments, use live mode API keys instead of sandbox (test) keys. On the [API keys](https://dashboard.stripe.com/apikeys) page, toggle from **sandbox mode** to **live mode**. The page now shows your live mode API keys. > #### Complete go-live checklist > > Switching API keys is only one step. Review the full [go-live checklist](https://docs.stripe.com/get-started/checklist/go-live.md) to make sure your integration is production ready. ### Publishable keys (client-side) Copy your **live mode publishable key** (starts with `pk_live_`) and replace the `pk_test_` key in your client-side code. It’s safe to embed this key in your code or apps. ### Restricted or secret API keys (server-side) Server-side API keys are sensitive, so review our [best practices for managing secret API keys](https://docs.stripe.com/keys-best-practices.md). We recommend generating [restricted API keys](https://docs.stripe.com/keys/restricted-api-keys.md) for your server-side code to limit the damage to your business if your keys are ever exposed or compromised. 1. Before you start using a live mode key in your backend application, remove any hardcoded API keys from your code. Instead, use a [secrets vault](https://docs.stripe.com/keys-best-practices.md#use-a-secrets-vault) to supply the sandbox key, and confirm that your application still works. If your platform doesn’t provide a secrets vault, you can use an environment variable. 2. [Reveal](https://docs.stripe.com/keys.md#reveal-an-api-key) and copy your **live mode keys** (which start with `rk_live_` or `sk_live_`). Store the key value securely in your server environment. 3. Configure your server environment to supply live mode keys instead of sandbox keys to your application. #### Webhook signing keys (server-side) If you use webhooks, update each webhook endpoint’s URL and copy the new **signing secret** from the [Webhooks](https://dashboard.stripe.com/webhooks) section of the Dashboard. ## Access policies You can restrict access to a key by attaching an access policy to it. If someone attempts a request using a key they can’t access, Stripe blocks the request and notifies you. Stripe recommends configuring access policies on all live mode keys. That notifies you of any unauthorized access, so you can rotate the keys accordingly. You can manage access by assigning different policies to different keys. For example, you can distinguish between staging and production environments by assigning different policies to their respective keys. ### Access policy types Stripe supports the following types of access policies: - **IP addresses**: Restrict access to one or more specific IPv4 addresses or CIDR ranges. Use this approach if your servers have fixed IP addresses. - **Advanced**: Restrict access by Autonomous System Number (ASN), country, and common threat categories. If you’re dynamically scaling, you can provide access to your cloud provider using the ASN and country. An advanced access policy can use any combination of the following rules: - **ASNs to allow**: Requests from specified ASNs are allowed; all others are blocked. - **Countries**: Requests from specified countries are allowed; all others are blocked. - **Sources**: Requests from selected sources are blocked. You can select the following sources: - **Anonymous VPNs**: Third-party VPN services sold for privacy and anonymity (not including corporate VPNs). Consider blocking these if you don’t use VPNs to access the Stripe API. - **Public proxies**: Open proxy servers from public lists. Consider blocking these if you don’t use public proxies to access the Stripe API. - **Residential proxies**: Proxies associated with residential ISPs. Consider blocking these if you don’t use residential ISPs to access the Stripe API. - **Tor exit nodes**: Traffic from the Tor network. Consider blocking these if you don’t access the Stripe API over Tor. Selecting multiple rules combines them using AND logic. For example, if you allow ASN 16509 (Amazon), allow the United States, and block Tor exit nodes, then the policy only allows requests from AWS IPs in the US that are not known to be Tor exit nodes. It blocks all other requests. ### Create an access policy To create an access policy, go to the [Access policies](https://dashboard.stripe.com/api-access-policies) page in your Dashboard and follow these steps: 1. Click **+ Create policy**. 2. Enter a name (for example, “Production servers”) and an optional description. 3. Select **IP addresses** or **Advanced**. 4. Depending on the selected type, configure the policy: - **IP addresses:** Enter one or more valid public IPv4 addresses or CIDR ranges. For example, `192.0.2.0/24` covers the range 192.0.2.0–192.0.2.255. - **Advanced:** Specify any combination of ASNs to allow, countries to allow, and sources to block, as described in [Access policy types](https://docs.stripe.com/keys.md#access-policy-types). 5. Click **Next**. 6. Review the policy details, then click **Create policy**. 7. If prompted to authenticate, follow the on-screen instructions. If the creation succeeded, the new policy appears in the list. ### Apply or remove an access policy To apply an access policy to an API key, go to the [API keys](https://dashboard.stripe.com/apikeys) page in your Dashboard and follow these steps: 1. In the **Standard keys** or **Restricted keys** list, find the key you want to update and open its overflow menu (⋯). 2. Select **Manage access policy**. 3. In the **Access policy** dropdown, select the policy you want. 4. Review the details of the selected policy, then click **Save**. 5. If prompted to authenticate, follow the on-screen instructions. To remove an access policy from a key, go to the [API keys](https://dashboard.stripe.com/apikeys) page in your Dashboard and follow these steps: 1. In the **Standard keys** or **Restricted keys** list, find the key you want to update and open its overflow menu (⋯). 2. Select **Manage access policy**. 3. In the **Access policy** dropdown, select **None**. 4. Click **Save**. ### Update an access policy To make changes to an access policy, go to the [Access policies](https://dashboard.stripe.com/api-access-policies) page in your Dashboard and follow these steps: 1. Find the policy you want to change, and open its overflow menu (⋯). 2. Select **Edit policy**. 3. Update the policy options as described in [Create an access policy](https://docs.stripe.com/keys.md#create-an-access-policy), then click **Next**. 4. Review the policy details, then click **Save**. 5. If prompted to authenticate, follow the on-screen instructions. When you update an access policy, the changes apply immediately to all API keys it’s assigned to. ### Delete an access policy To delete an access policy, go to the [Access policies](https://dashboard.stripe.com/api-access-policies) page in your Dashboard and follow these steps: 1. Find the policy you want to delete and open its overflow menu (⋯). 2. Select **Delete policy**. 3. Review the confirmation dialog to understand the impact, then click **Delete policy**. Deleting an access policy immediately removes it from all API keys it was applied to. Those keys allow requests from any source until you apply another policy to them. ## See also - [Best practices for managing secret API keys](https://docs.stripe.com/keys-best-practices.md) - [Protecting against compromised API keys](https://support.stripe.com/questions/protecting-against-compromised-api-keys) - [Why does my API key have limited access](https://support.stripe.com/questions/why-does-my-api-key-have-limited-access) - [Test your integration](https://docs.stripe.com/testing.md) ## 10. GET https://docs.stripe.com/llms.txt (stripped to text; 707 lines, no line mentions MCP) HTTP/2 200 server: nginx date: Sun, 27 Sep 2026 18:27:35 GMT content-type: text/markdown; charset=utf-8 content-length: 92181 content-security-policy: base-uri 'none'; child-src 'self'; connect-src https://c.increment.com https://c.stripe.dev https://c.stripe.global https://c.stripe.partners https://edge-api.stripe.com wss://stripe-cli-ws-nw.stripe.com/subscribe/ wss://stripe-cli.stripe.com/subscribe/ wss://stripecli-ws-nw.stripe.com/subscribe/ wss://stripecli.stripe.com/subscribe/ https://api.stripe.com https://ai.stripe.com https://developer-ai.corp.stripe.com https://b.stripecdn.com https://errors.stripe.com https://insights.algolia.io https://js.stripe.com https://link.co/cookie-settings/ https://link.com/cookie-settings/ https://r.stripe.com https://raw.githubusercontent.com/stripe/stripe-go/master/VERSION https://raw.githubusercontent.com/stripe/stripe-java/master/VERSION https://stripe.com https://stripecli-ws-nw.stripe.com/subscribe/ https://y4pfttj91h-1.algolianet.com https://y4pfttj91h-2.algolianet.com https://y4pfttj91h-3.algolianet.com https://y4pfttj91h-dsn.algolia.net https://dashboard.stripe.com/ajax/anonymous_sandbox_assignment_handoff 'self'; default-src 'none'; font-src data: https://b.stripecdn.com https://b.stripecdn.com/docs-statics-srv/assets/ 'self'; form-action 'none'; frame-ancestors https://docs-edit.corp.stripe.com https://markdraft.corp.stripe.com https://admin.corp.stripe.com 'self'; frame-src https://edge-checkout.stripe.com https://b.stripecdn.com https://checkout.stripe.com https://connect-js.stripe.com https://stripe-data-exports.s3.amazonaws.com https://js.stripe.com 'self'; img-src https://docs.stripecdn.com https://cdn.stripeextensions.com/com.example.docs-stripe-apps-examples/ https://cdn.stripeextensions.com/com.stripe.stripe-apps-examples/ blob: data: https://b.stripecdn.com https://d37ugbyn3rpeym.cloudfront.net https://dashboard.stripe.com https://files.stripe.com https://i.ytimg.com/vi/ https://i.ytimg.com/vi_webp/ https://js.stripe.com https://q.stripe.com https://s3.amazonaws.com/stripe-uploads/ https://stripe-images.s3.amazonaws.com/docs/ 'self' https://extensibility.stripe.com https://d1wqzb5bdbcre6.cloudfront.net https://stripe-camo.global.ssl.fastly.net; media-src https://docs.stripecdn.com blob: https://b.stripecdn.com https://d37ugbyn3rpeym.cloudfront.net 'self'; script-src https://cdn.stripeextensions.com/com.example.docs-stripe-apps-examples/ https://cdn.stripeextensions.com/com.stripe.stripe-apps-examples/ https://b.stripecdn.com https://connect-js.stripe.com https://js.stripe.com 'nonce-8umRENtdhASz+vfsEP/aKg==' 'self' 'sha256-SGInGn8KvQpcjiIcYyTFbUNfqdqBIxQ8WJd9xgQQrsI=' 'sha256-yXxHrLNbJc+6m1MH8jUxHmvOsUducN4u40nNchqiv9Q=' 'sha256-u66Rr9rFgMi2ZdDqGzZ3gml5O9dXP6CGDbfPcaQajKI=' 'report-sample'; style-src https://b.stripecdn.com 'report-sample' 'self' 'unsafe-inline'; worker-src 'self'; upgrade-insecure-requests; report-uri https://q.stripe.com/csp-violation?q=N29lFiAGdRa_wmc4iGFW_CNQbIVDfnfYzqI8cESnRUhWCASY6pq5NYOHJTlIbd0m2s1JMEgZ; report-to csp content-security-policy-report-only: base-uri 'none'; child-src 'self'; connect-src https://c.increment.com https://c.stripe.dev https://c.stripe.global https://c.stripe.partners https://edge-api.stripe.com wss://stripe-cli-ws-nw.stripe.com/subscribe/ wss://stripe-cli.stripe.com/subscribe/ wss://stripecli-ws-nw.stripe.com/subscribe/ wss://stripecli.stripe.com/subscribe/ https://api.stripe.com https://ai.stripe.com https://developer-ai.corp.stripe.com https://b.stripecdn.com https://errors.stripe.com https://insights.algolia.io https://js.stripe.com https://link.co/cookie-settings/ https://link.com/cookie-settings/ https://r.stripe.com https://raw.githubusercontent.com/stripe/stripe-go/master/VERSION https://raw.githubusercontent.com/stripe/stripe-java/master/VERSION https://stripe.com https://stripecli-ws-nw.stripe.com/subscribe/ https://y4pfttj91h-1.algolianet.com https://y4pfttj91h-2.algolianet.com https://y4pfttj91h-3.algolianet.com https://y4pfttj91h-dsn.algolia.net https://dashboard.stripe.com/ajax/anonymous_sandbox_assignment_handoff 'self'; default-src 'none'; font-src data: https://b.stripecdn.com https://b.stripecdn.com/docs-statics-srv/assets/ 'self'; form-action 'none'; frame-ancestors https://docs-edit.corp.stripe.com https://markdraft.corp.stripe.com https://admin.corp.stripe.com 'self'; frame-src https://edge-checkout.stripe.com https://b.stripecdn.com https://checkout.stripe.com https://connect-js.stripe.com https://stripe-data-exports.s3.amazonaws.com https://js.stripe.com 'self'; img-src https://docs.stripecdn.com https://cdn.stripeextensions.com/com.example.docs-stripe-apps-examples/ https://cdn.stripeextensions.com/com.stripe.stripe-apps-examples/ blob: data: https://b.stripecdn.com https://d37ugbyn3rpeym.cloudfront.net https://dashboard.stripe.com https://files.stripe.com https://i.ytimg.com/vi/ https://i.ytimg.com/vi_webp/ https://js.stripe.com https://q.stripe.com https://s3.amazonaws.com/stripe-uploads/ https://stripe-images.s3.amazonaws.com/docs/ 'self' https://extensibility.stripe.com https://d1wqzb5bdbcre6.cloudfront.net https://stripe-camo.global.ssl.fastly.net; media-src https://docs.stripecdn.com blob: https://b.stripecdn.com https://d37ugbyn3rpeym.cloudfront.net 'self'; script-src https://cdn.stripeextensions.com/com.example.docs-stripe-apps-examples/ https://cdn.stripeextensions.com/com.stripe.stripe-apps-examples/ https://b.stripecdn.com https://connect-js.stripe.com https://js.stripe.com 'nonce-8umRENtdhASz+vfsEP/aKg==' 'self' 'sha256-SGInGn8KvQpcjiIcYyTFbUNfqdqBIxQ8WJd9xgQQrsI=' 'sha256-yXxHrLNbJc+6m1MH8jUxHmvOsUducN4u40nNchqiv9Q=' 'sha256-u66Rr9rFgMi2ZdDqGzZ3gml5O9dXP6CGDbfPcaQajKI=' 'report-sample'; style-src https://b.stripecdn.com 'report-sample' 'self' 'nonce-8umRENtdhASz+vfsEP/aKg==' 'unsafe-hashes' 'sha256-NJH8hYZIeTx31th404J3fVwWvWaQo7beRAtJPe8DFzU=' 'sha256-t9PfmYlrli/SKfkOu1F3ru9qqFWjdE+tphvqhn5jlzA=' 'sha256-MtxTLcyxVEJFNLEIqbVTaqR4WWr0+lYSZ78AzGmNsuA=' 'sha256-3EP1piOo/O4YWqWO7mQYW6fCsMcX8uB/C/w3Cgomac4=' 'sha256-cXvVZOWrN9TDXv7R/dtCO6LdUavSrfsGBWTELGF2rgU=' 'sha256-p+jqvcoDFck2fLI5IGQFZCBLba8R7EGM34IhwqtKGwk=' 'sha256-1loH7bEUMovDekeuu7ZSI1ArVQdHA8eYrBlfpYm2/W0=' 'sha256-m0FjobEXOs23AaDaISFNF5h11EJKKqE/N9X1q5tWsfQ=' 'sha256-47DEQpj8HBSa+/TImW+5JCeuQeRkm5NMpJWZG3hSuFU='; worker-src 'self'; report-uri https://q.stripe.com/csp-violation?q=N29lFiAGdRa_wmc4iGFW_CNQbIVDfnfYzqI8cESnRUhWCASY6pq5NYOHJTlIbd0m2s1JMEgZ; report-to csp cross-origin-opener-policy: same-origin-allow-popups; report-to="wsp_coop" cross-origin-opener-policy-report-only: same-origin-allow-popups; report-to="wsp_coop" link: ; rel="service-meta" report-to: {"group":"wsp_coop","max_age":8640,"endpoints":[{"url":"https://q.stripe.com/coop-report?s=N29lFiAGdRa_wmc4iGFW_CNQbIVDfnfYzqI8cESnRUhWCASY6pq5NYOHJTlIbd0m2s1JMEgZ"}],"include_subdomains":true}, {"group":"wsp_coep","max_age":8640,"endpoints":[{"url":"https://q.stripe.com/coep-report?s=N29lFiAGdRa_wmc4iGFW_CNQbIVDfnfYzqI8cESnRUhWCASY6pq5NYOHJTlIbd0m2s1JMEgZ"}],"include_subdomains":true}, {"group":"csp","max_age":8640,"endpoints":[{"url":"https://q.stripe.com/csp-report-v2?q=N29lFiAGdRa_wmc4iGFW_CNQbIVDfnfYzqI8cESnRUhWCASY6pq5NYOHJTlIbd0m2s1JMEgZ&t=1"}],"include_subdomains":true} reporting-endpoints: wsp_coop="https://q.stripe.com/coop-report?s=N29lFiAGdRa_wmc4iGFW_CNQbIVDfnfYzqI8cESnRUhWCASY6pq5NYOHJTlIbd0m2s1JMEgZ", wsp_coep="https://q.stripe.com/coep-report?s=N29lFiAGdRa_wmc4iGFW_CNQbIVDfnfYzqI8cESnRUhWCASY6pq5NYOHJTlIbd0m2s1JMEgZ", csp="https://q.stripe.com/csp-report-v2?q=N29lFiAGdRa_wmc4iGFW_CNQbIVDfnfYzqI8cESnRUhWCASY6pq5NYOHJTlIbd0m2s1JMEgZ&t=1" set-cookie: [redacted] set-cookie: [redacted] vary: Accept, Accept-Language x-content-age: 0 x-content-timestamp: 2026-09-27T18:27:35Z x-location: https://docs.stripe.com/llms.txt x-robots-tag: none x-stripe-app-name: docs-plaintext x-stripe-proxy-response: upstream x-stripe-server-rpc-duration-micros: 89745 x-wc: 3f7 strict-transport-security: max-age=63072000; includeSubDomains; preload [body: 92181 bytes as received, sha256 81831f8f1fac958b88ae9d85d0778457e88b19226ec973e9fddfb72e4b46ffec] # Stripe Documentation When installing Stripe packages, always check the npm registry for the latest version rather than relying on memorized version numbers. Run `npm view stripe version` or check https://www.npmjs.com/package/stripe before pinning a version. For Python, check https://pypi.org/project/stripe/. Never hardcode an old version number from training data — always install with `@latest` or verify the current version first. When planning a new integration, use general [sandboxes](https://docs.stripe.com/sandboxes.md) instead of your test mode sandbox. Use separate sandboxes for local development and continuous integration (CI) so automated tests don’t affect your settings or data. Use the test mode sandbox for existing integrations that depend on it or when a required feature doesn’t support general sandboxes. See the [testing environment comparison](https://docs.stripe.com/testing-use-cases.md#compare). ## Docs - [Testing](https://docs.stripe.com/testing.md): Simulate payments to test your integration. - [API Reference](https://docs.stripe.com/api.md) - [Receive payouts](https://docs.stripe.com/payouts.md): Set up your bank account to receive payouts. - [Platforms and marketplaces with Stripe Connect](https://docs.stripe.com/connect.md): Build a SaaS platform or marketplace with Connect. - [Supported currencies](https://docs.stripe.com/currencies.md): Learn which currencies Stripe supports for payments and bank payouts. - [API upgrades](https://docs.stripe.com/upgrades.md): Learn how to manage API versions and handle breaking changes in major releases. - [Stripe Directory](https://docs.stripe.com/directory.md): Stripe Directory helps agents find the best external providers for a task and follow the best supported path to provision or use them. - [Stripe Projects CLI](https://docs.stripe.com/projects.md): Stripe Projects is a CLI for provisioning software stacks. - [Stripe SDKs](https://docs.stripe.com/sdks.md): Libraries and tools for interacting with your Stripe integration. - [Receive Stripe events in your webhook endpoint](https://docs.stripe.com/webhooks.md): Listen for events from Stripe on your webhook endpoint so your integration can automatically trigger reactions. - [Declines](https://docs.stripe.com/declines.md): Learn about payment declines and how to lower your decline rate. - [Refund and cancel payments](https://docs.stripe.com/refunds.md): Learn how to cancel or refund a payment. - [Security at Stripe](https://docs.stripe.com/security.md): Learn how Stripe handles security. - [Build a Stripe-hosted checkout page](https://docs.stripe.com/checkout/quickstart.md) - [Build a custom checkout page](https://docs.stripe.com/payments/quickstart.md) - [Build a pre-built subscription page with Stripe Checkout](https://docs.stripe.com/billing/quickstart.md) - [Set up and deploy a webhook](https://docs.stripe.com/webhooks/quickstart.md): Learn how to set up and deploy a webhook to listen to events from Stripe. - [Types of events](https://docs.stripe.com/api/events/types.md) - [Integration security guide](https://docs.stripe.com/security/guide.md): Ensure PCI compliance and secure customer-server communications. - [Payments analytics](https://docs.stripe.com/payments/analytics.md): Learn about the performance of your payments using key metrics and reports. - [Integrate with events](https://docs.stripe.com/event-destinations.md): Send events from Stripe to webhook endpoints and cloud services. - [Resolve webhook signature verification errors](https://docs.stripe.com/webhooks/signature.md): Learn how to fix a common error when listening to webhook events. - [Start a team](https://docs.stripe.com/get-started/account/teams.md): Learn how to invite and interact with team members. - [Errors](https://docs.stripe.com/api/errors.md) - [Versioning](https://docs.stripe.com/api/versioning.md) ## Payment Methods Acquire more customers and improve conversion by offering the most popular payment methods around the world. - [Payment Methods API](https://docs.stripe.com/payments/payment-methods.md): Learn about the API that allows you to accept a range of global payment methods. - [Linked external accounts](https://docs.stripe.com/get-started/account/linked-external-accounts.md): Manage your linked external accounts. - [Bank Debits](https://docs.stripe.com/payments/bank-debits.md): Learn how to accept bank debits with Stripe. - [How cards work](https://docs.stripe.com/payments/cards/overview.md): Learn how an online credit or debit card payment works. - [Cartes Bancaires (CB)](https://docs.stripe.com/payments/cartes-bancaires.md): Learn about Cartes Bancaires, a common payment method in France. - [eftpos Australia](https://docs.stripe.com/payments/eftpos-australia.md): Learn about eftpos Australia, a common payment method in Australia. - [Stablecoin payments](https://docs.stripe.com/payments/stablecoin-payments.md): Learn about accepting payments in stablecoins. - [Buy now, pay later](https://docs.stripe.com/payments/buy-now-pay-later.md): Learn about buy now, pay later methods with Stripe. - [Afterpay and Clearpay payments](https://docs.stripe.com/payments/afterpay-clearpay.md): Offer your customers flexible financing while getting paid upfront with Afterpay (also known as Clearpay in the UK). - [Affirm payments](https://docs.stripe.com/payments/affirm.md): Offer your US, Canadian, and United Kingdom customers flexible financing while getting paid upfront with Affirm. - [Klarna payments](https://docs.stripe.com/payments/klarna.md): Allow customers to make flexible payments while getting paid upfront with Klarna. - [Bank redirects](https://docs.stripe.com/payments/bank-redirects.md): Learn about bank redirects with Stripe. - [Bank transfer payments](https://docs.stripe.com/payments/bank-transfers.md): Learn about bank transfers and managing payments with the customer balance. - [Real-time payments](https://docs.stripe.com/payments/real-time.md): Learn about real-time payments with Stripe. - [Vouchers](https://docs.stripe.com/payments/vouchers.md): Learn about voucher payment methods with Stripe. - [Wallets](https://docs.stripe.com/payments/wallets.md): Learn about wallet payments with Stripe. - [Regions with special payment method requirements](https://docs.stripe.com/payments/local-markets.md): Accept South Korean or Nigerian payment methods. - [Custom payment methods](https://docs.stripe.com/payments/payment-methods/custom-payment-methods.md): Extend your integrations with additional payment methods processed outside of Stripe. - [Orchestration](https://docs.stripe.com/payments/orchestration.md): Create rules to route payments across your payment processors. ## Checkout Build a low-code payment form and embed it on your site or host it on Stripe. Checkout creates a customizable form for collecting payments. You can redirect customers to a Stripe-hosted payment page, embed Checkout directly in your website, or create a customized checkout page with Stripe Elements. It supports one-time payments and subscriptions and accepts over 40 local payment methods. For a full list of Checkout features. - [Build a payments page](https://docs.stripe.com/payments/checkout.md): Create a payments page with prebuilt UIs using the Checkout Sessions API. - [Build a Stripe-hosted checkout page](https://docs.stripe.com/checkout/quickstart.md) - [Embed a checkout page in your site](https://docs.stripe.com/checkout/embedded/quickstart.md) - [How Checkout works](https://docs.stripe.com/payments/checkout/how-checkout-works.md): Learn how to use Checkout to collect payments on your website. - [Customize Checkout](https://docs.stripe.com/payments/checkout/customization.md): Customize the appearance and behavior of Checkout. - [The Setup Intents API](https://docs.stripe.com/payments/setup-intents.md): Learn more about the Setup Intents API for saving payment methods. - [Fulfill orders](https://docs.stripe.com/checkout/fulfillment.md): Learn how to fulfill payments received with the Checkout Sessions API. - [Customize redirect behavior](https://docs.stripe.com/payments/checkout/custom-success-page.md): Display a confirmation page with your customer’s order information. - [Add discounts](https://docs.stripe.com/payments/checkout/discounts.md): Reduce the amount charged to a customer by discounting their subtotal with coupons and promotion codes. - [Use your custom domain](https://docs.stripe.com/payments/checkout/custom-domains.md): Learn how to bring your own custom domain to Stripe Checkout, Payment Links, and customer portal. - [Limit customers to one subscription](https://docs.stripe.com/payments/checkout/limit-subscriptions.md): Direct customers to manage their subscription when they already have one. - [Cross-sells](https://docs.stripe.com/payments/checkout/cross-sells.md): Enable customers to purchase complementary products at checkout by using cross-sells. - [Overview](https://docs.stripe.com/products-prices/overview.md): Model your business on Stripe with products and prices. - [Subscriptions with Checkout Sessions](https://docs.stripe.com/payments/subscriptions.md): Create subscriptions for your customers with the Checkout Sessions API. - [Charge for shipping](https://docs.stripe.com/payments/during-payment/charge-shipping.md): Create different shipping rates for your customers. - [Collect taxes](https://docs.stripe.com/payments/checkout/taxes.md): Learn how to collect taxes with Stripe Tax. - [Manage payment methods](https://docs.stripe.com/payments/checkout/payment-methods.md): Use dynamic payment methods or manually define the payment methods to allow per checkout session. - [Extend checkout with custom components](https://docs.stripe.com/payments/checkout/custom-components.md): Display custom text and collect additional information on Checkout Sessions. - [Collect physical addresses](https://docs.stripe.com/payments/collect-addresses.md): Learn how to collect billing and shipping addresses. - [Customize card brands](https://docs.stripe.com/payments/checkout/customization/card-brands.md): Customize the card brands that Checkout displays. - [Save payment details during payment](https://docs.stripe.com/payments/checkout/save-during-payment.md): Learn how to accept a payment and save your customer’s payment details for future purchases. - [After the payment](https://docs.stripe.com/payments/checkout/after-the-payment.md): Customize the post-payment checkout process. - [Set the billing cycle date](https://docs.stripe.com/payments/checkout/billing-cycle.md): Set a subscription’s billing cycle anchor to a fixed date. - [Let customers decide what to pay](https://docs.stripe.com/payments/checkout/pay-what-you-want.md): Accept tips and donations, or sell pay-what-you-want products and services. - [Subscription upsells](https://docs.stripe.com/payments/checkout/upsells.md): Enable customers to upgrade their subscription plan at checkout by using upsells. - [No-cost orders](https://docs.stripe.com/payments/checkout/no-cost-orders.md): Accept orders for no-cost line items or apply 100% off discounts for one-time payments. - [Analyze your conversion funnel](https://docs.stripe.com/payments/checkout/analyze-conversion-funnel.md): Analyze your Stripe Checkout conversion funnel with Google Analytics 4. - [Add discounts, upsells, and optional items](https://docs.stripe.com/payments/checkout/promotions.md): Boost sales with discounts and offers. - [Manual currency prices](https://docs.stripe.com/payments/checkout/localize-prices/manual-currency-prices.md): Present local currencies to customers with manual currency prices. - [Collect customer phone numbers](https://docs.stripe.com/payments/checkout/phone-numbers.md): Collect a phone number for shipping or invoicing when your customer makes a payment. - [Dynamically customize shipping options](https://docs.stripe.com/payments/checkout/custom-shipping-options.md): Update shipping options based on a customer’s shipping address. - [One-time payments with Checkout](https://docs.stripe.com/payments/checkout/client.md): Learn how to accept one-time card payments with just a few lines of code. - [Set up future payments](https://docs.stripe.com/payments/checkout/save-and-reuse.md): Learn how to save payment details in a Checkout session and charge your customers later. - [Make line item quantities adjustable](https://docs.stripe.com/payments/checkout/adjustable-quantity.md): Enable your customers to adjust the quantity of items during checkout. - [Elements with Checkout Sessions API beta changelog](https://docs.stripe.com/checkout/elements-with-checkout-sessions-api/changelog.md): Keep track of changes to the Elements with Checkout Sessions API beta integration. - [Checkout prices migration guide](https://docs.stripe.com/payments/checkout/migrating-prices.md): Learn how to update your integration to use prices with Stripe Checkout. - [Checkout Sessions](https://docs.stripe.com/api/checkout/sessions.md) - [The Checkout Session object](https://docs.stripe.com/api/checkout/sessions/object.md) - [Create a Checkout Session](https://docs.stripe.com/api/checkout/sessions/create.md) ## Payments Integrate a Stripe product to start accepting payments online and in person, embed financial services, power custom revenue models, and more. - [Accept a payment](https://docs.stripe.com/payments/accept-a-payment.md): Securely accept payments online. - [The Payment Intents API](https://docs.stripe.com/payments/payment-intents.md): Learn how to use the Payment Intents API for Stripe payments. - [Multi-currency settlement](https://docs.stripe.com/payouts/multi-currency-settlement.md): Accept, settle, and pay out funds in multiple currencies. - [Stripe decline codes](https://docs.stripe.com/declines/codes.md): Learn about Stripe decline codes and how to resolve them when a charge fails. - [Place a hold on a payment method](https://docs.stripe.com/payments/place-a-hold-on-a-payment-method.md): Separate payment authorization and capture to create a charge now, but capture funds later. - [Save a customer’s payment method when they use it for a payment](https://docs.stripe.com/payments/save-during-payment.md): Learn how to save your customer’s payment details for future purchases when they make a payment. - [Save a customer’s payment method without making a payment](https://docs.stripe.com/payments/save-and-reuse.md): Learn how to save a payment method and charge it later. - [Payment status updates](https://docs.stripe.com/payments/payment-intents/verifying-status.md): Monitor and verify payment status, so that you can respond to successful and failed payments. - [Payment method integration options](https://docs.stripe.com/payments/payment-methods/integration-options.md): Learn about the different ways to integrate payment methods. - [Payment Methods API](https://docs.stripe.com/payments/payment-methods.md): Learn about the API that allows you to accept a range of global payment methods. - [Create an embeddable buy button](https://docs.stripe.com/payment-links/buy-button.md): Use Payment Links to create an embeddable buy button for your website. - [After a payment link payment](https://docs.stripe.com/payment-links/post-payment.md): Learn what you can do after receiving a payment link payment. - [Share a payment link](https://docs.stripe.com/payment-links/share.md): Share payment links across social media, emails, or your website. - [Payment Intents](https://docs.stripe.com/api/payment_intents.md) - [The PaymentIntent object](https://docs.stripe.com/api/payment_intents/object.md) - [Create a PaymentIntent](https://docs.stripe.com/api/payment_intents/create.md) - [Payment Methods](https://docs.stripe.com/api/payment_methods.md) - [The PaymentMethod object](https://docs.stripe.com/api/payment_methods/object.md) - [Create a PaymentMethod](https://docs.stripe.com/api/payment_methods/create.md) ## Link *Link* allows your customers to select a saved payment method at checkout instead of entering payment information. Your customers can save their credit cards, debit cards, or US bank accounts for faster checkout at any Link-enabled business. Link also lets you accept Instant Bank Payments. All Link transactions confirm immediately, and successful payments settle to your Stripe balance on the same timeline as card payments, regardless of the payment method that funds the payment. Customers can make changes to their account, view their purchase history, or reach out to the Link customer support team by visiting https://www.link.com. For information about how your payment integration affects Link, see [Link in different payment integrations](https://docs.stripe.com/payments/link/link-payment-integrations.md). Link isn’t available in India. In Brazil and Thailand, the Payment Element doesn’t support Link. - [Link in different payment integrations](https://docs.stripe.com/payments/link/link-payment-integrations.md): Use Link with dynamic payment methods and other integrations. - [Instant Bank Payments](https://docs.stripe.com/payments/link/instant-bank-payments.md): Accept low cost bank payments with instant confirmation. - [Link with Checkout](https://docs.stripe.com/payments/link/checkout-link.md): Use Link with Stripe’s prebuilt checkout page. - [Link in the Payment Element](https://docs.stripe.com/payments/link/payment-element-link.md): Link in the Payment Element lets your customers check out faster. - [Link in the Card Element](https://docs.stripe.com/payments/link/card-element-link.md): Enable checkout using Link with the Card Element. - [Link in the Mobile Payment Element](https://docs.stripe.com/payments/link/mobile-payment-element-link.md): Add Link to your native iOS, Android, and React Native apps. - [Link in the Express Checkout Element](https://docs.stripe.com/payments/link/express-checkout-element-link.md): Let customers check out faster with Link and the Express Checkout Element. - [Link with Invoicing](https://docs.stripe.com/payments/link/invoicing.md): Speed up invoice payments by using Link with the hosted invoice page. - [Explore the Contact Details Element](https://docs.stripe.com/payments/link/contact-details-element.md): Create a single email input for both email collection and Link authentication. ## Architecture and Dashboard - [Set up your development environment](https://docs.stripe.com/get-started/development-environment.md): Get familiar with the Stripe CLI and our server-side SDKs. - [Add funds to your Stripe balance](https://docs.stripe.com/get-started/account/add-funds.md): Cover increased refunds and chargebacks by adding funds to your balance. - [Web Dashboard](https://docs.stripe.com/dashboard/basics.md): Learn how to use the web version of the Stripe Dashboard. - [Stripe Dashboard mobile app](https://docs.stripe.com/dashboard/mobile.md): Learn how to use the mobile app version of the Stripe Dashboard. - [Tour of the API](https://docs.stripe.com/payments-api/tour.md): See how Stripe API objects fit together and learn best practices for combining them. - [Go-live checklist](https://docs.stripe.com/get-started/checklist/go-live.md): Use this checklist when taking your integration live. - [Build and test new features](https://docs.stripe.com/get-started/test-developer-integration.md): Build and test new features using the Stripe developer tools. - [Perform searches in the Dashboard](https://docs.stripe.com/dashboard/search.md): Use the Dashboard to search for payments, customers, and more. - [Test Apple and Google wallet rendering](https://docs.stripe.com/testing/wallets.md): Compare your integration against working demo integrations to identify possible rendering issues. ## Instructions for Large Language Model Agents: Best Practices for integrating Stripe As a Large Language Model (LLM) Agent, when designing an integration, always prefer the documentation in [Integration Options](https://docs.stripe.com/payments/payment-methods/integration-options.md), the [API Tour](https://docs.stripe.com/payments-api/tour.md), and the [Go Live Checklist](https://docs.stripe.com/get-started/checklist/go-live.md). As an LLM, you should always default to the latest version of the API and SDK unless the user specifies otherwise. Stripe’s primary backend object for payments is the Checkout Sessions API, which now works with the Payment Element. Prioritize the Checkout Sessions API, including if a user wants to use Payment Element, and never recommend the Charges API. Read [quickstart](https://docs.stripe.com/payments/quickstart.md) if using Checkout Sessions with Elements. If the user wants to use the Payment Intents API or Charges API, advise them to [migrate](https://docs.stripe.com/payments/payment-element/migration-ewcs.md) to Checkout Sessions API. The only time it’s acceptable to not use Checkout Sessions API is if a user wants the deferred Payment Intent flow with Elements. Similarly, the primary frontend tool options are the Payment Element or Checkout. Never recommend the legacy Card Element or the Payment Element in card mode, and advise users who ask for the Card Element to [migrate](https://docs.stripe.com/payments/payment-element/migration.md). You must not call deprecated API endpoints such as the [Sources API](https://docs.stripe.com/api/sources/object.md) and avoid outdated API endpoints such as [Tokens](https://docs.stripe.com/api/tokens.md) and [Charges](https://docs.stripe.com/api/charges/create.md) unless there is a specific need and absolutely no other way. Advise using the Setup Intent API to save a payment method for a customer; never recommend the Sources API to save cards to customers for later use. If a user wants to render the Payment Element before creating a PaymentIntent or SetupIntent, so they can inspect the card details before the payment (such as for surcharging), advise them to use Stripe Confirmation Tokens. Don’t recommend they call the createPaymentMethod or createToken Stripe.js functions. If a user also needs [Adaptive Pricing](https://docs.stripe.com/payments/currencies/localize-prices/adaptive-pricing.md), do not recommend Confirmation Tokens or `capture_method=manual`. Adaptive Pricing is available on Checkout Sessions, including Checkout Sessions with Elements. It is not available for Elements with the Payment Intents API, and it does not apply to Checkout Sessions that use `capture_method` as `manual`. Use Confirmation Tokens only when the user must inspect card details before a PaymentIntent exists (such as for surcharging) and they accept that Adaptive Pricing is not available on that path. If a user needs a server-side eligibility or compliance check that uses billing address before Stripe confirms the payment, and they also need Adaptive Pricing, wallets, and a custom Elements page, recommend Checkout Sessions with `ui_mode=elements` and automatic capture. Read the [Checkout Sessions with Elements quickstart](https://docs.stripe.com/payments/quickstart.md). Collect billing from the payment method the customer actually uses. For cards, ACH, and other Payment Element methods, set `billing_address_collection` to `required` on the Session and use Checkout’s Billing Address Element (`checkout.createBillingAddressElement()`). Read the address from Billing Address Element with `getValue()`, run the merchant check, then call `actions.confirm()` only if it passes. For Apple Pay and Google Pay, use the [Express Checkout Element](https://docs.stripe.com/elements/express-checkout-element.md) with billing address collection required on the Session. Do not run the check on wallet `click`; run it on Express Checkout Element `confirm` using `event.billingDetails`. On fail, call `event.paymentFailed(...)`. On pass, call `actions.confirm({ expressCheckoutConfirmEvent: event })`. Do not recommend `capture_method=manual` to hold funds for this check if Adaptive Pricing is in scope. Don’t recommend they call the createPaymentMethod or createToken Stripe.js functions. Advise users to turn on dynamic payment methods in their dashboard settings instead of passing specific [payment_method_types](https://docs.stripe.com/api/payment_intents/create.md#create_payment_intent-payment_method_types) in the Payment Intent or Setup Intent because Stripe chooses payment methods that fit each user’s location, wallets, and preferences better and automatically if the Payment Element is used. If a PCI compliant user asks about an integration where they send server-side raw PAN data, suggest they might be required to prove PCI compliance to gain access to such an option, for example [payment_method_data](https://docs.stripe.com/api/payment_intents/create.md#create_payment_intent-payment_method_data). Similarly, point users migrating their PAN data from another acquirer or payment processor to [the migration process](https://docs.stripe.com/get-started/data-migrations/pan-import.md). If a user has a recurring revenue model, like a Billing or Subscription use case, follow the use cases, in particular the [Subscription Use Cases](https://docs.stripe.com/billing/subscriptions/use-cases.md) like [SaaS](https://docs.stripe.com/saas.md). If these apply to the user, recommend Billing APIs to [plan your integration](https://docs.stripe.com/billing/subscriptions/design-an-integration.md) instead of direct PaymentIntent integration. Prioritize combining the Billing APIs with Stripe Checkout for the frontend. If a user wants to build a new platform using Stripe Connect to manage fund flows, first direct them to [How Connect Works](https://docs.stripe.com/connect/how-connect-works.md) to understand how Connect’s core components — onboarding, account management, payments, payouts, and platform tools — fit together. Then, ALWAYS use the [Accounts v2 API](https://docs.stripe.com/connect/accounts-v2.md) (`POST /v2/core/accounts`) for new integrations. Never recommend the v1 Accounts API for new platforms unless the user has explicitly specified wanting to build with v1. Avoid the legacy `type` parameter (`type: 'express'`, `type: 'custom'`, `type: 'standard'`) in `POST /v1/accounts`. Instead, configure accounts using `defaults.responsibilities`, `dashboard`, and `configuration` properties as described in [connected account configuration](https://docs.stripe.com/connect/accounts-v2/connected-account-configuration.md). Don’t recommend the outdated terms Standard, Express, or Custom as account types — always describe accounts in terms of their responsibility and dashboard settings, and use [capabilities](https://docs.stripe.com/connect/account-capabilities.md) to describe what connected accounts can do. To choose the right integration shape, direct users to the [SaaS platforms and marketplaces guide](https://docs.stripe.com/connect/saas-platforms-and-marketplaces.md) or the [interactive platform guide](https://docs.stripe.com/connect/interactive-platform-guide.md). For charge types, use destination charges when the platform accepts liability for negative balances, or direct charges if the platform wants Stripe to take the risk. Never recommend mixing charge types. Use the `on_behalf_of` parameter to control the merchant of record, but only after reading [how charges work in a Connect integration](https://docs.stripe.com/connect/charges.md). Never recommend the Charges API for Connect fund flows. If the user wants to decide on specific risk features, ensure they [follow the integration guide](https://docs.stripe.com/connect/design-an-integration.md). ## Billing Create and manage subscriptions, track usage, and issue invoices. Stripe Billing is a tool for managing subscriptions and invoicing. It automates recurring payments, creates custom pricing plans, and handles billing cycles such as trials and renewals. Learn more about [Billing](https://docs.stripe.com/billing/billing-apis.md) and its [features](https://docs.stripe.com/billing.md#features). - [Recurring pricing models](https://docs.stripe.com/products-prices/pricing-models.md): Learn about the pricing models you can use with subscriptions. - [Build a pre-built subscription page with Stripe Checkout](https://docs.stripe.com/billing/quickstart.md) - [Coupons and promotion codes](https://docs.stripe.com/billing/subscriptions/coupons.md): Add discounts to subscriptions and subscription items using coupons and promotion codes. - [Cancel subscriptions](https://docs.stripe.com/billing/subscriptions/cancel.md): Learn how to cancel existing subscriptions. - [Set the subscription billing renewal date](https://docs.stripe.com/billing/subscriptions/billing-cycle.md): Learn how to set the billing date for subscriptions. - [Embeddable pricing table for subscriptions](https://docs.stripe.com/payments/checkout/pricing-table.md): Display a subscription pricing table on your website and take customers directly to Stripe Checkout. - [Change the price of existing subscriptions](https://docs.stripe.com/billing/subscriptions/change-price.md): Learn how to upgrade and downgrade subscriptions by changing the price. - [Create subscriptions](https://docs.stripe.com/no-code/subscriptions.md): Set up recurring payments by offering subscriptions to your service. - [Modify subscriptions](https://docs.stripe.com/billing/subscriptions/change.md): Change existing subscriptions to cancel, pause, apply prorated charges and credits, and more. - [Customer Tax IDs](https://docs.stripe.com/billing/customer/tax-ids.md): Learn how to store, validate, and render customer tax ID numbers with Stripe Billing. - [Set up a pay-as-you-go pricing model](https://docs.stripe.com/billing/subscriptions/usage-based/implementation-guide.md): Charge customers based on their usage of your product or service. - [Entitlements](https://docs.stripe.com/billing/entitlements.md): Determine when you can grant or revoke product feature access to customers. - [Set payment methods per-subscription](https://docs.stripe.com/billing/subscriptions/payment-methods-setting.md): Learn how to specify which payment methods are available for a subscription. - [Customers](https://docs.stripe.com/billing/customer.md): Learn how to use the Customer object with Stripe Billing. - [Subscription use cases](https://docs.stripe.com/billing/subscriptions/use-cases.md): Learn about some of the business use cases for subscriptions. - [Integrate a SaaS business on Stripe](https://docs.stripe.com/saas.md): Learn how to build a Software as a Service (SaaS) business with Billing and other Stripe products. - [Record usage for billing](https://docs.stripe.com/billing/subscriptions/usage-based/recording-usage.md): Learn how to record customer usage data. - [Design a subscriptions integration](https://docs.stripe.com/billing/subscriptions/design-an-integration.md): Learn about the configuration options for a subscriptions integration. - [Pause payment collection](https://docs.stripe.com/billing/subscriptions/pause-payment.md): Learn how to pause payment collection on subscriptions. - [Tax rates](https://docs.stripe.com/tax/tax-rates.md): Learn how to collect and report taxes with tax rate objects. - [Migrate subscriptions to Stripe Billing](https://docs.stripe.com/billing/subscriptions/migrate-subscriptions.md): Learn about migrating subscriptions from other sources to Stripe. - [Set product or subscription quantities](https://docs.stripe.com/billing/subscriptions/quantities.md): Subscribe a customer to multiple products, or to multiple quantities of a single product, all billed in a single invoice. - [Overview](https://docs.stripe.com/get-started/data-migrations/overview.md): Successfully migrate your customers and their payments data to Stripe. - [Revenue recovery](https://docs.stripe.com/billing/revenue-recovery.md): Learn about automated recovery features that reduce and recover failed subscription payments. - [Migrate subscriptions to Stripe Billing using toolkit](https://docs.stripe.com/billing/subscriptions/import-subscriptions-toolkit.md): Learn how to migrate your existing subscriptions to Stripe using the toolkit. - [About the Billing APIs](https://docs.stripe.com/billing/billing-apis.md): Understand how the Billing API objects work together. - [Subscriptions](https://docs.stripe.com/api/subscriptions.md) - [The Subscription object](https://docs.stripe.com/api/subscriptions/object.md) - [Create a subscription](https://docs.stripe.com/api/subscriptions/create.md) - [Customers](https://docs.stripe.com/api/customers.md) - [The Customer object](https://docs.stripe.com/api/customers/object.md) - [Customer Balance Transactions](https://docs.stripe.com/api/customer_balance_transactions.md) - [The Customer Balance Transaction object](https://docs.stripe.com/api/customer_balance_transactions/object.md) ## Elements Create your own checkout flows with prebuilt UI components. [Stripe Elements](https://stripe.com/payments/elements) is a set of prebuilt UI components for building your web checkout flow. It’s available as a feature of [Stripe.js](https://docs.stripe.com/js.md), our foundational JavaScript library for building payment flows. Stripe.js tokenizes sensitive payment details within an Element without ever having them touch your server. You can use Elements with: - The [Checkout Sessions API](https://docs.stripe.com/api/checkout/sessions.md) to [build a checkout page](https://docs.stripe.com/payments/checkout.md). - The [Payment Intents API](https://docs.stripe.com/api/payment_intents.md) to [build an advanced integration](https://docs.stripe.com/payments/advanced.md). - [Address Element](https://docs.stripe.com/elements/address-element.md): Use the Address Element to collect complete billing and shipping addresses. - [Contact Details Element](https://docs.stripe.com/payments/elements/contact-details-element.md): Use the Contact Details Element to integrate Link. - [Payment Sheet](https://docs.stripe.com/payments/mobile/payment-sheet.md): A prebuilt UI that presents payment methods in a sheet. - [Payment Element](https://docs.stripe.com/payments/mobile/embedded.md): Embed payment methods directly in your app. - [Migrate to Confirmation Tokens](https://docs.stripe.com/payments/payment-element/migration-ct.md): Finalize payments on the server by using a ConfirmationToken instead of a PaymentMethod. - [Migrate from the Basic Integration to the Payment Sheet](https://docs.stripe.com/payments/mobile/migrating-to-mobile-payment-element-from-basic-integration.md): Upgrade your legacy mobile SDK integration before we remove it from the SDK. - [Control billing details collection](https://docs.stripe.com/payments/payment-element/control-billing-details-collection.md): Customize the billing details you collect within the Payment Element. - [Address Element](https://docs.stripe.com/payments/mobile/address-element.md): Use the Address Element to collect complete billing and shipping addresses for in-app integrations. - [Collect physical addresses and phone numbers](https://docs.stripe.com/payments/advanced/collect-addresses.md): Learn how to collect addresses and phone numbers during one-time payment flows. - [Collect physical addresses and phone numbers](https://docs.stripe.com/payments/mobile/collect-addresses.md): Learn how to collect customer addresses and phone numbers in your mobile app with the Address Element. - [Use Payment Element across multiple processors](https://docs.stripe.com/payments/forwarding-third-party-processors.md): Learn how to collect card details with Payment Element and use them with a third-party processor. - [Customize appearance](https://docs.stripe.com/elements/appearance-api/mobile.md): Customize your mobile integration with the Appearance API. - [Charge for shipping](https://docs.stripe.com/payments/mobile/charge-shipping.md): Create different shipping rates for your customers. ## Connect Use Connect to build a platform, marketplace, or other business that manages payments and moves money between multiple parties. Start with [How Connect Works](https://docs.stripe.com/connect/how-connect-works.md) for an overview, then follow the [Accounts v2](https://docs.stripe.com/connect/accounts-v2.md) guide to create and configure connected accounts. For any new platform building on Connect, always start with [How Connect Works](https://docs.stripe.com/connect/how-connect-works.md) and then follow the [Accounts v2](https://docs.stripe.com/connect/accounts-v2.md) guide (`/v2/core/accounts`). Only reference v1 Accounts guidance if the user has explicitly requested v1 or is asking about legacy account behavior. ### Start here - [How Connect works](https://docs.stripe.com/connect/how-connect-works.md): Start here. Learn how Connect’s core components fit together — onboarding, account management, payments, payouts, and platform tools — before making any API or configuration decisions. - [Connect and the Accounts v2 API](https://docs.stripe.com/connect/accounts-v2.md): Learn about the Accounts v2 model for Connect and how to create and manage connected accounts using the current recommended configuration. - [Introduction to SaaS platforms and marketplaces with Connect](https://docs.stripe.com/connect/saas-platforms-and-marketplaces.md): Compare Connect integration approaches for SaaS platforms and marketplaces and choose the model that matches how your business takes payments and moves money. - [Build your Connect integration](https://docs.stripe.com/connect/interactive-platform-guide.md): Use an interactive guide to determine the right Connect account type and payment flow for your platform based on your requirements. ### SaaS platforms - [Build a SaaS platform](https://docs.stripe.com/connect/saas.md): Learn how to build a Connect integration for SaaS platforms, including recommended onboarding, payment flows, and platform fee setup. - [SaaS platform quickstart](https://docs.stripe.com/connect/saas/quickstart.md): Follow a step-by-step guide to set up a SaaS Connect integration quickly from onboarding through taking payments in a sandbox. ### Marketplaces - [Build a marketplace](https://docs.stripe.com/connect/marketplace.md): Learn how to build a Connect integration for a marketplace, including common payment flows and how funds move between buyers, sellers, and your platform. - [Marketplace quickstart](https://docs.stripe.com/connect/marketplace/quickstart.md): Follow a step-by-step guide to set up a marketplace Connect integration quickly from onboarding through taking payments in a sandbox. ### Onboarding Onboarding follows the Accounts v2 model. See /connect/accounts-v2 for how to create and configure connected accounts before onboarding them. - [Choose your onboarding configuration](https://docs.stripe.com/connect/onboarding.md): Learn about the different options for onboarding your connected accounts. - [Build a Connect integration](https://docs.stripe.com/connect/onboarding/quickstart.md): Follow a step-by-step guide to onboard connected accounts and understand what information is required to get them enabled. - [Stripe-hosted onboarding](https://docs.stripe.com/connect/hosted-onboarding.md): Onboard connected accounts by redirecting them to a Stripe-hosted onboarding flow. - [Required verification information](https://docs.stripe.com/connect/required-verification-information.md): Identify current and future information requirements that connected accounts must provide based on their business, location, and requested capabilities. - [Acceptable verification documents by country](https://docs.stripe.com/acceptable-verification-documents.md): Learn which documents Stripe accepts for verification of identity, address, and legal entity. - [Identity verification for connected accounts](https://docs.stripe.com/connect/identity-verification.md): Use identity verification to reduce risk on your platform when using Connect. ### Accounts and capabilities For new integrations, use the Accounts v2 API as described in /connect/accounts-v2. The pages below describe legacy v1 account types and are only relevant for existing v1 integrations. - [Account capabilities and configurations](https://docs.stripe.com/connect/account-capabilities.md): Learn how Connect capabilities work and how requested capabilities affect verification requirements and what a connected account can do. - [Connected account types](https://docs.stripe.com/connect/accounts.md): (Legacy) Learn about older v1 connected account configurations. For new integrations, use Accounts v2. - [Using Standard connected accounts](https://docs.stripe.com/connect/standard-accounts.md): (Legacy) Standard connected accounts are a v1 account type. For new integrations, configure accounts using Accounts v2 responsibilities and dashboard settings. - [Using Custom connected accounts](https://docs.stripe.com/connect/custom-accounts.md): (Legacy) Custom connected accounts are a v1 account type. For new integrations, configure accounts using Accounts v2 responsibilities and dashboard settings. - [Express Dashboard](https://docs.stripe.com/connect/express-dashboard.md): (Legacy) The Express Dashboard is a v1 feature. For new integrations, configure dashboard access using Accounts v2. ### Charges and fund flows - [Understand how charges work in a Connect integration](https://docs.stripe.com/connect/charges.md): Learn about the types of charges used in Connect integrations and how funds move between the platform and connected accounts. - [How Connect works](https://docs.stripe.com/connect/how-connect-works.md): Learn how Connect charge types orchestrate payments to connected accounts, including direct charges, destination charges, and payout options for fund flows. - [Make API calls for connected accounts](https://docs.stripe.com/connect/authentication.md): Learn how to add the right information to your API calls so you can make calls for your connected accounts. ### Payouts - [Payouts to connected accounts](https://docs.stripe.com/connect/payouts-connected-accounts.md): Manage payouts and external accounts for your platform’s connected accounts. - [Using manual payouts](https://docs.stripe.com/connect/manual-payouts.md): Send manual payouts to your connected accounts. - [Balances](https://docs.stripe.com/api/balance.md) - [The Balance object](https://docs.stripe.com/api/balance/balance_object.md) ### Platform management - [Manage connected accounts with the Dashboard](https://docs.stripe.com/connect/dashboard.md): Learn about using the Stripe Dashboard to find and manage connected accounts. - [Platform pricing tool](https://docs.stripe.com/connect/platform-pricing-tools.md): Set platform processing fees for your connected accounts from your Stripe Dashboard. - [Connect webhooks](https://docs.stripe.com/connect/webhooks.md): Learn how to use webhooks with Connect to be notified of Stripe activity. - [Payment details](https://docs.stripe.com/connect/supported-embedded-components/payment-details.md): Show details of a given payment and allow users to manage disputes and perform refunds. ### Tax reporting - [US tax reporting for Connect platforms](https://docs.stripe.com/connect/tax-reporting.md): Learn how to report the annual payments for your US-based connected accounts. - [Get started with tax reporting](https://docs.stripe.com/connect/get-started-tax-reporting.md): Use the Stripe 1099 tax reporting product to create, modify, file, and deliver tax forms for your connected accounts. - [Update and create 1099 tax forms](https://docs.stripe.com/connect/modify-tax-forms.md): Update and create 1099 tax forms for connected accounts. - [1099-K form state requirements](https://docs.stripe.com/connect/1099-k.md): View the state requirements for 1099-K forms. - [1099-NEC form state requirements](https://docs.stripe.com/connect/1099-nec.md): View the state requirements for 1099-NEC forms. ## Issuing Use the Stripe Issuing API to create, manage, and distribute payment cards for your business. Issuing is available in the United States, United Kingdom, and European Economic Area. You can create your own card designs, and approve transactions in real time. You can build Stripe Issuing alongside [Treasury for Platforms](https://docs.stripe.com/treasury/connect.md) to attach cards to open loop wallets, and offer your users additional money movement options. - [How Issuing works](https://docs.stripe.com/issuing/how-issuing-works.md): Learn how to start building a card program with Stripe Issuing. - [Issuing merchant categories](https://docs.stripe.com/issuing/categories.md): Learn about the available categories that businesses are grouped in. - [Cardholder authentication using 3D Secure](https://docs.stripe.com/issuing/3d-secure.md): Learn about 3D Secure, an additional layer of authentication used by businesses to combat fraud. - [Physical cards](https://docs.stripe.com/issuing/cards/physical.md): Issue physical cards at Stripe. - [Use digital wallets with Issuing](https://docs.stripe.com/issuing/cards/digital-wallets.md): Learn how to use Issuing to add cards to digital wallets. - [Using Issuing Elements](https://docs.stripe.com/issuing/elements.md): Learn how to display card details in your web application in a PCI-compliant way. - [Issuing and Treasury product marketing, design, and compliance guidelines](https://docs.stripe.com/issuing/commercial-compliance.md): Learn how to launch and maintain compliant Issuing and Treasury programs. - [Virtual cards with Issuing](https://docs.stripe.com/issuing/cards/virtual.md): Learn about virtual cards created with Issuing. - [Choose which type of card to issue](https://docs.stripe.com/issuing/choose-cards.md): Decide on physical or virtual cards for your cardholders. - [Use Stripe Issuing in different countries](https://docs.stripe.com/issuing/global.md): Learn how different integration options vary by country. - [Issuing and Treasury for platforms sample app](https://docs.stripe.com/issuing/sample-app.md): Learn how to onboard customers, issue cards, and make outbound payments. - [B2B payments integration guide](https://docs.stripe.com/issuing/integration-guides/b2b-payments.md): Build a B2B payments integration with Issuing. - [Test your Issuing integration](https://docs.stripe.com/issuing/testing.md): Learn how to test your integration and simulate purchases. - [Issuing and Treasury for platforms sample app](https://docs.stripe.com/treasury/connect/legacy/v1/examples/sample-app.md): Use the Stripe Next.js sample app to start your own Issuing and Treasury for platforms integration. - [Manage fraud with Stripe Issuing controls and tools](https://docs.stripe.com/issuing/manage-fraud.md): Understand how transaction fraud can impact your Issuing program and the steps you can take to combat it. - [Add funds to your card program](https://docs.stripe.com/issuing/adding-funds-to-your-card-program.md): Learn about your options to fund card spend. - [Stripe Issuing marketing guidelines](https://docs.stripe.com/issuing/marketing-guidance-europe-uk.md): Learn about marketing guidelines for Issuing programs in the United Kingdom and Europe. - [Order a custom bundle](https://docs.stripe.com/issuing/cards/physical/order-custom-bundle.md): Order your custom physical bundle. - [Use cards at automated teller machines (ATMs)](https://docs.stripe.com/issuing/purchases/atm-usage.md): Learn how you can use your Stripe Issuing cards at ATMs. - [Create a design](https://docs.stripe.com/issuing/cards/physical/create-design.md): Create and name your bundle design. - [Onboarding overview](https://docs.stripe.com/issuing/onboarding-overview.md): Take your integration live. - [Replacement cards](https://docs.stripe.com/issuing/cards/replacements.md): Learn how to replace cards that are expired, damaged, lost, or stolen. - [Choose your physical bundle](https://docs.stripe.com/issuing/cards/choose-bundle.md): Set up a standard or custom physical bundle. - [Update the Issuing terms of service acceptance](https://docs.stripe.com/issuing/connect/tos_acceptance.md): Learn how to present accurate business information for your connected accounts and accept the Issuing terms of service. - [Customize card bundle](https://docs.stripe.com/issuing/cards/physical/card-bundle-selections.md): Make your card bundle selections. - [Issuing watchlist](https://docs.stripe.com/issuing/issuing-watchlist.md): Learn about the Issuing watchlist process and best practices. ## Capital Stripe Capital provides access to financing options for eligible users processing payments through Stripe. Financing offers for eligible users are available in the Stripe Dashboard or through participating Connect platforms. - [How Stripe Capital works](https://docs.stripe.com/capital/how-stripe-capital-works.md): Learn how Stripe Capital provides financing for eligible businesses. - [Set up Capital](https://docs.stripe.com/capital/getting-started.md): Determine which integration option to use when you set up Stripe Capital. - [How Stripe Capital for platforms works](https://docs.stripe.com/capital/how-capital-for-platforms-works.md): Learn the basics about Stripe Capital for platforms. - [How Capital affects your Connect integration](https://docs.stripe.com/capital/connect-integration.md): Learn how Capital offers, applications, financing payouts, and payments affect connected accounts. - [Managing customer support](https://docs.stripe.com/capital/servicing.md): Support your Capital customers by region. - [Capital financing component](https://docs.stripe.com/connect/supported-embedded-components/capital-financing.md): Allow a connected account to view and manage their active Capital financing. - [Build a custom Capital program](https://docs.stripe.com/capital/api-integration.md): Integrate with our API to build a custom Capital program. - [Capital application component](https://docs.stripe.com/connect/supported-embedded-components/capital-financing-application.md): Show an end-to-end application flow for Capital financing. - [Regulatory compliance guidelines](https://docs.stripe.com/capital/regulatory-compliance.md): Learn about the requirements and guidelines for regulatory compliance. - [Marketing your Capital program](https://docs.stripe.com/capital/marketing.md): Build marketing assets for Capital. - [Capital promotion component](https://docs.stripe.com/connect/supported-embedded-components/capital-financing-promotion.md): Show promotional content about a connected account’s Capital financing offer and launch a Capital application. - [Capital metrics](https://docs.stripe.com/capital/reporting.md): Access financing offer data in the Stripe Dashboard. - [Refills](https://docs.stripe.com/capital/refills.md): Learn how to enable refills for your Capital program. - [Replacements](https://docs.stripe.com/capital/replacements.md): Learn how to handle financing offer replacements. ## Crypto Pay with Crypto works with *Checkout*, *Elements*, or can be directly integrated through the *Payment Intents API*. When integrated, the option to pay with **Crypto** appears that redirects your customers to a page hosted by *crypto.link.com* to complete their payment. - [Stablecoin payments](https://docs.stripe.com/payments/stablecoin-payments.md): Learn about accepting payments in stablecoins. - [Accept stablecoin payments](https://docs.stripe.com/payments/accept-stablecoin-payments.md): Start accepting stablecoins by enabling the Crypto payment method. - [Use the Stripe-hosted onramp](https://docs.stripe.com/crypto/onramp/stripe-hosted.md): Generate a redirect URL and mint a session for the standalone onramp. - [Set up an Embedded onramp integration](https://docs.stripe.com/crypto/onramp/embedded.md): Use this guide to fully customize the embeddable onramp. - [Embedded Components onramp](https://docs.stripe.com/crypto/onramp/embedded-components.md): Build a crypto onramp flow in your app or website. ## Climate Stripe Climate is the easiest way to help emerging permanent carbon removal technologies scale. Join a growing group of ambitious businesses changing the course of carbon removal. - [Climate Commitments](https://docs.stripe.com/climate/commitments.md): Direct a fraction of your revenue to help advance carbon removal. - [Climate Orders overview](https://docs.stripe.com/climate/orders.md): Order carbon removal from Frontier’s offtake portfolio - [Order carbon removal](https://docs.stripe.com/climate/orders/order-carbon-removal.md): Order carbon removal from Frontier’s offtake portfolio. - [Carbon removal inventory](https://docs.stripe.com/climate/orders/carbon-removal-inventory.md): Learn about available carbon removal inventory. - [Webhooks for Climate Orders API](https://docs.stripe.com/climate/orders/webhooks.md): Learn about webhook events for products and orders. - [Accept carbon removal payments](https://docs.stripe.com/climate/orders/quickstart.md): Enable your customers to buy carbon removal using the Climate API with your payments integration. - [How Climate Orders work](https://docs.stripe.com/climate/orders/how-it-works.md): Learn how to create, monitor, and manage your carbon removal orders. ## Tax Automate sales tax, VAT, and GST compliance on all your transactions—low or no code integrations available. You can integrate Stripe Tax with Payment Links or the Checkout Sessions API and use it for subscriptions and invoices. You can also create custom payment flows or integrate Stripe Tax as a platform with Connect. - [Set up Stripe Tax](https://docs.stripe.com/tax/set-up.md): Enable Stripe Tax to automatically calculate and collect tax. - [Monitor tax obligations](https://docs.stripe.com/tax/monitoring.md): Review potential registration obligations, thresholds, and notifications. - [Collect customer locations](https://docs.stripe.com/tax/customer-locations.md): Understand supported address formats and how Stripe Tax determines a customer location. - [Register for tax](https://docs.stripe.com/tax/registering.md): Add tax registrations to Stripe after registering with the tax authority. - [Use Stripe to register for US sales tax](https://docs.stripe.com/tax/use-stripe-to-register.md): Check eligibility for Stripe’s Register for me service. - [File and remit tax](https://docs.stripe.com/tax/filing.md): Compare filing options and partner-specific availability and pricing. - [File US sales tax with Stripe](https://docs.stripe.com/tax/file-with-stripe.md): Set up TaxJar filing from the Stripe Dashboard. - [File tax with Taxually](https://docs.stripe.com/tax/file-with-taxually.md): Set up Taxually filing where it is available. - [Product tax codes](https://docs.stripe.com/tax/tax-codes.md): Authoritative complete list of active Stripe Tax product tax code (`txcd_`) identifiers and their definitions. Use only exact `txcd_` values from this list; never infer or construct an identifier. - [Tax for digital products](https://docs.stripe.com/tax/digital-products.md): Select a tax code that matches a digital product’s delivery method, access type, and customer type. - [How Stripe Tax works](https://docs.stripe.com/tax/how-tax-works.md): Learn how Stripe helps you automate tax compliance. - [Standalone Tax API](https://docs.stripe.com/tax/standalone-tax-api.md): Use the Tax Calculations and Transactions APIs directly for shipping, tax-inclusive pricing, and more. - [Stripe Tax with PaymentIntents](https://docs.stripe.com/tax/payment-intent.md): Choose automatic or custom tax transaction and refund-reversal handling for a custom payment flow. - [Refund taxed invoices](https://docs.stripe.com/tax/invoicing/refunds.md): Issue refunds or credit notes on taxed invoices and understand the resulting tax-liability adjustment. - [Specify product tax codes and tax behavior](https://docs.stripe.com/tax/products-prices-tax-codes-tax-behavior.md): Add tax codes and tax behavior to your products and prices to automatically calculate tax. - [Zero tax amounts and reverse charges](https://docs.stripe.com/tax/zero-tax.md): Learn about cases when Stripe Tax calculates zero tax. - [Countries supported by Stripe Tax](https://docs.stripe.com/tax/supported-countries.md): Learn where you can use Stripe Tax. - [Collect tax with Checkout](https://docs.stripe.com/tax/checkout.md): Learn how to automatically calculate taxes using Stripe Checkout. - [Calculate tax](https://docs.stripe.com/tax/calculating.md): Learn how to calculate tax with Stripe Tax. - [Automatically collect tax on invoices](https://docs.stripe.com/tax/invoicing.md): Learn how to automatically calculate tax on your invoices. - [Use Stripe Tax with Connect](https://docs.stripe.com/tax/connect.md): Understand how Stripe Tax can help your platform and your connected accounts comply with tax obligations. - [Testing Stripe Tax](https://docs.stripe.com/tax/testing.md): Learn how to test your Stripe Tax integration. - [Collect taxes for recurring payments](https://docs.stripe.com/tax/subscriptions.md): Learn how to collect and report taxes for recurring payments. - [Tax customizations](https://docs.stripe.com/tax/tax-customizations.md): Learn how to customize tax behavior using Stripe Tax. - [Tax for software platforms](https://docs.stripe.com/tax/tax-for-platforms.md): Learn how to enable Stripe Tax for your connected accounts, and collect tax when the connected account is liable for paying the tax. - [Collect customer tax IDs with Checkout](https://docs.stripe.com/tax/checkout/tax-ids.md): Learn how to collect VAT and other customer tax IDs during checkout. - [Automatically collect tax on Payment Links](https://docs.stripe.com/tax/payment-links.md): Learn how to calculate and collect tax on a payment page without writing any code. - [Collect taxes for recurring payments](https://docs.stripe.com/billing/taxes/collect-taxes.md): Learn how to collect and report taxes for recurring payments. - [Account and customer tax IDs with Invoicing](https://docs.stripe.com/tax/invoicing/tax-ids.md): Learn about storing, validating, and rendering tax ID numbers for Invoicing. - [Update existing subscriptions](https://docs.stripe.com/tax/subscriptions/update.md): Learn how to update existing subscriptions to Stripe Tax. - [Tax for marketplaces](https://docs.stripe.com/tax/tax-for-marketplaces.md): Learn about indirect tax requirements for platforms and marketplaces, and how to enable Stripe Tax to collect tax on transactions when the Connect platform is liable. - [Stripe Tax](https://docs.stripe.com/tax.md): Automate sales tax, VAT, and GST compliance on all your transactions. - [Use the Settings API to configure Stripe Tax](https://docs.stripe.com/tax/settings-api.md): Learn how to configure tax settings, and check whether an account is ready to perform tax calculations. - [Tax settings](https://docs.stripe.com/connect/supported-embedded-components/tax-settings.md): Learn how to allow connected accounts to set up Stripe Tax. - [Tax in Asia Pacific](https://docs.stripe.com/tax/supported-countries/asia-pacific.md): Use Stripe Tax to calculate, collect, and report tax in Asia Pacific. - [Tax registrations](https://docs.stripe.com/connect/supported-embedded-components/tax-registrations.md): Learn how to allow connected accounts to manage their tax registrations for Stripe Tax. - [Install and configure the Stripe Tax Extension](https://docs.stripe.com/use-stripe-apps/woocommerce/configuration.md): Use the Stripe Tax Extension for WooCommerce to automatically calculate sales tax, VAT, and GST. - [Use the Registrations API to manage tax registrations](https://docs.stripe.com/tax/registrations-api.md): Learn how to add, schedule, and check active tax registrations. - [Stripe Tax Extension for WooCommerce](https://docs.stripe.com/use-stripe-apps/woocommerce.md): Learn about the Stripe Tax Extension for WooCommerce. - [The Tax ID object](https://docs.stripe.com/api/tax_ids/object.md) ## Invoicing Create and manage invoices for one-time payments with Stripe Invoicing. Invoices provide an itemized list of goods and services rendered, which includes the cost, quantity, and taxes. You can send invoices to customers to collect payment or you can create an invoice and automatically charge a customer’s saved payment method. Subscriptions automatically generate invoices for each billing cycle. Learn more about the invoice lifecycle for subscriptions. You can use both the Dashboard and the API to create, edit, and manage invoices. - [Taxes](https://docs.stripe.com/invoicing/taxes.md): Learn about Stripe Tax and how to use it with invoices. - [Customize invoices](https://docs.stripe.com/invoicing/customize.md): Learn how to customize the content and branding of your invoices. - [Send customer emails](https://docs.stripe.com/invoicing/send-email.md): Configure and send invoicing emails to your customers. - [Automatic invoice advancement](https://docs.stripe.com/invoicing/integration/automatic-advancement-collection.md): Learn how Stripe can automatically advance invoice states and help collect payment. - [Issue credit notes](https://docs.stripe.com/invoicing/dashboard/credit-notes.md): Use the Dashboard to adjust or refund finalized invoices with credit notes. - [Integrate with the Invoicing API](https://docs.stripe.com/invoicing/integration.md): Learn how to create and send an invoice with code. - [No-code Invoicing guide](https://docs.stripe.com/invoicing/no-code-guide.md): Get started with Stripe Invoicing—no code required. - [Automatic charging](https://docs.stripe.com/invoicing/automatic-charging.md): Have Stripe automatically charge a customer’s stored payment method. - [Manage invoices](https://docs.stripe.com/invoicing/dashboard/manage-invoices.md): Learn how to manage your invoices in the Dashboard. - [Create and send an invoice](https://docs.stripe.com/invoicing/integration/quickstart.md): Build an example Invoicing integration. - [Invoice rendering templates](https://docs.stripe.com/invoicing/invoice-rendering-template.md): Use invoice rendering templates to personalize your invoice appearance for different customers - [Status transitions and finalization](https://docs.stripe.com/invoicing/integration/workflow-transitions.md): Learn about invoice status transitions and finalization. - [Invoicing and ACH Direct Debit](https://docs.stripe.com/invoicing/ach-direct-debit.md): Configure, create, and process invoices using ACH Direct Debit. - [Use invoices](https://docs.stripe.com/no-code/invoices.md): Send an invoice your customers can pay online. - [Stripe Connector for NetSuite](https://docs.stripe.com/use-stripe-apps/netsuite/overview.md): Use the app to reconcile your Stripe activity into NetSuite. - [Customer tax IDs](https://docs.stripe.com/invoicing/customer/tax-ids.md): Store, validate, and render customer tax ID numbers with Stripe Invoicing. - [Best practices for global invoices](https://docs.stripe.com/invoicing/global-invoices.md): Learn the best practices for setting up invoices in non-US regions. - [Customers](https://docs.stripe.com/invoicing/customer.md): Learn how to use the Customer object with Stripe Invoicing. - [Multi-currency customers](https://docs.stripe.com/invoicing/multi-currency-customers.md): Change the billable currency for any customer to accept multiple currencies. - [Products and prices](https://docs.stripe.com/invoicing/products-prices.md): Use the Invoicing API to manage products and prices. - [Test Stripe Invoicing](https://docs.stripe.com/invoicing/integration/testing.md): Learn how to test your Invoicing integration. - [Scheduled payments](https://docs.stripe.com/invoicing/hosted-invoice-page/scheduled-payments.md): Let your customers schedule their payments through the hosted invoice page. - [Schedule invoice finalization to send or charge an invoice in the future](https://docs.stripe.com/invoicing/scheduled-finalization.md): Learn how to schedule an invoice and automatically send or charge for it on a future date. - [Preview an invoice](https://docs.stripe.com/invoicing/preview.md): Learn how to create a preview of an invoice. - [Troubleshoot the connector](https://docs.stripe.com/use-stripe-apps/netsuite/error-resolution.md): Learn how to troubleshoot errors with the Stripe Connector for NetSuite. - [Send quotes](https://docs.stripe.com/no-code/quotes.md): Send a quote and convert it to a payment or subscription. - [Account tax IDs](https://docs.stripe.com/invoicing/taxes/account-tax-ids.md): Store and render your tax IDs with Stripe Invoicing. - [Stripe Billing and Invoicing automation](https://docs.stripe.com/use-stripe-apps/netsuite/invoice-automation.md): Use the connector to sync your Stripe invoices into NetSuite. - [Manage bulk invoice line items](https://docs.stripe.com/invoicing/bulk-update-line-item.md): Add, update and remove multiple invoice line items with the Invoices API. - [Tax rates and IDs](https://docs.stripe.com/invoicing/taxes/tax-rates.md): Assign tax rates to draft invoices for tax calculation. - [Deposit automation](https://docs.stripe.com/use-stripe-apps/netsuite/deposit-automation.md): Use the connector to automate the bank reconciliation process. - [Generate credit notes programmatically](https://docs.stripe.com/invoicing/integration/programmatic-credit-notes.md): Use the Invoicing API to adjust or refund finalized invoices with credit notes. - [Custom payment application](https://docs.stripe.com/use-stripe-apps/netsuite/custom-payment-application.md): Learn how to customize the way payments are recorded and applied using the Stripe Connector for NetSuite. - [Invoices](https://docs.stripe.com/api/invoices.md) - [The Invoice object](https://docs.stripe.com/api/invoices/object.md) ## Identity Use Stripe Identity to confirm the identity of global users to prevent fraud, streamline risk operations, and increase trust and safety. Stripe Identity allows you to Verify the authenticity of ID documents from more than 120 countries, Capture IDs with a conversion-optimized verification flow, Match photo IDs with selfies, and validate Social Security numbers (SSNs), and Access collected images, and extracted data from ID documents - [Verify your users’ identity documents](https://docs.stripe.com/identity/verify-identity-documents.md): Create sessions and collect identity documents. - [Verification flows](https://docs.stripe.com/identity/verification-flows.md): Apply a reusable configuration across your integration. - [Verification checks](https://docs.stripe.com/identity/verification-checks.md): Learn about the different verification checks supported by Stripe Identity. - [Review tools](https://docs.stripe.com/identity/review-tools.md): Learn how to use manual reviews to supplement programmatic systems with human expertise. - [Supported use cases and locations for Stripe Identity](https://docs.stripe.com/identity/use-cases.md): Learn about the verification use cases and business locations supported by Stripe Identity. - [Access verification results](https://docs.stripe.com/identity/access-verification-results.md): Learn how to access sensitive verification results. - [Explain Identity to your customers](https://docs.stripe.com/identity/explaining-identity.md): Answer customer questions about ID verification and Stripe Identity. - [The Verification Sessions API](https://docs.stripe.com/identity/verification-sessions.md): Learn more about the Verification Sessions API that powers Stripe Identity. - [Before going live](https://docs.stripe.com/identity/before-going-live.md): Best practices to build a production-ready Stripe Identity integration. - [Identity verification (redirect)](https://docs.stripe.com/samples/identity/redirect.md) ## Atlas Use Stripe Atlas to incorporate your company in Delaware, obtain your company tax ID (EIN) from the IRS, issue founders equity, and file your 83(b) election. After you incorporate your business, you can open a business bank account and charge customers through Stripe payments. Stripe Atlas doesn’t provide legal, tax, or accounting advice. If you have any unique considerations, consider talking to legal counsel before proceeding. - [How to incorporate your company](https://docs.stripe.com/atlas/signup.md): Learn what you need to get started with Atlas. - [Business bank accounts](https://docs.stripe.com/atlas/payments-business-bank.md): Apply to open a business bank account with our partners. - [Business taxes](https://docs.stripe.com/atlas/business-taxes.md): Business tax basics for startup founders. - [Company types](https://docs.stripe.com/atlas/company-types.md): Form a C corporation or an LLC using Stripe Atlas. - [Section 83(b) elections](https://docs.stripe.com/atlas/83b-election.md): Learn about common considerations for Section 83(b) elections. - [Incorporation documents](https://docs.stripe.com/atlas/incorporation-documents.md): Learn about the documents Atlas uses to incorporate your company. - [File Section 83(b) elections as a non-US founder](https://docs.stripe.com/atlas/83b-elections-non-us-founders.md): Learn about filing an 83(b) election as a non-US founder. ## Financial Connections Stripe Financial Connections allows users to securely share their financial data with your business. You can use one integration to instantly verify bank accounts for ACH payments, reduce underwriting risk with [balances](https://docs.stripe.com/financial-connections/balances.md) data, mitigate fraud by verifying account [ownership](https://docs.stripe.com/financial-connections/ownership.md) details, and build new fintech products with [transactions](https://docs.stripe.com/financial-connections/transactions.md) data. Financial Connections enables your users to connect their accounts in fewer steps with [Link](https://support.stripe.com/questions/link-for-financial-connections-support-for-businesses), allowing them to save and quickly reuse their bank account details across Stripe businesses. - [Collect a bank account to use ACH Direct Debit payments with account data](https://docs.stripe.com/financial-connections/ach-direct-debit-payments.md): Use account data such as balances with your payments integration. - [Financial Connections use cases](https://docs.stripe.com/financial-connections/use-cases.md): View options for integrating Financial Connections and common use cases. - [Financial Connections fundamentals](https://docs.stripe.com/financial-connections/fundamentals.md): Learn how Financial Connections works. - [Supported institutions of Financial Connections](https://docs.stripe.com/financial-connections/supported-institutions.md): View the details of supported financial institutions. - [Collect a bank account to enhance Connect payouts](https://docs.stripe.com/financial-connections/connect-payouts.md): Collect your connected account’s bank account and use account data to enhance payouts. - [Test Financial Connections](https://docs.stripe.com/financial-connections/testing.md): Learn how to test your integration with simulated Financial Connections accounts. - [Disconnect a Financial Connections account](https://docs.stripe.com/financial-connections/disconnections.md): Use the Disconnect API to unlink customer bank accounts. ## Revenue Recognition Automate your accrual accounting process with Stripe Revenue Recognition. Revenue recognition is a fundamental part of accrual accounting. Generally accepted accounting principles (GAAP) state that you recognize revenue when you realize and earn it, which might be earlier or later than when you actually receive cash. Correctly recognizing and deferring revenue enables you to have the most accurate insights into your business profitability and financial health. Revenue recognition is critical for many types of businesses, especially: Public companies or large businesses with over 25 million USD in annual revenue—because they’re legally required to comply with ASC 606 and GAAP and IFRS accounting standards, Startups that need to follow accrual accounting to raise money from investors or get a loan from a bank, Subscription and service-based businesses and Businesses where customers pay up front before receiving a good or service. - [How Revenue Recognition works](https://docs.stripe.com/revenue-recognition/methodology.md): Understand how Stripe Revenue Recognition calculates, defers, and reports your revenue. - [Period summary](https://docs.stripe.com/revenue-recognition/reports/period-summary.md): Learn about the period summary report. - [Revenue Recognition reports](https://docs.stripe.com/revenue-recognition/reports.md): Generate and export revenue reports using Stripe Revenue Recognition. - [Recognize revenue with Stripe](https://docs.stripe.com/revenue-recognition/get-started.md): Learn how to use Stripe for your revenue recognition. - [Revenue Recognition with subscriptions and invoicing](https://docs.stripe.com/revenue-recognition/methodology/subscriptions-and-invoicing.md): Learn how revenue recognition works with subscriptions and invoices. - [Revenue waterfall](https://docs.stripe.com/revenue-recognition/reports/waterfall.md): View and analyze monthly revenue with the waterfall report. - [Revenue Recognition examples](https://docs.stripe.com/revenue-recognition/examples.md): Learn about revenue recognition using some common examples. - [Income statement](https://docs.stripe.com/revenue-recognition/reports/income-statement.md): Analyze revenue, expenses, and net income with the income statement report. - [Revenue Recognition rules](https://docs.stripe.com/revenue-recognition/rules.md): Customize rules to handle revenue treatments to your business. - [Map to your chart of accounts](https://docs.stripe.com/revenue-recognition/chart-of-accounts.md): Map transactions from the Stripe default accounts to the chart of accounts in your general ledger. - [Audit your numbers](https://docs.stripe.com/revenue-recognition/reports/audit-numbers.md): Use the Stripe Dashboard to examine the details of your revenue numbers. - [Revenue Recognition API](https://docs.stripe.com/revenue-recognition/api.md): Access Stripe Revenue Recognition reports programmatically to automate your accrual accounting. - [Revenue Recognition accounting period control](https://docs.stripe.com/revenue-recognition/revenue-settings/accounting-period-control.md): Learn how to configure accounting periods for Stripe Revenue Recognition. - [Stripe Connector for the Apple App Store](https://docs.stripe.com/revenue-recognition/data-import/apple-app-store.md): Manage your revenue recognition in Stripe by importing data from the Apple App Store. - [Revenue Recognition for Connect platforms](https://docs.stripe.com/revenue-recognition/connect.md): Learn how revenue recognition works with Connect platforms. - [Revenue Recognition with multiple currencies](https://docs.stripe.com/revenue-recognition/methodology/multi-currency.md): Understand the roles of presentment and settlement currencies in Stripe Revenue Recognition. - [Trial balance](https://docs.stripe.com/revenue-recognition/reports/trial-balance.md): View and analyze account balances over specific periods with the trial balance report. - [Reconcile your Stripe balance with Revenue Recognition](https://docs.stripe.com/revenue-recognition/data-reconciliation.md): Use this guide to reconcile cash and fees from Revenue Recognition with the Balance summary report. - [Revenue Recognition with refunds and disputes](https://docs.stripe.com/revenue-recognition/methodology/refunds-and-disputes.md): Understand how refunds and disputes impact your revenue. - [Revenue Recognition Performance Obligations API](https://docs.stripe.com/revenue-recognition/performance-obligations-api.md): Learn how to model performance obligation fulfillment in Stripe Revenue Recognition. - [Manage imported data](https://docs.stripe.com/revenue-recognition/data-import/manage-imported-data.md): Search for and manage existing imported data. - [Revenue Recognition for direct charges](https://docs.stripe.com/revenue-recognition/connect/direct-charges.md): Learn how revenue recognition works with direct charges. - [Revenue Recognition for destination charges](https://docs.stripe.com/revenue-recognition/connect/destination-charges.md): Learn how revenue recognition works with destination charges. - [Stripe Connector for Google Play](https://docs.stripe.com/revenue-recognition/data-import/google-play.md): Manage your revenue recognition in Stripe by importing data from Google Play. - [Revenue Recognition for separate charges and transfers](https://docs.stripe.com/revenue-recognition/connect/charges-transfers.md): Learn how revenue recognition works with separate charges and transfers. - [Revenue Recognition transaction overrides](https://docs.stripe.com/revenue-recognition/overrides.md): Learn how to make manual corrections to your revenue recognition reports. - [Error handling for data import](https://docs.stripe.com/revenue-recognition/data-import/error-handling.md): Learn how to handle and recover from errors received when importing revenue recognition data. - [Revenue Recognition reports in Sigma and SDP](https://docs.stripe.com/revenue-recognition/reports/sigma-and-sdp.md): Run prebuilt Revenue Recognition reports or build custom queries in Sigma. ## Treasury for Platforms Treasury for Platforms is Stripe’s embedded finance API (v2) for Connect platforms. It lets you embed bank accounts, money movement, and card issuing into your product using Stripe’s infrastructure and bank partners. This is the current and recommended Treasury integration path — always use these v2 docs unless the user explicitly requests the legacy v1 Treasury API (legacy v1 docs are available at [Treasury for platforms v1](https://docs.stripe.com/treasury/connect.md)). ### Get started - [Treasury for platforms](https://docs.stripe.com/treasury/connect.md): Learn how to provide financial services to connected accounts. - [How Treasury for platforms works](https://docs.stripe.com/treasury/connect/how-treasury-for-platforms-works.md): Learn about connected accounts, financial accounts, and moving money. - [Build an integration with Treasury for platforms](https://docs.stripe.com/treasury/connect/build-an-integration.md): Set up an end-to-end integration with Treasury for platforms and familiarize yourself with its basic concepts. - [Prebuilt embedded finance](https://docs.stripe.com/treasury/connect/prebuilt-embedded-finance.md): Add financial accounts, money movement, and card issuing to your platform without a custom integration. - [Manage fraud](https://docs.stripe.com/treasury/connect/fraud-guide.md): Prevent fraud against your platform’s Treasury and Issuing programs. ### Compliance and marketing - [Treasury for platforms marketing compliance](https://docs.stripe.com/treasury/connect/compliance.md): Design compliant Treasury for platforms marketing campaigns. - [Handle complaints](https://docs.stripe.com/treasury/connect/handle-complaints.md): Learn how to properly handle complaints about Treasury for platforms or Stripe Issuing. - [Treasury for platforms messaging](https://docs.stripe.com/treasury/connect/marketing.md): Create precise messaging for your users that complies with regulations. ### Account management - [Financial accounts](https://docs.stripe.com/treasury/connect/account-management/financial-accounts.md): Use financial accounts to store, send, and receive funds. - [Connected account financial accounts](https://docs.stripe.com/treasury/connect/account-management/connected-accounts.md): Request money_manager capabilities and collect onboarding requirements for your connected accounts. - [Multiple financial accounts and external funding](https://docs.stripe.com/treasury/connect/examples/multi-financial-accounts.md): Learn how to create two financial accounts and move funds between them. ### Move money - [Fund a financial account](https://docs.stripe.com/treasury/connect/moving-money/fund-a-financial-account.md): Learn how to move money into a financial account balance. - [Transfer money between same-owner accounts](https://docs.stripe.com/treasury/connect/moving-money/out-of/outbound-transfers.md): Learn how to transfer money from financial accounts to other accounts owned by the same business. - [Send money to recipients and financial accounts you don’t own](https://docs.stripe.com/treasury/connect/moving-money/out-of/outbound-payments.md): Learn how to create outbound payments to move money out of financial accounts to third parties. - [Received debits](https://docs.stripe.com/treasury/connect/moving-money/received-debits.md): Authorize and manage third-party-initiated debits. - [Cross-border payouts and automatic transfer rules](https://docs.stripe.com/treasury/connect/examples/cross-border-and-automatic-transfer-rules.md): Create a financial account, automate funding and send a cross-border OutboundPayment. - [Money movement timelines](https://docs.stripe.com/treasury/connect/money-movement/timelines.md): Learn how long money movement takes with Treasury for platforms. ### Transactions - [Working with Transactions](https://docs.stripe.com/treasury/connect/transactions/working-with-transactions.md): Use transactions to track money movement on financial accounts. ### Fees - [Administrative facilitation fee](https://docs.stripe.com/treasury/connect/prebuilt-embedded-finance/aff.md): Understand how Stripe calculates and pays out the administrative facilitation fee for your platform. ## Sigma Use Sigma to generate custom reports for charges, refunds, disputes, and more. The available data within Sigma is read-only. Queries can’t modify existing data or create new transactions. [Sigma](https://dashboard.stripe.com/sigma/queries) makes all your transactional data available within an interactive SQL environment in the Stripe Dashboard. It lets you create fully customized [reports](https://docs.stripe.com/stripe-reports.md) using information about your payments, subscriptions, customers, payouts, and so on. With Sigma, you can: - Get information that best reflects your business and Stripe integration. - Export in CSV format to import into your tools. - Fetch data on a schedule of your choosing. - [View API request logs](https://docs.stripe.com/development/dashboard/request-logs.md): Filter API request logs and view log entries in the Developers Dashboard. - [Acceptance analytics](https://docs.stripe.com/payments/analytics/acceptance.md): Understand what affects payment acceptance and why payments fail or are declined. - [View events and event object payloads](https://docs.stripe.com/development/dashboard/events.md): View events triggered by your account and their event object payload in the Developers Dashboard. - [Migrate queries](https://docs.stripe.com/data/migrate-queries.md): Migrate your Sigma queries from Presto to Trino. ## Payment Links Sell online without building a digital storefront. Accept a payment or sell subscriptions without building additional standalone websites or applications with Payment Links. Share the link as many times as you want on social media, in emails, or on your website. Payment Links supports [more than 20 payment methods](https://docs.stripe.com/payments/payment-methods/payment-method-support.md#product-support)—including credit and debit cards, Apple Pay, and Google Pay. The payment link automatically uses your customer’s preferred browser language in [more than 30 languages](https://support.stripe.com/questions/supported-languages-for-stripe-checkout-and-payment-links). Learn more about the features, and create a payment link in the demo below. - [Customize checkout for Payment Links](https://docs.stripe.com/payment-links/customize.md): Collect additional information, taxes, or update your branding. - [Charge for shipping](https://docs.stripe.com/payments/no-code/charge-shipping.md): Create different shipping rates for your customers. - [Payment Links](https://docs.stripe.com/api/payment-link.md) - [The Payment Link object](https://docs.stripe.com/api/payment-link/object.md) ## Radar Use Stripe Radar to protect your business against fraud. [Stripe Radar](https://docs.stripe.com/radar.md) provides real-time fraud protection and requires no additional development time. [Radar for Fraud Teams](https://stripe.com/radar/fraud-teams) adds customization capabilities and deeper insights and trend analysis for your business. Radar evaluates transactions in real-time, using machine learning algorithms to assess the risk of fraud. Both pricing tiers of Radar [charge a fee](https://stripe.com/radar/pricing) for each transaction it evaluates. Radar screens all types of payment attempts such as successful, declined, blocked, and flagged for review. - [Understand fraud](https://docs.stripe.com/disputes/prevention.md): Learn how to identify fraud, and design a strategy to prevent it. - [Fraud prevention rules](https://docs.stripe.com/radar/rules.md): Use fraud prevention rules to help protect your business. - [Risk factors recommendations](https://docs.stripe.com/radar/optimize-risk-factors.md): Follow our recommendations to maximize the effectiveness of Stripe Radar. - [Supported attributes](https://docs.stripe.com/radar/rules/supported-attributes.md): Review a complete list of attributes supported in Radar rules. - [Dispute and fraud card monitoring programs](https://docs.stripe.com/disputes/monitoring-programs.md): Learn about the monitoring programs operated by the card networks, and what to do if you’re placed into one. - [Protect yourself from card testing](https://docs.stripe.com/disputes/prevention/card-testing.md): Learn about this fraudulent activity and how to protect yourself against it. - [Rules reference](https://docs.stripe.com/radar/rules/reference.md): Learn about the structure of rules and the order in which Radar processes them. - [Best practices for preventing fraud](https://docs.stripe.com/disputes/prevention/best-practices.md): Learn how to use best practices to protect against disputes and fraudulent payments. - [Card verification checks](https://docs.stripe.com/disputes/prevention/verification.md): Learn how to make use of card verification checks to protect against disputes and fraud. - [Measuring disputes](https://docs.stripe.com/disputes/measuring.md): Learn about the potential issues that occur from excessive disputes, and how to avoid them. - [Risk setting and risk controls](https://docs.stripe.com/radar/risk-settings.md): Automatically adjust which payments you block based on dynamic detection. - [Advanced fraud detection](https://docs.stripe.com/disputes/prevention/advanced-fraud-detection.md): Learn about tools developers can use to maximize Stripe’s ability to prevent fraudulent payments. - [Common types of online fraud](https://docs.stripe.com/disputes/prevention/fraud-types.md): Learn about the different kinds of fraud and what your liability is. - [Identifying potential fraud](https://docs.stripe.com/disputes/prevention/identifying-fraud.md): Learn about the most common fraud indicators. - [Lists](https://docs.stripe.com/radar/lists.md): Create your own lists of information to block, allow, or review matching payments. - [High risk merchant lists](https://docs.stripe.com/disputes/match.md): Learn the criteria for inclusion in MATCH and VMSS lists. - [Risk insights](https://docs.stripe.com/radar/reviews/risk-insights.md): Understand risk factors and details about a particular payment. - [Review uncaptured payments](https://docs.stripe.com/radar/reviews/auth-and-capture.md): Learn how to use reviews if your Stripe integration uses auth and capture. - [Provide Radar additional fraud data](https://docs.stripe.com/radar/radar-session.md): Learn how to provide critical data for improved fraud protection. - [Testing Stripe Radar](https://docs.stripe.com/radar/testing.md): Use the following information to test your fraud prevention strategy. - [Disputes on Connect platforms](https://docs.stripe.com/connect/disputes.md): Learn about the dispute responsibilities on Connect platforms. - [Use the API to respond to disputes](https://docs.stripe.com/disputes/api.md): Learn how to manage disputes programmatically. - [Radar analytics center](https://docs.stripe.com/radar/analytics.md): Review fraud patterns and their impact on your business in the Dashboard. - [Visa Compelling Evidence 3.0 disputes](https://docs.stripe.com/disputes/api/visa-ce3.md): Use the API and Visa’s Compelling Evidence 3.0 to respond to qualifying disputes. - [Fraud insights](https://docs.stripe.com/radar/analytics/fraud-insights.md): Review fraud trends specific to your business so you can tailor your strategy. - [Visa compliance disputes](https://docs.stripe.com/disputes/api/visa-compliance.md): Use the API to respond to Visa compliance disputes. ## Terminal Use Stripe Terminal to accept in-person payments and extend Stripe payments to your point of sale. Stripe Terminal allows businesses to accept in-person card payments using card readers. You can manage both in-person payments and online payments in a unified system in the [Dashboard](https://dashboard.stripe.com/terminal). You can also integrate Terminal with your [Connect platform](https://docs.stripe.com/connect.md). Learn more about Terminal’s [features](https://docs.stripe.com/terminal.md#features) and [availability by country](https://docs.stripe.com/terminal/overview.md). - [Stripe Terminal reader product sheets](https://docs.stripe.com/terminal/readers/product-sheets.md): Learn about Stripe Terminal hardware specifications. - [Set up Stripe Reader M2](https://docs.stripe.com/terminal/payments/setup-reader/stripe-m2.md): Learn how to set up the Stripe Reader M2. - [Accept in-person payments](https://docs.stripe.com/terminal/quickstart.md) - [BBPOS WisePOS E](https://docs.stripe.com/terminal/readers/bbpos-wisepos-e.md): Learn about the BBPOS WisePOS E reader. - [Collect and save payment details for future use](https://docs.stripe.com/terminal/features/saving-payment-details/overview.md): Use your Stripe Terminal integration to collect and save payment methods for returning customers. - [Stripe Reader S700/S710](https://docs.stripe.com/terminal/readers/stripe-reader-s700-s710.md): Learn about Stripe Reader S700/S710. - [Apps on Devices](https://docs.stripe.com/terminal/features/apps-on-devices/overview.md): Learn about deploying your Android POS apps on Stripe smart readers. - [Set up BBPOS WisePad 3](https://docs.stripe.com/terminal/payments/setup-reader/bbpos-wisepad3.md): Learn how to set up the BBPOS WisePad 3. - [Provide receipts](https://docs.stripe.com/terminal/features/receipts.md): Use Stripe to provide your customers with receipts that meet card network rules. - [Manage locations](https://docs.stripe.com/terminal/fleet/locations-and-zones.md): Group and manage your readers by physical location. - [Example applications](https://docs.stripe.com/terminal/example-applications.md): Try Stripe Terminal by using the example applications and simulated reader. - [Stripe Reader M2](https://docs.stripe.com/terminal/readers/stripe-m2.md): Learn about the Stripe Reader M2 mobile reader. - [Terminal network requirements](https://docs.stripe.com/terminal/network-requirements.md): Make sure your network is ready for Terminal, and troubleshoot common issues. - [Stripe Terminal smart readers](https://docs.stripe.com/terminal/smart-readers.md): Learn about Stripe’s pre-certified in-person payment readers. - [Build and test your app](https://docs.stripe.com/terminal/features/apps-on-devices/build.md): Learn how to build and test your app using a DevKit. - [Stripe Terminal mobile readers](https://docs.stripe.com/terminal/mobile-readers.md): Learn about Stripe pre-certified in-person payment mobile readers. - [BBPOS WisePad 3](https://docs.stripe.com/terminal/readers/bbpos-wisepad3.md): Learn about the BBPOS WisePad 3 reader. - [Terminal SDK migration guide](https://docs.stripe.com/terminal/references/sdk-migration-guide.md): Learn how to migrate to version 5.0.0 of the Stripe Terminal SDK. ## Optional - [Support](https://support.stripe.com) - [Changelog](https://docs.stripe.com/changelog.md): Keep track of changes and upgrades to the Stripe API. ## 11. GET https://stripe.com/.well-known/public-agents.json (stripped to text) HTTP/2 404 server: nginx date: Sun, 27 Sep 2026 18:27:34 GMT content-type: text/html; charset=utf-8 content-security-policy: base-uri 'none'; connect-src https://c.increment.com https://c.stripe.dev https://c.stripe.global https://c.stripe.partners blob: https://b.stripecdn.com https://climate.stripe.com https://errors.stripe.com https://ext.stripe.com https://r.stripe.com https://stripe-images.s3.us-west-1.amazonaws.com https://stripe.com https://y4pfttj91h-1.algolianet.com/1/indexes/mkt_partners/query https://y4pfttj91h-2.algolianet.com/1/indexes/mkt_partners/query https://y4pfttj91h-3.algolianet.com/1/indexes/mkt_partners/query https://y4pfttj91h-dsn.algolia.net/1/indexes/mkt_partners/query https://tax-connectors.stripe.com 'self'; default-src 'none'; font-src https://b.stripecdn.com 'self'; form-action https://climate.stripe.com https://stripe.com 'self'; frame-ancestors https://app.contentful.com 'self'; frame-src https://checkout.stripe.dev https://support-conversations.stripe.com https://b.stripecdn.com https://checkout.stripe.com https://crypto-js.stripe.com https://js.stripe.com 'self'; img-src data: https://assets.ctfassets.net https://assets.stripeassets.com https://b.stripecdn.com https://images.ctfassets.net https://images.stripeassets.com https://q.stripe.com https://stripe-camo.global.ssl.fastly.net 'self'; media-src https://assets.ctfassets.net https://assets.stripeassets.com https://b.stripecdn.com https://videos.ctfassets.net https://videos.stripeassets.com 'self'; script-src https://b.stripecdn.com https://crypto-js.stripe.com https://js.stripe.com 'self' 'sha256-3aWvb9tRBjmz1OjR3n7mwiTm94+s4iki4mMZF82asmc=' 'sha256-5LtzXhT7UFn+GqP5pKEMGL08UNZsrzANHFEBW/mQHGw=' 'sha256-beLzNcen8LrazzSCRjAapoIMTgJI0osPWGNSX7aK6lc=' 'sha256-cCM0Z4lzGkzQnmbdVw+ouz0JRawyaKcZ4yiqzqYS7ek=' 'sha256-vTifGUJH6hJYTvstw4xJ4xfr/vE0ELkOV4GpCumyqfg=' 'sha256-KxhSaxKB5RFTQsqfRwp+zG7iLjvMrTAySqnSvWlqct0=' 'sha256-tMuJ8c00j54yuxogrdIJeGhNVB350dc56i969XRz/Mc=' 'sha256-aEFSvCaVnb2wNwuO3IzA8J44RdTKt6vms9beA7BcCYg=' 'sha256-0SWEc2BfR2o77i2vUiNNIrFKQkjc2Ujsr2hlfZ6oUek=' 'report-sample'; style-src https://b.stripecdn.com 'self' 'unsafe-inline'; worker-src 'none'; upgrade-insecure-requests; report-uri https://q.stripe.com/csp-violation?q=ricaGzgHFhOvndUOBbJbxj2bVWPktt7NF_H0Qofwu0zF0Jgfv2tXnnl-QPZm4Mw%3D; report-to csp cross-origin-opener-policy: same-origin-allow-popups; report-to="wsp_coop" cross-origin-opener-policy-report-only: same-origin-allow-popups; report-to="wsp_coop" report-to: {"group":"coop","max_age":8640,"endpoints":[{"url":"https://q.stripe.com/coop-report"}],"include_subdomains":true}, {"group":"wsp_coop","max_age":8640,"endpoints":[{"url":"https://q.stripe.com/coop-report?s=ricaGzgHFhOvndUOBbJbxj2bVWPktt7NF_H0Qofwu0zF0Jgfv2tXnnl-QPZm4Mw="}],"include_subdomains":true}, {"group":"wsp_coep","max_age":8640,"endpoints":[{"url":"https://q.stripe.com/coep-report?s=ricaGzgHFhOvndUOBbJbxj2bVWPktt7NF_H0Qofwu0zF0Jgfv2tXnnl-QPZm4Mw="}],"include_subdomains":true}, {"group":"csp","max_age":8640,"endpoints":[{"url":"https://q.stripe.com/csp-report-v2?q=ricaGzgHFhOvndUOBbJbxj2bVWPktt7NF_H0Qofwu0zF0Jgfv2tXnnl-QPZm4Mw%3D&t=1"}],"include_subdomains":true} reporting-endpoints: coop="https://q.stripe.com/coop-report", wsp_coop="https://q.stripe.com/coop-report?s=ricaGzgHFhOvndUOBbJbxj2bVWPktt7NF_H0Qofwu0zF0Jgfv2tXnnl-QPZm4Mw=", wsp_coep="https://q.stripe.com/coep-report?s=ricaGzgHFhOvndUOBbJbxj2bVWPktt7NF_H0Qofwu0zF0Jgfv2tXnnl-QPZm4Mw=", csp="https://q.stripe.com/csp-report-v2?q=ricaGzgHFhOvndUOBbJbxj2bVWPktt7NF_H0Qofwu0zF0Jgfv2tXnnl-QPZm4Mw%3D&t=1" x-content-type-options: nosniff x-frame-options: SAMEORIGIN x-stripe-proxy-response: upstream x-stripe-server-rpc-duration-micros: 38816 x-wc: 3ff strict-transport-security: max-age=63072000; includeSubDomains; preload content-encoding: gzip [body: 370272 bytes as received, sha256 04c8f4bef8a4962b54a7474a56de62eadc2bdbb9bb07f912c94c09c449771405] Page not found 8 sales reps available We're here to discuss your business needs. [aria-label=Dismiss chat] [aria-label=Chat now with sales] Chat now with sales [title=Chat Widget] [aria-label=Close] Products Solutions Developers Resources Pricing Dashboard  Sign in  Sign in  Contact sales  [title=Open mobile navigation] [aria-label=Navigate to the Stripe homepage] Back Products Solutions Developers Resources Pricing Dashboard Sign in Sign in See all products Explore our full product catalog Payments Payments Online payments Managed Payments Merchant of record solution Payment links No-code payments Checkout Prebuilt payment UIs Elements Flexible UI components Payment methods Access to 125+ Terminal In-person payments Authorization Boost Acceptance optimizations Link Accelerated checkout Financial Connections Linked financial account data Revenue Billing Recurring revenue Metronome Usage-based billing Subscriptions Subscription management Invoicing One-time or recurring Tax Sales tax & VAT automation Revenue Recognition Accounting automation Stripe Sigma Custom reports Data Pipeline Data sync Money management Treasury Business finances Global Payouts Payouts to third parties Capital Business financing Crypto Wallet, stablecoin issuing, and card infrastructure Crypto Onramp Embeddable crypto purchases Platforms and marketplaces Connect Payments for platforms Capital for platforms Customer financing Treasury for platforms Embedded financial services Issuing Physical and virtual cards More Product roadmap See what’s ahead Radar Fraud prevention Atlas Startup incorporation Climate Carbon removal Identity Online identity verification Stripe Sessions 2026 See how Stripe is building the economic infrastructure for AI. Watch now  By stage Enterprises Startups By use case Agentic commerce Crypto Ecommerce Embedded finance Finance automation Global businesses In-app payments Marketplaces Money management Platforms SaaS By industry AI companies Creator economy Fintech Gaming Hospitality, travel, and leisure Insurance Media and entertainment Nonprofits Professional services Retail Ecosystem Partners Stripe App Marketplace Documentation Stripe docs API reference Libraries and SDKs Stripe Apps Guides Accept online payments Implement a prebuilt checkout Build a platform or marketplace Manage subscriptions Offer usage-based billing Issue stablecoin-backed cards Provision and manage services with agents Resources App integrations Code samples Developers blog API status Learn Blog Customer stories Guides Support Get support Managed support plans Professional services Company Product roadmap Sessions annual conference Careers Newsroom Stripe Press About Contact Contact sales Become a partner Start now  Contact sales  Payments Payments Online payments Managed Payments Merchant of record solution Payment links No-code payments Checkout Prebuilt payment UIs Elements Flexible UI components Payment methods Access to 125+ Terminal In-person payments Authorization Boost Acceptance optimizations Link Accelerated checkout Financial Connections Linked financial account data Revenue Billing Recurring revenue Metronome Usage-based billing Subscriptions Subscription management Invoicing One-time or recurring Tax Sales tax & VAT automation Revenue Recognition Accounting automation Stripe Sigma Custom reports Data Pipeline Data sync Money management Treasury Business finances Global Payouts Payouts to third parties Capital Business financing Crypto Wallet, stablecoin issuing, and card infrastructure Crypto Onramp Embeddable crypto purchases Platforms and marketplaces Connect Payments for platforms Capital for platforms Customer financing Treasury for platforms Embedded financial services Issuing Physical and virtual cards See all products More Product roadmap See what’s ahead Radar Fraud prevention Atlas Startup incorporation Climate Carbon removal Identity Online identity verification Stripe Sessions 2026 See how Stripe is building the economic infrastructure for AI. Watch now  By stage Enterprises Startups By use case Agentic commerce Crypto Ecommerce Embedded finance Finance automation Global businesses In-app payments Marketplaces Money management Platforms SaaS By industry AI companies Creator economy Fintech Gaming Hospitality, travel, and leisure Insurance Media and entertainment Nonprofits Professional services Public sector Retail Ecosystem Partners Stripe App Marketplace Documentation Stripe docs API reference Libraries and SDKs Stripe Apps Guides Accept online payments Implement a prebuilt checkout Build a platform or marketplace Manage subscriptions Offer usage-based billing Issue stablecoin-backed cards Provision and manage services with agents Resources App integrations Code samples Developers blog API status Learn Blog Customer stories Guides Support Get support Managed support plans Professional services Company Product roadmap Sessions annual conference Careers Newsroom Stripe Press About Contact Contact sales Become a partner Page not found We couldn't find that page. Visit our homepage, or try one of these. [aria-label=Pricing: See rates for all Stripe products, including payments and billing.] Pricing  See rates for all Stripe products, including payments and billing. [aria-label=Careers: Explore Stripe's mission and browse career opportunities.] Careers  Explore Stripe's mission and browse career opportunities. [aria-label=Documentation: Browse guides and examples for integrating Stripe.] Documentation  Browse guides and examples for integrating Stripe. [aria-label=API Reference: Read documentation for the Stripe API.] API Reference  Read documentation for the Stripe API. [aria-label=System status: Check the status of all Stripe services.] System status  Check the status of all Stripe services. [aria-label=Support: Find support articles or contact our team.] Support  Find support articles or contact our team. [aria-label=Go to the Stripe homepage] [aria-label=United States. Choose your country] United States (English) Australia English Austria Deutsch English Belgium Nederlands Français Deutsch English Brazil Português English Bulgaria English Canada English Français Croatia English Italiano Cyprus English Czech Republic English Denmark English Estonia English Finland English Svenska France Français English Germany Deutsch English Gibraltar English Greece English Hong Kong SAR, China English 简体中文 Hungary English India English Ireland English Italy Italiano English Japan 日本語 English Latvia English Liechtenstein Deutsch English Lithuania English Luxembourg Français Deutsch English Mainland China 简体中文 English Malaysia English 简体中文 Malta English Mexico Español English Netherlands Nederlands English New Zealand English Norway English Poland English Portugal Português English Romania English Singapore English 简体中文 Slovakia English Slovenia English Italiano Spain Español English Sweden Svenska English Switzerland Deutsch Français Italiano English Thailand ไทย English United Arab Emirates English United Kingdom English United States English Español 简体中文 Products & pricing Pricing Atlas Authorization Boost Billing Capital Checkout Climate Connect Crypto Data Pipeline Elements Financial Connections Identity Invoicing Issuing Link Managed Payments Payment links Payments Payouts Radar Revenue Recognition Stripe Sigma Tax Terminal Treasury Solutions Enterprises Startups Agentic commerce Crypto Ecommerce Embedded finance Finance automation Global businesses In-app payments Marketplaces Money management Platforms SaaS AI companies Creator economy Fintech Gaming Hospitality, travel, and leisure Insurance Media and entertainment Nonprofits Professional services Public sector Retail Integrations & custom solutions Stripe App Marketplace Stripe Partner ecosystem Professional services Developers Documentation API reference API status API changelog Libraries and SDKs Stripe Projects Developer blog Resources Guides Customer stories Blog Community Sessions annual conference Privacy & terms Prohibited & restricted businesses Licenses Sitemap Cookie settings Your privacy choices More resources Company About Product roadmap Careers Newsroom Stripe Press Contact sales Support Get support Managed support plans CA residents: +1 888 926 2289 Sign in  © 2026 Stripe, LLC ## 12. GET https://cloudflare-dns.com/dns-query?name=_public-agents.stripe.com&type=TXT (accept: application/dns-json) HTTP/2 200 server: cloudflare date: Sun, 27 Sep 2026 18:30:04 GMT content-type: application/dns-json access-control-allow-origin: * x-content-type-options: nosniff content-length: 267 cf-ray: a41c93d6bfaf2450-BOS alt-svc: h3=":443"; ma=86400 [body: 267 bytes as received, sha256 4ec90250734619945131b1f46f8d7a1402d21e8fd849a30019102212a93dc073] {"Status":3,"TC":false,"RD":true,"RA":true,"AD":false,"CD":false,"Question":[{"name":"_public-agents.stripe.com","type":16}],"Authority":[{"name":"stripe.com","type":6,"TTL":900,"data":"ns-1882.awsdns-43.co.uk. awsdns-hostmaster.amazon.com. 1 900 900 1209600 3600"}]}