At what point in the webhook calls can we safely say an order has been paid for?

Hello,

We are trying to set up an automation system so that when an order is submitted and has been 100% paid for we will run X system with that order.

Currently we have it so that on order.created we will handle that order assuming it has been paid for but I am led to believe that his is possibly not the correct way of doing it. What is the official Square suggested approach to knowing that an order is truly 100% completed?

:wave: 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:

https://developer.squareup.com/docs/orders-api/pay-for-orders

Additional Documentation

https://developer.squareup.com/docs/orders-api/what-it-does
Order-Ahead Application Use Case
https://developer.squareup.com/docs/checkout-api/square-order-checkout

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.

If there is no net_amount_due_money on the order then the order has been fully paid for. :slightly_smiling_face:

Ah okay so should we be listening to the order.updated webhook then?

Yes, it’s good to listen to both in case order.created is the only event that’s trigged for a completed order. :slightly_smiling_face: