The best solution to this problem would be to have honest employees!
We have a drop box in the office door so payments can be left at any time. Above the drop box is a sign instructing residents to fill out their money orders completely. The inside of the drop box is only accessible with a key, and only two people have that key.
If someone forgets to fill out their money orders, I give them a copy of our payment policy and highlight the requirement to fill them out.
I tell residents that I will probably remember who each money order is from, but if something were to happen to be, my replacement would not know, so it's in their best interest to fill the money orders out completely.
Payment Policies:
•We do not accept cash for rent payments.
•We do not accept international currency or international money orders.
•We do not accept third party checks
•We do not accept rent from anyone other than Residents listed on the lease agreement
•We do not accept blank money orders; they must be filled out by the resident.
•We do not accept partial payments.
•We cannot accept more than one personal check per apartment per month.
•We cannot accept a combination of personal checks and money orders.
•Only one form of payment per month is accepted.
•Personal Checks must be filled out and signed by the resident.
Legally, a resident could probably force us to accept cash. But so far I've managed to convince everyone to protect their assets by using a safer method.