Please, support Location Id filter for getting catalog objects for the specific location

We build an integration system with Square and we work with locations/restaurants separately. One location has one catalog (i.e. menu). It would be nice to have this feature

At this time we don’t have a Menu API however if the catalog objects are unique to a specific location_id you can use SearchCatalogItems and query on enabled_location_ids to get items for specific locations. Once you have the items you can call BatchRetrieveCatalogObjects with include_related_objects set to true. This will return all related objects for items enabled at the location. :slightly_smiling_face:

what’s the meaning of enabled_location_ids in SearchCatelogItems? if categoryObject’s attribute present_at_location_ids includes the location and enabled_location_ids includes the same location, can the result be got? through Square 2021-09-15 Connect API in postman, I got no result.

addtionally, i remove all filters in SearchCatelogItems, i can’t find the new categoryItem i added through POST:/v2/catalog/object. but i can get the result directly by the categoryItemId through POST:/v2/catalog/batch-retrieve. what happened?

Items and variations can be created so that they are only enabled on specific locations, instead of on every location for an account. The enabled_locations_ids field allows for filtering based on that setting.

Catalog objects should be retrievable via API regardless of that field though. Can you let me know what your app ID is, and what catalog object you’re attempting to retrieve?

my app id is sq0idp-iDM3_p9QQBaS89BmsFAzhg,
i search a categoryitem with id = 6TYGFK7BNFND6DJ5C2S22BHN, it only presents in location LQXK8XV5NTFTM. it’s newly created by me, its is “Apple”.
by v2/catalog/search-catalog-items, i get nothing. in sandbox env.
thank you.

Can you double check if that’s the correct app ID? I was looking into your account, but I’m not seeing records of successful retrievals of 6TYGFK7BNFND6DJ5C2S22BHN via BatchRetrieveCatalogObjects (or any calls to that endpoint at all, for that matter).

Also, please note that SearchCatalogItems will only return catalog objects of type ITEM and ITEM_VARIATION. If you’d like to retrieve the category itself, you’d need to use SearchCatalogObjects instead.

My sandbox appid is sandbox-sq0idb-BfF2aszaOF16A9K_JsOVyg, the above written is product env, sorry. i change to my sandbox with my access token, create some item in special location, the search result with enabled_location_ids request is right.

thank you .

@edenlin, I removed the access tokens you added to the post. Pleas never share access tokens. They are secret. We recommend you recycle the existing tokens for account security. All other tokens like location_id and application IDs are safe to share. :slightly_smiling_face:

OK, thank you.

another question, after i use reader sdk, i got the transaction id, refer to the document, it’s the order id. could i update order to add itmes by v2/locations/{{location_id}}/orders/{{order_id}} ?

from doc, it only says order could not updated made in the Square Point of Sale application, so can i update order made by reader sdk?

Unfortunately updating order from Reader SDK payments isn’t currently available. Only orders created with the Orders API can be updated prior to being completed. Also sadly orders created by the API can’t be attached to Reader SDK payments. That’s why itemization isn’t supported with Reader SDK. :slightly_smiling_face:

could you supply a subtition to find line_item when create order with Reader SDK? so I need to create order in third-party system, and then mapping third-party order id and transaction id to find line item and payment, that’s right?

With Reader SDK you can pass in a note with each payment. You can pass in the unique order_id or reference_id that you create with the third-party system. :slightly_smiling_face:

I got two urls ,


from somewhere,

the two snapshots above show items info.

the question is: is there a way to display the order generated by Reader SDK in both two urls?

Hey @edenlin, since Reader SDK does not support itemization through Orders, transactions made through it will not show in the Orders dashboard.

but the first pic show the Source: Point of Sale and device: ipad, what’s meaning of it? we can see item detail below. is the transaction done in square terminal or by point os sale api or directly by in-app sdk?

another question is, is there a way to display payment detail and items on square registers when transaction done by reader sdk?

Our 1st party Point of Sale does support itemization. Unfortunately our other in person payment methods like Reader SDK and Point of Sale API don’t support itemization. Please see requirements and limitations for more information.

If your wanting to build an in person payment solution that has itemization and your processing payments in the US you’ll need to use Terminal API. That is currently the only in person payment solution that supports itemization. :slightly_smiling_face:

if i make a transaction through reader sdk, and then i create a order with items through v2/locations/{{location_id}}/orders with the response transaction id in some field to mapping, e.g., metafield, can i update order completed without pay or with zero pay?

Yes, that is possible but all items will have a total of $0. You’ll need to do all the tax calculations on your end with the custom amount that was collected from the Reader SDK payment. :slightly_smiling_face:

but i could not find any field to set negative value(except discount), if the original order has total money > 0, it seems no way to set the total money = 0. if discount change, tax will change. it’s not a good idea.

That’s correct, you can’t set a negative amount with orders. I’m not sure I understand your issue. The order will always be 0 so how do taxes and discounts play a part? :slightly_smiling_face: