What is the best practice for listening to payments on the RPC api? I have a docker instance running a bitcoin node and would like to listen to deposits, generating a new address each time a user requests to deposit then increment the users account balance on success.
Bitcoin has walletnotify feature that will notify you when an address you own in your wallet receives a transaction, and a second notification when the transaction confirms.

You can set it in your bitcoin.conf

walletnotify= curl http://yoururl.com/endpoint.php?tx=%s

%s will contain the transaction id. What you do from there is up to you.