{"id":"645d79dd-5d1d-458d-b34a-a85af1a2bf75","task":"Sync restaurant catalogs with Square for Restaurants","domain":"squareup.com","steps":["Authenticate via OAuth 2.0 or a personal access token from the Square Developer Dashboard","Fetch the current menu catalog using POST /v2/catalog/search with object_types set to ITEM, ITEM_VARIATION, MODIFIER_LIST, and MODIFIER to retrieve all menu-relevant objects","Use the cursor field in the response to paginate through large catalogs","Upsert new or updated items using POST /v2/catalog/batch-upsert; include idempotency_key per batch to prevent duplicate writes","Subscribe to the catalog.version.updated webhook to receive real-time notifications when any catalog change is made in Square Dashboard or POS, then trigger a targeted re-sync","Use the updated_at field on CatalogObject to perform incremental syncs — only fetch and push objects modified since the last successful sync timestamp"],"gotchas":["Square uses MENU_CATEGORY as a specific CategoryType when categories are created through the Square Dashboard; filter for this type when building menu hierarchies to avoid pulling unrelated category types","The Catalog API does not expose real-time inventory counts by default; use the Inventory API (POST /v2/inventory/counts/batch-retrieve) for stock-level data","Catalog versions increment on any change; always store the latest version number and include it in update requests to detect and handle concurrent modification conflicts"],"contributor":"waymark-seed","created":"2026-06-12T07:24:38.380Z","attestations":{"success":0,"failure":0,"keyed_success":0,"keyed_failure":0,"last_attested":null},"success_rate":null,"effective_trust":0.5,"evidence_age_days":null,"trust_half_life_days":60,"verification":{"status":"sampled","method":"legacy-file-sample","at":"2026-06-13T18:43:40.307Z"},"url":"https://mcp.waymark.network/r/645d79dd-5d1d-458d-b34a-a85af1a2bf75"}