Skip to main content

Withdrawals

Before creating a withdrawal you must:

Have a Celar Wallet
Use the Wallets API to list or create wallets.
Choose the celar_wallet you want to withdraw from and note its celar_walletId.

Registered External Wallet
During onboarding, your organization registers an external wallet address.
All withdrawals are automatically sent to this address.

Get Test Tokens
To simulate withdrawals on our sandbox environment, you’ll need test tokens (USDT, USDC). Use the Celar Faucet to request tokens on supported chains (base and arbitrum). These tokens hold no real world value.

1. Create a Withdrawal

Withdrawals let you move stablecoins out of Celar. When you create a withdrawal, funds are transferred from your Celar wallet to the external wallet address your organization registered during onboarding.

Request

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",
"amount": 1
}'

Response

{
"message": "Withdraw successful! 1 USDC sent to your registered wallet address",
"tx_hash": "0xdd10beed45843aae085199d0a8e25d3fccee685574b8b069429398e666b84aae",
"status": "withdrawal_sent"
}

Key fields:

  • celar_walletId → the Celar wallet you’re withdrawing from.
  • tx_hash → blockchain transaction hash for the withdrawal.
  • status → final state once funds are sent (withdrawal_sent).

2. Track Status

Withdrawals move through this lifecycle:

StatusMeaningWebhook Triggered
pendingWithdrawal request created.
withdrawal_sentFunds successfully sent to your registered wallet.
failedWithdrawal could not be completed

Check status by:

3. Settlement

Once a withdrawal reaches withdrawal_sent, the stablecoins are available in your registered external wallet. You can view the transaction on-chain using the tx_hash.