Online orders stay OPEN after payment is COMPLETED

Some Square online delivery and pickup orders stay OPEN after the customer has paid. Our integration only imports orders with the state COMPLETED, so we miss the tips on these orders.

Example (location LG78VES2XCFYC)

  • Order xV5EEAjW2HR0DyyWySTuW2RgsreZY: state OPEN, source Square Online, fulfilment DELIVERY / PREPARED, total £65.05 including a £3.10 tip, nothing left to pay
  • Payment hS3dZ2nyOBfSitaKwLNnqWYlh6BZY: status COMPLETED, card captured, taken 20 Sep 2026 at 13:47 UTC

Questions

  1. Why do these orders stay OPEN after payment?
  2. Does the seller have to mark each one as completed, or should that happen automatically? How do you set this up?
  3. Should this be Square’s API that needs to be updated when a payment is marked as completed the order should be as well?
  4. To report these delivery and pick up tips, should we read payments instead of orders?
  1. Orders only complete when every fulfillment within the order is complete. You noted, and I confirmed, the fulfillment is not complete for that order.
  2. The seller needs to complete the fulfillment (which is missed very often) or the fulfillment needs to be setup with an auto_complete_duration in order to close out automatically once the timer expires.
  3. This is working as intended. For day-forward and backfilling orders, you should not use the API to complete the fulfillment. You could help the seller backfill completing these specific fulfillments (delivery, pickup) with their permission, but going forward they should setup auto complete or you should ignore the fulfillment state gap in your reporting.
  4. A more foolproof option would be to poll the SearchOrders endpoint by updated_at , keeping track of the last sync datetime, and then deduplicating the returned by order id. You can store and report on orders based on your own “auto complete” logic even if the source isn’t complete as well as retrieving the payment through the Payment API to see completed payments and tip amounts.

Where can the seller find the auto_complete_duration setting and what exactly does it do? Will it set the order as COMPLETED if payment is COMPLETED?

And does it need to be set per business site?

Apologies, that field only works for pickup fulfillments and does not work for in_store or delivery. It can only be set via API while the fulfillment is in the PROPOSED state.

I would go with my recommendation in #4 above