The call you want is
getnewaddress, which will generate a new Bitcoin address, add it to the current wallet, and return the address as the result of the call.
You can find documentation for the call here: https://bitcoincore.org/en/doc/0.16.0/rpc/wallet/getnewaddress/
If you were writing this in Python, it would look something like this:
from pyjsonrpc import ServiceProxy
bitcoin = ServiceProxy("http://127.0.0.1:8332")
bitcoin.username = 'testuser'
bitcoin.password = 'testpass'
You would then need to track the addresses generated and record them with your user accounts, monitoring transactions and crediting users as they come in.