Unable to set catalog item as non-taxable

I run an inventory sync app between Shopify and Square. When the product in Shopify is set to taxable or non-taxable I need to reflect this in Square. I have successfully created the tax categories and can assign them when I create a product.

However, it does not seem possible to set an catalogue item as non-taxable via the catalog api. setting is_taxable to true or false does not appear to have any effect on the taxable state of an item. I have tried sending this to the /v2/catalog/object end point along with tax_ids, without tax_ids and omitting tax_ids field all together. It doesn’t change.
The only way I seem to be able set the taxable state of an item is to either send an array of tax_ids or an empty array. This has roughly the right effect. But while an item may have no taxes applied is_taxable still shows as true which could be incorrect strictly speaking for someone relying on this Boolean as suggested here .

Am I approaching this wrong? How do I toggle the taxable state of an item? It is possible to toggle the state via the Square ui, but I can’t see how to replicate this via the API

Cheers

: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

Archive Catalog Items and Manage Archived Items
Build and Manage a Simple Inventory
Square Developer

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.

Hey @pklitscher, weclome! :wave:

The is_taxable field on a CatalogItem will determine whether taxes are automatically applied when creating an order with "auto_apply_taxes": true. Specifying taxes on the CatalogItem itself will determine what taxes apply to it by default, but that can still be overridden at the time of sale.

Hope that clears things up! Let me know if you have any follow up questions.