generated: '2026-07-18' method: searched source: https://docs.trychert.com/api/webhook-subscriptions spec_type: Webhooks docs: webhook_subscriptions: https://docs.trychert.com/api/webhook-subscriptions receiving_replies: https://docs.trychert.com/api/receiving-replies events: https://docs.trychert.com/api/events transport: delivery: HTTP POST to subscriber URL streaming: SSE (server-sent events) available; polling and replay supported events: - name: message.received description: Recommended real-time inbound reply event; inbound images/files arrive as media parts - name: lead_reply description: Legacy summary-style reply notification (still available) - name: reaction.added description: A tapback reaction was added - name: reaction.removed description: A tapback reaction was removed subscription_operations: - {op: create, method: POST, path: /api/v1/webhook-subscriptions, note: auto-generates a per-subscription secret} - {op: list, method: GET, path: /api/v1/webhook-subscriptions, note: secret excluded} - {op: retrieve, method: GET, path: "/api/v1/webhook-subscriptions/{id}"} - {op: update, method: PATCH, path: "/api/v1/webhook-subscriptions/{id}", note: modify url, events, version, or active status} - {op: delete, method: DELETE, path: "/api/v1/webhook-subscriptions/{id}"} event_filtering: field: events semantics: exact-string match; omit events or send [] to subscribe to all events signature_verification: algorithm: HMAC-SHA256 signing_string: "." secret: per-subscription secret (shown once at creation) headers: - name: x-webhook-signature format: "v1,," note: legacy - name: x-webhook-signature format: "t=,v1=" note: modern window_seconds: 300 implementation_notes: - capture raw bytes before JSON parsing - verify against exact transmitted body delivery_behavior: '2xx': marked delivered '4xx': not retried '5xx_or_unreachable': up to 3 attempts with exponential backoff dev_target: 'https://dev-inbox stored locally without an outbound POST' multiple_subscriptions: each receives independent delivery attempts replay: op: POST /api/v1/events/{id}/replay target_one: add ?subscription_id=... to target a single subscription