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 any time.

Creating a Wallet
A wallet can only be created for a user account that has been verified. To create the wallet, you will need to call the create wallet endpoint. Upon creation of the wallet, a virtual account number will also be assigned to the user.

On the sandbox, wallets are automatically created for an investment account once it’s created.

A developer account also has a wallet created for it. Below is a sample wallet object.

Sample Wallet Object

  "wallet_id": "40bfc3a8797ffc4f61c4a749cbf57852",
  "account_id": "c6d4696eb3f0a8fa14d1db540ae03866",
  "name": "USD-Wallet",
  "bank_name": "",
  "product_code": "PRC7236DE330373",
  "created_on": "2022-08-16T17:03:04.018069+00:00",
  "currency": "USD",
  "balance": "0.00000",
  "account_number": "",
  "account_name": ""

Adding Money to a Wallet

Wallets have a virtual account number assigned to them for the purpose of adding money. To fund the wallet:

  • You can display the account number to your users so they can add money into the wallet themselves by transferring it to the account number.
  • You can also choose to have the wallet funded through a backend-initiated NIP transfer from your end to the account number assigned to the user.

Withdrawing from a Wallet

Withdrawing from a Wallet
Withdrawals can be done from a wallet into an external source i.e. bank accounts. These are called settlements and cost a fee. To process withdrawals to a customer’s bank account you will need to make a POST call to the /settlementendpoint on the Embed API.