Withdrawals
Withdrawals allow you to move stablecoins out of Celar from your organization wallet to your registered external wallet.
Scope of Withdrawals
You can:
- Withdraw from a PSP wallet to the PSP’s registered external wallet
- Withdraw from a Developer wallet to the developer’s registered external wallet
You cannot:
- Withdraw from customer wallets
- Use withdrawals to off-ramp or send customer funds
Prerequisites
-
Have an organization Celar wallet
Use the Wallets API and keep thecelar_walletId. -
Have a registered external wallet
Your organization registers an external wallet during onboarding.
Withdrawals are always sent to that address.
Create a Withdrawal
curl --request POST \
--url https://api.sandbox.celar.io/api/v1/payments/withdraw \
--header 'Accept: application/json' \
--header 'Content-Type: application/json' \
--header 'Authorization: Bearer <your_api_key>' \
--header 'Idempotency-Key: <random_uuid>' \
--data '{
"celar_walletId": "<celar_walletId>",
"token": "USDC",
"chain": "baseSepolia"
"amount": 1
}'
Response
{
"message": "Withdraw successful! 1 USDC sent to your registered wallet address",
"tx_hash": "0xdd10beed45843aae085199d0a8e25d3fccee685574b8b069429398e666b84aae",
"status": "withdrawal_sent"
}
Status Tracking
| Status | Meaning |
|---|---|
pending | Withdrawal created and queued |
withdrawal_sent | Funds sent to your registered external wallet |
failed | Withdrawal could not be completed |
Track status by:
- Polling the Payments Status API, or
- Subscribing to Webhooks
Settlement
Once the withdrawal is withdrawal_sent, the funds are available in your registered external wallet.
Use the tx_hash to verify the transaction on-chain.