List Catalog filtered by DISCOUNT type returns all discounts even when deleted from square dashboard?

I have an application using the catalog api and am currently also trying to build out a loyalty program.
When I delete/remove discounts or loyalty rewards inside the square dashboard my application is still showing those deleted discounts and loyalty rewards. It’s like once they are deleted from the square dashboard, the API is not setting the objects field “is_deleted” to true.

Is anyone else seeing this or know a better way to list the catalog discounts created in the dashboard as to only show active discounts??

I have also noticed now that I’m trying to use loyalty rewards, all the loyalty rewards I created are showing in my list of discounts which I present to the user for catalog items and I have no easy way to filter these discounts to determine if its a loyalty discount or item discount when calling List catalog and filtering by “DISCOUNT” type. So basically all the loyalty rewards and discounts which have been created in the dashboard and deleted are being shown as potential ITEM discounts to my users AND more importantly they still work.

If square could return List catalog by discount type with an additional parameter for us to filter on whether that discount is a loyalty discount or a discount created in the discount tab this would resolve the issue, unless I am missing something here. Please advise.

I’m checking with the team on this. :slightly_smiling_face:

Hey Bryan,

Any word from the team on this? I have clients asking every day if there has been a solution found to eliminate the ability for front staff users from giving away discounts which are currently no longer showing in their dashboard.

Hey Brian,
Just checking in to see if you have heard anything about this issue from the team?

According to the team this is the expected behavior. While the reward itself is deleted the discount that is the catalog object isn’t removed from the catalog. :slightly_smiling_face:

Is there an api call that can be made to only return discounts which are active and showing in the square dashboards discounts tab inside Items?

Currently I’m showing users of my app the discounts available to them which can be applied to a transaction by calling List Catalog with the parameter type set to DISCOUNT.

Currently there isn’t a way differentiate the discounts shown in the Dashboard vs discounts created for Loyalty. 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:

Thanks Bryan! That would be a huge help to have.

That would help with one of the issues I’m encountering with the api right now. Fortunately, I have a work around for this by filtering out loyalty rewards on my applications end.

However, the main issue I’m trying to resolve is having some way to filter out discounts which have been deleted from the seller dashboard. There is no way to filter deleted discounts as the list catalog by discount api seems to be returning previously deleted discounts.
Every single discount which is being returned has the is_deleted parameter showing as false.

Currently in my seller dashboard I have 4 discounts and 2 loyalty rewards setup, but when I call List catalog with discount type I am being returned 32 discounts in total. All of these extra returned discounts are discount I have setup which were previously deleted inside the seller dashboard.

Do you have an example? I just tested and when I deleted the discount in the Dashboard it was no longer returned in ListCatalog. What’s your application ID and the discount_id? :slightly_smiling_face:

Thanks for checking that Bryan,

After double checking myself, it appears it’s not the catalog item discounts. It’s the loyalty rewards. If you Add a New Reward, then delete the reward and you will see the deleted reward is returned in the list catalog by DISCOUNT response even after being deleted from the loyalty settings.

Yes, that’s is expected according to the team. :slightly_smiling_face:

I went ahead and deleted some loyalty rewards from the dashboard and the is_deleted parameter is still showing as false instead of true.
Is this a bug or is there another way to determine if a loyalty reward has been deleted?

Currently there isn’t any way to determine if a loyalty reward with deleted other then listening to loyalty.program.updated webhook events. :slightly_smiling_face:

Thanks again Bryan!

If there is no way to tell the difference between an active loyalty discount, a deleted loyalty discount, and an item discount could we label this as an issue or bug? If so, how do we get this issue resolved?