I've been there. Got an account, 2 stores, one month I get a check within 2 weeks (as its supposed to be with this company) and then the next, nothing. 3 months later I keep getting told its in the mail and nothing. Every month I call the company, send new invoices, "you'll have it within 2 weeks" and 4 weeks later, nothing.
That's when I sent an email stating a new billing policy. Simply, payments must be received within 30 days of the invoice being sent. If no payment is received then a notice will be emailed alerting them and if no payment has been received or no one has contacted me to arrange something within 15 days of the late notice and ammended invoice will be sent that includes a late fee.
I sent the email and called the company, explained this new policy and that the times can be changed if their process makes payment within 30 days unrealistic. I asked that they read it and call with any questions or concerns, and if everything looks good to send me a signed copy. I never accused them and was calm and polite. Just made it out as a general change in billing practices for my company and they had no problems with it. Next day I received a signed copy and a follow up call. I have yet to send a late notice.
A friend of mine uses this same practice, he sends a couple notices out every year (normally to the same client). Like me, he prefers to email them but will also mail them if the client prefers. He always accompanies the notice with a phone call so there is verbal confirmation that payment is late. And we have both found clients appreciate this. Be flexible in the details of the policy as every company works differently. School district I used to work for took 60 days to pay their outside contractors. Not going to charge a late fee after 30 days if they've told you ahead of time that they take 60 to pay. Clear, calm, communication always helps.