Wallets

A wallet serves as a place to store or hold money. It can be used to receive money and perform transactions. Wallets on the Embed API serve as the sole funding source for all investment products as well as the sole destination for receiving value from  any liquidated investment. Withdrawals can be made from a wallet at anytime.

Wallets are automatically created for an investment account once it’s verified. A developer account also has a wallet created for it. Below is a sample wallet object.

Sample Wallet Object

 {
  wallet_id: 'efbcdd36ee444940bb44a68d9e62605b',
  account_id: '2ce91bff1ba14804a78a82a3f4ed086c',
  product_code: 'PRCDE15048527',
  currency: 'NGN',
  principal: '49998000.0000',
  returns: '68490.4110',
  lifetime_returns: 0.0,
  balance: '50066490.411',
  account_number: '',
  account_name: '',
  bank_name: '',
  created_on: '2021-05-17T20:01:08.662409+00:00'
}

Adding Money to a Wallet

Wallets have a virtual account number assigned to them for the purpose of adding money. Depending your implementation, an investment account owner might be able to add money into the wallet themselves by transferring to the account number or the wallet might be funded indirectly from the developer's wallet.

To see the endpoint and required parameters for adding money to the customer's wallet, please visit the API Reference.

Indirect Funding

An indirect funding occurs when you receive the funds from the user by some other means and then send it to the user's wallet from your own developer wallet. The developer funding flow requires that you use the Embed peer-to-peer transfer feature to credit the user wallet on Embed.

Once you receive money from your user within your app, initiate a peer-to-peer transfer from your Embed business wallet to the user’s embed wallet. To see the endpoint and required parameters for transferring money from your wallet to the customer's wallet, please visit the API Reference Once an investment has been created, it can be funded through deposits from the user’s wallet. When doing this, you need to specify the amount and the investment product code.

Note
Once you receive money from your user within your app, the next step is to do a transfer into your Embed developer wallet and then move funds from there to the customer's Embed wallet.

To see the endpoint and required parameters for adding money to your wallet, please visit  the API Reference

Withdrawing from a Wallet

Withdrawals from a wallet into external sources (bank accounts) is called settlements and cost a fee. While you may choose to process funds into your developer wallet first before moving the funds to the customer’s bank account or any other specified destination, there is a /settlement endpoint on the Embed API which enables you to process customer requests to transfer money from their wallets to external sources like bank accounts.