There are several providers whose payment flows involve asynchronous responses; their responses are not returned instantly but after a set period of time. For such payments whose status is not immediately known, the Pending status is returned.
This status is updated later - to Successful or Failed - once an update is received from the provider.
SHVA is an example of one processor whose payments are usually in Pending status after an initial request to the provider. Capture or Charge requests that are processed via SHVA remain in a Pending status until SHVA's nightly capture batch (Daily assortment of authorized payment needs to be processed by the provider). After the batch, the status is updated to Successful or Failed.
Payments that require manual approval also return a Pending status, before receiving their final status.
Please see more information on the difference between synchronous and asynchronous payment flows.
Please note that in case a charge/authorize request will fail, the failure and error description will be returned synchronically upon response.
In order to be sure a charge/authorize request succeeded although it remains on status Pending, locate the authorization success status of the provider raw response.
Moreover, in case Pending status is returned for the charge request, it is most likely the payment succeed and will be completed eventually.