This article answers the question of why a card payment would stay in pending status and how long the payment stays pending for. Please see our documentation at the link below, to give more info on the payment workflow steps : https://peachpayments.docs.oppwa.com/
Please note that your specific workflow also has bearing on the relevance of this article to you. If in doubt, please contact firstname.lastname@example.org
During the 3DSecure process, while our systems are waiting for a response from the bank, every order will stay in pending (with return code 000.200.000) until the 3DSecure process is completed. Once completed, the status code will change to either successful or failed and this response will also be sent to your systems.
You'd need to confirm with your development team on what your exact workflow is from a tech perspective; but it is possible that your order management system records a pending payment transaction and then only changes to completed / successful or failed when your systems receive the payload from us with the final status of the transaction.
After 3DSecure, there is a redirect from the bank, to update your systems of the transaction status. This may then update the status of the order to successful/failed. Reason why your order may stay in pending, even though there has been a final status, is if the customer's browser breaks the redirect and this then causes your system to stay in pending transaction mode. Please check in your system logs to confirm this.
To solve this issue, you can implement webhooks, to update your systems of transaction statuses, in case there is something that breaks the redirect URL from being hit with the final status and therefore your systems are not updated. Please see webhooks documentation here ; https://peachpayments.docs.oppwa.com/tutorials/webhooks
Whether webhooks are necessary or not depends on why the redirect was broken in the first place so starting in your logs and comparing to other successful transactions would be the recommended first step.