When you send bitcoin from a true bitcoin wallet, it will immediately broadcast to the Bitcoin network. When the Bitcoin network confirms the transaction, the funds will be spendable by the recipient.
Bitcoin exchanges and account services are different. These services hold your bitcoin in their own true bitcoin wallets. When you send a payment with these services, they have to send it for you from their own wallets.
Because they have millions of users and hold a large quantity of bitcoin, exchange and account try to send your transaction as efficiently as possible by grouping your transaction with other customer transactions. This means that it can take longer than normal to get a payment broadcast to the Bitcoin network. Outgoing transactions typically go out every few hours.
Your payment will arrive eventually. But since BitPay payment windows expire within 15 minutes, outgoing exchange/account transactions are often too slow to successfully pay a BitPay merchant. If your payment arrives after a BitPay payment window expires, you will have to reach out to the BitPay support team with your transaction information to request a refund.
To prevent these headaches and hassles, BitPay now requires all payments to be made with an updated wallet that is compatible with Payment Protocol. To pay a BitPay invoice, we recommend transferring your spending bitcoin from an account service to a true bitcoin wallet.
Note: Online services tend to batch (and so delay) payments for all cryptocurrencies, including Bitcoin Cash (BCH).