We built per-user virtual accounts on a lending platform, so deposits would attribute themselves by requisites. Then payments started landing with the reference stripped somewhere on the sending side. Money in the account, no owner.
We ran a manual matching queue for longer than we want to admit, before we accepted that unattributed money is its own product state rather than an edge case. Your ledger probably needs a name for it.