Это нужно сделать через базу данных (если бот не на хостинге, можно попробовать sqlite3). Для начала пользователю нужно добавить возможность создать код для реферальной программы (можно сделать несколько рандомных символов) и добавить его в базу данных. Когда новый пользователь будет использовать /start (для нового пользователя эту команду нельзя обойти), добавляется проверка на код. Если его нет в базе данных, то пользователю предлагается заново вписать его либо отказаться от этого. Если код совпал, в базу данных добавляется новая информация касаемо пользователя, чей код указали.
А дальше уже зависит от того, что у вас за бот. К примеру, это игра в кости. Пользователь выигрывает, получает определённую сумму игровой валюты. Если этот пользователь указывал код, то *ваше количество* процентов отправляется владельцу кода.