Does completing an order in Square KDS update the Order fulfillment status via the Orders API?

Hi Square Team,

We have integrated our online ordering platform with Square POS using the Orders API.

As part of our integration, we have implemented features such as automatically sending SMS notifications to customers when their orders are marked as Ready in Square POS. We achieve this by monitoring order updates (via webhooks) and identifying changes to the order’s fulfillment status (e.g., fulfillments[].state transitioning to PREPARED).

We would like to understand whether the same functionality can be supported when merchants use Square KDS to manage their orders.

Specifically, we have the following questions:

  1. When kitchen staff mark an order as completed on Square KDS (either on a Prep or Expo station), does this automatically update the corresponding order’s fulfillments.state in the Orders API to PREPARED?

  2. If so, does this trigger an order.updated webhook notification, similar to when an order is marked as Ready directly in Square POS?

  3. Does this behavior depend on the KDS configuration (Prep vs. Expo), order fulfillment type (PICKUP, DELIVERY, or IN_STORE), or whether the order originated from a third-party integration?

  4. If Square KDS does not automatically update the order’s fulfillment status, is there an alternative API or webhook mechanism available to detect when an order has been completed or marked as ready in Square KDS?

  5. Can this Square KDS workflow be tested or simulated in the Square Sandbox environment? Specifically, is there a way to simulate staff marking an order as completed in KDS and verify whether the corresponding fulfillment state changes and order.updated webhook events are triggered? What would be the recommended way to simulate these workflows?

Our objective is to allow merchants to manage order preparation entirely through Square KDS while continuing to trigger customer-facing notifications (such as SMS messages when an order is ready) through our platform, without requiring staff to manually update the order status again in Square POS.

We would appreciate any clarification on the supported behavior and recommended integration and testing approach.

Yes, but the KDS configuration matters. With Automatic Order Update turned on, completing an order’s ticket(s) on at least one Expo station marks the order Ready. Completing a Prep-station ticket alone isn’t the same trigger. KDS completion guidance

For a PICKUP fulfillment, Ready corresponds to fulfillments[].state = PREPARED. Continue using order.updatednotifications, then retrieve the order and confirm that state before sending your SMS. Fulfillment and webhook guidance

This shouldn’t be treated as a guarantee across every fulfillment type or POS workflow. Can you confirm the fulfillment type and whether Automatic Order Update is on for the Expo station?

Square KDS isn’t supported in Sandbox. You can simulate the API side by updating a Sandbox fulfillment to PREPARED, but that doesn’t validate KDS behavior. Test the complete workflow using a separate production test account and an actual KDS device. Sandbox limitations