{
"error": "Insufficient account balance. Your Laso account balance is $0, but your agent wallet holds $4.71 USDC. /withdraw only draws on the account balance. To move the agent wallet's funds, call agentWalletTransfer.",
"code": "insufficient_account_balance",
"hint": "The agent wallet is a separate on-chain wallet, not the account balance. Send its USDC to a Solana address with agentWalletTransfer (MCP tool: agent_wallet_transfer).",
"account_balance": 0,
"agent_wallet": {
"has_wallet": true,
"wallet_address": "7xKX...",
"balance_usdc": 4.71
}
}
{
"error": "Missing or invalid Authorization header"
}
{
"error": "Account is frozen",
"frozen_message": "Your account is frozen pending a compliance review. Contact support@laso.finance."
}
{
"error": "Account balance not found"
}
{
"error": "A request with this Idempotency-Key is still being processed",
"code": "idempotency_key_in_progress"
}
{
"error": "Idempotency-Key reused with a different request",
"code": "idempotency_key_reused"
}
Withdrawals
Withdraw from account balance
Initiate a withdrawal from the user’s account balance. The USDC is sent on Solana to the solana_address you supply; the destination is never inferred, so the address is required.
This is an asynchronous operation. A successful call answers 202 Accepted: the withdrawal is created in a pending state and sent within a few minutes. Poll the returned status_url (GET /get-withdrawal-status?withdrawal_id=...) until state reaches a terminal value rather than treating the 202 as completion.
This draws only on the Laso account balance, never on the managed agent wallet. USDC sitting in the agent wallet is moved with agentWalletTransfer instead. When the account balance is too low but the agent wallet holds funds, the 400 response says so and reports both figures.
An agent’s withdrawal counts against the account’s spend limits, the same as its payments and wallet sends: it must be under the per-payment limit and fit in what is left of the rolling 24-hour limit. Otherwise it is refused with 403 and codeagent_spend_limit or agent_daily_limit, and nothing is withdrawn. Do not split it into smaller withdrawals to get under a limit; tell your human.
{
"error": "Insufficient account balance. Your Laso account balance is $0, but your agent wallet holds $4.71 USDC. /withdraw only draws on the account balance. To move the agent wallet's funds, call agentWalletTransfer.",
"code": "insufficient_account_balance",
"hint": "The agent wallet is a separate on-chain wallet, not the account balance. Send its USDC to a Solana address with agentWalletTransfer (MCP tool: agent_wallet_transfer).",
"account_balance": 0,
"agent_wallet": {
"has_wallet": true,
"wallet_address": "7xKX...",
"balance_usdc": 4.71
}
}
{
"error": "Missing or invalid Authorization header"
}
{
"error": "Account is frozen",
"frozen_message": "Your account is frozen pending a compliance review. Contact support@laso.finance."
}
{
"error": "Account balance not found"
}
{
"error": "A request with this Idempotency-Key is still being processed",
"code": "idempotency_key_in_progress"
}
{
"error": "Idempotency-Key reused with a different request",
"code": "idempotency_key_reused"
}
Optional client-generated unique key (a UUID works) that makes this write safe to retry. A retry with the same key within 24 hours returns the recorded response of the original request, marked with an Idempotency-Replayed: true header, instead of performing the write again. Reusing a key with a different body or route is rejected with 422 (code: idempotency_key_reused); a retry that arrives while the original is still running gets 409 (code: idempotency_key_in_progress), so wait a moment and retry with the same key. Keys are scoped to the authenticated account.
Solana wallet address that receives the USDC. Must be a valid base58 Solana address.
Response
Withdrawal accepted. The withdrawal is recorded in a pending state and the USDC is sent on Solana within a few minutes, so this response reports that the request was accepted, not that it settled. Poll status_url (also returned in the Location header) until withdrawal.state reaches a terminal value.
{"docsConfig":{"theme":"mint","$schema":"https://mintlify.com/docs.json","name":"Laso Finance API","colors":{"primary":"#3182CE","light":"#63B3ED","dark":"#2B6CB0"},"logo":{"light":"https://mintcdn.com/lasofinance/ofpGRRSVLQ9V1OQK/logo/light.svg?fit=max\u0026auto=format\u0026n=ofpGRRSVLQ9V1OQK\u0026q=85\u0026s=bd9f84a4711475d24375fe444b276211","dark":"https://mintcdn.com/lasofinance/ofpGRRSVLQ9V1OQK/logo/dark.svg?fit=max\u0026auto=format\u0026n=ofpGRRSVLQ9V1OQK\u0026q=85\u0026s=02b9e95a41760833955f02322dd28520"},"favicon":"https://mintcdn.com/lasofinance/ofpGRRSVLQ9V1OQK/favicon.svg?fit=max\u0026auto=format\u0026n=ofpGRRSVLQ9V1OQK\u0026q=85\u0026s=b77639351bc9249b59a562d4ce64ac18","navbar":{"links":[{"href":"mailto:support@laso.finance","label":"Support"},{"icon":"github","href":"https://github.com/LasoFinance/docs","label":"GitHub"}],"primary":{"type":"button","label":"laso.finance","href":"https://laso.finance"}},"footer":{"socials":{"x":"https://x.com/intent/follow?screen_name=lasofinance","github":"https://github.com/LasoFinance/docs"}},"contextual":{"options":["copy","view","chatgpt","claude","perplexity","mcp","cursor","vscode"],"display":"header"},"styling":{"latex":true},"navigation":{"global":{},"pages":[]}},"deployment":{"deploymentMetadataValue":{"subdomain":"lasofinance","hasAudioNarration":false,"actualSubdomain":"lasofinance","customDomains":["docs.laso.finance"],"gitSource":{"type":"github","owner":"lasofinance","repo":"docs","deployBranch":"main","contentDirectory":"","isPrivate":false,"mountPath":"","label":""},"feedback":{"edits":true,"thumbs":true,"issues":true,"agentFeedback":true},"entitlements":{},"buildId":"6aee4de288ca07f8054a49d4","clientVersion":"0.0.4088","searchFilterCounts":[{"language":"default","tag":"API Reference","count":78},{"language":"default","tag":"Guides","count":38},{"language":"default","tag":"Cards","count":20},{"language":"default","tag":"Banking","count":19},{"language":"default","tag":"Agent Wallet","count":11},{"language":"default","tag":"Platform","count":8},{"language":"default","tag":"Spend","count":8},{"language":"default","tag":"Account","count":8},{"language":"default","tag":"Integrations","count":7},{"language":"default","tag":"How We Use","count":6}]},"assistantConfig":{"enableAskAiButton":false,"enableStarterQuestions":false,"enableAskAiSearchBar":true},"basePath":"","hasChatPermissions":false,"hasWebMcpPermissions":false,"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":"api-reference/withdraw-from-account-balance","slug":"/api-reference/withdraw-from-account-balance","pageMetadata":{"title":"Withdraw from account balance","description":"Initiate a withdrawal from the user's account balance. The USDC is sent on Solana to the `solana_address` you supply; the destination is never inferred, so the address is required.\n\nThis is an asynchronous operation. A successful call answers `202 Accepted`: the withdrawal is created in a `pending` state and sent within a few minutes. Poll the returned `status_url` (`GET /get-withdrawal-status?withdrawal_id=...`) until `state` reaches a terminal value rather than treating the 202 as completion.\n\nThis draws only on the Laso account balance, never on the managed agent wallet. USDC sitting in the agent wallet is moved with `agentWalletTransfer` instead. When the account balance is too low but the agent wallet holds funds, the 400 response says so and reports both figures.\n\nAn agent's withdrawal counts against the account's spend limits, the same as its payments and wallet sends: it must be under the per-payment limit and fit in what is left of the rolling 24-hour limit. Otherwise it is refused with 403 and `code` `agent_spend_limit` or `agent_daily_limit`, and nothing is withdrawn. Do not split it into smaller withdrawals to get under a limit; tell your human.\n\nRequires a Bearer token from `/auth` or `/get-card`.","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json post /withdraw","href":"/api-reference/withdraw-from-account-balance","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: [\"Initiate a withdrawal from the user’s account balance. The USDC is sent on Solana to the \", _jsx(_components.code, {\n children: \"solana_address\"\n }), \" you supply; the destination is never inferred, so the address is required.\"]\n }), \"\\n\", _jsxs(_components.p, {\n children: [\"This is an asynchronous operation. A successful call answers \", _jsx(_components.code, {\n children: \"202 Accepted\"\n }), \": the withdrawal is created in a \", _jsx(_components.code, {\n children: \"pending\"\n }), \" state and sent within a few minutes. Poll the returned \", _jsx(_components.code, {\n children: \"status_url\"\n }), \" (\", _jsx(_components.code, {\n children: \"GET /get-withdrawal-status?withdrawal_id=...\"\n }), \") until \", _jsx(_components.code, {\n children: \"state\"\n }), \" reaches a terminal value rather than treating the 202 as completion.\"]\n }), \"\\n\", _jsxs(_components.p, {\n children: [\"This draws only on the Laso account balance, never on the managed agent wallet. USDC sitting in the agent wallet is moved with \", _jsx(_components.code, {\n children: \"agentWalletTransfer\"\n }), \" instead. When the account balance is too low but the agent wallet holds funds, the 400 response says so and reports both figures.\"]\n }), \"\\n\", _jsxs(_components.p, {\n children: [\"An agent’s withdrawal counts against the account’s spend limits, the same as its payments and wallet sends: it must be under the per-payment limit and fit in what is left of the rolling 24-hour limit. Otherwise it is refused with 403 and \", _jsx(_components.code, {\n children: \"code\"\n }), \" \", _jsx(_components.code, {\n children: \"agent_spend_limit\"\n }), \" or \", _jsx(_components.code, {\n children: \"agent_daily_limit\"\n }), \", and nothing is withdrawn. Do not split it into smaller withdrawals to get under a limit; tell your human.\"]\n }), \"\\n\", _jsxs(_components.p, {\n children: [\"Requires a Bearer token from \", _jsx(_components.code, {\n children: \"/auth\"\n }), \" or \", _jsx(_components.code, {\n children: \"/get-card\"\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":"Withdraw from account balance","description":"Initiate a withdrawal from the user's account balance. The USDC is sent on Solana to the `solana_address` you supply; the destination is never inferred, so the address is required.\n\nThis is an asynchronous operation. A successful call answers `202 Accepted`: the withdrawal is created in a `pending` state and sent within a few minutes. Poll the returned `status_url` (`GET /get-withdrawal-status?withdrawal_id=...`) until `state` reaches a terminal value rather than treating the 202 as completion.\n\nThis draws only on the Laso account balance, never on the managed agent wallet. USDC sitting in the agent wallet is moved with `agentWalletTransfer` instead. When the account balance is too low but the agent wallet holds funds, the 400 response says so and reports both figures.\n\nAn agent's withdrawal counts against the account's spend limits, the same as its payments and wallet sends: it must be under the per-payment limit and fit in what is left of the rolling 24-hour limit. Otherwise it is refused with 403 and `code` `agent_spend_limit` or `agent_daily_limit`, and nothing is withdrawn. Do not split it into smaller withdrawals to get under a limit; tell your human.\n\nRequires a Bearer token from `/auth` or `/get-card`.","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json post /withdraw","href":"/api-reference/withdraw-from-account-balance","autogeneratedByOpenApi":true}}},"mdxSourceWithNoJs":null},"mdxExtracts":{"tableOfContents":[],"codeExamples":{}},"jsLinks":[],"openApiReferenceData":{"operation":{"operationId":"withdraw","summary":"Withdraw from account balance","description":"Initiate a withdrawal from the user's account balance. The USDC is sent on Solana to the `solana_address` you supply; the destination is never inferred, so the address is required.\n\nThis is an asynchronous operation. A successful call answers `202 Accepted`: the withdrawal is created in a `pending` state and sent within a few minutes. Poll the returned `status_url` (`GET /get-withdrawal-status?withdrawal_id=...`) until `state` reaches a terminal value rather than treating the 202 as completion.\n\nThis draws only on the Laso account balance, never on the managed agent wallet. USDC sitting in the agent wallet is moved with `agentWalletTransfer` instead. When the account balance is too low but the agent wallet holds funds, the 400 response says so and reports both figures.\n\nAn agent's withdrawal counts against the account's spend limits, the same as its payments and wallet sends: it must be under the per-payment limit and fit in what is left of the rolling 24-hour limit. Otherwise it is refused with 403 and `code` `agent_spend_limit` or `agent_daily_limit`, and nothing is withdrawn. Do not split it into smaller withdrawals to get under a limit; tell your human.\n\nRequires a Bearer token from `/auth` or `/get-card`.","security":["5b4e9854-04fc-4ca8-bf7d-a7e8a494f1a1"],"requestBody":"ce8004d0-4987-4503-8145-4a6f72212ae1","responses":{"202":"be4f0031-e5a1-417c-a79f-7138e7ad6831","400":"fab8cd78-a54b-4f8f-a8f5-7179dcfeb0ac","401":"88bc8af7-2387-48af-b968-fcd1ec76cba3","403":"36b8abce-0449-4b30-8151-c0c8b15d8dc0","404":"08f6ac5c-7268-4327-a541-3da8efef25ac","409":"a556e553-bcba-4a08-b03a-7ae20c3a14e0","422":"806aeba8-5edd-49fa-9e9b-f14dde834783"},"parameters":["bffa503a-5af7-4397-a725-283cdde4cdf9"],"method":"post","type":"path","servers":["ac3eaebf-a471-45a2-a1e6-5b184b32c280"],"path":"/withdraw","baseUrlOptions":["https://laso.finance"],"title":"Withdraw from account balance","codeSamples":[],"requiredOnlyExamples":false,"requestExampleType":"generated","responseExampleType":"generated"},"dependencies":{"parameters":{"bffa503a-5af7-4397-a725-283cdde4cdf9":{"name":"Idempotency-Key","in":"header","required":false,"schema":{"type":"string","maxLength":255,"isRequired":false,"description":"Optional client-generated unique key (a UUID works) that makes this write safe to retry. A retry with the same key within 24 hours returns the recorded response of the original request, marked with an `Idempotency-Replayed: true` header, instead of performing the write again. Reusing a key with a different body or route is rejected with 422 (`code: idempotency_key_reused`); a retry that arrives while the original is still running gets 409 (`code: idempotency_key_in_progress`), so wait a moment and retry with the same key. Keys are scoped to the authenticated account.","uniqueKey":"","typeLabel":"string"},"description":"Optional client-generated unique key (a UUID works) that makes this write safe to retry. A retry with the same key within 24 hours returns the recorded response of the original request, marked with an `Idempotency-Replayed: true` header, instead of performing the write again. Reusing a key with a different body or route is rejected with 422 (`code: idempotency_key_reused`); a retry that arrives while the original is still running gets 409 (`code: idempotency_key_in_progress`), so wait a moment and retry with the same key. Keys are scoped to the authenticated account."}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","required":["amount","solana_address"],"properties":{"amount":{"type":"number","minimum":0.01,"description":"Amount to withdraw in USD","isRequired":true,"uniqueKey":"amount","typeLabel":"number"},"solana_address":{"type":"string","description":"Solana wallet address that receives the USDC. Must be a valid base58 Solana address.","isRequired":true,"uniqueKey":"solana_address","typeLabel":"string"}},"uniqueKey":"","typeLabel":"object"},"examples":{"Example":{"title":"Example","value":{"amount":1.01,"solana_address":"\u003cstring>"}}},"exampleType":"generated"}},"exampleType":"generated"},"responses":{"be4f0031-e5a1-417c-a79f-7138e7ad6831":{"description":"Withdrawal accepted. The withdrawal is recorded in a `pending` state and the USDC is sent on Solana within a few minutes, so this response reports that the request was accepted, not that it settled. Poll `status_url` (also returned in the `Location` header) until `withdrawal.state` reaches a terminal value.","content":{"application/json":{"schema":{"type":"object","properties":{"success":{"type":"boolean","uniqueKey":"success","typeLabel":"boolean"},"status_url":{"type":"string","format":"uri","description":"Absolute URL to poll for this withdrawal's state. Always present, including on an idempotent replay, so prefer it over the `Location` header.","example":"https://laso.finance/get-withdrawal-status?withdrawal_id=abc123","uniqueKey":"status_url","typeLabel":"string\u003curi>"},"withdrawal":{"type":"object","description":"A withdrawal record.","properties":{"id":{"type":"string","uniqueKey":"withdrawal.id","typeLabel":"string"},"amount":{"type":"number","uniqueKey":"withdrawal.amount","typeLabel":"number"},"state":{"type":"string","enum":["pending"],"uniqueKey":"withdrawal.state","typeLabel":"enum\u003cstring>"},"solana_address":{"type":"string","description":"The Solana address the USDC will be sent to.","uniqueKey":"withdrawal.solana_address","typeLabel":"string"},"timestamp":{"type":"number","uniqueKey":"withdrawal.timestamp","typeLabel":"number"},"timestamp_readable":{"type":"string","uniqueKey":"withdrawal.timestamp_readable","typeLabel":"string"}},"uniqueKey":"withdrawal","typeLabel":"object"}},"uniqueKey":"","typeLabel":"object"},"examples":{"Example":{"title":"Example","value":{"success":true,"status_url":"https://laso.finance/get-withdrawal-status?withdrawal_id=abc123","withdrawal":{"id":"\u003cstring>","amount":123,"state":"pending","solana_address":"\u003cstring>","timestamp":123,"timestamp_readable":"\u003cstring>"}}}},"exampleType":"generated"}},"headers":{"Location":{"description":"URL of the status resource for this withdrawal, the same value as `status_url`. Not set on an idempotent replay.","schema":{"type":"string","format":"uri"}},"Idempotency-Replayed":{"description":"Present, with the value `true`, when this response was replayed from an earlier request that carried the same `Idempotency-Key` rather than executed again.","schema":{"type":"string","enum":["true"]}},"X-Laso-Api-Version":{"description":"The version of the API contract that produced this response, the same value `GET /version` returns as `api_version`. It moves only on a breaking change, so an agent can pin against it and tolerate unknown response fields without rechecking the docs. Distinct from `X-Laso-Docs-Version`, which tracks the prose. Present on every response once the service has read its version beacon; absent, rather than a placeholder, during the cold-start window before that read completes.","schema":{"type":"string","example":"1.0.0"}}},"exampleType":"generated"},"fab8cd78-a54b-4f8f-a8f5-7179dcfeb0ac":{"description":"Invalid amount, missing or invalid `solana_address` (`code: invalid_solana_address`), or insufficient funds","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","uniqueKey":"error","typeLabel":"string"}},"uniqueKey":"","typeLabel":"object"},"example":{"error":"Insufficient account balance. Your Laso account balance is $0, but your agent wallet holds $4.71 USDC. /withdraw only draws on the account balance. To move the agent wallet's funds, call agentWalletTransfer.","code":"insufficient_account_balance","hint":"The agent wallet is a separate on-chain wallet, not the account balance. Send its USDC to a Solana address with agentWalletTransfer (MCP tool: agent_wallet_transfer).","account_balance":0,"agent_wallet":{"has_wallet":true,"wallet_address":"7xKX...","balance_usdc":4.71}},"examples":{"Example":{"title":"Example","value":{"error":"Insufficient account balance. Your Laso account balance is $0, but your agent wallet holds $4.71 USDC. /withdraw only draws on the account balance. To move the agent wallet's funds, call agentWalletTransfer.","code":"insufficient_account_balance","hint":"The agent wallet is a separate on-chain wallet, not the account balance. Send its USDC to a Solana address with agentWalletTransfer (MCP tool: agent_wallet_transfer).","account_balance":0,"agent_wallet":{"has_wallet":true,"wallet_address":"7xKX...","balance_usdc":4.71}}}},"exampleType":"examples"}},"headers":{"X-Laso-Api-Version":{"description":"The version of the API contract that produced this response, the same value `GET /version` returns as `api_version`. It moves only on a breaking change, so an agent can pin against it and tolerate unknown response fields without rechecking the docs. Distinct from `X-Laso-Docs-Version`, which tracks the prose. Present on every response once the service has read its version beacon; absent, rather than a placeholder, during the cold-start window before that read completes.","schema":{"type":"string","example":"1.0.0"}}},"exampleType":"examples"},"88bc8af7-2387-48af-b968-fcd1ec76cba3":{"description":"Missing or invalid Bearer token","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","uniqueKey":"error","typeLabel":"string"}},"uniqueKey":"","typeLabel":"object"},"example":{"error":"Missing or invalid Authorization header"},"examples":{"Example":{"title":"Example","value":{"error":"Missing or invalid Authorization header"}}},"exampleType":"examples"}},"headers":{"X-Laso-Api-Version":{"description":"The version of the API contract that produced this response, the same value `GET /version` returns as `api_version`. It moves only on a breaking change, so an agent can pin against it and tolerate unknown response fields without rechecking the docs. Distinct from `X-Laso-Docs-Version`, which tracks the prose. Present on every response once the service has read its version beacon; absent, rather than a placeholder, during the cold-start window before that read completes.","schema":{"type":"string","example":"1.0.0"}}},"exampleType":"examples"},"36b8abce-0449-4b30-8151-c0c8b15d8dc0":{"description":"Account is frozen. The response includes a `frozen_message` field explaining why.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","example":"Account is frozen","uniqueKey":"error","typeLabel":"string"},"frozen_message":{"type":"string","description":"Human-readable explanation of why the account is frozen","uniqueKey":"frozen_message","typeLabel":"string"}},"uniqueKey":"","typeLabel":"object"},"example":{"error":"Account is frozen","frozen_message":"Your account is frozen pending a compliance review. Contact support@laso.finance."},"examples":{"Example":{"title":"Example","value":{"error":"Account is frozen","frozen_message":"Your account is frozen pending a compliance review. Contact support@laso.finance."}}},"exampleType":"examples"}},"headers":{"X-Laso-Api-Version":{"description":"The version of the API contract that produced this response, the same value `GET /version` returns as `api_version`. It moves only on a breaking change, so an agent can pin against it and tolerate unknown response fields without rechecking the docs. Distinct from `X-Laso-Docs-Version`, which tracks the prose. Present on every response once the service has read its version beacon; absent, rather than a placeholder, during the cold-start window before that read completes.","schema":{"type":"string","example":"1.0.0"}}},"exampleType":"examples"},"08f6ac5c-7268-4327-a541-3da8efef25ac":{"description":"Account balance not found","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","uniqueKey":"error","typeLabel":"string"}},"uniqueKey":"","typeLabel":"object"},"example":{"error":"Account balance not found"},"examples":{"Example":{"title":"Example","value":{"error":"Account balance not found"}}},"exampleType":"examples"}},"headers":{"X-Laso-Api-Version":{"description":"The version of the API contract that produced this response, the same value `GET /version` returns as `api_version`. It moves only on a breaking change, so an agent can pin against it and tolerate unknown response fields without rechecking the docs. Distinct from `X-Laso-Docs-Version`, which tracks the prose. Present on every response once the service has read its version beacon; absent, rather than a placeholder, during the cold-start window before that read completes.","schema":{"type":"string","example":"1.0.0"}}},"exampleType":"examples"},"a556e553-bcba-4a08-b03a-7ae20c3a14e0":{"description":"A request with this `Idempotency-Key` is still being processed (`code: idempotency_key_in_progress`). Wait a moment and retry with the same key.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","uniqueKey":"error","typeLabel":"string"}},"uniqueKey":"","typeLabel":"object"},"example":{"error":"A request with this Idempotency-Key is still being processed","code":"idempotency_key_in_progress"},"examples":{"Example":{"title":"Example","value":{"error":"A request with this Idempotency-Key is still being processed","code":"idempotency_key_in_progress"}}},"exampleType":"examples"}},"headers":{"X-Laso-Api-Version":{"description":"The version of the API contract that produced this response, the same value `GET /version` returns as `api_version`. It moves only on a breaking change, so an agent can pin against it and tolerate unknown response fields without rechecking the docs. Distinct from `X-Laso-Docs-Version`, which tracks the prose. Present on every response once the service has read its version beacon; absent, rather than a placeholder, during the cold-start window before that read completes.","schema":{"type":"string","example":"1.0.0"}}},"exampleType":"examples"},"806aeba8-5edd-49fa-9e9b-f14dde834783":{"description":"The `Idempotency-Key` was already used for a different request body or route (`code: idempotency_key_reused`). Use a new key.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","uniqueKey":"error","typeLabel":"string"}},"uniqueKey":"","typeLabel":"object"},"example":{"error":"Idempotency-Key reused with a different request","code":"idempotency_key_reused"},"examples":{"Example":{"title":"Example","value":{"error":"Idempotency-Key reused with a different request","code":"idempotency_key_reused"}}},"exampleType":"examples"}},"headers":{"X-Laso-Api-Version":{"description":"The version of the API contract that produced this response, the same value `GET /version` returns as `api_version`. It moves only on a breaking change, so an agent can pin against it and tolerate unknown response fields without rechecking the docs. Distinct from `X-Laso-Docs-Version`, which tracks the prose. Present on every response once the service has read its version beacon; absent, rather than a placeholder, during the cold-start window before that read completes.","schema":{"type":"string","example":"1.0.0"}}},"exampleType":"examples"}},"security":{"5b4e9854-04fc-4ca8-bf7d-a7e8a494f1a1":{"BearerAuth":{"type":"apiKey","in":"header","name":"Authorization","description":"Firebase ID token from `/auth` or any paid route, sent as a Bearer token: `Authorization: Bearer \u003cid_token>` (the `Bearer ` prefix is required).","scopes":[],"schemeName":"BearerAuth"}}},"servers":{"ac3eaebf-a471-45a2-a1e6-5b184b32c280":{"url":"https://laso.finance","description":"Production"}},"processedSecurityOptions":[{"schemes":[{"scheme":{"type":"apiKey","in":"header","name":"Authorization","description":"Firebase ID token from `/auth` or any paid route, sent as a Bearer token: `Authorization: Bearer \u003cid_token>` (the `Bearer ` prefix is required).","scopes":[],"schemeName":"BearerAuth"},"schema":{"title":"Authorization","type":"string","description":"Firebase ID token from `/auth` or any paid route, sent as a Bearer token: `Authorization: Bearer \u003cid_token>` (the `Bearer ` prefix is required).","isRequired":true,"typeLabel":"string","deprecated":false},"schemeName":"BearerAuth","name":"Authorization"}],"title":"BearerAuth"}]},"originalFileLocation":"api-reference/openapi.json"},"subdomain":"lasofinance","siteName":"Laso Finance API","title":"Withdraw from account balance - Laso Finance API","navMaps":{"firstHrefInVersion":{},"firstHrefInLanguage":{}},"lastModified":"2026-11-06T22:00:07.834Z","originalFileLocation":"api-reference/withdraw-from-account-balance.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=\"Initiate a withdrawal from the user\u0026#x27;s account balance. The USDC is sent on Solana to the solana_address you supply; the destination is never inferred, so the address is required. This is an asynchronous operation. A successful call answers 202 Accepted: the withdrawal is created in a pending state and sent within a few minutes. Poll the returned status_url (GET /get-withdrawal-status?withdrawal_id=...) until state reaches a terminal value rather than treating the 202 as completion. This draws only on the Laso account balance, never on the managed agent wallet. USDC sitting in the agent wallet is moved with agentWalletTransfer instead. When the account balance is too low but the agent wallet holds funds, the 400 response says so and reports both figures. An agent\u0026#x27;s withdrawal counts against the account\u0026#x27;s spend limits, the same as its payments and wallet sends: it must be under the per-payment limit and fit in what is left of the rolling 24-hour limit. Otherwise it is refused with 403 and code agent_spend_limit or agent_daily_limit, and nothing is withdrawn. Do not split it into smaller withdrawals to get under a limit; tell your human. Requires a Bearer token from /auth or /get-card.\">\u003cmeta data-mint-head name=\"application-name\" content=\"Laso Finance API\">\u003cmeta data-mint-head name=\"generator\" content=\"Mintlify\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"192x192\" href=\"/mintlify-assets/_mintlify/favicons/lasofinance/BdNprig5jTangfgN/_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/lasofinance/BdNprig5jTangfgN/_generated/favicon/apple-touch-icon.png\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"16x16\" href=\"/mintlify-assets/_mintlify/favicons/lasofinance/BdNprig5jTangfgN/_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/lasofinance/BdNprig5jTangfgN/_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/lasofinance/BdNprig5jTangfgN/_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/lasofinance/BdNprig5jTangfgN/_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/lasofinance/BdNprig5jTangfgN/_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/lasofinance/BdNprig5jTangfgN/_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/lasofinance/BdNprig5jTangfgN/_generated/favicon-dark/favicon.ico\" media=\"(prefers-color-scheme: dark)\">\u003cmeta data-mint-head property=\"og:title\" content=\"Withdraw from account balance - Laso Finance API\">\u003cmeta data-mint-head property=\"og:description\" content=\"Initiate a withdrawal from the user\u0026#x27;s account balance. The USDC is sent on Solana to the solana_address you supply; the destination is never inferred, so the address is required. This is an asynchronous operation. A successful call answers 202 Accepted: the withdrawal is created in a pending state and sent within a few minutes. Poll the returned status_url (GET /get-withdrawal-status?withdrawal_id=...) until state reaches a terminal value rather than treating the 202 as completion. This draws only on the Laso account balance, never on the managed agent wallet. USDC sitting in the agent wallet is moved with agentWalletTransfer instead. When the account balance is too low but the agent wallet holds funds, the 400 response says so and reports both figures. An agent\u0026#x27;s withdrawal counts against the account\u0026#x27;s spend limits, the same as its payments and wallet sends: it must be under the per-payment limit and fit in what is left of the rolling 24-hour limit. Otherwise it is refused with 403 and code agent_spend_limit or agent_daily_limit, and nothing is withdrawn. Do not split it into smaller withdrawals to get under a limit; tell your human. Requires a Bearer token from /auth or /get-card.\">\u003cmeta data-mint-head property=\"og:site_name\" content=\"Laso Finance API\">\u003cmeta data-mint-head property=\"og:url\" content=\"https://docs.laso.finance/api-reference/withdraw-from-account-balance\">\u003cmeta data-mint-head property=\"og:type\" content=\"website\">\u003cmeta data-mint-head property=\"og:image\" content=\"https://lasofinance.mintlify.site/_mintlify/api/og/v2?division=Withdrawals\u0026amp;title=Withdraw+from+account+balance\u0026amp;description=Initiate+a+withdrawal+from+the+user%27s+account+balance.+The+USDC+is+sent+on+Solana+to+the+%60solana_address%60+you+supply%3B+the+destination+is+never+inferred%2C+so+the+\u0026amp;theme=98f9ba75e7b3eeb2c36a661c\u0026amp;signature=36db066481d5cc46520a32edcad1e18c9232f145298a5151e5170dd75ba6ce66\">\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=\"Withdraw from account balance - Laso Finance API\">\u003cmeta data-mint-head name=\"twitter:description\" content=\"Initiate a withdrawal from the user\u0026#x27;s account balance. The USDC is sent on Solana to the solana_address you supply; the destination is never inferred, so the address is required. This is an asynchronous operation. A successful call answers 202 Accepted: the withdrawal is created in a pending state and sent within a few minutes. Poll the returned status_url (GET /get-withdrawal-status?withdrawal_id=...) until state reaches a terminal value rather than treating the 202 as completion. This draws only on the Laso account balance, never on the managed agent wallet. USDC sitting in the agent wallet is moved with agentWalletTransfer instead. When the account balance is too low but the agent wallet holds funds, the 400 response says so and reports both figures. An agent\u0026#x27;s withdrawal counts against the account\u0026#x27;s spend limits, the same as its payments and wallet sends: it must be under the per-payment limit and fit in what is left of the rolling 24-hour limit. Otherwise it is refused with 403 and code agent_spend_limit or agent_daily_limit, and nothing is withdrawn. Do not split it into smaller withdrawals to get under a limit; tell your human. Requires a Bearer token from /auth or /get-card.\">\u003cmeta data-mint-head name=\"twitter:image\" content=\"https://lasofinance.mintlify.site/_mintlify/api/og/v2?division=Withdrawals\u0026amp;title=Withdraw+from+account+balance\u0026amp;description=Initiate+a+withdrawal+from+the+user%27s+account+balance.+The+USDC+is+sent+on+Solana+to+the+%60solana_address%60+you+supply%3B+the+destination+is+never+inferred%2C+so+the+\u0026amp;theme=98f9ba75e7b3eeb2c36a661c\u0026amp;signature=36db066481d5cc46520a32edcad1e18c9232f145298a5151e5170dd75ba6ce66\">\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/lasofinance/BdNprig5jTangfgN/_generated/favicon/browserconfig.xml\">\u003cmeta data-mint-head name=\"apple-mobile-web-app-title\" content=\"Laso Finance API\">\u003cmeta data-mint-head name=\"msapplication-TileColor\" content=\"#3182CE\">\u003clink data-mint-head rel=\"canonical\" href=\"https://docs.laso.finance/api-reference/withdraw-from-account-balance\">\u003clink data-mint-head rel=\"alternate\" type=\"application/xml\" href=\"/sitemap.xml\">\u003clink data-mint-head rel=\"alternate\" type=\"text/markdown\" href=\"/api-reference/withdraw-from-account-balance.md\">\u003cscript data-mint-head type=\"application/ld+json\">{\"@context\":\"https://schema.org\",\"@graph\":[{\"@type\":\"Organization\",\"@id\":\"https://docs.laso.finance/#organization\",\"name\":\"Laso Finance API\",\"url\":\"https://docs.laso.finance\",\"logo\":{\"@type\":\"ImageObject\",\"url\":\"https://mintcdn.com/lasofinance/ofpGRRSVLQ9V1OQK/logo/light.svg?fit=max\u0026auto=format\u0026n=ofpGRRSVLQ9V1OQK\u0026q=85\u0026s=bd9f84a4711475d24375fe444b276211\"}},{\"@type\":\"WebSite\",\"@id\":\"https://docs.laso.finance#website\",\"name\":\"Laso Finance API\",\"url\":\"https://docs.laso.finance\",\"publisher\":{\"@id\":\"https://docs.laso.finance/#organization\"}},{\"@type\":\"WebPage\",\"@id\":\"https://docs.laso.finance/api-reference/withdraw-from-account-balance#webpage\",\"url\":\"https://docs.laso.finance/api-reference/withdraw-from-account-balance\",\"name\":\"Withdraw from account balance\",\"description\":\"Initiate a withdrawal from the user's account balance. The USDC is sent on Solana to the solana_address you supply; the destination is never inferred, so the address is required. This is an asynchronous operation. A successful call answers 202 Accepted: the withdrawal is created in a pending state and sent within a few minutes. Poll the returned status_url (GET /get-withdrawal-status?withdrawal_id=...) until state reaches a terminal value rather than treating the 202 as completion. This draws only on the Laso account balance, never on the managed agent wallet. USDC sitting in the agent wallet is moved with agentWalletTransfer instead. When the account balance is too low but the agent wallet holds funds, the 400 response says so and reports both figures. An agent's withdrawal counts against the account's spend limits, the same as its payments and wallet sends: it must be under the per-payment limit and fit in what is left of the rolling 24-hour limit. Otherwise it is refused with 403 and code agent_spend_limit or agent_daily_limit, and nothing is withdrawn. Do not split it into smaller withdrawals to get under a limit; tell your human. Requires a Bearer token from /auth or /get-card.\",\"dateModified\":\"2026-11-06T22:00:07.834Z\",\"isPartOf\":{\"@id\":\"https://docs.laso.finance#website\"},\"breadcrumb\":{\"@id\":\"https://docs.laso.finance/api-reference/withdraw-from-account-balance#breadcrumb\"}},{\"@type\":\"BreadcrumbList\",\"@id\":\"https://docs.laso.finance/api-reference/withdraw-from-account-balance#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Laso Finance API\",\"item\":\"https://docs.laso.finance\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Withdraw from account balance\",\"item\":\"https://docs.laso.finance/api-reference/withdraw-from-account-balance\"}]},{\"@type\":[\"TechArticle\",\"APIReference\"],\"@id\":\"https://docs.laso.finance/api-reference/withdraw-from-account-balance#apireference\",\"headline\":\"Withdraw from account balance\",\"name\":\"Withdraw from account balance\",\"description\":\"Initiate a withdrawal from the user's account balance. The USDC is sent on Solana to the solana_address you supply; the destination is never inferred, so the address is required. This is an asynchronous operation. A successful call answers 202 Accepted: the withdrawal is created in a pending state and sent within a few minutes. Poll the returned status_url (GET /get-withdrawal-status?withdrawal_id=...) until state reaches a terminal value rather than treating the 202 as completion. This draws only on the Laso account balance, never on the managed agent wallet. USDC sitting in the agent wallet is moved with agentWalletTransfer instead. When the account balance is too low but the agent wallet holds funds, the 400 response says so and reports both figures. An agent's withdrawal counts against the account's spend limits, the same as its payments and wallet sends: it must be under the per-payment limit and fit in what is left of the rolling 24-hour limit. Otherwise it is refused with 403 and code agent_spend_limit or agent_daily_limit, and nothing is withdrawn. Do not split it into smaller withdrawals to get under a limit; tell your human. Requires a Bearer token from /auth or /get-card.\",\"url\":\"https://docs.laso.finance/api-reference/withdraw-from-account-balance\",\"mainEntityOfPage\":{\"@id\":\"https://docs.laso.finance/api-reference/withdraw-from-account-balance#webpage\"},\"dateModified\":\"2026-11-06T22:00:07.834Z\",\"publisher\":{\"@id\":\"https://docs.laso.finance/#organization\"},\"isPartOf\":{\"@id\":\"https://docs.laso.finance#website\"}}]}\u003c/script>\u003cscript data-mint-head type=\"application/ld+json\">{\"@context\":\"https://schema.org\",\"@type\":\"WebSite\",\"name\":\"Laso Finance API\",\"creator\":{\"@type\":\"Organization\",\"name\":\"Mintlify\",\"url\":\"https://mintlify.com\"}}\u003c/script>","siteName":"Laso Finance API","nav":{"global":{},"tabs":[{"tab":"Guides","pages":[{"title":"Guides","href":"/guides/what-is-laso"}]},{"tab":"API Reference","groups":[{"group":"Account","pages":[{"title":"Start a signup for a human with no Laso account","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json post /signup","href":"/api-reference/start-a-signup-for-a-human-with-no-laso-account"},{"title":"Wait for your human to finish the signup","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json get /signup-status","href":"/api-reference/wait-for-your-human-to-finish-the-signup"},{"title":"Get auth credentials","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json get /auth","href":"/api-reference/get-auth-credentials"},{"title":"Refresh an ID token","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json post /auth","href":"/api-reference/refresh-an-id-token"},{"title":"Refresh an ID token (deprecated)","deprecated":true,"version":null,"openapi":"/api-reference/openapi.json post /refresh","href":"/api-reference/refresh-an-id-token-deprecated"},{"title":"Get account balance","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json get /get-account-balance","href":"/api-reference/get-account-balance"},{"title":"Get a login link for the web dashboard","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json get /get-auth-link","href":"/api-reference/get-a-login-link-for-the-web-dashboard"},{"title":"Send feedback about the API","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json post /feedback","href":"/api-reference/send-feedback-about-the-api"}]},{"group":"Cards","pages":[{"title":"Order a USA prepaid card","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json get /get-card","href":"/api-reference/order-a-usa-prepaid-card"},{"title":"Get card details","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json get /get-card-data","href":"/api-reference/get-card-details"},{"title":"Create a reloadable card","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json post /create-reloadable-card","href":"/api-reference/cards/create-a-reloadable-card"},{"title":"List reloadable card transactions","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json get /list-card-transactions","href":"/api-reference/cards/list-reloadable-card-transactions"},{"title":"Get the reloadable card deposit address","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json get /get-card-deposit-address","href":"/api-reference/cards/get-the-reloadable-card-deposit-address"},{"title":"Check the card issuer link","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json get /get-card-issuer-status","href":"/api-reference/cards/check-the-card-issuer-link"},{"title":"Send the account holder a code to link the card issuer","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json post /start-card-issuer-link","href":"/api-reference/cards/send-the-account-holder-a-code-to-link-the-card-issuer"},{"title":"Complete the card issuer link with the account holder's code","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json post /verify-card-issuer-link","href":"/api-reference/cards/complete-the-card-issuer-link-with-the-account-holders-code"},{"title":"Unlink the card issuer","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json post /disconnect-card-issuer","href":"/api-reference/cards/unlink-the-card-issuer"},{"title":"List the holder's saved cards","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json get /get-saved-cards","href":"/api-reference/cards/list-the-holders-saved-cards"},{"title":"Get a link for the holder to save their own card","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json post /create-saved-card-link","href":"/api-reference/cards/get-a-link-for-the-holder-to-save-their-own-card"},{"title":"Shop and pay with the holder's saved card","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json post /buy-with-saved-card","href":"/api-reference/cards/shop-and-pay-with-the-holders-saved-card"},{"title":"Read a purchase turn that was still running","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json get /get-purchase-turn","href":"/api-reference/cards/read-a-purchase-turn-that-was-still-running"},{"title":"Read a purchase conversation's orders","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json get /get-purchase-conversation","href":"/api-reference/cards/read-a-purchase-conversations-orders"},{"title":"Load a reloadable card balance","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json get /fund-card-balance","href":"/api-reference/load-a-reloadable-card-balance"},{"title":"Top up a reloadable card from the account balance","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json post /fund-card-from-account-balance","href":"/api-reference/cards/top-up-a-reloadable-card-from-the-account-balance"},{"title":"Withdraw from a reloadable card balance","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json post /withdraw-card-balance","href":"/api-reference/cards/withdraw-from-a-reloadable-card-balance"},{"title":"Trigger a card data refresh","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json post /refresh-card-data","href":"/api-reference/trigger-a-card-data-refresh"},{"title":"Order an international prepaid card","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json get /order-intl-card","href":"/api-reference/order-an-international-prepaid-card"},{"title":"Cancel a queued international card order","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json post /cancel-intl-order","href":"/api-reference/cancel-a-queued-international-card-order"}]},{"group":"Gift Cards","pages":[{"title":"Search the gift card catalog","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json get /search-gift-cards","href":"/api-reference/search-the-gift-card-catalog"},{"title":"Order a gift card","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json get /order-gift-card","href":"/api-reference/order-a-gift-card"}]},{"group":"Push to Card","pages":[{"title":"Send money to a debit card (USD, EUR, GBP)","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json get /get-push-to-card","href":"/api-reference/send-money-to-a-debit-card-usd-eur-gbp"}]},{"group":"Payments","pages":[{"title":"Send a payment via Venmo or PayPal","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json get /send-payment","href":"/api-reference/send-a-payment-via-venmo-or-paypal"},{"title":"Check Venmo and PayPal payout status (free)","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json get /get-payment-status","href":"/api-reference/check-venmo-and-paypal-payout-status-free"},{"title":"List saved Venmo and PayPal recipients (free)","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json get /payment-recipients","href":"/api-reference/list-saved-venmo-and-paypal-recipients-free"},{"title":"Rename or archive a saved recipient (free)","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json post /payment-recipients","href":"/api-reference/rename-or-archive-a-saved-recipient-free"},{"title":"Remove a saved recipient (free)","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json delete /payment-recipients","href":"/api-reference/remove-a-saved-recipient-free"}]},{"group":"Address Book","pages":[{"title":"List saved recipients","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json get /listAddressBook","href":"/api-reference/list-saved-recipients"},{"title":"Save or rename a recipient","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json post /saveAddressBookEntry","href":"/api-reference/save-or-rename-a-recipient"},{"title":"Remove a saved recipient","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json delete /deleteAddressBookEntry","href":"/api-reference/remove-a-saved-recipient"}]},{"group":"Banking","pages":[{"title":"Send dollars to a bank account","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json get /send-bank-payment","href":"/api-reference/send-dollars-to-a-bank-account"},{"title":"List bank payout recipients (free)","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json get /bank-recipients","href":"/api-reference/list-bank-payout-recipients-free"},{"title":"Create the banking profile","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json post /createBankingProfile","href":"/api-reference/banking/create-the-banking-profile"},{"title":"Check the banking profile status","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json post /getBankingProfileStatus","href":"/api-reference/banking/check-the-banking-profile-status"},{"title":"Read the banking application","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json post /getBankingApplication","href":"/api-reference/banking/read-the-banking-application"},{"title":"Answer application questions","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json post /updateBankingApplicationDetails","href":"/api-reference/banking/answer-application-questions"},{"title":"Upload a proof-of-address document","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json post /uploadBankingDocument","href":"/api-reference/banking/upload-a-proof-of-address-document"},{"title":"Submit the application","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json post /submitBankingApplication","href":"/api-reference/banking/submit-the-application"},{"title":"Open an on-ramp or off-ramp account","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json post /createBankingAccount","href":"/api-reference/banking/open-an-on-ramp-or-off-ramp-account"},{"title":"List banking accounts","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json post /listBankingAccounts","href":"/api-reference/banking/list-banking-accounts"},{"title":"Create a payout recipient","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json post /createBankingRecipient","href":"/api-reference/banking/create-a-payout-recipient"},{"title":"Attach bank details to a recipient","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json post /addBankingDestination","href":"/api-reference/banking/attach-bank-details-to-a-recipient"},{"title":"List recipients and destinations","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json post /listBankingRecipients","href":"/api-reference/banking/list-recipients-and-destinations"},{"title":"Rename a destination","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json post /updateBankingDestination","href":"/api-reference/banking/rename-a-destination"},{"title":"Delete a recipient","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json post /deleteBankingRecipient","href":"/api-reference/banking/delete-a-recipient"},{"title":"Read one transaction","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json post /getBankingTransaction","href":"/api-reference/banking/read-one-transaction"},{"title":"List transactions","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json post /listBankingTransactions","href":"/api-reference/banking/list-transactions"}]},{"group":"Agent Wallet","pages":[{"title":"Exchange an API key for a session","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json post /agentAuth","href":"/api-reference/agent-wallet/exchange-an-api-key-for-a-session"},{"title":"Announce that you connected","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json post /announceAgentConnection","href":"/api-reference/agent-wallet/announce-that-you-connected"},{"title":"Read the managed wallet","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json get /getAgentWallet","href":"/api-reference/agent-wallet/read-the-managed-wallet"},{"title":"Pay an x402 endpoint from the managed wallet","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json post /agentX402Pay","href":"/api-reference/agent-wallet/pay-an-x402-endpoint-from-the-managed-wallet"},{"title":"Send USDC or any token from the managed wallet","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json post /agentWalletTransfer","href":"/api-reference/agent-wallet/send-usdc-or-any-token-from-the-managed-wallet"},{"title":"Read the spend limits","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json post /getAgentSpendLimit","href":"/api-reference/agent-wallet/read-the-spend-limits"},{"title":"Provision a managed wallet","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json post /createAgentWallet","href":"/api-reference/agent-wallet/provision-a-managed-wallet"},{"title":"Issue an API key","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json post /createAgentApiKey","href":"/api-reference/agent-wallet/issue-an-api-key"},{"title":"List API keys","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json post /listAgentApiKeys","href":"/api-reference/agent-wallet/list-api-keys"},{"title":"Revoke an API key","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json post /revokeAgentApiKey","href":"/api-reference/agent-wallet/revoke-an-api-key"},{"title":"Revoke all unused API keys","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json post /revokeUnusedAgentApiKeys","href":"/api-reference/agent-wallet/revoke-all-unused-api-keys"}]},{"group":"Merchants","pages":[{"title":"Search merchant spend data","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json get /search-merchants","href":"/api-reference/search-merchant-spend-data"}]},{"group":"Pricing and coverage","pages":[{"title":"Get the fee schedule","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json get /get-pricing","href":"/api-reference/get-the-fee-schedule"},{"title":"Get supported countries","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json get /get-supported-countries","href":"/api-reference/get-supported-countries"}]},{"group":"Verification (optional)","pages":[{"title":"Get KYC verification status (optional)","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json get /get-kyc-status","href":"/api-reference/verification-optional/get-kyc-verification-status-optional"},{"title":"Get a KYC verification link (optional)","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json get /get-kyc-link","href":"/api-reference/verification-optional/get-a-kyc-verification-link-optional"}]},{"group":"Notifications","pages":[{"title":"Register a notification webhook (free)","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json post /register-webhook","href":"/api-reference/notifications/register-a-notification-webhook-free"},{"title":"Get webhook registration \u0026 delivery health (free)","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json get /get-webhook","href":"/api-reference/notifications/get-webhook-registration-\u0026-delivery-health-free"},{"title":"Delete the notification webhook (free)","description":"Removes the calling wallet's webhook registration. Notifications keep flowing to the user's other channels (push, SMS, Telegram, in-app); only the webhook deliveries stop. The account owner is notified of the removal.\n\nRequires a Bearer token from `/auth` or `/get-card`.","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json post /delete-webhook","href":"/api-reference/notifications/delete-the-notification-webhook-free"}]},{"group":"Withdrawals","pages":[{"title":"Withdraw from account balance","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json post /withdraw","href":"/api-reference/withdraw-from-account-balance"},{"title":"Get withdrawal statuses","description":"Returns the status of withdrawals for the authenticated user. If `withdrawal_id` is provided, returns a single withdrawal. If omitted, returns all withdrawals.\n\nRequires a Bearer token from `/auth` or `/get-card`.","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json get /get-withdrawal-status","href":"/api-reference/get-withdrawal-statuses"}]},{"group":"Discovery","pages":[{"title":"Get the current docs version","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json get /version","href":"/api-reference/get-the-current-docs-version"}]}]},{"tab":"How We Use","pages":[{"title":"How We Use","href":"/how-we-use/automated-payroll"}]},{"tab":"Starter Template (Reference)","hidden":true,"pages":[{"title":"Starter Template (Reference)","href":"/quickstart"}]}]},"basePath":"","title":"Withdraw from account balance - Laso Finance API","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"]}