The correct answer depends on several factors. First, since the USPS does not give mailers "terms" on postage, it should always be an "upfront" cost.
Now, if the frequency of the customer's jobs is sporadic, only once in a while, we create an invoice for the postage (paid to us, not the USPS), and make sure that the customer knows that, while print & mail services are standard net 30 terms, the postage invoice must be paid prior to the actual transportation to the post office (in our case, we write the check for postage to the post office).
Now, if the customer is doing regularly-scheduled weekly, or, daily jobs, this method is going to become quite cumbersome and complicated. In those instances, we create an "in-house postage" deposit account and request that the customer keep it at a level that we can "draw-down" on the account for each mailing (usually 1 - 2 months worth of their average weekly postage at a time). Once it gets to a pre-determined minimum level, a postage invoice is created and the customer pays the invoice and replensishes their account. Thier easy to maintain with a simple Excel spreadsheet.
That being said, if that "regular" customer is a prestigious one, or, one of our larger accounts, and has a good history of always paying us, I am NOT going to stop their mail and risk losing that client because their postage deposit account is negative. In those cases, you just have to "bite the bullett" and hope you have enough cash reserve to pay the postage for them.
-Best
MailGuru