lundi 19 septembre 2022

Tracking money within marketplace

I am working on a Patreon-like project where subscribers pay money to creators and where the project is the intermediary through which the money flows. Each incoming payment is saved into the system as "money" entity that has the user who made it as the owner and information about the money account where that money "physically" exists. This money entity can be split an joined(with previous entity deleted) so every cent is always accounted for. Money can change ownership(when subscriber pays to creator) and can be withdrawn, by creators, which removes them from the system(deletes the entities representing them).

Problem I am facing is that I can easily track this virtual money within the system but when it comes to the actual money(sitting in a bank account or with a payment processor), specifically when transfer between accounts happens(ie. payment processor sends money into my bank account + there are various bank accounts for different currencies) I will incur losses. For example a fee for the payment processor for withdrawal into my bank account or between bank accounts in different banks. In other words, I will send $10 but receive $9. This is obviously a business expense, so it's fine from that point of view, but it is not ok since the virtual money no longer matches the real money. The transfer fee essentially "stole" someone's money. As an example, imagine that payment processor will send 10 000$ into my bank account. This can consist of hundreds of payments by the customers which I can track to the last cent and know who exactly owns what. And imagine all these customers will pay to creators so all this money will now belong to creators and for some reason all creators will withdraw the money so none should be left in the bank account. Now imagine that 10k transfer cost 1$ to the payment processor for withdrawal. So once I start paying off creators, the last creator will be short by 1$ real dollar. I have no way of tracking whose money was "stolen" by this fee.

Of course, I can track the fees and "charge" the bank account with this difference from the business account and write it off as business expense but then it means I introduce foreign real money into the system which is the not traceable with the virtual money.

In other words, real money transfer will most likely not be free and what is sent is not what will be received whereas virtual transfer(within my system) is fee-free and will never "lose" money.

So I wonder how to solve this problem of matching real money with virtual money in this scenario?

I could not care about where the physical money is and simply know it is in one of my accounts or payment processors' accounts but then I could easily have insufficient funds on bank account from where withdrawals are made and I would lost track of whose money is on which account. So the virtual money would be a mere aggregate of real money but with these fees they might not match.

Aucun commentaire:

Enregistrer un commentaire