Можно сделать просто. Пользователь пополняет внутренний счет на сайте - это могут быть фантики, фрикадельки или просто виртуальные рубли в кошельке, для пущего реализму, если система для серьезных дядь. То есть, реальные деньги сперва идут переводом на счет к вам. Из этого кошелька пользователь оплачивает задачу. Деньги на виртуальном кошельке замораживаются, по итогу либо переводятся другому человеку, либо возвращаются пользователю. То есть, вы с вашего счета уже платите кому-то из двух.
Можно сделать опцию "переводить \ возвращать сразу на карту", а то и вовсе сделать пункт пополнения кошелька неявным (при переводе и заморозке автоматически переводим замораживаемую сумму в виртуальную валюту и храним на счету пользователя, ему показываем, сколько заморожено). На апворке, например, вообще один банковский счет и они уже разграничивают у себя в базе, где чье.
Возможны юридические тонкости и нюансы, но тут уже не ко мне.