I have successfully set up a Quick Pay Checkout transaction. It works in sandbox and production. I have also set up a query via CURL (CURL equivalent) to query the transaction using:
curl https://connect.squareup.com/v2/orders/{order_id} \
-H ‘Square-Version: 2025-10-16’ \
-H ‘Authorization: Bearer ACCESS_TOKEN’ \
-H ‘Content-Type: application/json’
However, how can I be sure that the amount was approved? The response comes back with a state of “OPEN” which I assume is a pending transaction that will be auto batched at midnight or some other time tonight.
Does “OPEN” mean that the charge was valid and approved? Is there some other field in that response that I can use?
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:
Additional Documentation
Sandbox Payments
Split Payment: Let Customers Split Payment Transactions
Split Payment: Let Customers Split Payment Transactions
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.
I still do not have an answer on this.
In the context of Square’s APIs, an order with a state of “OPEN” does not necessarily indicate that the payment has been approved or completed. The “OPEN” state typically means that the order is still active and has not been fully processed or completed.
To determine if a payment has been approved, you should look at the payment status rather than the order state. You can retrieve the payment details using the Payments API by calling the GetPayment endpoint with the payment ID associated with the order. The payment status will provide more definitive information about whether the charge was successful. A payment status of “COMPLETED” indicates that the payment was successfully processed and approved.
If you are using the Orders API and want to ensure that the order is fully paid, you should check the tenders array within the order object to see if the payments have been authorized and captured. If the payment is still pending, it might not yet be reflected as completed in the order state.
In summary, to confirm that a charge was valid and approved, check the payment status using the Payments API rather than relying solely on the order state.
This answer was reviewed by @Bryan-Square.
Well, I would love to use the GetPayment endpoint. However, when using the Quick Pay Checkout and “https://connect.squareup.com/v2/orders/” there is no payment_id in the response.
How does the Quick Pay Checkout does not provide access to the payment status?
When a customer pays in the Square checkout page and they’re redirected the order_id will be added to the end of the redirect URL. You can take the order_id and call RetrieveOrder with the ID. The payment_id will be in the order and it will have a tender. That’s how you can confirm that the payment was made for the payment link. 
Thank you! I also did manage to look back over the response and found it in the structure. So, now it’s working!