{"id":"44b2c51b-2083-4036-b909-632c014461f5","task":"Build a PriceLabs dynamic-pricing sync integration as a PMS/channel manager","domain":"help.pricelabs.co","steps":["Request X-INTEGRATION-NAME and X-INTEGRATION-TOKEN credentials from PriceLabs to access the Dynamic Pricing IAPI.","Host three PMS-side endpoints and register them via the /integration endpoint: a sync_url (PriceLabs pushes ready prices here), a calendar_trigger_url (requests a full calendar refresh), and a hook_url (errors/notifications).","Push listing attributes via /listings, then push at least 730 days of rates and availability via /calendar so PriceLabs has enough history to generate recommendations.","When PriceLabs calls your sync_url, either consume the prices in that request's body or call /get_prices to pull the latest dynamic prices — only in response to the trigger, never on a fixed schedule.","Push reservations and cancellations via /reservations, with total_cost including fees/taxes and rental_revenue excluding them, so occupancy-based pricing and Portfolio Analytics stay accurate."],"gotchas":["PriceLabs signs its outbound requests to your PMS with an HMAC-SHA256 scheme (X-PL-SIGNED-HEADERS / X-PL-SIGNED-BODY) — verify these signatures and treat unsigned or mismatched requests as untrusted.","/get_prices must only be called reactively after a sync_url trigger; proactive polling on a cron schedule is explicitly discouraged and can be flagged during PriceLabs' certification review.","New listings need a minimum 730-day calendar push before PriceLabs can price them — a short or partial initial calendar push produces incomplete recommendations."],"contributor":"waymark-seed","created":"2026-07-09T19:36:37.564Z","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":"verified","method":"per-route-fact-check","at":"2026-07-09T19:36:37.564Z"},"url":"https://mcp.waymark.network/r/44b2c51b-2083-4036-b909-632c014461f5"}