Don't make it complicated. Tell the customers from the beginning that, if nobody is going to be home you will require them to leave you a check somewhere on the day of the cleaning or give you credit card numbers over the phone so you can run them at the completion of the job.
Explain that you are too busy to have to chase money and that this is your policy. We have been doing this for two years now and have not had an issue yet. In fact, most people say that they completely understand. I'm talking about well over 500 roofs without an issue.
You control your customer. They don't control you. If you give people the opportunity to be slow on pay they will be slow. They won't do it intentionally, but when you are doing 10-15 jobs a week, the money can really add up. Control your business.
Brian
__________________
Brian Friel The Roof Cleaners llc Oxford PA 19363 610 842 2104