Have you checked out the Bitpay API Documentation?
https://bitpay.com/downloads/bitpayApi.pdfPage 17 is what you want. The page that starts with, "Instant Payment Notification (IPN)". It says:
An IPN (Instant Payment Notifications) is an HTTP POST message sent from the BitPay server to the merchants eCommerce server. The primary purpose of an IPN is to reconcile a BitPay payment transaction with the customer order status on the merchants eCommerce server. The BitPay server send IPNs for each invoice according to the setting within the invoice. The BitPay invoice payload has an IPN parameter called "fullNotifications".
You need to set certain variables when creating the invoice/button though so it knows where to notify when the payment is received. That is outlined further up in the documentation.
You could also use Cron to check the invoice status on a regular basis, but that is a much dirtier way to do it. The best way would be to use the IPN
Hope this helps!