Square KDS Item Availability feature does not trigger inventory webhook events


One of our users reported an issue with Square KDS Item Availability not working as expected. We rely on inventory webhook events to sync up with changes across the Square platform. When you set an item as Unavailable for sale, this works as expected - an inventory webhook event comes through saying there is 0 stock. However, when you set the item as Available for sale, no webhook event comes through. In contrast, in Square for Restaurants, you have the option to Track Remaining Items and provide a Remaining Amount, which triggers an appropriate webhook event. In short, the user is not able to make the item available again via Square KDS.

:wave: What’s you applicationId and the item that you aren’t getting the webhook event when changing the item in the KDS to Available for sale? I just tested and got an event for both updates.

Application ID: sq0idp-sfMtnSBL3Ke-eqsdMxnX6A

@Bryan-Square Are you sure you were using Sqaure KDS and also are you sure you were getting both events for inventory.count.updated?

I can get the event when marking as Unavailable for Sale but not when marking as Available for Sale.

I even tried out the latest webhook version - no difference though.

Yes, I’m using the Square KDS and it’s setup as an Expeditor. I’m getting both webhooks. Are you OAuthed to the merchant?

Sorry, I’m not understanding why either of those would affect it happening one way but not the other (Available vs. Unavailable)?

What could I be doing wrong here then?

@Bryan-Square What version of Square KDS are you using? I’m on the latest that I can see on the App Store, 5.77.

I just tried setting up as an Expeditor - still no effect. I’m also OAuthed to my own merchant account, but seeing the same issue as the merchant who originally reported this.

I’m just trying to understand what is different about our setups. An Expeditor behaves different than a Prep so I wanted to understand which one your are using. Since you are OAuthed what inventory permissions did you pass in at the time of Authorization?


Just so we’re on the same page, you’re doing this action in Square KDS, correct?

This is an item that I just marked as Unavailable for sale, which correctly triggered the event on our end, giving us the data of 0 quantity left allowing us to sync our app. However, if I now do this and mark it as Available for sale, it does not take effect - I’m guessing because there are now 0 of this item available since I just marked it as unavailable.

This seems to never trigger an event on our end because there’s 0 quantity left, what we’re missing is the “Track Remaining Items” functionality (see below, screenshot from Square for Restaurants) to add a quantity back.

Yes, that is exactly what I’m doing and I’m getting an event for both. :thinking:

What exactly does the data in your event look like? What versions are you using for webhooks and Square KDS? Are you sure it’s not some whitelisted Square functionality for your account? :thinking:

I’m on the latest version of both the KDS and the webhook. I’m just making an item available and unavailable. There isn’t any stock associated to it.

Are you sure you’re not getting a catalog.version.updated event, which also triggers on inventory updates? I saw that triggering and you can also reference this slack message. Note that this event does not have the information needed for inventory syncing.

Sorry, you’re right. That is a catalog.version.updated event. I’m checking with the team to see if this is the intended behavior.

Hi Bryan, any update on this?

The team is still looking into this. :slightly_smiling_face:

Hi Bryan, just wanted to follow up in on this - any update?

Hmm, not yet. Let me check with the team. :slightly_smiling_face: