Withdrawals & approvals

Send funds out, via API or the dashboard.

Customer withdrawals (API)

POST /withdraw sends funds from a customer’s balance to an address:

curl -X POST https://api.cheddar.biz/v1/withdraw \
-H "x-api-key: YOUR_API_KEY" \
-H "content-type: application/json" \
-d '{
"mintId": 1,
"customerId": "your-customer-id",
"amount": "1.00",
"toAddress": "0x…",
"useDecimal": true
}'
  • amount is in base units unless useDecimal: true, which interprets it as a whole-token decimal.
  • Set requireApproval: true to force manual approval. If the customer’s email is on your active withdrawal approval email allowlist, that override skips this flag and the customer USD withdraw-threshold hold (destination-address, low-liquidity, and risk gates still apply).
  • A withdrawal blocked by risk screening returns 451.
  • A withdrawal that needs approval fires a CUSTOMER_WITHDRAW_AWAITING_APPROVAL webhook; on broadcast you get CUSTOMER_WITHDRAW.

Organization withdrawals (dashboard)

The wallet balance card at the bottom of the left navigation is the entry point on every dashboard page. Expand it to see the balance per product (Custodial, Checkout, Batch Payout), then open its actions menu → Withdraw:

Wallet balance card with the Withdraw action
The wallet balance card in the left navigation, with the balance breakdown expanded and the actions menu open.
  1. Select Token and confirm the Network.
  2. Choose a Withdraw Address — only addresses on your organization’s whitelist are selectable. An empty whitelist blocks the action.
  3. Enter an Amount (or Max, which subtracts the network fee).
Withdraw Funds dialog with token, address, and amount fields
The Withdraw Funds dialog — token, whitelisted address, and amount.

Whitelisted destination addresses are managed by the Cheddar team — see Organization security. To skip manual approval holds for trusted customer emails, use the separate Withdrawal approval email allowlist.

Approving withdrawals

Withdrawals above your 2FA threshold land in Dashboard → Custodial → Transactions to Approve (/dashboard/transactions-to-approve). Each row can be Approved (broadcasts it) or Removed (rejects it).

Transactions to Approve list
Transactions to Approve — pending withdrawals awaiting 2FA approval.