{
"code": "INTERNAL_ERROR",
"message": "Internal Server Error"
}
On-Ramp
Get On-Ramp Purchase
Look up a fiat on-ramp purchase by id. Use this to reconcile a purchase you may have missed the
onramp.completed webhook for, or to check one that is still in flight.
The response is the onramp.completed webhook payload plus a status field. A purchase that has not
settled yet returns partial data — transactionHash and completedAt are null until status is
FINISHED — so read status rather than inferring completion from the hash.
Scoped to the calling partner. A purchase that does not exist, is malformed, or belongs to a different
partner all return an identical 404.
GET
/
v1
/
onramp
/
purchases
/
{purchaseId}
Get On-Ramp Purchase
curl --request GET \ --url https://api.beta.getpara.com/v1/onramp/purchases/{purchaseId} \ --header 'X-API-Key: <api-key>'
Para on-ramp purchase id — the purchaseId carried on the ONRAMP_LAUNCHED SDK event when the ramp launched, and on the onramp.completed webhook when it settled.
Lifecycle state. INITIATED = created, not yet settled. FINISHED = the provider confirmed delivery
(this is when onramp.completed fires). CANCELLED = the purchase will not settle. Treat unknown
status values as non-terminal — future versions may add states.
The provider that fulfilled the purchase. Coinbase Apple Pay reports as COINBASE; the surface is conveyed by paymentMethod. A pay-by-bank (ACH) purchase reports as BRALE.
{"docsConfig":{"theme":"mint","$schema":"https://mintlify.com/docs.json","name":"Para Docs","description":"Para is the most comprehensive wallet and authentication suite for crypto applications.","colors":{"primary":"#FF4E00","light":"#FF4E00","dark":"#FF4E00"},"logo":{"light":"https://mintcdn.com/getpara/30lQMU2mHiFlT8O0/logo/light.svg?fit=max\u0026auto=format\u0026n=30lQMU2mHiFlT8O0\u0026q=85\u0026s=342b25f634bb7c26fefb0769da8f0555","dark":"https://mintcdn.com/getpara/30lQMU2mHiFlT8O0/logo/dark.svg?fit=max\u0026auto=format\u0026n=30lQMU2mHiFlT8O0\u0026q=85\u0026s=6404d8529516f7e178e3781b864656c9"},"favicon":"https://mintcdn.com/getpara/K-Gy3Q2JkFCvA3gr/favicon.svg?fit=max\u0026auto=format\u0026n=K-Gy3Q2JkFCvA3gr\u0026q=85\u0026s=877317a7a2973b619ffca0cc05e46195","api":{"playground":{"display":"interactive"}},"appearance":{"default":"light","strict":true},"background":{"decoration":"windows","color":{"light":"#FFFFFF","dark":"#000000"}},"navbar":{"links":[{"icon":"slack","href":"https://join.slack.com/t/para-community/shared_invite/zt-304keeulc-Oqs4eusCUAJEpE9DBwAqrg","label":"Community"}],"primary":{"type":"button","label":"Get Access","href":"https://developer.getpara.com/"}},"footer":{"socials":{"x":"https://x.com/get_para","github":"https://github.com/getpara","linkedin":"https://www.linkedin.com/company/parahq","slack":"https://join.slack.com/t/para-community/shared_invite/zt-304keeulc-Oqs4eusCUAJEpE9DBwAqrg","website":"https://getpara.com"}},"search":{"prompt":"Search Para Docs..."},"seo":{"indexing":"all"},"icons":{"library":"fontawesome"},"styling":{"eyebrows":"section","latex":false},"integrations":{"ga4":{"measurementId":"G-J2BJTJZW8H"}},"contextual":{"options":["copy","view","chatgpt","claude"],"display":"header"},"navigation":{"global":{"anchors":[]},"pages":[]}},"deployment":{"deploymentMetadataValue":{"subdomain":"getpara","hasAudioNarration":false,"actualSubdomain":"getpara","customDomains":["docs.getpara.com"],"gitSource":{"type":"github","owner":"capsule-org","repo":"docs-mintlify","deployBranch":"main","contentDirectory":"","isPrivate":true,"mountPath":"","label":""},"entitlements":{"AI_CHAT":{"status":"ENABLED"},"WEB_MCP":{"status":"ENABLED"},"NARRATION":{"status":"ENABLED"}},"buildId":"6aedf7e4fb71aa062f1160ab","clientVersion":"0.0.4088","searchFilterCounts":[{"language":"default","tag":"API Reference","count":730},{"language":"default","tag":"Reference","count":575},{"language":"default","tag":"Build","count":436},{"language":"default","tag":"React \u0026 Web","count":273},{"language":"default","tag":"React Native","count":224},{"language":"default","tag":"React Hooks","count":139},{"language":"default","tag":"Types \u0026 Configuration","count":130},{"language":"default","tag":"Client Methods","count":122},{"language":"default","tag":"Transact on Chains","count":103},{"language":"default","tag":"REST API","count":100}]},"assistantConfig":{},"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":"rbac-expansion","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"automations-pr-grouping","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"custom-prefix","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"analytics-v7","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"user-flows-analytics","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"no-publish-flow","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-onboarding","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"llms-txt-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"snapshot-serving-live","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"stripTemperatureMiddleware","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"support-platform-pylon-zendesk","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"snapshot-serving","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"instant-rollback","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"granular-notifications-server","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"granular-notifications","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"automations-fable","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"fixed-ai-action-pricing","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"automation-resolve-merge-conflict","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"scoped-publishing","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"mintql","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"page-level-analytics","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"editor-version-history-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"billing-page-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"full-page-search","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workspace-projects","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"assistant-v5","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"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":"workos-sso-scim","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"hobby-abuse-scan","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"dashboard-inbox","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-signup","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"turbopuffer-dual-write","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-enabled","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"approve-review-flow","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"editor-metadata","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"sso-setup-deadline-banner","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"turbopuffer-serve","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"live-agents","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"comment-mode","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false}],"googleFontsInlined":false},"customCss":[],"page":{"pagePath":"v3/rest/api/on-ramp/get-on-ramp-purchase","slug":"/v3/rest/api/on-ramp/get-on-ramp-purchase","pageMetadata":{"title":"Get On-Ramp Purchase","description":"Look up a fiat on-ramp purchase by id. Use this to reconcile a purchase you may have missed the\n`onramp.completed` webhook for, or to check one that is still in flight.\n\nThe response is the `onramp.completed` webhook payload plus a `status` field. A purchase that has not\nsettled yet returns partial data — `transactionHash` and `completedAt` are `null` until `status` is\n`FINISHED` — so read `status` rather than inferring completion from the hash.\n\nScoped to the calling partner. A purchase that does not exist, is malformed, or belongs to a different\npartner all return an identical `404`.\n","deprecated":null,"version":null,"openapi":"/openapi.yaml get /v1/onramp/purchases/{purchaseId}","href":"/v3/rest/api/on-ramp/get-on-ramp-purchase","autogeneratedByOpenApi":true},"description":{"compiledSource":"\"use strict\";\nconst {Fragment: _Fragment, jsx: _jsx, jsxs: _jsxs} = arguments[0];\nconst {useMDXComponents: _provideComponents} = arguments[0];\nfunction _createMdxContent(props) {\n const _components = {\n code: \"code\",\n p: \"p\",\n ..._provideComponents(),\n ...props.components\n };\n return _jsxs(_Fragment, {\n children: [_jsxs(_components.p, {\n children: [\"Look up a fiat on-ramp purchase by id. Use this to reconcile a purchase you may have missed the\\n\", _jsx(_components.code, {\n children: \"onramp.completed\"\n }), \" webhook for, or to check one that is still in flight.\"]\n }), \"\\n\", _jsxs(_components.p, {\n children: [\"The response is the \", _jsx(_components.code, {\n children: \"onramp.completed\"\n }), \" webhook payload plus a \", _jsx(_components.code, {\n children: \"status\"\n }), \" field. A purchase that has not\\nsettled yet returns partial data — \", _jsx(_components.code, {\n children: \"transactionHash\"\n }), \" and \", _jsx(_components.code, {\n children: \"completedAt\"\n }), \" are \", _jsx(_components.code, {\n children: \"null\"\n }), \" until \", _jsx(_components.code, {\n children: \"status\"\n }), \" is\\n\", _jsx(_components.code, {\n children: \"FINISHED\"\n }), \" — so read \", _jsx(_components.code, {\n children: \"status\"\n }), \" rather than inferring completion from the hash.\"]\n }), \"\\n\", _jsxs(_components.p, {\n children: [\"Scoped to the calling partner. A purchase that does not exist, is malformed, or belongs to a different\\npartner all return an identical \", _jsx(_components.code, {\n children: \"404\"\n }), \".\"]\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":"Get On-Ramp Purchase","description":"Look up a fiat on-ramp purchase by id. Use this to reconcile a purchase you may have missed the\n`onramp.completed` webhook for, or to check one that is still in flight.\n\nThe response is the `onramp.completed` webhook payload plus a `status` field. A purchase that has not\nsettled yet returns partial data — `transactionHash` and `completedAt` are `null` until `status` is\n`FINISHED` — so read `status` rather than inferring completion from the hash.\n\nScoped to the calling partner. A purchase that does not exist, is malformed, or belongs to a different\npartner all return an identical `404`.\n","deprecated":null,"version":null,"openapi":"/openapi.yaml get /v1/onramp/purchases/{purchaseId}","href":"/v3/rest/api/on-ramp/get-on-ramp-purchase","autogeneratedByOpenApi":true}}},"mdxSourceWithNoJs":null},"mdxExtracts":{"tableOfContents":[],"codeExamples":{}},"jsLinks":["/_mintlify/custom/getpara/98686b284aa093b7/tab-sync.js"],"openApiReferenceData":{"operation":{"operationId":"getOnRampPurchase","summary":"Get On-Ramp Purchase","description":"Look up a fiat on-ramp purchase by id. Use this to reconcile a purchase you may have missed the\n`onramp.completed` webhook for, or to check one that is still in flight.\n\nThe response is the `onramp.completed` webhook payload plus a `status` field. A purchase that has not\nsettled yet returns partial data — `transactionHash` and `completedAt` are `null` until `status` is\n`FINISHED` — so read `status` rather than inferring completion from the hash.\n\nScoped to the calling partner. A purchase that does not exist, is malformed, or belongs to a different\npartner all return an identical `404`.\n","tags":["On-Ramp"],"parameters":["736ed6ce-581e-4162-a19c-65f3d7a61325","e32e73ed-6fee-4b2a-9d8e-4f9c46e7256a"],"responses":{"200":"825ee0e0-e63a-4743-ac8d-ce0747f1c2ea","400":"72ebf4cb-9a49-4d9c-bcea-5062dfc936c4","401":"a79006ee-dda6-46c3-8611-4d1a07698d54","404":"d5983d4b-625d-41d0-87c1-f4dfd438b7c2","429":"3aa72ec8-0dc0-4f4d-9e97-d85e8f63d055","500":"6243d92a-1140-4dbd-b7cd-9356445f20d6"},"method":"get","type":"path","servers":["84e136c7-b7b8-4f59-9f7c-86990ff9ffe0","42d2d9d7-05ba-4437-820b-f5afc2833189"],"security":["90b4b28c-bdd5-4c66-b5b8-caf6c9c9df3d"],"path":"/v1/onramp/purchases/{purchaseId}","baseUrlOptions":["https://api.beta.getpara.com","https://api.getpara.com"],"title":"Get On-Ramp Purchase","codeSamples":[],"requiredOnlyExamples":false,"requestExampleType":"generated","responseExampleType":"generated"},"dependencies":{"parameters":{"736ed6ce-581e-4162-a19c-65f3d7a61325":{"name":"X-Request-Id","in":"header","required":false,"description":"UUID for request tracing. Para returns one if omitted.","schema":{"type":"string","format":"uuid","isRequired":false,"description":"UUID for request tracing. Para returns one if omitted.","uniqueKey":"","typeLabel":"string\u003cuuid>"}},"e32e73ed-6fee-4b2a-9d8e-4f9c46e7256a":{"name":"purchaseId","in":"path","required":true,"description":"Para on-ramp purchase id — the `purchaseId` carried on the `ONRAMP_LAUNCHED` SDK event when the ramp launched, and on the `onramp.completed` webhook when it settled.","schema":{"type":"string","format":"uuid","isRequired":true,"description":"Para on-ramp purchase id — the `purchaseId` carried on the `ONRAMP_LAUNCHED` SDK event when the ramp launched, and on the `onramp.completed` webhook when it settled.","uniqueKey":"","typeLabel":"string\u003cuuid>"}}},"responses":{"825ee0e0-e63a-4743-ac8d-ce0747f1c2ea":{"description":"On-ramp purchase record","content":{"application/json":{"schema":{"type":"object","required":["status","userId","purchaseId","provider","transactionHash","asset","testMode","completedAt"],"properties":{"status":{"type":"string","enum":["INITIATED","CANCELLED","FINISHED"],"description":"Lifecycle state. `INITIATED` = created, not yet settled. `FINISHED` = the provider confirmed delivery\n(this is when `onramp.completed` fires). `CANCELLED` = the purchase will not settle. **Treat unknown\nstatus values as non-terminal** — future versions may add states.\n","isRequired":true,"uniqueKey":"status","typeLabel":"enum\u003cstring>"},"userId":{"type":"string","format":"uuid","isRequired":true,"uniqueKey":"userId","typeLabel":"string\u003cuuid>"},"purchaseId":{"type":"string","format":"uuid","description":"Para's id for this purchase.","isRequired":true,"uniqueKey":"purchaseId","typeLabel":"string\u003cuuid>"},"provider":{"type":"string","enum":["COINBASE","MOONPAY","RAMP","STRIPE","BRALE"],"description":"The provider that fulfilled the purchase. Coinbase Apple Pay reports as `COINBASE`; the surface is conveyed by `paymentMethod`. A pay-by-bank (ACH) purchase reports as `BRALE`.","isRequired":true,"uniqueKey":"provider","typeLabel":"enum\u003cstring>"},"transactionHash":{"oneOf":[{"type":"string","description":"On-chain hash of the crypto delivered to the user. `null` until settled, and also `null` when the provider settled without reporting one.","isRequired":true,"uniqueKey":"transactionHash.oneOf.0","typeLabel":"string"},{"type":"null","description":"On-chain hash of the crypto delivered to the user. `null` until settled, and also `null` when the provider settled without reporting one.","isRequired":true,"uniqueKey":"transactionHash.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"transactionHash","typeLabel":"string | null"},"asset":{"type":"object","description":"The delivered token, resolved from the catalog. Fields are best-effort; an empty object means the token could not be resolved.","properties":{"symbol":{"type":"string","example":"USDC","uniqueKey":"asset.symbol","typeLabel":"string"},"name":{"type":"string","example":"USD Coin","uniqueKey":"asset.name","typeLabel":"string"},"contractAddress":{"oneOf":[{"type":"string","description":"Token contract address, or `null` for a network's native asset.","uniqueKey":"asset.contractAddress.oneOf.0","typeLabel":"string"},{"type":"null","description":"Token contract address, or `null` for a network's native asset.","uniqueKey":"asset.contractAddress.oneOf.1","typeLabel":"null"}],"uniqueKey":"asset.contractAddress","typeLabel":"string | null"},"type":{"type":"string","description":"Ecosystem — e.g. `EVM`, `SOLANA`, `COSMOS`.","uniqueKey":"asset.type","typeLabel":"string"},"chainId":{"type":"string","example":"8453","uniqueKey":"asset.chainId","typeLabel":"string"},"networkName":{"type":"string","example":"Base","uniqueKey":"asset.networkName","typeLabel":"string"},"decimals":{"oneOf":[{"type":"integer","uniqueKey":"asset.decimals.oneOf.0","typeLabel":"integer"},{"type":"null","uniqueKey":"asset.decimals.oneOf.1","typeLabel":"null"}],"uniqueKey":"asset.decimals","typeLabel":"integer | null"}},"isRequired":true,"uniqueKey":"asset","typeLabel":"object"},"testMode":{"type":"boolean","description":"Whether this was a test purchase. Test purchases run a real quote but are never charged — filter them out of production accounting.","isRequired":true,"uniqueKey":"testMode","typeLabel":"boolean"},"completedAt":{"oneOf":[{"type":"string","format":"date-time","description":"When the purchase was marked settled. `null` unless `status` is `FINISHED`.","isRequired":true,"uniqueKey":"completedAt.oneOf.0","typeLabel":"string\u003cdate-time>"},{"type":"null","format":"date-time","description":"When the purchase was marked settled. `null` unless `status` is `FINISHED`.","isRequired":true,"uniqueKey":"completedAt.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"completedAt","typeLabel":"string\u003cdate-time> | null"},"paymentMethod":{"type":"string","enum":["WIDGET","APPLE_PAY","BANK"],"description":"Checkout style used. `BANK` is a pay-by-bank (ACH) purchase.","uniqueKey":"paymentMethod","typeLabel":"enum\u003cstring>"},"assetQuantity":{"type":"string","description":"Crypto amount delivered, as a decimal token amount.","uniqueKey":"assetQuantity","typeLabel":"string"},"fiatAmount":{"type":"string","uniqueKey":"fiatAmount","typeLabel":"string"},"fiatCurrency":{"type":"string","example":"USD","uniqueKey":"fiatCurrency","typeLabel":"string"},"walletId":{"oneOf":[{"type":"string","format":"uuid","description":"Set when the crypto landed in a Para wallet; absent for a raw external-address destination.","uniqueKey":"walletId.oneOf.0","typeLabel":"string\u003cuuid>"},{"type":"null","format":"uuid","description":"Set when the crypto landed in a Para wallet; absent for a raw external-address destination.","uniqueKey":"walletId.oneOf.1","typeLabel":"null"}],"uniqueKey":"walletId","typeLabel":"string\u003cuuid> | null"},"destinationAddress":{"oneOf":[{"type":"string","description":"The on-chain address the crypto was delivered to.","uniqueKey":"destinationAddress.oneOf.0","typeLabel":"string"},{"type":"null","description":"The on-chain address the crypto was delivered to.","uniqueKey":"destinationAddress.oneOf.1","typeLabel":"null"}],"uniqueKey":"destinationAddress","typeLabel":"string | null"}},"uniqueKey":"","typeLabel":"object"},"examples":{"Example":{"title":"Example","value":{"status":"INITIATED","userId":"3c90c3cc-0d44-4b50-8888-8dd25736052a","purchaseId":"3c90c3cc-0d44-4b50-8888-8dd25736052a","provider":"COINBASE","transactionHash":"\u003cstring>","asset":{"symbol":"USDC","name":"USD Coin","contractAddress":"\u003cstring>","type":"\u003cstring>","chainId":"8453","networkName":"Base","decimals":123},"testMode":true,"completedAt":"2023-11-07T05:31:56Z","paymentMethod":"WIDGET","assetQuantity":"\u003cstring>","fiatAmount":"\u003cstring>","fiatCurrency":"USD","walletId":"3c90c3cc-0d44-4b50-8888-8dd25736052a","destinationAddress":"\u003cstring>"}}},"exampleType":"generated"}},"exampleType":"generated"},"72ebf4cb-9a49-4d9c-bcea-5062dfc936c4":{"description":"Invalid request body","content":{"application/json":{"schema":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string","description":"Machine-readable error code for programmatic handling","example":"INVALID_REQUEST","isRequired":true,"uniqueKey":"code","typeLabel":"string"},"message":{"type":"string","description":"Human-readable error message","isRequired":true,"uniqueKey":"message","typeLabel":"string"},"transactionId":{"type":"string","format":"uuid","description":"Persisted transaction record id. Present only when a broadcast request failed after a history row was created.","uniqueKey":"transactionId","typeLabel":"string\u003cuuid>"},"failureStage":{"type":"string","enum":["mpc_sign","signature_apply","signer_verify","broadcast","monitor_timeout"],"description":"Which stage of the broadcast lifecycle failed. Present on persisted broadcast failures.","uniqueKey":"failureStage","typeLabel":"enum\u003cstring>"},"failureCode":{"type":"string","description":"Machine-readable failure reason from the underlying broadcast helper (e.g. `INSUFFICIENT_NATIVE_BALANCE`, `EXECUTION_FAILED`). Present on broadcast-stage failures.","uniqueKey":"failureCode","typeLabel":"string"},"signedTransaction":{"type":"string","description":"Legacy signed transaction bytes on broadcast failures after signing. Sponsored responses never expose signed payloads.","uniqueKey":"signedTransaction","typeLabel":"string"}},"additionalProperties":true,"description":"All error responses include `code` and `message` fields. Some errors include extra fields (e.g. `walletId` on 409 Conflict).\nBroadcast failures that occur after a persisted transaction row is created include `transactionId`,\n`failureStage`, and (on broadcast-stage failures) `failureCode`, and also set the `x-transaction-id`\nresponse header. Legacy failures after signing can include `signedTransaction` for inspecting\nthe already-signed bytes. Sponsored responses never expose signed payloads; recover the original\noperation with its tracking ID or original request and idempotency key.\n\nCommon error codes: `INVALID_REQUEST`, `UNAUTHORIZED`, `FORBIDDEN`, `NOT_FOUND`, `CONFLICT`, `WALLET_ALREADY_EXISTS`, `WALLET_ALREADY_CLAIMED`, `RATE_LIMITED`, `INTERNAL_ERROR`.\n","uniqueKey":"","typeLabel":"object"},"example":{"code":"INVALID_REQUEST","message":"type must be one of EVM, SOLANA, COSMOS, STELLAR, SUI"},"examples":{"Example":{"title":"Example","value":{"code":"INVALID_REQUEST","message":"type must be one of EVM, SOLANA, COSMOS, STELLAR, SUI"}}},"exampleType":"examples"}},"exampleType":"examples"},"a79006ee-dda6-46c3-8611-4d1a07698d54":{"description":"API key not provided","content":{"application/json":{"schema":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string","description":"Machine-readable error code for programmatic handling","example":"INVALID_REQUEST","isRequired":true,"uniqueKey":"code","typeLabel":"string"},"message":{"type":"string","description":"Human-readable error message","isRequired":true,"uniqueKey":"message","typeLabel":"string"},"transactionId":{"type":"string","format":"uuid","description":"Persisted transaction record id. Present only when a broadcast request failed after a history row was created.","uniqueKey":"transactionId","typeLabel":"string\u003cuuid>"},"failureStage":{"type":"string","enum":["mpc_sign","signature_apply","signer_verify","broadcast","monitor_timeout"],"description":"Which stage of the broadcast lifecycle failed. Present on persisted broadcast failures.","uniqueKey":"failureStage","typeLabel":"enum\u003cstring>"},"failureCode":{"type":"string","description":"Machine-readable failure reason from the underlying broadcast helper (e.g. `INSUFFICIENT_NATIVE_BALANCE`, `EXECUTION_FAILED`). Present on broadcast-stage failures.","uniqueKey":"failureCode","typeLabel":"string"},"signedTransaction":{"type":"string","description":"Legacy signed transaction bytes on broadcast failures after signing. Sponsored responses never expose signed payloads.","uniqueKey":"signedTransaction","typeLabel":"string"}},"additionalProperties":true,"description":"All error responses include `code` and `message` fields. Some errors include extra fields (e.g. `walletId` on 409 Conflict).\nBroadcast failures that occur after a persisted transaction row is created include `transactionId`,\n`failureStage`, and (on broadcast-stage failures) `failureCode`, and also set the `x-transaction-id`\nresponse header. Legacy failures after signing can include `signedTransaction` for inspecting\nthe already-signed bytes. Sponsored responses never expose signed payloads; recover the original\noperation with its tracking ID or original request and idempotency key.\n\nCommon error codes: `INVALID_REQUEST`, `UNAUTHORIZED`, `FORBIDDEN`, `NOT_FOUND`, `CONFLICT`, `WALLET_ALREADY_EXISTS`, `WALLET_ALREADY_CLAIMED`, `RATE_LIMITED`, `INTERNAL_ERROR`.\n","uniqueKey":"","typeLabel":"object"},"example":{"code":"UNAUTHORIZED","message":"secret api key not provided"},"examples":{"Example":{"title":"Example","value":{"code":"UNAUTHORIZED","message":"secret api key not provided"}}},"exampleType":"examples"}},"exampleType":"examples"},"d5983d4b-625d-41d0-87c1-f4dfd438b7c2":{"description":"Wallet not found","content":{"application/json":{"schema":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string","description":"Machine-readable error code for programmatic handling","example":"INVALID_REQUEST","isRequired":true,"uniqueKey":"code","typeLabel":"string"},"message":{"type":"string","description":"Human-readable error message","isRequired":true,"uniqueKey":"message","typeLabel":"string"},"transactionId":{"type":"string","format":"uuid","description":"Persisted transaction record id. Present only when a broadcast request failed after a history row was created.","uniqueKey":"transactionId","typeLabel":"string\u003cuuid>"},"failureStage":{"type":"string","enum":["mpc_sign","signature_apply","signer_verify","broadcast","monitor_timeout"],"description":"Which stage of the broadcast lifecycle failed. Present on persisted broadcast failures.","uniqueKey":"failureStage","typeLabel":"enum\u003cstring>"},"failureCode":{"type":"string","description":"Machine-readable failure reason from the underlying broadcast helper (e.g. `INSUFFICIENT_NATIVE_BALANCE`, `EXECUTION_FAILED`). Present on broadcast-stage failures.","uniqueKey":"failureCode","typeLabel":"string"},"signedTransaction":{"type":"string","description":"Legacy signed transaction bytes on broadcast failures after signing. Sponsored responses never expose signed payloads.","uniqueKey":"signedTransaction","typeLabel":"string"}},"additionalProperties":true,"description":"All error responses include `code` and `message` fields. Some errors include extra fields (e.g. `walletId` on 409 Conflict).\nBroadcast failures that occur after a persisted transaction row is created include `transactionId`,\n`failureStage`, and (on broadcast-stage failures) `failureCode`, and also set the `x-transaction-id`\nresponse header. Legacy failures after signing can include `signedTransaction` for inspecting\nthe already-signed bytes. Sponsored responses never expose signed payloads; recover the original\noperation with its tracking ID or original request and idempotency key.\n\nCommon error codes: `INVALID_REQUEST`, `UNAUTHORIZED`, `FORBIDDEN`, `NOT_FOUND`, `CONFLICT`, `WALLET_ALREADY_EXISTS`, `WALLET_ALREADY_CLAIMED`, `RATE_LIMITED`, `INTERNAL_ERROR`.\n","uniqueKey":"","typeLabel":"object"},"example":{"code":"NOT_FOUND","message":"wallet not found"},"examples":{"Example":{"title":"Example","value":{"code":"NOT_FOUND","message":"wallet not found"}}},"exampleType":"examples"}},"exampleType":"examples"},"3aa72ec8-0dc0-4f4d-9e97-d85e8f63d055":{"description":"Rate limit exceeded","headers":{"Retry-After":{"schema":{"type":"integer"},"description":"Seconds until the rate limit window resets","example":60}},"content":{"application/json":{"schema":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string","description":"Machine-readable error code for programmatic handling","example":"INVALID_REQUEST","isRequired":true,"uniqueKey":"code","typeLabel":"string"},"message":{"type":"string","description":"Human-readable error message","isRequired":true,"uniqueKey":"message","typeLabel":"string"},"transactionId":{"type":"string","format":"uuid","description":"Persisted transaction record id. Present only when a broadcast request failed after a history row was created.","uniqueKey":"transactionId","typeLabel":"string\u003cuuid>"},"failureStage":{"type":"string","enum":["mpc_sign","signature_apply","signer_verify","broadcast","monitor_timeout"],"description":"Which stage of the broadcast lifecycle failed. Present on persisted broadcast failures.","uniqueKey":"failureStage","typeLabel":"enum\u003cstring>"},"failureCode":{"type":"string","description":"Machine-readable failure reason from the underlying broadcast helper (e.g. `INSUFFICIENT_NATIVE_BALANCE`, `EXECUTION_FAILED`). Present on broadcast-stage failures.","uniqueKey":"failureCode","typeLabel":"string"},"signedTransaction":{"type":"string","description":"Legacy signed transaction bytes on broadcast failures after signing. Sponsored responses never expose signed payloads.","uniqueKey":"signedTransaction","typeLabel":"string"}},"additionalProperties":true,"description":"All error responses include `code` and `message` fields. Some errors include extra fields (e.g. `walletId` on 409 Conflict).\nBroadcast failures that occur after a persisted transaction row is created include `transactionId`,\n`failureStage`, and (on broadcast-stage failures) `failureCode`, and also set the `x-transaction-id`\nresponse header. Legacy failures after signing can include `signedTransaction` for inspecting\nthe already-signed bytes. Sponsored responses never expose signed payloads; recover the original\noperation with its tracking ID or original request and idempotency key.\n\nCommon error codes: `INVALID_REQUEST`, `UNAUTHORIZED`, `FORBIDDEN`, `NOT_FOUND`, `CONFLICT`, `WALLET_ALREADY_EXISTS`, `WALLET_ALREADY_CLAIMED`, `RATE_LIMITED`, `INTERNAL_ERROR`.\n","uniqueKey":"","typeLabel":"object"},"example":{"code":"RATE_LIMITED","message":"Rate limit exceeded, try again shortly."},"examples":{"Example":{"title":"Example","value":{"code":"RATE_LIMITED","message":"Rate limit exceeded, try again shortly."}}},"exampleType":"examples"}},"exampleType":"examples"},"6243d92a-1140-4dbd-b7cd-9356445f20d6":{"description":"Internal server error","content":{"application/json":{"schema":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string","description":"Machine-readable error code for programmatic handling","example":"INVALID_REQUEST","isRequired":true,"uniqueKey":"code","typeLabel":"string"},"message":{"type":"string","description":"Human-readable error message","isRequired":true,"uniqueKey":"message","typeLabel":"string"},"transactionId":{"type":"string","format":"uuid","description":"Persisted transaction record id. Present only when a broadcast request failed after a history row was created.","uniqueKey":"transactionId","typeLabel":"string\u003cuuid>"},"failureStage":{"type":"string","enum":["mpc_sign","signature_apply","signer_verify","broadcast","monitor_timeout"],"description":"Which stage of the broadcast lifecycle failed. Present on persisted broadcast failures.","uniqueKey":"failureStage","typeLabel":"enum\u003cstring>"},"failureCode":{"type":"string","description":"Machine-readable failure reason from the underlying broadcast helper (e.g. `INSUFFICIENT_NATIVE_BALANCE`, `EXECUTION_FAILED`). Present on broadcast-stage failures.","uniqueKey":"failureCode","typeLabel":"string"},"signedTransaction":{"type":"string","description":"Legacy signed transaction bytes on broadcast failures after signing. Sponsored responses never expose signed payloads.","uniqueKey":"signedTransaction","typeLabel":"string"}},"additionalProperties":true,"description":"All error responses include `code` and `message` fields. Some errors include extra fields (e.g. `walletId` on 409 Conflict).\nBroadcast failures that occur after a persisted transaction row is created include `transactionId`,\n`failureStage`, and (on broadcast-stage failures) `failureCode`, and also set the `x-transaction-id`\nresponse header. Legacy failures after signing can include `signedTransaction` for inspecting\nthe already-signed bytes. Sponsored responses never expose signed payloads; recover the original\noperation with its tracking ID or original request and idempotency key.\n\nCommon error codes: `INVALID_REQUEST`, `UNAUTHORIZED`, `FORBIDDEN`, `NOT_FOUND`, `CONFLICT`, `WALLET_ALREADY_EXISTS`, `WALLET_ALREADY_CLAIMED`, `RATE_LIMITED`, `INTERNAL_ERROR`.\n","uniqueKey":"","typeLabel":"object"},"example":{"code":"INTERNAL_ERROR","message":"Internal Server Error"},"examples":{"Example":{"title":"Example","value":{"code":"INTERNAL_ERROR","message":"Internal Server Error"}}},"exampleType":"examples"}},"exampleType":"examples"}},"security":{"90b4b28c-bdd5-4c66-b5b8-caf6c9c9df3d":{"ApiKeyAuth":{"type":"apiKey","in":"header","name":"X-API-Key","description":"Your partner secret key (server-side only)","x-default":"sk_your_secret_key_here","scopes":[],"schemeName":"ApiKeyAuth"}}},"servers":{"84e136c7-b7b8-4f59-9f7c-86990ff9ffe0":{"url":"https://api.beta.getpara.com","description":"Beta"},"42d2d9d7-05ba-4437-820b-f5afc2833189":{"url":"https://api.getpara.com","description":"Production"}},"processedSecurityOptions":[{"schemes":[{"scheme":{"type":"apiKey","in":"header","name":"X-API-Key","description":"Your partner secret key (server-side only)","x-default":"sk_your_secret_key_here","scopes":[],"schemeName":"ApiKeyAuth"},"schema":{"title":"X-API-Key","type":"string","description":"Your partner secret key (server-side only)","isRequired":true,"default":"sk_your_secret_key_here","typeLabel":"string","deprecated":false},"schemeName":"ApiKeyAuth","name":"X-API-Key"}],"title":"ApiKeyAuth"}]},"originalFileLocation":"openapi.yaml"},"subdomain":"getpara","siteName":"Para Docs","title":"Get On-Ramp Purchase - Para Docs","navMaps":{"firstHrefInVersion":{"3.0 (Current)":{"href":"/v3/rest/api/on-ramp/get-on-ramp-purchase","matchLevel":0},"2.0 (LTS)":{"href":"/v2/rest/api/on-ramp/get-on-ramp-purchase","matchLevel":1}},"firstHrefInLanguage":{}},"lastModified":"2026-10-30T16:10:29.650Z","originalFileLocation":"v3/rest/api/on-ramp/get-on-ramp-purchase.mdx"},"headHtml":"\u003cscript data-mint-head>(function(){var d=document.documentElement,p=\"light\";if(!p){try{p=localStorage.getItem(\"isDarkMode\")}catch(e){}if(p==='true')p='dark';else if(p==='false')p='light';if(p!=='light'\u0026\u0026p!=='dark'\u0026\u0026p!=='system')p=\"light\"}var r=p==='system'?(matchMedia(\"(prefers-color-scheme: dark)\").matches?'dark':'light'):p;d.classList.remove(r==='dark'?'light':'dark');d.classList.add(r);d.setAttribute(\"data-theme-preference\",p)})();\u003c/script>\u003cmeta data-mint-head name=\"description\" content=\"Look up a fiat on-ramp purchase by id. Use this to reconcile a purchase you may have missed the onramp.completed webhook for, or to check one that is still in flight. The response is the onramp.completed webhook payload plus a status field. A purchase that has not settled yet returns partial data — transactionHash and completedAt are null until status is FINISHED — so read status rather than inferring completion from the hash. Scoped to the calling partner. A purchase that does not exist, is malformed, or belongs to a different partner all return an identical 404.\">\u003cmeta data-mint-head name=\"application-name\" content=\"Para Docs\">\u003cmeta data-mint-head name=\"generator\" content=\"Mintlify\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"192x192\" href=\"/mintlify-assets/_mintlify/favicons/getpara/0DxXdBBXXRUUv88T/_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/getpara/0DxXdBBXXRUUv88T/_generated/favicon/apple-touch-icon.png\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"16x16\" href=\"/mintlify-assets/_mintlify/favicons/getpara/0DxXdBBXXRUUv88T/_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/getpara/0DxXdBBXXRUUv88T/_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/getpara/0DxXdBBXXRUUv88T/_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/getpara/0DxXdBBXXRUUv88T/_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/getpara/0DxXdBBXXRUUv88T/_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/getpara/0DxXdBBXXRUUv88T/_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/getpara/0DxXdBBXXRUUv88T/_generated/favicon-dark/favicon.ico\" media=\"(prefers-color-scheme: dark)\">\u003cmeta data-mint-head property=\"og:title\" content=\"Get On-Ramp Purchase - Para Docs\">\u003cmeta data-mint-head property=\"og:description\" content=\"Look up a fiat on-ramp purchase by id. Use this to reconcile a purchase you may have missed the onramp.completed webhook for, or to check one that is still in flight. The response is the onramp.completed webhook payload plus a status field. A purchase that has not settled yet returns partial data — transactionHash and completedAt are null until status is FINISHED — so read status rather than inferring completion from the hash. Scoped to the calling partner. A purchase that does not exist, is malformed, or belongs to a different partner all return an identical 404.\">\u003cmeta data-mint-head property=\"og:site_name\" content=\"Para Docs\">\u003cmeta data-mint-head property=\"og:url\" content=\"https://docs.getpara.com/v3/rest/api/on-ramp/get-on-ramp-purchase\">\u003cmeta data-mint-head property=\"og:type\" content=\"website\">\u003cmeta data-mint-head property=\"og:image\" content=\"https://getpara.mintlify.site/_mintlify/api/og/v2?division=On-Ramp\u0026amp;title=Get+On-Ramp+Purchase\u0026amp;description=Look+up+a+fiat+on-ramp+purchase+by+id.+Use+this+to+reconcile+a+purchase+you+may+have+missed+the%0A%60onramp.completed%60+webhook+for%2C+or+to+check+one+that+is+still+in\u0026amp;theme=9bbe966b673f4a3310f46488\u0026amp;signature=2064f8d86bed404aabe92e29fd3146b66eb6757c54209bd0b9f6147b1cecc5ba\">\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=\"Get On-Ramp Purchase - Para Docs\">\u003cmeta data-mint-head name=\"twitter:description\" content=\"Look up a fiat on-ramp purchase by id. Use this to reconcile a purchase you may have missed the onramp.completed webhook for, or to check one that is still in flight. The response is the onramp.completed webhook payload plus a status field. A purchase that has not settled yet returns partial data — transactionHash and completedAt are null until status is FINISHED — so read status rather than inferring completion from the hash. Scoped to the calling partner. A purchase that does not exist, is malformed, or belongs to a different partner all return an identical 404.\">\u003cmeta data-mint-head name=\"twitter:image\" content=\"https://getpara.mintlify.site/_mintlify/api/og/v2?division=On-Ramp\u0026amp;title=Get+On-Ramp+Purchase\u0026amp;description=Look+up+a+fiat+on-ramp+purchase+by+id.+Use+this+to+reconcile+a+purchase+you+may+have+missed+the%0A%60onramp.completed%60+webhook+for%2C+or+to+check+one+that+is+still+in\u0026amp;theme=9bbe966b673f4a3310f46488\u0026amp;signature=2064f8d86bed404aabe92e29fd3146b66eb6757c54209bd0b9f6147b1cecc5ba\">\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/getpara/0DxXdBBXXRUUv88T/_generated/favicon/browserconfig.xml\">\u003cmeta data-mint-head name=\"apple-mobile-web-app-title\" content=\"Para Docs\">\u003cmeta data-mint-head name=\"msapplication-TileColor\" content=\"#FF4E00\">\u003clink data-mint-head rel=\"canonical\" href=\"https://docs.getpara.com/v3/rest/api/on-ramp/get-on-ramp-purchase\">\u003clink data-mint-head rel=\"alternate\" type=\"application/xml\" href=\"/sitemap.xml\">\u003clink data-mint-head rel=\"alternate\" type=\"text/markdown\" href=\"/v3/rest/api/on-ramp/get-on-ramp-purchase.md\">\u003cscript data-mint-head type=\"application/ld+json\">{\"@context\":\"https://schema.org\",\"@graph\":[{\"@type\":\"Organization\",\"@id\":\"https://docs.getpara.com/#organization\",\"name\":\"Para Docs\",\"url\":\"https://docs.getpara.com\",\"logo\":{\"@type\":\"ImageObject\",\"url\":\"https://mintcdn.com/getpara/30lQMU2mHiFlT8O0/logo/light.svg?fit=max\u0026auto=format\u0026n=30lQMU2mHiFlT8O0\u0026q=85\u0026s=342b25f634bb7c26fefb0769da8f0555\"}},{\"@type\":\"WebSite\",\"@id\":\"https://docs.getpara.com#website\",\"name\":\"Para Docs\",\"url\":\"https://docs.getpara.com\",\"publisher\":{\"@id\":\"https://docs.getpara.com/#organization\"}},{\"@type\":\"WebPage\",\"@id\":\"https://docs.getpara.com/v3/rest/api/on-ramp/get-on-ramp-purchase#webpage\",\"url\":\"https://docs.getpara.com/v3/rest/api/on-ramp/get-on-ramp-purchase\",\"name\":\"Get On-Ramp Purchase\",\"description\":\"Look up a fiat on-ramp purchase by id. Use this to reconcile a purchase you may have missed the onramp.completed webhook for, or to check one that is still in flight. The response is the onramp.completed webhook payload plus a status field. A purchase that has not settled yet returns partial data — transactionHash and completedAt are null until status is FINISHED — so read status rather than inferring completion from the hash. Scoped to the calling partner. A purchase that does not exist, is malformed, or belongs to a different partner all return an identical 404.\",\"dateModified\":\"2026-10-30T16:10:29.650Z\",\"isPartOf\":{\"@id\":\"https://docs.getpara.com#website\"},\"breadcrumb\":{\"@id\":\"https://docs.getpara.com/v3/rest/api/on-ramp/get-on-ramp-purchase#breadcrumb\"}},{\"@type\":\"BreadcrumbList\",\"@id\":\"https://docs.getpara.com/v3/rest/api/on-ramp/get-on-ramp-purchase#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Endpoints\",\"item\":\"https://docs.getpara.com/v3/rest/api/yield/list-markets\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Get On-Ramp Purchase\",\"item\":\"https://docs.getpara.com/v3/rest/api/on-ramp/get-on-ramp-purchase\"}]},{\"@type\":[\"TechArticle\",\"APIReference\"],\"@id\":\"https://docs.getpara.com/v3/rest/api/on-ramp/get-on-ramp-purchase#apireference\",\"headline\":\"Get On-Ramp Purchase\",\"name\":\"Get On-Ramp Purchase\",\"description\":\"Look up a fiat on-ramp purchase by id. Use this to reconcile a purchase you may have missed the onramp.completed webhook for, or to check one that is still in flight. The response is the onramp.completed webhook payload plus a status field. A purchase that has not settled yet returns partial data — transactionHash and completedAt are null until status is FINISHED — so read status rather than inferring completion from the hash. Scoped to the calling partner. A purchase that does not exist, is malformed, or belongs to a different partner all return an identical 404.\",\"url\":\"https://docs.getpara.com/v3/rest/api/on-ramp/get-on-ramp-purchase\",\"mainEntityOfPage\":{\"@id\":\"https://docs.getpara.com/v3/rest/api/on-ramp/get-on-ramp-purchase#webpage\"},\"dateModified\":\"2026-10-30T16:10:29.650Z\",\"publisher\":{\"@id\":\"https://docs.getpara.com/#organization\"},\"isPartOf\":{\"@id\":\"https://docs.getpara.com#website\"}}]}\u003c/script>\u003cscript data-mint-head type=\"application/ld+json\">{\"@context\":\"https://schema.org\",\"@type\":\"WebSite\",\"name\":\"Para Docs\",\"creator\":{\"@type\":\"Organization\",\"name\":\"Mintlify\",\"url\":\"https://mintlify.com\"}}\u003c/script>","siteName":"Para Docs","nav":{"global":{"anchors":[]},"versions":[{"version":"3.0 (Current)","default":true,"tag":"Latest","tabs":[{"tab":"Plan","icon":"compass","pages":[{"title":"Plan","href":"/v3/introduction/welcome"}]},{"tab":"Build","icon":"code","anchors":[{"anchor":"React \u0026 Web","icon":"react","pages":[{"title":"React \u0026 Web","href":"/v3/react/quickstart"}]},{"anchor":"REST API","icon":"server","groups":[{"group":"Get Started","icon":"rocket","pages":[{"title":"REST API","sidebarTitle":"Get Started","icon":"server","href":"/v3/rest/overview"}]},{"group":"Set Up Project","icon":"wrench","pages":[{"title":"Setup","sidebarTitle":"Setup","icon":"wrench","href":"/v3/rest/setup"},{"title":"REST SDK","sidebarTitle":"REST SDK","icon":"code","href":"/v3/rest/sdk"},{"group":"Developer Portal","icon":"gear","pages":[{"title":"Get Your API Key","sidebarTitle":"Get Your API Key","icon":"key","href":"/v3/rest/setup/developer-portal-setup"},{"title":"Developer Portal Email Branding","sidebarTitle":"Brand Your Emails","icon":"envelope","href":"/v3/rest/setup/developer-portal-email-branding"},{"title":"Developer Portal Payment Integration","sidebarTitle":"Set Up Fiat Onramps","icon":"credit-card","href":"/v3/rest/setup/developer-portal-payments"},{"title":"Developer Portal Security Settings","sidebarTitle":"Manage App Security","icon":"shield","href":"/v3/rest/setup/developer-portal-security"}]}]},{"group":"Create and Manage Wallets","icon":"wallet","pages":[{"title":"Bring your own auth","sidebarTitle":"BYO auth","icon":"user-lock","href":"/v3/rest/byo-auth"},{"title":"Wallet Lifecycle by Wallet Type","sidebarTitle":"Wallet Lifecycle","icon":"wallet","href":"/v3/rest/wallet-lifecycle"},{"title":"Multiple Wallets per User","sidebarTitle":"Multi-Wallet Setup","icon":"wallet","href":"/v3/rest/multi-wallet"}]},{"group":"Sign and Transact","icon":"signature","pages":[{"title":"Sign Messages by Wallet Type","sidebarTitle":"Sign Messages","icon":"signature","href":"/v3/rest/signing"},{"title":"Transaction Signing by Wallet Type","sidebarTitle":"Sign Transactions","icon":"signature","href":"/v3/rest/transaction-signing"},{"title":"Gas Sponsorship","sidebarTitle":"Gas Sponsorship","icon":"gas-pump","href":"/v3/rest/gas-sponsorship"},{"title":"Automatic Fee Retry","sidebarTitle":"Automatic Fee Retry","icon":"arrows-rotate","href":"/v3/rest/automatic-retry"},{"title":"Yield","sidebarTitle":"Yield","icon":"coins","href":"/v3/rest/yield"},{"title":"Transaction History","sidebarTitle":"Transaction History","icon":"clock-rotate-left","href":"/v3/rest/transaction-history"}]},{"group":"Add Permissions","icon":"shield-check","pages":[{"title":"Guardrails for app-owned wallets","sidebarTitle":"Overview","icon":"shield-check","href":"/v3/rest/permissions"},{"title":"Create policies in the Developer Portal","sidebarTitle":"Developer Portal","icon":"sliders","href":"/v3/rest/permissions/developer-portal"},{"title":"Write policy JSON","sidebarTitle":"Write policy JSON","icon":"code","href":"/v3/rest/permissions/json"},{"title":"Test your policies","sidebarTitle":"Test your policies","icon":"flask","href":"/v3/rest/permissions/testing"},{"title":"Go to production","sidebarTitle":"Go to production","icon":"rocket","href":"/v3/rest/permissions/production"},{"group":"Templates","pages":[{"title":"Guardrail templates","sidebarTitle":"Overview","icon":"copy","href":"/v3/rest/permissions/templates"},{"title":"Spending caps","sidebarTitle":"Spending caps","icon":"file-code","href":"/v3/rest/permissions/templates/spending-caps"},{"title":"Recipient and contract allowlists","sidebarTitle":"Allowlists","icon":"file-code","href":"/v3/rest/permissions/templates/allowlists"},{"title":"Approval thresholds and tiers","sidebarTitle":"Approval tiers","icon":"file-code","href":"/v3/rest/permissions/templates/approval-tiers"},{"title":"Treasury approvals","sidebarTitle":"Treasury","icon":"file-code","href":"/v3/rest/permissions/templates/treasury"},{"title":"Message and raw signing","sidebarTitle":"Message signing","icon":"file-code","href":"/v3/rest/permissions/templates/message-signing"}]},{"group":"Advanced","pages":[{"title":"Conditional approvals","sidebarTitle":"Conditional approvals","icon":"users","href":"/v3/rest/permissions/conditional-approvals"},{"title":"Collect approval signatures","sidebarTitle":"Approval signatures","icon":"signature","href":"/v3/rest/permissions/approval-signatures"},{"title":"Adjustable parameters","sidebarTitle":"Adjustable parameters","icon":"gauge","href":"/v3/rest/permissions/adjustable-parameters"},{"title":"Signing delegation","sidebarTitle":"Signing delegation","icon":"clock-rotate-left","href":"/v3/rest/permissions/signing-delegation"},{"title":"Manage the policy lifecycle","sidebarTitle":"Policy lifecycle","icon":"rotate","href":"/v3/rest/permissions/lifecycle"},{"title":"Manage permissions from your backend","sidebarTitle":"Backend administration","icon":"server","href":"/v3/rest/permissions-administration"}]}]},{"group":"Use Pregeneration","icon":"key","pages":[{"title":"Migrate SDK pregen wallets to REST API","sidebarTitle":"Migrate from SDK pregen","icon":"arrow-right-arrow-left","href":"/v3/rest/migrate-from-sdk-pregen"}]},{"group":"Endpoints","pages":[{"group":"Yield","pages":[{"title":"List markets","deprecated":null,"version":null,"openapi":"/openapi.yaml get /v1/wallets/{walletId}/yield/markets","href":"/v3/rest/api/yield/list-markets"},{"title":"Deposit","deprecated":null,"version":null,"openapi":"/openapi.yaml post /v1/wallets/{walletId}/yield/deposits","href":"/v3/rest/api/yield/deposit"},{"title":"Withdraw","deprecated":null,"version":null,"openapi":"/openapi.yaml post /v1/wallets/{walletId}/yield/withdrawals","href":"/v3/rest/api/yield/withdraw"},{"title":"Get position","deprecated":null,"version":null,"openapi":"/openapi.yaml get /v1/wallets/{walletId}/yield/position","href":"/v3/rest/api/yield/get-position"},{"title":"Get operation","deprecated":null,"version":null,"openapi":"/openapi.yaml get /v1/wallets/{walletId}/yield/operations/{operationId}","href":"/v3/rest/api/yield/get-operation"},{"title":"Cancel operation","deprecated":null,"version":null,"openapi":"/openapi.yaml post /v1/wallets/{walletId}/yield/operations/{operationId}/cancel","href":"/v3/rest/api/yield/cancel-operation"}]},{"group":"Screening","pages":[{"title":"Get Address Screening Status","deprecated":null,"version":null,"openapi":"/openapi.yaml get /v1/address-screening/status","href":"/v3/rest/api/screening/get-address-screening-status"}]},{"group":"Wallets","pages":[{"title":"List Wallets","deprecated":null,"version":null,"openapi":"/openapi.yaml get /v1/wallets","href":"/v3/rest/api/wallets/list-wallets"},{"title":"Create Wallet","deprecated":null,"version":null,"openapi":"/openapi.yaml post /v1/wallets","href":"/v3/rest/api/wallets/create-wallet"},{"title":"Get Wallet","deprecated":null,"version":null,"openapi":"/openapi.yaml get /v1/wallets/{walletId}","href":"/v3/rest/api/wallets/get-wallet"},{"title":"Update Wallet Identifier","deprecated":null,"version":null,"openapi":"/openapi.yaml patch /v1/wallets/{walletId}","href":"/v3/rest/api/wallets/update-wallet-identifier"},{"title":"Migrate SDK Pregen Wallet Share","deprecated":null,"version":null,"openapi":"/openapi.yaml post /v1/wallets/{walletId}/migrate-share","href":"/v3/rest/api/wallets/migrate-sdk-pregen-wallet-share"},{"title":"Get Wallet Balance","deprecated":null,"version":null,"openapi":"/openapi.yaml get /v1/wallets/{walletId}/balance","href":"/v3/rest/api/wallets/get-wallet-balance"}]},{"group":"Enclave","pages":[{"title":"Get Enclave Public Key","deprecated":null,"version":null,"openapi":"/openapi.yaml get /v1/enclave/public-key","href":"/v3/rest/api/enclave/get-enclave-public-key"}]},{"group":"Signing","pages":[{"title":"Sign Raw","deprecated":null,"version":null,"openapi":"/openapi.yaml post /v1/wallets/{walletId}/sign-raw","href":"/v3/rest/api/signing/sign-raw"},{"title":"Sign Transaction","deprecated":null,"version":null,"openapi":"/openapi.yaml post /v1/wallets/{walletId}/sign-transaction","href":"/v3/rest/api/signing/sign-transaction"},{"title":"Sign Message","deprecated":null,"version":null,"openapi":"/openapi.yaml post /v1/wallets/{walletId}/sign-message","href":"/v3/rest/api/signing/sign-message"},{"title":"Sign Typed Data","deprecated":null,"version":null,"openapi":"/openapi.yaml post /v1/wallets/{walletId}/sign-typed-data","href":"/v3/rest/api/signing/sign-typed-data"},{"title":"Sign Authorization (EIP-7702)","deprecated":null,"version":null,"openapi":"/openapi.yaml post /v1/wallets/{walletId}/sign-authorization","href":"/v3/rest/api/signing/sign-authorization-eip-7702"},{"title":"Transfer","deprecated":null,"version":null,"openapi":"/openapi.yaml post /v1/wallets/{walletId}/transfer","href":"/v3/rest/api/signing/transfer"},{"title":"List Transactions","deprecated":null,"version":null,"openapi":"/openapi.yaml get /v1/wallets/{walletId}/transactions","href":"/v3/rest/api/signing/list-transactions"},{"title":"Get Transaction","deprecated":null,"version":null,"openapi":"/openapi.yaml get /v1/wallets/{walletId}/transactions/{transactionId}","href":"/v3/rest/api/signing/get-transaction"},{"title":"Speed Up Transfer","deprecated":null,"version":null,"openapi":"/openapi.yaml post /v1/wallets/{walletId}/transactions/{transactionId}/speed-up","href":"/v3/rest/api/signing/speed-up-transfer"},{"title":"Cancel Transfer","deprecated":null,"version":null,"openapi":"/openapi.yaml post /v1/wallets/{walletId}/transactions/{transactionId}/cancel","href":"/v3/rest/api/signing/cancel-transfer"},{"title":"Resume Sponsored Transaction","deprecated":null,"version":null,"openapi":"/openapi.yaml post /v1/wallets/{walletId}/transactions/{transactionId}/resume","href":"/v3/rest/api/signing/resume-sponsored-transaction"},{"title":"Estimate Transfer Fee","deprecated":null,"version":null,"openapi":"/openapi.yaml post /v1/wallets/{walletId}/estimate-fee","href":"/v3/rest/api/signing/estimate-transfer-fee"}]},{"group":"Faucet","pages":[{"title":"Request Testnet Tokens","description":"Send testnet tokens to a Para wallet. The wallet must belong to an\nauthenticated user under the partner's API key. Rate limited to 10\nrequests per API key per day, with a 24-hour cooldown per wallet.\n","deprecated":null,"version":null,"openapi":"/openapi.yaml post /faucet","href":"/v3/rest/api/faucet/request-testnet-tokens"}]},{"group":"On-Ramp","pages":[{"title":"Get On-Ramp Purchase","deprecated":null,"version":null,"openapi":"/openapi.yaml get /v1/onramp/purchases/{purchaseId}","href":"/v3/rest/api/on-ramp/get-on-ramp-purchase"}]}]}]},{"anchor":"Node \u0026 Server","icon":"server","pages":[{"title":"Node \u0026 Server","href":"/v3/server/overview"}]},{"anchor":"React Native","icon":"react","pages":[{"title":"React Native","href":"/v3/react-native/quickstart"}]},{"anchor":"Flutter","icon":"flutter","pages":[{"title":"Flutter","href":"/v3/flutter/overview"}]},{"anchor":"Swift","icon":"swift","pages":[{"title":"Swift","href":"/v3/swift/overview"}]},{"anchor":"Partner Network","icon":"list-check","pages":[{"title":"Partner Network","href":"/v3/walkthroughs/overview"}]}]},{"tab":"Tools","icon":"terminal","pages":[{"title":"Tools","href":"/v3/developer-tools/overview"}]},{"tab":"Reference","icon":"book-open","pages":[{"title":"Reference","href":"/v3/references/overview"}]}]},{"version":"2.0 (LTS)","pages":[{"title":"2.0 (LTS)","href":"/v2/rest/api/on-ramp/get-on-ramp-purchase"}]}]},"basePath":"","title":"Get On-Ramp Purchase - Para Docs","buildId":"dpl_DTau1J5HqS9UTgVSDwGksstFWtPa","deploymentId":"dpl_DTau1J5HqS9UTgVSDwGksstFWtPa","dynamics":["c2aa737661","2b790eda92","b0f84f53ff","a9bb46feb3"],"chunks":["OpenApiReferenceProvider-5FCzAcfS.js","utils-SLtAG4EZ.js","cloneDeep-izs3Hzxb.js","_Uint8Array-BVIqJ90l.js","isObjectLike-C8vmzPEN.js","isArray-Dcu1dQ5t.js","utils-2DZi8ZMu.js","toString-BX-iyh8G.js","isSymbol-CSH9U2Gm.js","addUniqueKeysToSchema-D7J3nkzE.js","snippetPresets-D0Alv0AH.js","style-to-object-BY3JEAdk.js","v4-DIgz8zy6.js","conditional-requirements-CFM0id0Q.js","ApiExamples-BI4qNJ2c.js","isEqual-BfaiBbcl.js","usePlaygroundInputsStore-BD3uyr8j.js","shallow-D8iEBr5z.js","getApiPlaygroundDisplay-CgNP4lzR.js","CodeSnippet-CX-QHuMs.js","CodeSnippets-VlXE-ZUf.js","Page-D9ithiIZ.js","getPastedJson-DYNQkZ1M.js","icon-CzacdwOi.js","MethodPill-2JVqoYKi.js","DuplicateIcon-_xVXs-U8.js","createIcon-BRHrweLo.js","DynamicMarkdown-mQG_iQiE.js","SectionHeading-DMpJzv8f.js","axios-vUo_bRtp.js","Markdown-5FGIym-8.js","clsx-D-TRO5q5.js","lib-DuNMoZ05.js","lib-B8HbPgcC.js","html-void-elements-mCSPHezU.js","dist-CdrJecqK.js","katex-YMM-FMeD.js","marked.esm-CZWythHk.js","AssistantPageLink-CHlcWBLM.js"]}