I'm implementing a Bitcoin payment system that generates bitcoin address for each user to deposit.
I use BitcoinJ to generate user's addresses and
rawblock API from Blockchain.com to get every single block to check if my addresses are in any transaction output, then my system increases the user's internal balance.
I save scanned block height in the database and send a request for a new block every 10 minutes.
Is that solution correct? (I need testnet so I cannot use their Wallet Service)