It's entirely up to the vendor (and you---you can always refuse to pay). BitPay used to require payment within 10 minutes; recently they increased that to within 15 minutes. I don't know what timeout Coinbase and other payment processors use.
In each case, these payment processors require that they receive your transaction within the allotted time. To be specific, you must enter the payment details into your wallet, click Send/Pay, enter your password if necessary, and wait for your wallet to sign and broadcast the transaction. Then you must further wait for the transaction to traverse the network until it reaches the payment processor's node (happily, transaction propagation times are typically only a few seconds or less).
However, if your transaction doesn't arrive in time, the Bitcoin transaction itself is still valid. What isn't valid is the contract of Y bitcoins for X value. That means your bitcoins will be gone, but you'll have to contact the payment processor (and possibly the merchant) to arrange to pay an extra amount, to have an overpay refunded, or to request a full refund.