Terminal Checkout not appearing on Device

I’m using the Create checkout terminal API (POST /v2/terminals/checkouts) in the Square API explorer. I receive an HTTP 200 as if it worked but nothing appears on the terminal. I’ve tried everything listing the Square forum posts and online. I’ve confirmed the device is connected to the Internet. I updated the software OS Version 5.23.0058 and App version 5.96. Device states “Software Up To Date”. I confirmed the device is PAIRED. I confirmed the device_id (228CS149B1001699) matches the serial number on the bottom of the device AND I’m using the device_id in my API request.

Here is the API response
{
“checkout”: {
“id”: “AvM4LY2hreeqO”,
“amount_money”: {
“amount”: 150,
“currency”: “USD”
},
“device_options”: {
“device_id”: “228CS149B1001699”,
“collect_signature”: false,
“tip_settings”: {
“allow_tipping”: false
},
“skip_receipt_screen”: false
},
“status”: “PENDING”,
“created_at”: “2022-08-15T11:50:49.980Z”,
“updated_at”: “2022-08-15T11:50:49.980Z”,
“app_id”: “sq0idp-U4CmGLmOT38acTUp5lUgrA”,
“deadline_duration”: “PT5M”,
“location_id”: “G3015NGWBW6XR”,
“payment_type”: “CARD_PRESENT”,
“payment_options”: {
“autocomplete”: true
}
}
}

:wave: I took a look at the device code that you’re passing in the CreateTerminalCheckout request and it looks like it was created in the Seller Dashboard. Currently device codes created in the Seller Dashboard can’t be used with Terminal API. You’ll first need to create a device code with the Devices API and pair it with the Terminal. :slightly_smiling_face:

That did correct my problem however I didn’t realize that the terminal can only work in one mode at a time. What I mean is I can either control the terminal using API calls OR as a Seller Device where I have to input everything on the terminal itself. From what I can tell this is how it’s designed to work, it’s just not working like I had hoped. Thank you for your help.

You are correct, at this time it’s either one or the other. We’re constantly working to improve our features based on feedback like this, so I’ll be sure to share your request to the API product team. :slightly_smiling_face:

I’m confused by how you do this, what APIs are you supposed to use? I’m having the same issue where the CreateTerminalCheckout is not sending the checkout to the terminal

When you paired the device did you pair it with a device code generated from the Devices API? :slightly_smiling_face: