Skip to main content
Users can withdraw funds from their wallet to either another cryptocurrency wallet or a bank account. During crypto withdrawals, it’s important to ensure that the destination address matches the correct network, as sending funds to an incompatible network could result in the loss of funds. Additionally, bank account withdrawals involve converting crypto to fiat, which is then sent to the provided bank account.

Withdrawal Status Lifecycle

When a withdrawal is initiated, its initial status can be either:
  • PENDING – The withdrawal is awaiting approval. This is uncommon and typically occurs in edge cases.
  • APPROVED – The withdrawal is approved and ready for processing.
  • SUCCESSFUL – If the withdrawal address is issued by Obiex (e.g., the destination is another Obiex user), the transaction may be processed instantly and marked as SUCCESSFUL immediately.
As the withdrawal progresses, it transitions through the following statuses:
  • PROCESSING – The withdrawal has begun processing.
  • SUCCESSFUL – The payout was completed successfully.
  • FAILED – The payout failed and the funds have been refunded to your balance. You can safely issue a refund to the user at this point.
  • REJECTED – The payout was rejected and will be reversed to your balance within a few minutes.
When the withdrawal reaches a final state, the status will either be SUCCESSFUL or FAILED.

Key Features

Cryptocurrency Withdrawals

Ensure the destination address is on the same network as the sending wallet. For example, if sending USDT on the TRC20 network, the destination must also be a USDT TRC20 address; otherwise, the funds will be lost. For crypto withdrawals, use the Get Withdrawal Currency Networks endpoint to see networks available for withdrawal for a currency.

Fiat Withdrawals

To withdraw to a bank account, users must provide valid bank account details. The system will convert the cryptocurrency to fiat and transfer it to the provided account.

Notifications

Similar to deposits, once a withdrawal is initiated, you’ll receive a webhook notification to track the status and process the transaction.

Sample Withdrawal Webhook

{
  "type": "WITHDRAWAL",
  "currency": "USDT",
  "amount": 50,
  "status": "PENDING",
  "reference": "d72a8ae6-401f-42f4-b34a-b2cb03e11f91",
  "transactionId": "1975abb3-2296-4bec-bbe8-91010a98411a",
  "createdAt": "2024-07-19T12:08:07.429Z",
  "lastUpdated": "2024-07-19T12:08:07.429Z"
}
We charge a fee for withdrawals to wallet addresses not generated on our platform (that is, external withdrawal). This fee varies based on the currency and network.

Key Endpoints

MethodEndpointDescription
POST/wallets/ext/debit/fiatInitiate a fiat withdrawal to a bank account
POST/wallets/ext/debit/cryptoInitiate a crypto withdrawal to a wallet address
GET/currencies/{id}/networksList available withdrawal networks for a currency