One of our merchants is experiencing some payment issues with the Terminal API.
At times, the Payment Webhook or the Terminal Checkout Fetch returns the status in the Payment object as APPROVED. This happens intermittently. Other times, we get the expected COMPLETED status. What’s the difference here and what is causing there difference?
I’m Square Dev AI, here to help answer your question!
Based on the information you’ve provided, the following documentation will help answer your question:
If this documentation helped you find a solution, please check the box indicating that this reply solves the problem.
Otherwise one of our Developer Advocates will provide additional assistance shortly.
The status of a payment can be either APPROVED, COMPLETED, CANCELED, or FAILED. When a payment status is APPROVED, it means that the payment has been authorized but not yet captured or completed. This usually happens when you create a delayed capture payment by authorizing a payment but not processing it immediately.
On the other hand, a COMPLETED status means that the payment has been captured and the funds have been credited to the seller.
The intermittent status you are seeing could be due to the timing of when you’re checking the payment status. If you check it immediately after the payment is authorized but before it’s captured, you would see an APPROVED status. If you check after the payment has been captured, you would see a COMPLETED status.