How to monitor thousands of bitcoin address transactions

I’ve developed a cryptocurrency payment gateway application, which generate new addresses for users and all addresses are stored in database,i need a some way to monitor transactions.

I implemented a job for fetching transactions from a third-party Api like blockcypher but it seems it’s a wrong solution, what is the best solution except running a full nodes ?