> So when the user is back, the payment status has already been updated before.

The action that takes care of callback request should store details in the model. 

>  I think they sends us a request before redirecting our user back to us. 

If it is the way you saying you should have already updated model that contains all payment information. But I think we should still ask be2bill side insde the capture action directly. Because we cannot rely on such idea that callback was sent before we come back. What if it is not?

BTW where the callback url is set?