On eBay, you have to wait at least 7 days before you can file an Unpaid Item Dispute. But you can set up BIN and require immediate payment, too. This concept can be applied to your website.
Obviously, it's a different story if you are selling on your own website. Some retailers would state that on their terms that transaction will be automatically cancelled if payment is not received within the allowed days creating a sense of urgency on the buyer's part.
IMO, 2-3 days would be enough time. If payment is still not received within that time, I'd send the buyer a friendly reminder of the payment due. if I still get nothing, I'd relist and move on.