Do inventory updates over api affect COGS?

I’ve been researching the api docs, and am seeing a concerning trend: none of the calls between catalog api and inventory api seem to mention fields that relate to Cost of Goods Sold (vendor, unit cost, etc.). I haven’t fully tested it yet to see if an inventory update uses the item’s default unit cost to factor into COGS, but even if it does, I am not seeing a way to even set the unit cost when creating an item to begin with.

1 Like

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

Inventory API Process Flow
Enable Stock Conversion
Catalog API

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.

The data is all there in the list catalog response, and I can see the app.squareup api calls which set this data when using the UI, not to mention the csv item import template has fields for unit cost. Is there some secret technical reason these can’t simply be added to the api?

My understanding is this is a retail only component and a lot of the subscription api’s have been slower to get updated to full public facing. I am a Square Champion on the user forums and with that comes a little access behind the curtain.

That being said, while I cannot speak to the timelines of any Square project I know unificitaion of all features across the platform is something Square is working on. Including making most functions in the user space available in API in an ideal world. Posts like this (Which I 1000% endorse this request) help push the agenda in our direction.

My suggestion is find beta’s and feedback sessions you can interact with Square rep’s directly, I have helped get features made available over time with my own advocacy.

The Square Catalog API and Inventory API do not directly support fields specifically for tracking Cost of Goods Sold (COGS), such as vendor information or unit cost. The APIs are primarily designed to manage product listings, variations, inventory counts, and state transitions. While you can manage inventory levels and product details, the APIs do not inherently include financial metrics like COGS.

To track COGS, you would typically need to implement additional logic in your application. This could involve maintaining a separate database or system where you store and manage vendor information, unit costs, and other financial data. You would then integrate this system with Square’s APIs to update inventory levels and product details while calculating COGS based on your stored data.

If you need to set or update unit costs, you would have to handle this outside of the Square APIs, as they do not provide fields for unit cost in the item creation or inventory update processes. You might consider using custom attributes in the Catalog API to store additional information related to costs, but this would still require your application to manage the financial calculations separately.

This answer was reviewed by @Bryan-Square.

know unificitaion of all features across the platform is something Square is working on

That is great if true, thank you for the info. It’s frustrating, because from the outside looking in, it looks like deliberate omission. I fully understand that it could be non-trivial to implement something that seems trivial from the user’s perspective, but I think that is where the developer (Square) just needs to be honest rather than provide vague nothings like I’ve seen in other similar responses across this forum.

For now I have simply accepted that I will have to force users to choose between purchase order imports (now a $150/mo feature btw :slight_smile:), or offload responsibility for COGS from Square to my application. The latter is fine for me, but it’s annoying for the end user because it means they’re relying on me to do something that Square already does, solely because the integration tools fall short, rather than relying on me for something that Square doesn’t (and shouldn’t need to) be able to do.

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