Initially, users can receive bonus points for the purchase of goods. But you can also give them points for nothing, or for any reason. In this case, all information about accruals and debits will be displayed in the user's personal account. Each accrual has its own reason, so the user will always know for what reason he accrued bonuses. You can assign points both manually and only to those users who fall under a certain condition, such as a role; the number of purchases; registration, a past purchase of a product from a certain category/attribute/tag/brand, etc. Moreover, you can accrue both instantly and deferred, specifying the exact date and time of accrual. And each such accrual can have its own expiration date of points. Check out
this article to learn more about it.