We have some customers who pay on-time every time. Others who are always late/once we follow up. We added an interest clause to our contracts to discourage that.
I also recommend having solid invoicing/accounting software that will do the "nagging" for you
In my experience it softens the blow and really your goal from a receivables perspective is to make it as easy as possible for your customers to pay you (which quickly gets very complex for enterprise sales)
There are also a slew of other tactics you can use to encourage faster payment (ie. providing a % discount for up front payment is always good).
Depending on the size of the customer you are dealing with it can really help to learn their PO and procurement process
finally if you use a POC or pilot process try to have it auto convert into contract upon completion of xyz goal.