Skip to main content

Send Withdrawals

Send digital assets from your WickiePay account to external blockchain addresses.

Withdrawal Flow

1. Create a withdrawal transaction request
2. (Optional) Approval required for high-value withdrawals
3. Transaction submitted to blockchain
4. Receive withdrawal status webhooks
5. Withdrawal confirmed and complete

Create Withdrawal Transaction

POST /api/v2/transaction-request

{
"assetPoolId": "your-pool-id",
"toAddress": "0xDESTINATION...ADDR",
"network": "ETHEREUM",
"asset": "USDC",
"amount": 5000.00,
"reference": "payout-001"
}

Response:

{
"id": "tx-request-uuid",
"status": "PENDING",
"assetPoolId": "your-pool-id",
"toAddress": "0xDESTINATION...ADDR",
"network": "ETHEREUM",
"asset": "USDC",
"amount": 5000.00,
"estimatedFee": 2.50
}

Receive Withdrawal Notifications

Set up webhooks for withdrawal events:

POST /api/v1/hook/destination

{
"url": "https://yourserver.com/webhooks/wickiepay",
"events": ["withdrawal.*"]
}

Webhook lifecycle:

  1. withdrawal.status_change (status: PROCESSING) — Transaction submitted
  2. withdrawal.status_change (status: COMPLETE) — Transaction confirmed

Configure Approvals for Withdrawals

For security, require multi-party approval for withdrawals above a threshold:

PUT /api/v1/approval-settings

{
"operationType": "WITHDRAWAL",
"requiredVotes": 2,
"threshold": 10000,
"approvers": ["user-uuid-1", "user-uuid-2", "user-uuid-3"]
}

This means any withdrawal above 10,000 requires 2 out of 3 approvers to vote.

Approve Withdrawals

When a withdrawal triggers approval, approvers receive an approval.vote_required webhook.

Via Portal

  1. Navigate to Approvals
  2. Review the pending withdrawal request
  3. Click Approve or Reject

Via API

POST /api/v1/approval-request/{id}/vote

{
"decision": "APPROVE",
"reason": "Verified recipient address"
}

Bulk Approve

POST /api/v1/approval-request/bulk-vote

{
"requestIds": ["uuid-1", "uuid-2", "uuid-3"],
"decision": "APPROVE"
}

Next Steps