Internal Transfers & Balance Adjustments
Overview
There may be times when your use case requires you to move assets between different wallets in your environment, independent of banking or digital asset payments.
These are called internal transfers, and are available through the internal-transfer
endpoint.
A few examples where you may want to use internal transfers include:
- Peer-to-peer (P2P) transfers between customers.
- Funding a customer’s wallet with $10 as part of a promotion.
- Moving a $5 monthly service fee from a user’s wallet to an admin revenue wallet.
Internal transfers are designed to move USD between wallets, and require both the sending and receiving asset to be within the Connect system. The sending wallet will naturally need to have enough USD to fund the internal transfer.
You do not need to perform separate balance adjustments when receiving deposits or making withdrawals. In these cases, the system automatically makes the necessary adjustments to the ledger when the payment has been completed.
Balance Adjustments
Sometimes, you may want to move assets between different balances (or states) within a customer wallet.
For example, you may want to reserve (hold) BTC in a customer’s wallet while a transaction is being initiated. Then, at a future time, you may want to release that BTC so that it can be moved as part of an internal transfer.
To do this, you will use the internal-transfer
endpoint, but instead of nominating different wallet IDs as the sending / receiving wallets, you will use the same wallet ID as both the receiving and receiving wallet.
Example code??
Asset Balances
Assets can have different balances depending on the business use case and transaction status.
A brief description of each asset type:
Available
: Assets that are able to be freely interacted with by the userPending
: Typically relates to a transaction that has been initiated but not yet processedReserved
: Assets that have not left the wallet, but are not available to the user.