Sends a card request that Browser Pay paused in the buyer’s browser on to the payment provider. The request carries the transaction’s placeholder card; the card provider replaces it with the real card, at most once per placeholder. The response is the payment provider’s answer, or a typed refusal. Requires a buyer key.
The injection profile the request matched. Without one, the relay sends it to its own URL.
Maximum string length: 64
Example:
"shopify-card-vault"
Response
200
relayed, refused with a reason and retryable (and a requestId on sapiom_error), or unknown
{"docsConfig":{"theme":"mint","$schema":"https://mintlify.com/docs.json","name":"Sapiom Pay","description":"Let your AI agent buy for each of your users with their own saved card. Sapiom vaults each user's card, authorizes every transaction against real checkout facts, and fills the card into checkout without your agent ever seeing it.","colors":{"primary":"#16A34A","light":"#07C983","dark":"#15803D"},"logo":{"light":"https://mintcdn.com/sapiom-1f975ca2/K4zW5IjQAMJutZvi/logo/light.svg?fit=max\u0026auto=format\u0026n=K4zW5IjQAMJutZvi\u0026q=85\u0026s=37d04ab53c9792ff376364fd56a2799e","dark":"https://mintcdn.com/sapiom-1f975ca2/K4zW5IjQAMJutZvi/logo/dark.svg?fit=max\u0026auto=format\u0026n=K4zW5IjQAMJutZvi\u0026q=85\u0026s=bee7a03b976b9be9e5944daf9ca380ba"},"favicon":"https://mintcdn.com/sapiom-1f975ca2/7k2CTIHfQZNyln5W/favicon.svg?fit=max\u0026auto=format\u0026n=7k2CTIHfQZNyln5W\u0026q=85\u0026s=ffac7db148c05d663b25d3e420b2a24d","api":{"playground":{"display":"simple"}},"navbar":{"primary":{"type":"button","label":"Request access","href":"/request-access"}},"contextual":{"options":["copy","view","chatgpt","claude","perplexity","mcp","cursor","vscode"],"display":"header"},"markdown":{"instructions":["Sapiom Pay is for platforms whose agent shops for many end users. Each end user is a buyer with their own Sapiom key and saved cards.","Use the buyer's key for every call made on that buyer's behalf. Never use one buyer's key for another user, and never give the agent the platform key.","Backends call the REST API at https://api.sapiom.ai/v1. Agents can also call the hosted MCP tools at https://api.sapiom.ai/v1/mcp. Both take the key in an x-api-key header.","Never ask a buyer for a card number, expiry date or CVV in chat. Buyers enter card details only on Sapiom's hosted pages.","Check the merchant before buying. Use purchase.type ucp_checkout only when the merchant check returns supported. Otherwise use browser_checkout.","Follow the nextAction in each transaction result. Action links are secrets for the intended buyer only.","Use one idempotency key per transaction. After a timeout, retry with the same key. Never start a new transaction to escape an uncertain outcome.","For a ucp_checkout purchase, report an order as placed only when order.outcome is confirmed; if it is unknown, stop and hand off to a person. A browser_checkout purchase has no order confirmation (order is null): confirm the order on the merchant's page."]},"styling":{"latex":false},"navigation":{"pages":[]}},"deployment":{"deploymentMetadataValue":{"subdomain":"sapiom-1f975ca2","hasAudioNarration":false,"actualSubdomain":"sapiom-1f975ca2","customDomains":["docs.sapiom.ai"],"gitSource":{"type":"github","owner":"sapiom","repo":"docs","deployBranch":"main","contentDirectory":"","isPrivate":true,"mountPath":"","label":""},"chroma":{"latestBuiltDeploymentHistoryId":"6ae3986e8e73fed857bcceb0","collectionId":"b51ce96a-6b23-406e-9e1a-5addb83c145a","liveDeploymentHistoryId":"6ae3986e8e73fed857bcceb0","schemaVersion":"v3"},"entitlements":{"AI_CHAT":{"status":"ENABLED"},"WEB_MCP":{"status":"ENABLED"},"NARRATION":{"status":"ENABLED"}},"buildId":"6ae3c52ec5d898c8ed6d2d2d","clientVersion":"0.0.4021","searchFilterCounts":[{"language":"default","tag":"API reference","count":26},{"language":"default","tag":"REST API","count":22},{"language":"default","tag":"Docs","count":14},{"language":"default","tag":"Transactions","count":11},{"language":"default","tag":"Cards","count":8},{"language":"default","tag":"Buyers","count":6},{"language":"default","tag":"Get started","count":3},{"language":"default","tag":"MCP and SDK","count":2},{"language":"default","tag":"Early access","count":2},{"language":"default","tag":"Spending limits","count":2}]},"assistantConfig":{"enableAskAiButton":false,"enableStarterQuestions":false,"enableContextualStarterQuestions":false,"enableAskAiSearchBar":true},"basePath":"","hasChatPermissions":true,"hasWebMcpPermissions":true,"toggles":[{"name":"kill-isr","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"agent-mintlify-slack","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"agent-integrations-settings","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"automations-pr-grouping","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"custom-prefix","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"analytics-v7","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"user-flows-analytics","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"no-publish-flow","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-onboarding","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"llms-txt-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"snapshot-serving-live","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"stripTemperatureMiddleware","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"per-site-search-delta","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"support-platform-pylon-zendesk","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"snapshot-serving","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"instant-rollback","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"granular-notifications-server","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"granular-notifications","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"editor-private-page-search","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"automations-fable","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"fixed-ai-action-pricing","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"automation-resolve-merge-conflict","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"scoped-publishing","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"mintql","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"page-level-analytics","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"editor-version-history-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"billing-page-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workspace-projects","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"assistant-v5","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"byok-sep-25","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"fork-pr-previews","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"revalidation-jwt","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"vite-origin","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"billing-updated-9-15","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-sso-scim","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"hobby-abuse-scan","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"dashboard-inbox","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-signup","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-enabled","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false}],"googleFontsInlined":false},"customCss":[],"page":{"pagePath":"api-reference/browser-pay-relay/relay-a-card-request","slug":"/api-reference/browser-pay-relay/relay-a-card-request","pageMetadata":{"title":"Relay a card request","description":"Sends a card request that Browser Pay paused in the buyer's browser on to the payment provider. The request carries the transaction's placeholder card; the card provider replaces it with the real card, at most once per placeholder. The response is the payment provider's answer, or a typed refusal. Requires a [buyer key](/api-reference/overview#authentication).","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json post /v1/transactions/{transactionId}/payment/relay","href":"/api-reference/browser-pay-relay/relay-a-card-request","autogeneratedByOpenApi":true},"description":{"compiledSource":"\"use strict\";\nconst {jsx: _jsx, jsxs: _jsxs} = arguments[0];\nconst {useMDXComponents: _provideComponents} = arguments[0];\nfunction _createMdxContent(props) {\n const _components = {\n a: \"a\",\n p: \"p\",\n ..._provideComponents(),\n ...props.components\n };\n return _jsxs(_components.p, {\n children: [\"Sends a card request that Browser Pay paused in the buyer’s browser on to the payment provider. The request carries the transaction’s placeholder card; the card provider replaces it with the real card, at most once per placeholder. The response is the payment provider’s answer, or a typed refusal. Requires a \", _jsx(_components.a, {\n href: \"/api-reference/overview#authentication\",\n children: \"buyer key\"\n }), \".\"]\n });\n}\nfunction MDXContent(props = {}) {\n const {wrapper: MDXLayout} = {\n ..._provideComponents(),\n ...props.components\n };\n return MDXLayout ? _jsx(MDXLayout, {\n ...props,\n children: _jsx(_createMdxContent, {\n ...props\n })\n }) : _createMdxContent(props);\n}\nreturn {\n default: MDXContent\n};\n","frontmatter":{},"scope":{}},"pageType":"default","mdx":{"mdxSource":{"compiledSource":"\"use strict\";const{Fragment:_Fragment,jsx:_jsx}=arguments[0];const{useMDXComponents:_provideComponents}=arguments[0];function _createMdxContent(props){return _jsx(_Fragment,{})}function MDXContent(props={}){const{wrapper:MDXLayout}={..._provideComponents(),...props.components};return MDXLayout?_jsx(MDXLayout,{...props,children:_jsx(_createMdxContent,{...props})}):_createMdxContent(props)}return{default:MDXContent}","frontmatter":{},"scope":{"config":{},"pageMetadata":{"title":"Relay a card request","description":"Sends a card request that Browser Pay paused in the buyer's browser on to the payment provider. The request carries the transaction's placeholder card; the card provider replaces it with the real card, at most once per placeholder. The response is the payment provider's answer, or a typed refusal. Requires a [buyer key](/api-reference/overview#authentication).","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json post /v1/transactions/{transactionId}/payment/relay","href":"/api-reference/browser-pay-relay/relay-a-card-request","autogeneratedByOpenApi":true}}},"mdxSourceWithNoJs":null},"mdxExtracts":{"tableOfContents":[],"codeExamples":{}},"jsLinks":[],"openApiReferenceData":{"operation":{"description":"Sends a card request that Browser Pay paused in the buyer's browser on to the payment provider. The request carries the transaction's placeholder card; the card provider replaces it with the real card, at most once per placeholder. The response is the payment provider's answer, or a typed refusal. Requires a [buyer key](/api-reference/overview#authentication).","operationId":"CardRelayController_relay","parameters":["dfcff40a-4954-4c90-a88e-84386f21ff59"],"requestBody":"0bb48df4-4f94-49e4-89f3-5400e117156f","responses":{"200":"5e8b39e6-32eb-4704-9ada-158512b1ab06"},"security":["b2ed93f8-a66b-4589-bd94-61c4bef1f64b"],"summary":"Relay a card request","tags":["Browser Pay relay"],"method":"post","type":"path","servers":["312e701b-d134-4962-9d53-a698bbfa8dd1"],"path":"/v1/transactions/{transactionId}/payment/relay","baseUrlOptions":["https://api.sapiom.ai"],"title":"Relay a card request","codeSamples":[],"requiredOnlyExamples":false,"requestExampleType":"generated","responseExampleType":"generated"},"dependencies":{"parameters":{"dfcff40a-4954-4c90-a88e-84386f21ff59":{"name":"transactionId","required":true,"in":"path","schema":{"type":"string","isRequired":true,"uniqueKey":"","typeLabel":"string"}}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"injectionRef":{"type":"string","format":"uuid","description":"The placeholder's `injectionRef`.","isRequired":true,"uniqueKey":"injectionRef","typeLabel":"string\u003cuuid>"},"pageOrigin":{"type":"string","maxLength":200,"example":"https://store.myshopify.com","description":"The top-level page's origin.","isRequired":true,"uniqueKey":"pageOrigin","typeLabel":"string"},"request":{"type":"object","properties":{"method":{"type":"string","maxLength":16,"example":"POST","isRequired":true,"uniqueKey":"request.method","typeLabel":"string"},"url":{"type":"string","maxLength":2048,"example":"https://checkout.pci.shopifyinc.com/sessions","isRequired":true,"uniqueKey":"request.url","typeLabel":"string"},"headers":{"type":"object","description":"Names in lower case. Through a profile only its forwarded headers count; without one, every header but the connection's is forwarded.","isRequired":true,"uniqueKey":"request.headers","typeLabel":"object"},"body":{"type":"string","maxLength":65536,"description":"The paused body as the form wrote it, placeholder included: JSON or form fields.","isRequired":true,"uniqueKey":"request.body","typeLabel":"string"}},"required":["method","url","headers","body"],"isRequired":true,"uniqueKey":"request","typeLabel":"object"},"idempotencyKey":{"type":"string","maxLength":255,"description":"Repeating a relay with the same key returns its first result.","isRequired":true,"uniqueKey":"idempotencyKey","typeLabel":"string"},"profileId":{"type":"string","maxLength":64,"example":"shopify-card-vault","description":"The injection profile the request matched. Without one, the relay sends it to its own URL.","uniqueKey":"profileId","typeLabel":"string"}},"required":["injectionRef","pageOrigin","request","idempotencyKey"],"uniqueKey":"","typeLabel":"object"},"examples":{"Example":{"title":"Example","value":{"injectionRef":"3c90c3cc-0d44-4b50-8888-8dd25736052a","pageOrigin":"https://store.myshopify.com","request":{"method":"POST","url":"https://checkout.pci.shopifyinc.com/sessions","headers":{},"body":"\u003cstring>"},"idempotencyKey":"\u003cstring>","profileId":"shopify-card-vault"}}},"exampleType":"generated"}},"exampleType":"generated"},"responses":{"5e8b39e6-32eb-4704-9ada-158512b1ab06":{"description":"`relayed`, `refused` with a `reason` and `retryable` (and a `requestId` on `sapiom_error`), or `unknown`","content":{"_mintlify/placeholder":{"schema":{"type":"object","description":""}}}}},"security":{"b2ed93f8-a66b-4589-bd94-61c4bef1f64b":{"api-key":{"type":"apiKey","in":"header","name":"x-api-key","description":"Your platform key for buyer management, or a buyer key for everything else.","scopes":[],"schemeName":"api-key"}}},"servers":{"312e701b-d134-4962-9d53-a698bbfa8dd1":{"url":"https://api.sapiom.ai","description":"Production"}},"processedSecurityOptions":[{"schemes":[{"scheme":{"type":"apiKey","in":"header","name":"x-api-key","description":"Your platform key for buyer management, or a buyer key for everything else.","scopes":[],"schemeName":"api-key"},"schema":{"title":"x-api-key","type":"string","description":"Your platform key for buyer management, or a buyer key for everything else.","isRequired":true,"typeLabel":"string","deprecated":false},"schemeName":"api-key","name":"x-api-key"}],"title":"api-key"}]},"originalFileLocation":"api-reference/openapi.json"},"subdomain":"sapiom-1f975ca2","siteName":"Sapiom Pay","title":"Relay a card request - Sapiom Pay","navMaps":{"firstHrefInVersion":{},"firstHrefInLanguage":{}},"lastModified":"2026-10-29T22:14:11.920Z","originalFileLocation":"api-reference/browser-pay-relay/relay-a-card-request.mdx"},"headHtml":"\u003cscript data-mint-head>(function(){var d=document.documentElement,p=null;if(!p){try{p=localStorage.getItem(\"isDarkMode\")}catch(e){}if(p==='true')p='dark';else if(p==='false')p='light';if(p!=='light'\u0026\u0026p!=='dark'\u0026\u0026p!=='system')p=\"system\"}var r=p==='system'?(matchMedia(\"(prefers-color-scheme: dark)\").matches?'dark':'light'):p;d.classList.remove(r==='dark'?'light':'dark');d.classList.add(r);d.setAttribute(\"data-theme-preference\",p)})();\u003c/script>\u003cmeta data-mint-head name=\"description\" content=\"Sends a card request that Browser Pay paused in the buyer\u0026#x27;s browser on to the payment provider. The request carries the transaction\u0026#x27;s placeholder card; the card provider replaces it with the real card, at most once per placeholder. The response is the payment provider\u0026#x27;s answer, or a typed refusal. Requires a buyer key.\">\u003cmeta data-mint-head name=\"application-name\" content=\"Sapiom Pay\">\u003cmeta data-mint-head name=\"generator\" content=\"Mintlify\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"192x192\" href=\"/mintlify-assets/_mintlify/favicons/sapiom-1f975ca2/YgmZC92WGBAfsBaa/_generated/favicon/android-chrome-192x192.png\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"apple-touch-icon\" type=\"image/png\" sizes=\"180x180\" href=\"/mintlify-assets/_mintlify/favicons/sapiom-1f975ca2/YgmZC92WGBAfsBaa/_generated/favicon/apple-touch-icon.png\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"16x16\" href=\"/mintlify-assets/_mintlify/favicons/sapiom-1f975ca2/YgmZC92WGBAfsBaa/_generated/favicon/favicon-16x16.png\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"32x32\" href=\"/mintlify-assets/_mintlify/favicons/sapiom-1f975ca2/YgmZC92WGBAfsBaa/_generated/favicon/favicon-32x32.png\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"shortcut icon\" type=\"image/x-icon\" href=\"/mintlify-assets/_mintlify/favicons/sapiom-1f975ca2/YgmZC92WGBAfsBaa/_generated/favicon/favicon.ico\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"192x192\" href=\"/mintlify-assets/_mintlify/favicons/sapiom-1f975ca2/YgmZC92WGBAfsBaa/_generated/favicon-dark/android-chrome-192x192.png\" media=\"(prefers-color-scheme: dark)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"16x16\" href=\"/mintlify-assets/_mintlify/favicons/sapiom-1f975ca2/YgmZC92WGBAfsBaa/_generated/favicon-dark/favicon-16x16.png\" media=\"(prefers-color-scheme: dark)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"32x32\" href=\"/mintlify-assets/_mintlify/favicons/sapiom-1f975ca2/YgmZC92WGBAfsBaa/_generated/favicon-dark/favicon-32x32.png\" media=\"(prefers-color-scheme: dark)\">\u003clink data-mint-head rel=\"shortcut icon\" type=\"image/x-icon\" href=\"/mintlify-assets/_mintlify/favicons/sapiom-1f975ca2/YgmZC92WGBAfsBaa/_generated/favicon-dark/favicon.ico\" media=\"(prefers-color-scheme: dark)\">\u003cmeta data-mint-head property=\"og:title\" content=\"Relay a card request - Sapiom Pay\">\u003cmeta data-mint-head property=\"og:description\" content=\"Sends a card request that Browser Pay paused in the buyer\u0026#x27;s browser on to the payment provider. The request carries the transaction\u0026#x27;s placeholder card; the card provider replaces it with the real card, at most once per placeholder. The response is the payment provider\u0026#x27;s answer, or a typed refusal. Requires a buyer key.\">\u003cmeta data-mint-head property=\"og:site_name\" content=\"Sapiom Pay\">\u003cmeta data-mint-head property=\"og:url\" content=\"https://docs.sapiom.ai/api-reference/browser-pay-relay/relay-a-card-request\">\u003cmeta data-mint-head property=\"og:type\" content=\"website\">\u003cmeta data-mint-head property=\"og:image\" content=\"https://sapiom-1f975ca2.mintlify.app/_mintlify/api/og/v2?division=Browser+Pay+relay\u0026amp;title=Relay+a+card+request\u0026amp;description=Sends+a+card+request+that+Browser+Pay+paused+in+the+buyer%27s+browser+on+to+the+payment+provider.+The+request+carries+the+transaction%27s+placeholder+card%3B+the+card\u0026amp;theme=094d3944263395c13d2c9b53\u0026amp;signature=16d45fb36c30d1e66c3148db6c2fcca66d923091428338a26500aa7ce700aef3\">\u003cmeta data-mint-head property=\"og:image:width\" content=\"1200\">\u003cmeta data-mint-head property=\"og:image:height\" content=\"630\">\u003cmeta data-mint-head name=\"twitter:card\" content=\"summary_large_image\">\u003cmeta data-mint-head name=\"twitter:title\" content=\"Relay a card request - Sapiom Pay\">\u003cmeta data-mint-head name=\"twitter:description\" content=\"Sends a card request that Browser Pay paused in the buyer\u0026#x27;s browser on to the payment provider. The request carries the transaction\u0026#x27;s placeholder card; the card provider replaces it with the real card, at most once per placeholder. The response is the payment provider\u0026#x27;s answer, or a typed refusal. Requires a buyer key.\">\u003cmeta data-mint-head name=\"twitter:image\" content=\"https://sapiom-1f975ca2.mintlify.app/_mintlify/api/og/v2?division=Browser+Pay+relay\u0026amp;title=Relay+a+card+request\u0026amp;description=Sends+a+card+request+that+Browser+Pay+paused+in+the+buyer%27s+browser+on+to+the+payment+provider.+The+request+carries+the+transaction%27s+placeholder+card%3B+the+card\u0026amp;theme=094d3944263395c13d2c9b53\u0026amp;signature=16d45fb36c30d1e66c3148db6c2fcca66d923091428338a26500aa7ce700aef3\">\u003cmeta data-mint-head name=\"twitter:image:width\" content=\"1200\">\u003cmeta data-mint-head name=\"twitter:image:height\" content=\"630\">\u003cmeta data-mint-head name=\"msapplication-config\" content=\"/mintlify-assets/_mintlify/favicons/sapiom-1f975ca2/YgmZC92WGBAfsBaa/_generated/favicon/browserconfig.xml\">\u003cmeta data-mint-head name=\"apple-mobile-web-app-title\" content=\"Sapiom Pay\">\u003cmeta data-mint-head name=\"msapplication-TileColor\" content=\"#16A34A\">\u003clink data-mint-head rel=\"canonical\" href=\"https://docs.sapiom.ai/api-reference/browser-pay-relay/relay-a-card-request\">\u003clink data-mint-head rel=\"alternate\" type=\"application/xml\" href=\"/sitemap.xml\">\u003clink data-mint-head rel=\"alternate\" type=\"text/markdown\" href=\"/api-reference/browser-pay-relay/relay-a-card-request.md\">\u003cscript data-mint-head type=\"application/ld+json\">{\"@context\":\"https://schema.org\",\"@graph\":[{\"@type\":\"Organization\",\"@id\":\"https://docs.sapiom.ai/#organization\",\"name\":\"Sapiom Pay\",\"url\":\"https://docs.sapiom.ai\",\"logo\":{\"@type\":\"ImageObject\",\"url\":\"https://mintcdn.com/sapiom-1f975ca2/K4zW5IjQAMJutZvi/logo/light.svg?fit=max\u0026auto=format\u0026n=K4zW5IjQAMJutZvi\u0026q=85\u0026s=37d04ab53c9792ff376364fd56a2799e\"}},{\"@type\":\"WebSite\",\"@id\":\"https://docs.sapiom.ai#website\",\"name\":\"Sapiom Pay\",\"url\":\"https://docs.sapiom.ai\",\"publisher\":{\"@id\":\"https://docs.sapiom.ai/#organization\"}},{\"@type\":\"WebPage\",\"@id\":\"https://docs.sapiom.ai/api-reference/browser-pay-relay/relay-a-card-request#webpage\",\"url\":\"https://docs.sapiom.ai/api-reference/browser-pay-relay/relay-a-card-request\",\"name\":\"Relay a card request\",\"description\":\"Sends a card request that Browser Pay paused in the buyer's browser on to the payment provider. The request carries the transaction's placeholder card; the card provider replaces it with the real card, at most once per placeholder. The response is the payment provider's answer, or a typed refusal. Requires a buyer key.\",\"dateModified\":\"2026-10-29T22:14:11.920Z\",\"isPartOf\":{\"@id\":\"https://docs.sapiom.ai#website\"},\"breadcrumb\":{\"@id\":\"https://docs.sapiom.ai/api-reference/browser-pay-relay/relay-a-card-request#breadcrumb\"}},{\"@type\":\"BreadcrumbList\",\"@id\":\"https://docs.sapiom.ai/api-reference/browser-pay-relay/relay-a-card-request#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"REST API\",\"item\":\"https://docs.sapiom.ai/api-reference/buyers/create-a-buyer\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Relay a card request\",\"item\":\"https://docs.sapiom.ai/api-reference/browser-pay-relay/relay-a-card-request\"}]},{\"@type\":[\"TechArticle\",\"APIReference\"],\"@id\":\"https://docs.sapiom.ai/api-reference/browser-pay-relay/relay-a-card-request#apireference\",\"headline\":\"Relay a card request\",\"name\":\"Relay a card request\",\"description\":\"Sends a card request that Browser Pay paused in the buyer's browser on to the payment provider. The request carries the transaction's placeholder card; the card provider replaces it with the real card, at most once per placeholder. The response is the payment provider's answer, or a typed refusal. Requires a buyer key.\",\"url\":\"https://docs.sapiom.ai/api-reference/browser-pay-relay/relay-a-card-request\",\"mainEntityOfPage\":{\"@id\":\"https://docs.sapiom.ai/api-reference/browser-pay-relay/relay-a-card-request#webpage\"},\"dateModified\":\"2026-10-29T22:14:11.920Z\",\"publisher\":{\"@id\":\"https://docs.sapiom.ai/#organization\"},\"isPartOf\":{\"@id\":\"https://docs.sapiom.ai#website\"}}]}\u003c/script>\u003cscript data-mint-head type=\"application/ld+json\">{\"@context\":\"https://schema.org\",\"@type\":\"WebSite\",\"name\":\"Sapiom Pay\",\"creator\":{\"@type\":\"Organization\",\"name\":\"Mintlify\",\"url\":\"https://mintlify.com\"}}\u003c/script>","siteName":"Sapiom Pay","nav":{"global":null,"tabs":[{"tab":"Docs","pages":[{"title":"Docs","href":""}]},{"tab":"API reference","groups":[{"group":"Overview","pages":[{"title":"Sapiom Pay API overview","sidebarTitle":"Overview","href":"/api-reference/overview"}]},{"group":"REST API","pages":[{"group":"Buyers","pages":[{"title":"Create a buyer","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json post /v1/tenants","href":"/api-reference/buyers/create-a-buyer"},{"title":"List buyers","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json get /v1/tenants","href":"/api-reference/buyers/list-buyers"},{"title":"Delete a buyer","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json delete /v1/tenants/{tenantId}","href":"/api-reference/buyers/delete-a-buyer"},{"title":"Create a buyer key","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json post /v1/tenants/{tenantId}/api-keys","href":"/api-reference/buyers/create-a-buyer-key"}]},{"group":"Cards","pages":[{"title":"Create a setup link","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json post /v1/payment-cards/setup-links","href":"/api-reference/cards/create-a-setup-link"},{"title":"Get a setup link","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json get /v1/payment-cards/setup-links/{linkId}","href":"/api-reference/cards/get-a-setup-link"},{"title":"List cards","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json get /v1/payment-cards","href":"/api-reference/cards/list-cards"},{"title":"Get a card","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json get /v1/payment-cards/{cardId}","href":"/api-reference/cards/get-a-card"},{"title":"Set the default card","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json put /v1/payment-cards/{cardId}/default","href":"/api-reference/cards/set-the-default-card"},{"title":"Remove a card","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json delete /v1/payment-cards/{cardId}","href":"/api-reference/cards/remove-a-card"}]},{"group":"Spending limits","pages":[{"title":"Get spending limits","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json get /v1/payment-cards/{cardId}/spending-limits","href":"/api-reference/spending-limits/get-spending-limits"},{"title":"Set spending limits","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json put /v1/payment-cards/{cardId}/spending-limits","href":"/api-reference/spending-limits/set-spending-limits"}]},{"group":"Merchants","pages":[{"title":"Check a merchant","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json get /v1/transaction-compatibility","href":"/api-reference/merchants/check-a-merchant"}]},{"group":"Transactions","pages":[{"title":"Create a transaction","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json post /v1/transactions","href":"/api-reference/transactions/create-a-transaction"},{"title":"Get a transaction","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json get /v1/transactions/{transactionId}","href":"/api-reference/transactions/get-a-transaction"},{"title":"Cancel a transaction","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json post /v1/transactions/{transactionId}/cancel","href":"/api-reference/transactions/cancel-a-transaction"},{"title":"Open the checkout","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json post /v1/transactions/{transactionId}/ucp/checkout","href":"/api-reference/transactions/open-the-checkout"},{"title":"Get the checkout","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json get /v1/transactions/{transactionId}/ucp/checkout","href":"/api-reference/transactions/get-the-checkout"},{"title":"Replace the checkout","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json put /v1/transactions/{transactionId}/ucp/checkout","href":"/api-reference/transactions/replace-the-checkout"},{"title":"Cancel the checkout","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json post /v1/transactions/{transactionId}/ucp/checkout/cancel","href":"/api-reference/transactions/cancel-the-checkout"},{"title":"Refresh the checkout","description":"Asks the merchant for its current checkout and records the answer as evidence; changes nothing at the merchant. Use it when governance reports merchant_change_unconfirmed. While another operation on this checkout is in flight, the stored checkout is returned unchanged. Requires a [buyer key](/api-reference/overview#authentication).","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json post /v1/transactions/{transactionId}/ucp/checkout/refresh","href":"/api-reference/transactions/refresh-the-checkout"}]},{"group":"Browser Pay relay","pages":[{"title":"Relay a card request","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json post /v1/transactions/{transactionId}/payment/relay","href":"/api-reference/browser-pay-relay/relay-a-card-request"}]}]},{"group":"MCP and SDK","pages":[{"title":"Sapiom Pay MCP tools reference","sidebarTitle":"MCP tools","description":null,"href":"/api-reference/mcp-tools"},{"title":"Browser Pay SDK reference","sidebarTitle":"Browser Pay SDK","href":"/api-reference/browser-pay-sdk"}]},{"group":"Errors","pages":[{"title":"Sapiom Pay errors and how to handle them","sidebarTitle":"Errors","href":"/api-reference/errors"}]}]}]},"title":"Relay a card request - Sapiom Pay","buildId":"dpl_EnxDqhjaNc9a8MVa833TGULPd9uJ","deploymentId":"dpl_EnxDqhjaNc9a8MVa833TGULPd9uJ","dynamics":["c2aa737661","2b790eda92","b0f84f53ff","a9bb46feb3"],"chunks":["OpenApiReferenceProvider-26-lDe7V.js","utils-CWQmgYtH.js","cloneDeep-izs3Hzxb.js","_Uint8Array-BVIqJ90l.js","isObjectLike-C8vmzPEN.js","isArray-Dcu1dQ5t.js","utils-4-Aw3rSD.js","toString-BX-iyh8G.js","isSymbol-CSH9U2Gm.js","addUniqueKeysToSchema-C2zjXYA5.js","snippetPresets-DFmpFA7C.js","style-to-object-BY3JEAdk.js","v4-DIgz8zy6.js","ApiExamples-FJpQavWq.js","isEqual-BfaiBbcl.js","usePlaygroundInputsStore-D_GvPF7k.js","shallow-Bs2ZB0NO.js","getApiPlaygroundDisplay-DCcqJJk-.js","CodeSnippet-DzDxawVe.js","CodeSnippets-aUr7fU-7.js","Page-CT9uE8Ip.js","getPastedJson-Y1fKsj_I.js","icon-DI4zTsDr.js","MethodPill-C0nDlmSQ.js","DuplicateIcon-NUXbx2nQ.js","createIcon-BdTHrPAi.js","DynamicMarkdown-CtpgKJwj.js","SectionHeading-B3x35tOt.js","axios-vUo_bRtp.js","Markdown-3OmurJMP.js","clsx-DMKzROTp.js","lib-DuNMoZ05.js","lib-B8HbPgcC.js","html-void-elements-mCSPHezU.js","dist-1ms6tsT-.js","katex-YMM-FMeD.js","marked.esm-CZWythHk.js","AssistantPageLink-Ke9xIMFx.js"]}