Part 5: Deposit to Main Wallet

Today, we will talk in detail, about the specification of deposit fiat money to customer main wallet.

    Watch on Youtube    Back to Course Index

Hi. Welcome guys.

This is your one stop channel to become a full stack blockchain engineer.

This is part 5 of the whole course on how to build a Crypto E-Wallet and Exchange System using Odoo.

As defined in the system features before, our application should provide a functionality for every customer to deposit fiat money into his main wallet, as well as into his crypto wallet from any other external blockchain network.

Before continuing, please consider to like, share, and subscribe our channel if you find it useful, as we will update the topics of Building Crypto E-wallet Exchange System with Odoo regularly. 

Ok, now let's talk about the specification details.

We will talk about the fiat money deposit mechanism first.

In this case, we will be interfacing with third party payment gateway system to interact with fiat money bank account and credit card providers.

We will post invoices to the payment gateway for them to be able to collect payment from a customer. Once the payment is received, the payment gateway will send a callback to our system, so that we can update the customer balance according to the payment received. 

As depicted on the picture, when Customer decided to make a deposit on his wallet, then our system must submit an invoice to the payment gateway, as per the virtual account that is created previously for the customer.

The payment gateway will wait for the payment is made on that virtual account. 

When it is made, the payment gateway will push a callback to our system, for us to update the corresponding wallet, which is increasing it's balance for the deposit amount.

As we defined in the previous section, at the customer dashboard, he can see shortcut of all his favorite wallets and it's balances, as well as the list of crypto currency he is watching the price for.

To deposit to main wallet, customer must select the main wallet which he want to Deposit, Withdraw, Send, and Receive.

The selected main wallet page will appear as follows:

The page shows the current total wallet balance and the transaction history.

To deposit fiat money into the main wallet, he will click the Deposit button.

Then, a page to enter the deposit amount and bank account selection as the source of deposit will appear as follows. 

In this page, customer can choose one of the available bank virtual accounts or credit card, as defined on Odoo backend.

If a bank virtual account is selected, then a payment instruction page will appear as follows:

Customer can copy the virtual account number provided to continue the payment.

Then, he goes to his internet banking application or ATM to transfer the money to the virtual account number.

Our backend system will wait for the callback from the payment gateway, until the payment is made.

When we receive the callback, then me must update the corresponding wallet balance by increasing it, for the deposit amount received.

On the other hand, if credit card is selected, then a credit card payment form will appear as follows.

Customer must enter the credit card number, the expiration date, the CVC number, the account holder name, and confirm the amount to be credited from his credit card into his main wallet.

When the Continue button is clicked, our system will contact the payment gateway to execute credit card payment sequence on that card number. 

Backend credit card payment procedures will be executed by the payment gateway, like checking the card validation, credit limit, asking for verification code sent by SMS, etc.

Once the credit card payment is validated and completed, we will get the confirmed result from the payment gateway. 

Next, we must update the corresponding wallet by increasing it's balance for the deposit amount received. 

Some modification must be done in Odoo partner form.


We add a new tab called Deposit, that will list all of the existing deposit transactions on every wallets.

In this tab, Name, is the withdrawal transaction number.

Deposit type, is the deposit type, whether fiat or crypto coin deposit.

Trx Date, is the deposit transaction date.

Amount curr, is the deposit amount in each wallet currency.

Amount, is the deposit amount converted into the company currency.

Currency, is the wallet currency.

Notes, is any additional notes if exists.

State, is the deposit transaction state, whether it is draft or approved deposit.

Ok guys, those are the minimum feature specification for the deposit transaction management.

Don't forget to like, share, and subscribe our channel if you find it useful, as we will update the topics of Building Crypto E-wallet Exchange system with Odoo regularly.

Thanks for watching.