VA - Creating a Manual Withdrawal

Virtual Accounts (VA) come with dedicated endpoints to automatically handle on-chain withdrawals and log this action within the VA ledger.

However, depending on the use case or specific situation at hand, you may want to handle withdrawals manually.


  1. Execute a blockchain transfer.
    • For example: BTC transfer v3 REST API endpoint
    • The crypto assets are sent to the recipient's address. The source address of the blockchain transaction can be any blockchain address from your blockchain wallet
  2. Create a Withdrawal in the VA ledger.
    • v3 REST API endpoint.
    • This will perform a virtual account transaction from the source account. It will debit the amount from the source account. See related endpoint: "StoreWithdrawal"
  3. Complete the withdrawal transaction.
    • v3 REST API endpoint.
    • Mark the withdrawal as successful and store the transaction hash/ID of the blockchain transaction to the withdrawal operation in the VA ledger. This step must be completed; otherwise, there will be inconsistencies within the virtual account state.


Make sure the asset amount, fee and any other parameters match with the intended values as seen in the blockchain as well as the VA ledger.

Good to know

  • If you made a mistake while creating or storing a withdrawal, you can delete it and retry again. Additional information is available, in the following article.
  • Transferring out from a specific VA deposit address and logging it to the VA ledger can be done automatically based on the [Blockchain Operations] endpoints.