Overwhelmingly: Send a quote for the upcoming year, get a PO number corresponding to the quote, send an invoice referencing the PO number, wait an interminable amount of time, a check magically appears in the mail. The last one was 9 months late in paying. Enterprise life, yay. Salient point to keep in mind: the people responsible for everything that happened in that workflow after my customer passed the quote to her…
They can speed things up if they want to. I hope you're not providing your service for free for 9 months. At some point you need to give them a deadline. It's easy with SaaS, as you can just flick off the switch if they don't pay. Obviously with a large, important customer you don't want to immediately deactivate their account if they are overdue by a day, but you have to have a limit!
I encourage everyone to write into their terms what will happen if payments are late. It would be insane not to.
Also, it is a jerkwad thing to do (for some definitions of the term) to right in a destroy clause into your terms (e.g. "When you stop paying maintenance on this software, you must stop using it.") but it really does lock in large enterprises who frequently don't even remember the name of the guy who set the thing up in the first place, and can't imagine committing current resources to figure out how to stop using it.
I feel like I sound either really bitter about my job or that I'm a really awesome enterprise IT manager. :D I'm not sure which is closer to the truth.