Withdraw Funds#
Use this when an agent needs to move funds out of Hightop to a withdrawal method visible to the authenticated wallet — a linked bank method or an eligible crypto destination — subject to wallet trust checks.
Prerequisites#
- The destination is an active withdrawal method: a linked bank method, or a crypto destination allowed for the asset.
- The authenticated wallet passes the required trust check.
- The agent has withdrawal write permission.
List withdrawal methods#
Both variants target a method returned here. A bank withdrawal references it as method_id; a crypto withdrawal as destination_id.
curl -sS "https://api.hightop.com/v1/agent/withdrawal-methods?limit=50" \
-H "x-agent-id: $HIGHTOP_AGENT_ID" \
-H "x-api-key: $HIGHTOP_API_KEY"See Amounts.
Withdraw to a bank#
curl -sS https://api.hightop.com/v1/agent/withdrawals/to-bank \
-H "content-type: application/json" \
-H "x-agent-id: $HIGHTOP_AGENT_ID" \
-H "x-api-key: $HIGHTOP_API_KEY" \
-H "Idempotency-Key: bank-withdrawal-$(uuidgen)" \
-d '{
"method_id": "bank-method-id",
"asset": "USDC",
"amount": "1"
}'const withdrawal = await client.v1.agent.withdrawals.toBank(
{ method_id: 'bank-method-id', asset: 'USDC', amount: '1' },
{ idempotencyKey: `bank-withdrawal-${crypto.randomUUID()}` },
)Withdraw to crypto#
curl -sS https://api.hightop.com/v1/agent/withdrawals/to-crypto \
-H "content-type: application/json" \
-H "x-agent-id: $HIGHTOP_AGENT_ID" \
-H "x-api-key: $HIGHTOP_API_KEY" \
-H "Idempotency-Key: crypto-withdrawal-$(uuidgen)" \
-d '{
"destination_id": "crypto-destination-id",
"asset": "USDC",
"amount": "1"
}'const withdrawal = await client.v1.agent.withdrawals.toCrypto(
{ destination_id: 'crypto-destination-id', asset: 'USDC', amount: '1' },
{ idempotencyKey: `crypto-withdrawal-${crypto.randomUUID()}` },
)Current v1 execution can reject unsupported non-empty withdrawal notes. Omit note unless your integration has confirmed support.
Follow Up#
Poll the operation or subscribe to withdrawal.settled, withdrawal.execution_failed, and operation.policy_rejected.
Likely errors: recipient_not_allowed, permission_not_granted, insufficient_funds, limit_exceeded, validation_failed.
Reference: Withdrawal endpoints.
