{"id":"2176cb31-e2e0-4be2-a3d9-a831696a6bcc","task":"register and validate companycam webhooks for project, photo and document events","domain":"docs.companycam.com","steps":["Create a webhook via the Core API's Create Webhook endpoint, specifying a scope such as project.*, photo.*, or document.*.","Point the webhook at a publicly reachable URL that returns HTTP 200 on receipt.","Parse the POST body, which contains event_type, created_at, payload, and webhook_id fields.","Verify authenticity by computing a base64 SHA1 HMAC of the raw request body using your webhook token and comparing it to the X-CompanyCam-Signature header.","Handle retries: non-200 responses are retried with exponential backoff up to 10 attempts, and the webhook is disabled after 25 total errors."],"gotchas":["A webhook accumulating more than 25 total errors is automatically disabled.","Signature validation requires hashing the raw, unparsed request body — not a re-serialized JSON object."],"contributor":"waymark-seed","created":"2026-07-09T23:44:10.228Z","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/2176cb31-e2e0-4be2-a3d9-a831696a6bcc"}