Trying to set up API to connect with Square KDS / Expeditor


I’m trying to set it up so that an order is created on our bespoke kiosk app (react-native) which is then sent to our Square KDS for the kitchen to handle.

I have tried the following:
Create a new order on the API Explorer
Ensure the order is paid for (Pay Order POST) - This has definitely has gone through because it returns:

      "code": "BAD_REQUEST",
      "detail": "The order is already paid.",
      "category": "INVALID_REQUEST_ERROR"

when I try and run it again.

The issue is that the Expeditor still says “No Open Tickets”. It is definitely in the correct location (the same location as specified when creating the order through the API explorer) and is also running in Production mode.

Could you please advise us on the Square recommended method of converting a Square kiosk order into something that has been paid for (by a square terminal). We are trying to get the full flow of
kiosk order → terminal → terminal payment → KDS

A format akin to:
POST Create Order → Response provides Order ID → POST Terminal checkout using Order Id … etc.
would be extremely helpful.


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

Additional Documentation

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.

You should be using the Payments API to pay for orders. You won’t need to use the PayOrder endpoint. Also does the order have a fulfillment? :slightly_smiling_face:

Ah I did not include a fulfillment, would that be the reason why?

Yes! A fulfillment is required if you’d like the order to stay open and push to the Order Manager. :slightly_smiling_face:

Hi I have tested creating an order with fulfillment data and also cloning an order.

The order does not show up in the Square Dashboard nor the KDS but it gives me a 200 Response even in production.


After cloning an order and creating a payment relating to that order now the order/transaction shows up in the Square dashboard. But it does not show up in the KDS.

What is the payment_id for the order that didn’t show on the KDS? :slightly_smiling_face: