Crypto deposits are similar to bank transfers. If the recipient’s bank account number is known then the funds can be directly sent at any time. This approach differs from classic payment methods because the transaction cannot be created before the funds have appeared in the bank account. In the same way web services cannot expect that crypto deposit transactions will be initiated from the "payment form" every time because, in general, there is no such term for cryptocurrencies. Unlike the classical approach, web services should handle callbacks from payment providers with information about received deposits. When web services receive the first callback they then create the transaction. After the transaction will be confirmed by the payment provider the second callback will inform the web services about the status of the transaction. Then, web services can provide the user with a specific service.
Attention!
When a user gets an address for the first time they are able to save it into their crypto wallet application. It is more comfortable for the user because they don’t need to go to the "Cashier" section every time they want to make a deposit. That is why many users save the address in their crypto wallet application after the first deposit and then they don't need to go to the payment form every time.
As cryptocurrencies are based on blockchain technology, you cannot delete the address if it has already been created and has been written into the blockchain.
If the user knows this address they can always send the funds there, because it is not necessary for the user to interact with the payment form when they would like to send the funds.