Skip to content

Withdrawing Funds ​

Goal: To allow an Investor to transfer cash from their platform Wallet back to a linked external bank account. This is a wallet withdrawal, not redemption of a fund holding.

Actors: Investor


Steps ​

  1. Initiation: The Investor navigates to the "Wallet" section of the Investor Dashboard and chooses the "Withdraw Funds" option.

  2. Destination & Amount: The Investor selects one of their linked FundingSources as the destination and specifies the amount they wish to withdraw. The Investor Dashboard prevents entering an amount greater than the wallet API's withdrawal availability (balance - out_balance).

  3. Confirmation: The Investor confirms the transaction details.

  4. Transfer Initiation: The Integrated Wallet Solution creates a withdrawal Transaction intent with created status and calls the payment provider's API (Dwolla). After the provider accepts the transfer, the service records the provider response and increases the persisted out_balance reservation. It does not debit balance at initiation.

  5. Notification: The notification-api sends a confirmation to the Investor that the withdrawal has been initiated.

  6. Monitoring: The Integrated Wallet Solution monitors for webhooks from the payment provider.

  7. Settlement: Upon receiving a success webhook, the Integrated Wallet Solution updates the Transaction status to processed, decreases out_balance, and debits balance by the withdrawal amount.

  8. Failure or Cancellation: If the provider reports a terminal failure or confirms cancellation, the Integrated Wallet Solution records failed or cancelled and releases the out_balance reservation. The balance remains unchanged for either outcome.

  9. Notification: The Notification Service informs the Investor of the processed, failed, or cancelled outcome.

  10. Outcome: A processed withdrawal transfers funds from the investor's platform wallet to the selected external bank account.