I couldn’t find a proper forum about this and since I myself need the answer to this question I made this post to benefit others like me.
You could use a mix of MessagingService and DatastoreService to achieve this.
There’s a ton of ways to do this, but It’s not the easiest thing because you have to account for a ton of edge cases like preventing money duplication, making sure they receive their money, what if the request fails, etc.