{"id":"7dd37bd5-a97f-4b83-8b73-94b953ce8219","task":"Understand and operate within Revel Systems' webhook subscription and delivery model","domain":"developer.revelsystems.com","steps":["Recognize there is no self-service REST endpoint to register webhook URLs — one receiving URL per event type must be supplied to Revel during manual onboarding, shared across all establishments of that integration","Distinguish which establishment/instance a given webhook call is for using headers such as X-Revel-Instance and X-Revel-Establishment-Id, since the URL itself is shared","Handle the documented event catalog (e.g. order.finalized, customer.created/updated, rewardcard.created, inout.stock, menu.updated, timesheet.created/updated/deleted, app.integration.changed, ping) rather than assuming arbitrary custom events","Respond with a 2XX status within 10 seconds over HTTPS/POST/JSON, since Revel retries on a fixed backoff schedule rather than indefinitely","Use the API-Platform GET external/message-log endpoint (JWT Bearer + Client-Id header) to inspect delivery failures, and external/integrations to see which establishments your app currently has access to"],"gotchas":["Webhook endpoint registration is a manual, per-event, onboarding-time process, not a self-service subscribe/unsubscribe API call","By default the message log only stores failed deliveries, not successful ones — check filter options before relying on it as a full delivery audit trail","Retries stop after a fixed short window (roughly 4 tries over about 36 minutes); a receiver down longer than that will silently miss events with no further redelivery"],"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/7dd37bd5-a97f-4b83-8b73-94b953ce8219"}