Creates a new transaction for the organization associated with the API key. Automatically handles authorization and payment if required. Supports an optional x-idempotency-key header (max 255 chars), unique per tenant: replaying a key returns the previously created transaction — whatever its state — instead of creating a new one. First-write-wins: the original transaction is returned even if the replayed request body differs, so use a fresh key for each genuinely new request. Requires a buyer key.
For a Sapiom Pay transaction, send requestFacts with source: "ucp-checkout", version: "v1" and the merchant’s origin in request.merchantOrigin, plus funding.source: "external_card". Omit funding.paymentCardId to use the buyer’s default card. Then open the merchant checkout with Open the checkout.
For a transaction: source is ucp-checkout, version is v1, and request.merchantOrigin is the merchant's origin. request.estimate is your optional expected total.
How a UCP checkout is paid. Each final merchant total is paid with this card, authorized together with governance; the authorized transaction's payment carries the placeholder card to submit. Only for ucp-checkout request facts, and never with paymentData.
For one UCP checkout: the shipping address and contact the checkout driver fills into the merchant checkout wherever the agent's create or update leaves them out: the contact and the address's name as buyer, and the address as the destination of a shipping method that has none (or of a new shipping method, when the request has no fulfillment). Anything the agent sends wins. Only for ucp-checkout request facts.
Agent information if transaction is associated with an agent
Show child attributes
{"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.","Agents call the hosted MCP tools at https://api.sapiom.ai/v1/mcp. Backends call the REST API at https://api.sapiom.ai/v1. 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.","Follow the nextAction in each transaction result. Action links are secrets for the intended buyer only.","Use one idempotencyKey per transaction. After a timeout, retry with the same key. Never start a new transaction to escape an uncertain outcome.","Report an order as placed only when order.outcome is confirmed. If it is unknown, stop and hand off to a person."]},"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":"6adc09fb88e4302084f07b26","collectionId":"63ee2a9b-edcc-4ec4-bdef-e6e8dece8b95","liveDeploymentHistoryId":"6adc09fb88e4302084f07b26","schemaVersion":"v3"},"entitlements":{"AI_CHAT":{"status":"ENABLED"},"WEB_MCP":{"status":"ENABLED"},"NARRATION":{"status":"ENABLED"}},"buildId":"6adc2ddc1885992e09c7803b","clientVersion":"0.0.3964","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":9},{"language":"default","tag":"Cards","count":8},{"language":"default","tag":"Buyers","count":6},{"language":"default","tag":"Get started","count":3},{"language":"default","tag":"Browser checkout","count":3},{"language":"default","tag":"MCP and SDK","count":2},{"language":"default","tag":"Early access","count":2}]},"assistantConfig":{"enableAskAiButton":false,"enableStarterQuestions":false,"enableContextualStarterQuestions":false,"enableAskAiSearchBar":true},"hasChatPermissions":true,"hasWebMcpPermissions":true,"toggles":[{"name":"kill-isr","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"agent-mintlify-slack","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"editor-v7-file-tree","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"agent-integrations-settings","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"automations-pr-grouping","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"custom-prefix","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"analytics-v7","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"user-flows-analytics","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"no-publish-flow","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-onboarding","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"llms-txt-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"pause-universal-search-reconcile","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"snapshot-serving-live","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"stripTemperatureMiddleware","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"per-site-search-delta","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"support-platform-pylon-zendesk","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"snapshot-serving","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"instant-rollback","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"granular-notifications-server","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"granular-notifications","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"editor-private-page-search","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"automations-fable","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"fixed-ai-action-pricing","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"automation-resolve-merge-conflict","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"scoped-publishing","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"mintql","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"page-level-analytics","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"editor-version-history-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"editor-nav-generations","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"billing-page-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workspace-projects","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"assistant-v5","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"byok-sep-25","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"fork-pr-previews","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"revalidation-jwt","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"vite-origin","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"editor-agent-model-picker","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"billing-updated-9-15","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"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}],"isAtlas":false,"googleFontsInlined":false},"customCss":[],"page":{"pagePath":"api-reference/transactions/create-a-transaction","slug":"/api-reference/transactions/create-a-transaction","pageMetadata":{"title":"Create a transaction","description":"Creates a new transaction for the organization associated with the API key. Automatically handles authorization and payment if required. Supports an optional `x-idempotency-key` header (max 255 chars), unique per tenant: replaying a key returns the previously created transaction — whatever its state — instead of creating a new one. First-write-wins: the original transaction is returned even if the replayed request body differs, so use a fresh key for each genuinely new request. Requires a [buyer key](/api-reference/overview#authentication).","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json post /v1/transactions","href":"/api-reference/transactions/create-a-transaction","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 code: \"code\",\n p: \"p\",\n ..._provideComponents(),\n ...props.components\n };\n return _jsxs(_components.p, {\n children: [\"Creates a new transaction for the organization associated with the API key. Automatically handles authorization and payment if required. Supports an optional \", _jsx(_components.code, {\n children: \"x-idempotency-key\"\n }), \" header (max 255 chars), unique per tenant: replaying a key returns the previously created transaction — whatever its state — instead of creating a new one. First-write-wins: the original transaction is returned even if the replayed request body differs, so use a fresh key for each genuinely new request. 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{jsx:_jsx,jsxs:_jsxs}=arguments[0];const{useMDXComponents:_provideComponents}=arguments[0];function _createMdxContent(props){const _components={a:`a`,code:`code`,..._provideComponents(),...props.components},{Note}=_components;if(!Note)_missingMdxReference(`Note`,true);return _jsxs(Note,{children:[`For a Sapiom Pay transaction, send `,_jsx(_components.code,{children:`requestFacts`}),` with `,_jsx(_components.code,{children:`source: \"ucp-checkout\"`}),`, `,_jsx(_components.code,{children:`version: \"v1\"`}),` and the merchant’s origin in `,_jsx(_components.code,{children:`request.merchantOrigin`}),`, plus `,_jsx(_components.code,{children:`funding.source: \"external_card\"`}),`. Omit `,_jsx(_components.code,{children:`funding.paymentCardId`}),` to use the buyer’s default card. Then open the merchant checkout with `,_jsx(_components.a,{href:`/api-reference/transactions/open-the-checkout`,children:`Open the checkout`}),`.`]})}function MDXContent(props={}){const{wrapper:MDXLayout}={..._provideComponents(),...props.components};return MDXLayout?_jsx(MDXLayout,{...props,children:_jsx(_createMdxContent,{...props})}):_createMdxContent(props)}return{default:MDXContent};function _missingMdxReference(id,component){throw new Error(`Expected `+(component?`component`:`object`)+\" `\"+id+\"` to be defined: you likely forgot to import, pass, or provide it.\")}","frontmatter":{},"scope":{"config":{},"pageMetadata":{"title":"Create a transaction","description":"Creates a new transaction for the organization associated with the API key. Automatically handles authorization and payment if required. Supports an optional `x-idempotency-key` header (max 255 chars), unique per tenant: replaying a key returns the previously created transaction — whatever its state — instead of creating a new one. First-write-wins: the original transaction is returned even if the replayed request body differs, so use a fresh key for each genuinely new request. Requires a [buyer key](/api-reference/overview#authentication).","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json post /v1/transactions","href":"/api-reference/transactions/create-a-transaction","autogeneratedByOpenApi":true}}},"mdxSourceWithNoJs":null},"mdxExtracts":{"tableOfContents":[],"codeExamples":{}},"jsLinks":[],"openApiReferenceData":{"operation":{"description":"Creates a new transaction for the organization associated with the API key. Automatically handles authorization and payment if required. Supports an optional `x-idempotency-key` header (max 255 chars), unique per tenant: replaying a key returns the previously created transaction — whatever its state — instead of creating a new one. First-write-wins: the original transaction is returned even if the replayed request body differs, so use a fresh key for each genuinely new request. Requires a [buyer key](/api-reference/overview#authentication).","operationId":"TransactionController_createTransaction","parameters":["86c18dee-88ab-4b44-b0a8-3e82d5f57783"],"requestBody":"c139b32c-afd5-486a-b9c8-b00b6bc0ab35","responses":{"201":"3191ae1b-4209-44f0-bc0a-9dea11eac1a4","400":"bf698e84-0547-46cf-8752-1d7e84b0538b","401":"b18630b1-be05-4899-842a-77014ec5d686"},"security":["46238c90-5539-4ee6-b8da-339e27ad8c24"],"summary":"Create a transaction","tags":["Transactions"],"x-mint":{"content":"\u003cNote>For a Sapiom Pay transaction, send `requestFacts` with `source: \"ucp-checkout\"`, `version: \"v1\"` and the merchant's origin in `request.merchantOrigin`, plus `funding.source: \"external_card\"`. Omit `funding.paymentCardId` to use the buyer's default card. Then open the merchant checkout with [Open the checkout](/api-reference/transactions/open-the-checkout).\u003c/Note>"},"method":"post","type":"path","servers":["129d4bde-9564-498b-9b32-242ff84fee16"],"path":"/v1/transactions","baseUrlOptions":["https://api.sapiom.ai"],"title":"Create a transaction","codeSamples":[],"requiredOnlyExamples":false,"requestExampleType":"generated","responseExampleType":"generated"},"dependencies":{"parameters":{"86c18dee-88ab-4b44-b0a8-3e82d5f57783":{"name":"x-idempotency-key","required":true,"in":"header","schema":{"type":"string","isRequired":true,"uniqueKey":"","typeLabel":"string"}}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"requestFacts":{"type":"object","description":"For a transaction: `source` is `ucp-checkout`, `version` is `v1`, and `request.merchantOrigin` is the merchant's origin. `request.estimate` is your optional expected total.","required":["source","version","sdk","request"],"example":{"source":"ucp-checkout","version":"v1","sdk":{},"request":{"merchantOrigin":"https://shop.example","estimate":{"amount":"248.00","currency":"USD"}}},"properties":{"source":{"type":"string","description":"For a transaction, `ucp-checkout`.","example":"ucp-checkout","isRequired":true,"uniqueKey":"requestFacts.source","typeLabel":"string"},"version":{"type":"string","description":"For a transaction, `v1`.","example":"v1","isRequired":true,"uniqueKey":"requestFacts.version","typeLabel":"string"},"sdk":{"type":"object","properties":{"name":{"type":"string","isRequired":true,"uniqueKey":"requestFacts.sdk.name","typeLabel":"string"},"version":{"type":"string","isRequired":true,"uniqueKey":"requestFacts.sdk.version","typeLabel":"string"},"nodeVersion":{"type":"string","uniqueKey":"requestFacts.sdk.nodeVersion","typeLabel":"string"},"platform":{"type":"string","uniqueKey":"requestFacts.sdk.platform","typeLabel":"string"},"dependencies":{"type":"object","uniqueKey":"requestFacts.sdk.dependencies","typeLabel":"object"}},"required":["name","version"],"example":{},"isRequired":true,"uniqueKey":"requestFacts.sdk","typeLabel":"object"},"request":{"type":"object","description":"For a transaction, the merchant's origin as `merchantOrigin`, and optionally `estimate`, your expected total.","example":{"merchantOrigin":"https://shop.example","estimate":{"amount":"248.00","currency":"USD"}},"isRequired":true,"uniqueKey":"requestFacts.request","typeLabel":"object"},"integration":{"type":"object","properties":{"name":{"type":"string","isRequired":true,"uniqueKey":"requestFacts.integration.name","typeLabel":"string"},"version":{"type":"string","isRequired":true,"uniqueKey":"requestFacts.integration.version","typeLabel":"string"}},"required":["name","version"],"uniqueKey":"requestFacts.integration","typeLabel":"object"}},"uniqueKey":"requestFacts","typeLabel":"object"},"funding":{"type":"object","description":"How a UCP checkout is paid. Each final merchant total is paid with this card, authorized together with governance; the authorized transaction's payment carries the placeholder card to submit. Only for `ucp-checkout` request facts, and never with paymentData.","required":["source"],"properties":{"source":{"type":"string","enum":["external_card"],"description":"Pay with one of the tenant's own payment cards","isRequired":true,"uniqueKey":"funding.source","typeLabel":"enum\u003cstring>"},"paymentCardId":{"type":"string","format":"uuid","description":"The card fixed for this transaction. Omitted: resolve the tenant's default once at transaction creation.","uniqueKey":"funding.paymentCardId","typeLabel":"string\u003cuuid>"}},"uniqueKey":"funding","typeLabel":"object"},"shipping":{"type":"object","description":"For one UCP checkout: the shipping address and contact the checkout driver fills into the merchant checkout wherever the agent's create or update leaves them out: the contact and the address's name as `buyer`, and the address as the destination of a shipping method that has none (or of a new shipping method, when the request has no fulfillment). Anything the agent sends wins. Only for `ucp-checkout` request facts.","properties":{"address":{"type":"object","properties":{"street_address":{"type":"string","maxLength":255,"example":"1 Market St","isRequired":true,"uniqueKey":"shipping.address.street_address","typeLabel":"string"},"address_locality":{"type":"string","maxLength":255,"description":"City or locality","example":"San Francisco","isRequired":true,"uniqueKey":"shipping.address.address_locality","typeLabel":"string"},"address_country":{"type":"string","pattern":"/^[A-Z]{2}$/","description":"ISO 3166-1 alpha-2 country code","example":"US","isRequired":true,"uniqueKey":"shipping.address.address_country","typeLabel":"string"},"first_name":{"type":"string","maxLength":255,"example":"Jane","uniqueKey":"shipping.address.first_name","typeLabel":"string"},"last_name":{"type":"string","maxLength":255,"example":"Buyer","uniqueKey":"shipping.address.last_name","typeLabel":"string"},"extended_address":{"type":"string","maxLength":255,"description":"Apartment, suite, unit","example":"Suite 300","uniqueKey":"shipping.address.extended_address","typeLabel":"string"},"address_region":{"type":"string","maxLength":255,"description":"State, province or region","example":"CA","uniqueKey":"shipping.address.address_region","typeLabel":"string"},"postal_code":{"type":"string","maxLength":32,"example":"94105","uniqueKey":"shipping.address.postal_code","typeLabel":"string"}},"required":["street_address","address_locality","address_country"],"uniqueKey":"shipping.address","typeLabel":"object"},"contact":{"type":"object","properties":{"email":{"type":"string","format":"email","example":"jane@example.com","uniqueKey":"shipping.contact.email","typeLabel":"string\u003cemail>"},"phone_number":{"type":"string","maxLength":32,"description":"Some merchants require a phone number for delivery","example":"+14155550100","uniqueKey":"shipping.contact.phone_number","typeLabel":"string"}},"uniqueKey":"shipping.contact","typeLabel":"object"}},"uniqueKey":"shipping","typeLabel":"object"},"returnUrl":{"type":"string","maxLength":2048,"description":"Return destination after hosted approval and card confirmation. Must use an origin or app scheme registered by the organization.","uniqueKey":"returnUrl","typeLabel":"string"},"metadata":{"type":"object","description":"Additional metadata for the transaction","uniqueKey":"metadata","typeLabel":"object"}},"uniqueKey":"","typeLabel":"object"},"example":{"requestFacts":{"source":"ucp-checkout","version":"v1","sdk":{},"request":{"merchantOrigin":"https://shop.example","estimate":{"amount":"248.00","currency":"USD"}}},"funding":{"source":"external_card","paymentCardId":"00000000-0000-4000-8000-000000000001"}},"examples":{"Example":{"title":"Example","value":{"requestFacts":{"source":"ucp-checkout","version":"v1","sdk":{},"request":{"merchantOrigin":"https://shop.example","estimate":{"amount":"248.00","currency":"USD"}}},"funding":{"source":"external_card","paymentCardId":"00000000-0000-4000-8000-000000000001"}}}},"exampleType":"examples"}},"exampleType":"examples"},"responses":{"3191ae1b-4209-44f0-bc0a-9dea11eac1a4":{"description":"Transaction created successfully","content":{"application/json":{"schema":{"type":"object","properties":{"id":{"type":"string","description":"Transaction ID","example":"123e4567-e89b-12d3-a456-426614174000","isRequired":true,"uniqueKey":"id","typeLabel":"string"},"tenantId":{"type":"string","description":"Organization ID","example":"123e4567-e89b-12d3-a456-426614174000","isRequired":true,"uniqueKey":"tenantId","typeLabel":"string"},"serviceName":{"type":"string","description":"Service identifier","example":"openai","isRequired":true,"uniqueKey":"serviceName","typeLabel":"string"},"actionName":{"type":"string","description":"Action being performed","example":"completion","isRequired":true,"uniqueKey":"actionName","typeLabel":"string"},"resourceName":{"type":"string","description":"Resource being accessed","example":"gpt-4","isRequired":true,"uniqueKey":"resourceName","typeLabel":"string"},"status":{"enum":["pending","preparing","waiting_approval","authorized","completed","denied","cancelled","needs_revision"],"type":"string","description":"Transaction status","example":"authorized","isRequired":true,"uniqueKey":"status","typeLabel":"enum\u003cstring>"},"requiresPayment":{"type":"boolean","description":"Whether the transaction requires payment","example":true,"isRequired":true,"uniqueKey":"requiresPayment","typeLabel":"boolean"},"createdAt":{"format":"date-time","type":"string","description":"Creation timestamp","example":"2024-01-01T00:00:00.000Z","isRequired":true,"uniqueKey":"createdAt","typeLabel":"string\u003cdate-time>"},"updatedAt":{"format":"date-time","type":"string","description":"Last update timestamp","example":"2024-01-01T00:00:00.000Z","isRequired":true,"uniqueKey":"updatedAt","typeLabel":"string\u003cdate-time>"},"returnUrl":{"oneOf":[{"type":"string","description":"Integrator-provided return destination for hosted transaction steps","uniqueKey":"returnUrl.oneOf.0","typeLabel":"string"},{"type":"null","description":"Integrator-provided return destination for hosted transaction steps","uniqueKey":"returnUrl.oneOf.1","typeLabel":"null"}],"uniqueKey":"returnUrl","typeLabel":"string | null"},"nextAction":{"type":"object","description":"Current approval or payment action; its navigation link is derived at read time","uniqueKey":"nextAction","typeLabel":"object"},"approvals":{"type":"object","description":"Approval obligations and linked successor attempts; inspect an approval for current authority","uniqueKey":"approvals","typeLabel":"object"},"serviceId":{"oneOf":[{"type":"string","description":"Service entity ID (foreign key reference)","example":"123e4567-e89b-12d3-a456-426614174000","uniqueKey":"serviceId.oneOf.0","typeLabel":"string"},{"type":"null","description":"Service entity ID (foreign key reference)","example":"123e4567-e89b-12d3-a456-426614174000","uniqueKey":"serviceId.oneOf.1","typeLabel":"null"}],"uniqueKey":"serviceId","typeLabel":"string | null"},"qualifiers":{"type":"object","description":"Additional qualifiers for the transaction","example":{"model":"gpt-4","tokens":1000},"uniqueKey":"qualifiers","typeLabel":"object"},"metadata":{"type":"object","description":"Additional metadata for the transaction","uniqueKey":"metadata","typeLabel":"object"},"authorizedAt":{"format":"date-time","type":"string","description":"Authorization timestamp","example":"2024-01-01T00:00:00.000Z","uniqueKey":"authorizedAt","typeLabel":"string\u003cdate-time>"},"completedAt":{"format":"date-time","type":"string","description":"Completion timestamp","example":"2024-01-01T00:00:00.000Z","uniqueKey":"completedAt","typeLabel":"string\u003cdate-time>"},"outcome":{"enum":["success","error"],"type":"string","description":"Transaction outcome (set when completed)","example":"success","uniqueKey":"outcome","typeLabel":"enum\u003cstring>"},"currentPaymentTransactionId":{"oneOf":[{"type":"string","description":"Current payment transaction ID if transaction requires payment","example":"123e4567-e89b-12d3-a456-426614174000","uniqueKey":"currentPaymentTransactionId.oneOf.0","typeLabel":"string"},{"type":"null","description":"Current payment transaction ID if transaction requires payment","example":"123e4567-e89b-12d3-a456-426614174000","uniqueKey":"currentPaymentTransactionId.oneOf.1","typeLabel":"null"}],"uniqueKey":"currentPaymentTransactionId","typeLabel":"string | null"},"payment":{"type":"object","description":"Payment transaction details when transaction requires payment","required":["id","transactionId","fiatAmount","status","createdAt","updatedAt"],"properties":{"id":{"type":"string","description":"Payment transaction ID","example":"123e4567-e89b-12d3-a456-426614174000","isRequired":true,"uniqueKey":"payment.id","typeLabel":"string"},"transactionId":{"type":"string","description":"Transaction ID this payment belongs to","example":"123e4567-e89b-12d3-a456-426614174000","isRequired":true,"uniqueKey":"payment.transactionId","typeLabel":"string"},"fiatAmount":{"type":"string","description":"The payment amount in USD, as a decimal string.","isRequired":true,"uniqueKey":"payment.fiatAmount","typeLabel":"string"},"status":{"enum":["pending","preparing","authorized","settling","completed","failed","cancelled"],"type":"string","description":"Payment status","example":"authorized","isRequired":true,"uniqueKey":"payment.status","typeLabel":"enum\u003cstring>"},"createdAt":{"format":"date-time","type":"string","description":"Creation timestamp","example":"2024-01-01T00:00:00.000Z","isRequired":true,"uniqueKey":"payment.createdAt","typeLabel":"string\u003cdate-time>"},"updatedAt":{"format":"date-time","type":"string","description":"Last update timestamp","example":"2024-01-01T00:00:00.000Z","isRequired":true,"uniqueKey":"payment.updatedAt","typeLabel":"string\u003cdate-time>"},"fundingSource":{"type":"string","description":"`external_card`: the buyer's saved card pays.","enum":["external_card"],"uniqueKey":"payment.fundingSource","typeLabel":"enum\u003cstring>"},"paymentCardId":{"oneOf":[{"type":"string","description":"The card paying a card-funded payment","format":"uuid","uniqueKey":"payment.paymentCardId.oneOf.0","typeLabel":"string\u003cuuid>"},{"type":"null","description":"The card paying a card-funded payment","format":"uuid","uniqueKey":"payment.paymentCardId.oneOf.1","typeLabel":"null"}],"uniqueKey":"payment.paymentCardId","typeLabel":"string\u003cuuid> | null"},"credentialRoute":{"oneOf":[{"type":"string","description":"`real_card_number`: the relay puts the real card into the merchant's payment request.","enum":["real_card_number"],"uniqueKey":"payment.credentialRoute.oneOf.0","typeLabel":"enum\u003cstring>"},{"type":"null","description":"`real_card_number`: the relay puts the real card into the merchant's payment request.","enum":["real_card_number"],"uniqueKey":"payment.credentialRoute.oneOf.1","typeLabel":"null"}],"uniqueKey":"payment.credentialRoute","typeLabel":"enum\u003cstring> | null"},"placeholder":{"type":"object","description":"An authorized card payment's placeholder card, while it can still be relayed. Submit it in the merchant's card form; the relay swaps it for the real credential once.","required":["number","expMonth","expYear","cvc","brand","expiresAt","injectionRef","transactionId"],"properties":{"number":{"type":"string","description":"Card number shaped like the real card's brand; not a real card","example":"4000123412341234","isRequired":true,"uniqueKey":"payment.placeholder.number","typeLabel":"string"},"expMonth":{"type":"number","example":7,"isRequired":true,"uniqueKey":"payment.placeholder.expMonth","typeLabel":"number"},"expYear":{"type":"number","example":2029,"isRequired":true,"uniqueKey":"payment.placeholder.expYear","typeLabel":"number"},"cvc":{"type":"string","example":"123","isRequired":true,"uniqueKey":"payment.placeholder.cvc","typeLabel":"string"},"brand":{"type":"string","example":"visa","isRequired":true,"uniqueKey":"payment.placeholder.brand","typeLabel":"string"},"expiresAt":{"type":"string","description":"After this the placeholder no longer relays","example":"2026-10-13T13:00:00.000Z","isRequired":true,"uniqueKey":"payment.placeholder.expiresAt","typeLabel":"string"},"injectionRef":{"type":"string","description":"The armed injection the relay looks the placeholder up by","isRequired":true,"uniqueKey":"payment.placeholder.injectionRef","typeLabel":"string"},"transactionId":{"type":"string","description":"The transaction the placeholder is relayed through","isRequired":true,"uniqueKey":"payment.placeholder.transactionId","typeLabel":"string"}},"uniqueKey":"payment.placeholder","typeLabel":"object"},"reason":{"oneOf":[{"type":"string","description":"Reason for payment failure or cancellation","example":"Insufficient funds","uniqueKey":"payment.reason.oneOf.0","typeLabel":"string"},{"type":"null","description":"Reason for payment failure or cancellation","example":"Insufficient funds","uniqueKey":"payment.reason.oneOf.1","typeLabel":"null"}],"uniqueKey":"payment.reason","typeLabel":"string | null"},"authorizedAt":{"oneOf":[{"format":"date-time","type":"string","description":"Authorization timestamp","example":"2024-01-01T00:00:00.000Z","uniqueKey":"payment.authorizedAt.oneOf.0","typeLabel":"string\u003cdate-time>"},{"format":"date-time","type":"null","description":"Authorization timestamp","example":"2024-01-01T00:00:00.000Z","uniqueKey":"payment.authorizedAt.oneOf.1","typeLabel":"null"}],"uniqueKey":"payment.authorizedAt","typeLabel":"string\u003cdate-time> | null"}},"uniqueKey":"payment","typeLabel":"object"},"trace":{"type":"object","description":"Trace information for workflow grouping","required":["id"],"properties":{"id":{"type":"string","description":"Trace ID","example":"123e4567-e89b-12d3-a456-426614174000","isRequired":true,"uniqueKey":"trace.id","typeLabel":"string"},"externalId":{"oneOf":[{"type":"string","description":"Optional user-supplied external ID for trace correlation","example":"checkout-session-abc123","uniqueKey":"trace.externalId.oneOf.0","typeLabel":"string"},{"type":"null","description":"Optional user-supplied external ID for trace correlation","example":"checkout-session-abc123","uniqueKey":"trace.externalId.oneOf.1","typeLabel":"null"}],"uniqueKey":"trace.externalId","typeLabel":"string | null"}},"uniqueKey":"trace","typeLabel":"object"},"agentId":{"oneOf":[{"type":"string","description":"Agent ID if transaction is associated with an agent","example":"123e4567-e89b-12d3-a456-426614174000","uniqueKey":"agentId.oneOf.0","typeLabel":"string"},{"type":"null","description":"Agent ID if transaction is associated with an agent","example":"123e4567-e89b-12d3-a456-426614174000","uniqueKey":"agentId.oneOf.1","typeLabel":"null"}],"uniqueKey":"agentId","typeLabel":"string | null"},"agent":{"type":"object","description":"Agent information if transaction is associated with an agent","required":["id","tenantId","label","name","status","createdAt","updatedAt"],"properties":{"id":{"type":"string","isRequired":true,"uniqueKey":"agent.id","typeLabel":"string"},"tenantId":{"type":"string","isRequired":true,"uniqueKey":"agent.tenantId","typeLabel":"string"},"label":{"type":"string","isRequired":true,"uniqueKey":"agent.label","typeLabel":"string"},"name":{"type":"string","isRequired":true,"uniqueKey":"agent.name","typeLabel":"string"},"status":{"type":"string","isRequired":true,"uniqueKey":"agent.status","typeLabel":"string"},"createdAt":{"format":"date-time","type":"string","isRequired":true,"uniqueKey":"agent.createdAt","typeLabel":"string\u003cdate-time>"},"updatedAt":{"format":"date-time","type":"string","isRequired":true,"uniqueKey":"agent.updatedAt","typeLabel":"string\u003cdate-time>"},"description":{"oneOf":[{"type":"string","uniqueKey":"agent.description.oneOf.0","typeLabel":"string"},{"type":"null","uniqueKey":"agent.description.oneOf.1","typeLabel":"null"}],"uniqueKey":"agent.description","typeLabel":"string | null"}},"uniqueKey":"agent","typeLabel":"object"}},"required":["id","tenantId","serviceName","actionName","resourceName","status","requiresPayment","createdAt","updatedAt"],"uniqueKey":"","typeLabel":"object"},"examples":{"Example":{"title":"Example","value":{"id":"123e4567-e89b-12d3-a456-426614174000","tenantId":"123e4567-e89b-12d3-a456-426614174000","serviceName":"openai","actionName":"completion","resourceName":"gpt-4","status":"authorized","requiresPayment":true,"createdAt":"2024-01-01T00:00:00.000Z","updatedAt":"2024-01-01T00:00:00.000Z","returnUrl":"\u003cstring>","nextAction":{},"approvals":{},"serviceId":"123e4567-e89b-12d3-a456-426614174000","qualifiers":{"model":"gpt-4","tokens":1000},"metadata":{},"authorizedAt":"2024-01-01T00:00:00.000Z","completedAt":"2024-01-01T00:00:00.000Z","outcome":"success","currentPaymentTransactionId":"123e4567-e89b-12d3-a456-426614174000","payment":{"id":"123e4567-e89b-12d3-a456-426614174000","transactionId":"123e4567-e89b-12d3-a456-426614174000","fiatAmount":"\u003cstring>","status":"authorized","createdAt":"2024-01-01T00:00:00.000Z","updatedAt":"2024-01-01T00:00:00.000Z","fundingSource":"external_card","paymentCardId":"3c90c3cc-0d44-4b50-8888-8dd25736052a","credentialRoute":"real_card_number","placeholder":{"number":"4000123412341234","expMonth":7,"expYear":2029,"cvc":"123","brand":"visa","expiresAt":"2026-10-13T13:00:00.000Z","injectionRef":"\u003cstring>","transactionId":"\u003cstring>"},"reason":"Insufficient funds","authorizedAt":"2024-01-01T00:00:00.000Z"},"trace":{"id":"123e4567-e89b-12d3-a456-426614174000","externalId":"checkout-session-abc123"},"agentId":"123e4567-e89b-12d3-a456-426614174000","agent":{"id":"\u003cstring>","tenantId":"\u003cstring>","label":"\u003cstring>","name":"\u003cstring>","status":"\u003cstring>","createdAt":"2023-11-07T05:31:56Z","updatedAt":"2023-11-07T05:31:56Z","description":"\u003cstring>"}}}},"exampleType":"generated"}},"exampleType":"generated"},"bf698e84-0547-46cf-8752-1d7e84b0538b":{"description":"Invalid request data. Card funding that names no card, for a tenant with no saved card that can pay, is refused with `code: \"no_saved_card\"`: send the cardholder a card setup link, then create the transaction again.","content":{"_mintlify/placeholder":{"schema":{"type":"object","description":""}}}},"b18630b1-be05-4899-842a-77014ec5d686":{"description":"Unauthorized - invalid or missing API key","content":{"_mintlify/placeholder":{"schema":{"type":"object","description":""}}}}},"security":{"46238c90-5539-4ee6-b8da-339e27ad8c24":{"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":{"129d4bde-9564-498b-9b32-242ff84fee16":{"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":"Create a transaction - Sapiom Pay","navMaps":{"firstHrefInVersion":{},"firstHrefInLanguage":{}},"lastModified":"2026-10-24T01:29:35.490Z","originalFileLocation":"api-reference/transactions/create-a-transaction.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=\"Creates a new transaction for the organization associated with the API key. Automatically handles authorization and payment if required. Supports an optional x-idempotency-key header (max 255 chars), unique per tenant: replaying a key returns the previously created transaction — whatever its state — instead of creating a new one. First-write-wins: the original transaction is returned even if the replayed request body differs, so use a fresh key for each genuinely new request. 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=\"Create a transaction - Sapiom Pay\">\u003cmeta data-mint-head property=\"og:description\" content=\"Creates a new transaction for the organization associated with the API key. Automatically handles authorization and payment if required. Supports an optional x-idempotency-key header (max 255 chars), unique per tenant: replaying a key returns the previously created transaction — whatever its state — instead of creating a new one. First-write-wins: the original transaction is returned even if the replayed request body differs, so use a fresh key for each genuinely new request. 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/transactions/create-a-transaction\">\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=Transactions\u0026amp;title=Create+a+transaction\u0026amp;description=Creates+a+new+transaction+for+the+organization+associated+with+the+API+key.+Automatically+handles+authorization+and+payment+if+required.+Supports+an+optional+%60x\u0026amp;theme=094d3944263395c13d2c9b53\u0026amp;signature=b9bdfa81109582312691f79a6bdab80352049a516b116194fe2023f77002332d\">\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=\"Create a transaction - Sapiom Pay\">\u003cmeta data-mint-head name=\"twitter:description\" content=\"Creates a new transaction for the organization associated with the API key. Automatically handles authorization and payment if required. Supports an optional x-idempotency-key header (max 255 chars), unique per tenant: replaying a key returns the previously created transaction — whatever its state — instead of creating a new one. First-write-wins: the original transaction is returned even if the replayed request body differs, so use a fresh key for each genuinely new request. Requires a buyer key.\">\u003cmeta data-mint-head name=\"twitter:image\" content=\"https://sapiom-1f975ca2.mintlify.app/_mintlify/api/og/v2?division=Transactions\u0026amp;title=Create+a+transaction\u0026amp;description=Creates+a+new+transaction+for+the+organization+associated+with+the+API+key.+Automatically+handles+authorization+and+payment+if+required.+Supports+an+optional+%60x\u0026amp;theme=094d3944263395c13d2c9b53\u0026amp;signature=b9bdfa81109582312691f79a6bdab80352049a516b116194fe2023f77002332d\">\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/transactions/create-a-transaction\">\u003clink data-mint-head rel=\"alternate\" type=\"application/xml\" href=\"/sitemap.xml\">\u003clink data-mint-head rel=\"alternate\" type=\"text/markdown\" href=\"/api-reference/transactions/create-a-transaction.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/transactions/create-a-transaction#webpage\",\"url\":\"https://docs.sapiom.ai/api-reference/transactions/create-a-transaction\",\"name\":\"Create a transaction\",\"description\":\"Creates a new transaction for the organization associated with the API key. Automatically handles authorization and payment if required. Supports an optional x-idempotency-key header (max 255 chars), unique per tenant: replaying a key returns the previously created transaction — whatever its state — instead of creating a new one. First-write-wins: the original transaction is returned even if the replayed request body differs, so use a fresh key for each genuinely new request. Requires a buyer key.\",\"dateModified\":\"2026-10-24T01:29:35.490Z\",\"isPartOf\":{\"@id\":\"https://docs.sapiom.ai#website\"},\"breadcrumb\":{\"@id\":\"https://docs.sapiom.ai/api-reference/transactions/create-a-transaction#breadcrumb\"}},{\"@type\":\"BreadcrumbList\",\"@id\":\"https://docs.sapiom.ai/api-reference/transactions/create-a-transaction#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\":\"Create a transaction\",\"item\":\"https://docs.sapiom.ai/api-reference/transactions/create-a-transaction\"}]},{\"@type\":[\"TechArticle\",\"APIReference\"],\"@id\":\"https://docs.sapiom.ai/api-reference/transactions/create-a-transaction#apireference\",\"headline\":\"Create a transaction\",\"name\":\"Create a transaction\",\"description\":\"Creates a new transaction for the organization associated with the API key. Automatically handles authorization and payment if required. Supports an optional x-idempotency-key header (max 255 chars), unique per tenant: replaying a key returns the previously created transaction — whatever its state — instead of creating a new one. First-write-wins: the original transaction is returned even if the replayed request body differs, so use a fresh key for each genuinely new request. Requires a buyer key.\",\"url\":\"https://docs.sapiom.ai/api-reference/transactions/create-a-transaction\",\"mainEntityOfPage\":{\"@id\":\"https://docs.sapiom.ai/api-reference/transactions/create-a-transaction#webpage\"},\"dateModified\":\"2026-10-24T01:29:35.490Z\",\"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","description":"Checks whether a merchant offers a UCP checkout Sapiom can authorize. Buy only from merchants whose `status` is `supported`. Requires a [buyer key](/api-reference/overview#authentication).","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":"Open the checkout","description":"Discovers the merchant named in the transaction's request facts, negotiates, and creates the merchant checkout. The merchant cannot be changed by this call. A body carrying payment data is rejected. Requires a [buyer key](/api-reference/overview#authentication).","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","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 checkout","pages":[{"title":"List placeholder cards","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json get /v1/card-placeholders","href":"/api-reference/browser-checkout/list-placeholder-cards"},{"title":"List relay profiles","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json get /v1/injection-profiles","href":"/api-reference/browser-checkout/list-relay-profiles"},{"title":"Relay a card request","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json post /v1/transactions/{transactionId}/payment/relay","href":"/api-reference/browser-checkout/relay-a-card-request"}]}]},{"group":"MCP and SDK","pages":[{"title":"Sapiom Pay MCP tools reference","sidebarTitle":"MCP tools","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":"Create a transaction - Sapiom Pay","buildId":"dpl_HcHmUS6i3UwswnTHJUEdcTtwfdTQ","deploymentId":"dpl_HcHmUS6i3UwswnTHJUEdcTtwfdTQ","dynamics":["c2aa737661","2b790eda92","b0f84f53ff","a9bb46feb3"],"chunks":["OpenApiReferenceProvider-BRm_l__d.js","utils-f1l1Oc-G.js","cloneDeep-izs3Hzxb.js","_Uint8Array-BVIqJ90l.js","isObjectLike-C8vmzPEN.js","isArray-Dcu1dQ5t.js","utils-BlhqDhJO.js","toString-BX-iyh8G.js","isSymbol-CSH9U2Gm.js","addUniqueKeysToSchema-DHCB7rsC.js","snippetPresets-CYXLx6Hv.js","style-to-object-BY3JEAdk.js","v4-DIgz8zy6.js","ApiExamples-B78P2dEq.js","isEqual-BfaiBbcl.js","usePlaygroundInputsStore-C4YLPVAh.js","shallow-vlLnTDkQ.js","getApiPlaygroundDisplay-D_98hhvf.js","CodeSnippet-DtnZHGqq.js","CodeSnippets-CLFb8KJt.js","Page-kQh739Uz.js","getPastedJson-Cq-zlbnU.js","icon-sN3t983t.js","MethodPill-P_YQ2s09.js","DuplicateIcon-BVzyNsGJ.js","createIcon-B3jqgqC6.js","DynamicMarkdown-Crwq6WG_.js","SectionHeading-C7pGS2Bb.js","axios-vUo_bRtp.js","Markdown-BuPH8yuW.js","clsx-CCOYKgaU.js","lib--scc4DXi.js","lib-B8HbPgcC.js","html-void-elements-mCSPHezU.js","dist-BnkC_6oA.js","katex-YMM-FMeD.js","marked.esm-CZWythHk.js","AssistantPageLink-BM4S31-f.js"]}