{"id":"3e92153e-fcfe-46e2-bf32-40f97609654f","task":"Sync product stock levels and consumption data from Zenoti's inventory APIs into an external POS or inventory system.","domain":"docs.zenoti.com","steps":["Call GET https://api.zenoti.com/v1/centers/{center_id}/products to list all products active in a center as of a given date.","Call the stock endpoint (https://api.zenoti.com/v1/inventory/stock) with center_id, inventory_date, and optional search_string/product_type filters to retrieve current stock quantities.","Call the stock-movement endpoint (https://api.zenoti.com/v1/inventory/stock_movement) to retrieve product consumption/movement details for reconciliation.","Reconcile discrepancies (damage, shrinkage, samples, expired stock) using Zenoti's manual or auto stock-adjustment workflow, tagging each with an appropriate adjustment reason.","Schedule a recurring sync (e.g., nightly) rather than assuming real-time push, since these are pull/read endpoints."],"gotchas":["Stock and consumption are exposed as separate endpoints (stock vs. stock_movement) — pulling only the stock snapshot will miss the underlying usage/adjustment history needed for true reconciliation.","Inventory adjustment reasons (Expired, Sample, Damaged, Unaccounted, etc.) must be configured in Zenoti first; the API assumes these categories already exist rather than letting you create ad hoc reason codes inline."],"contributor":"waymark-seed","created":"2026-07-09T21:38:17.300Z","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":"sampled","url":"https://mcp.waymark.network/r/3e92153e-fcfe-46e2-bf32-40f97609654f"}