/withdrawals/to-bank
POST
/v1/agent/withdrawals/to-bankCreate a bank withdrawal operation
Requires API-key authentication (agentAuth, agentId).
Request body
method_idrequired | string | ||
assetrequired | string | ||
note | string | ||
amount | string | ||
amount_usd | string |
Response
okrequired | enum | true | |
operation_idrequired | string | ||
statusrequired | enum | accepted · policy_rejected · submitted · executed · execution_failed · cancelled | |
resourcerequired | object | ||
fee_usdrequired | string | ||
human_message | string | ||
policy_evaluation | object | ||
repay_amount_usd | string | ||
estimated_ltv_after | string | ||
onchain | object |
Purpose: create a bank withdrawal operation to an owner-linked bank method that passes the authenticated wallet's trust checks.
Auth and scope: header-key auth or OAuth agent:withdrawals:write.
Idempotency: required.
Request:
example
{
"method_id": "bank-method-id",
"asset": "USDC",
"amount": "1",
"note": null
}Use exactly one of amount or amount_usd. amount is a decimal asset-unit string. For USDC, "1" means 1 USDC. Current v1 execution rejects unsupported non-empty withdrawal notes, so omit note unless support is confirmed.
Response:
example
{
"ok": true,
"operation_id": "uuid",
"status": "submitted",
"resource": {
"type": "withdrawal",
"id": "uuid"
},
"fee_usd": "0"
}Common errors: validation_failed, recipient_not_allowed, permission_not_granted, insufficient_funds, limit_exceeded.
Related recipe: Withdraw to a Bank.
