Webhook idempotency must include visibility state
Webhook idempotency must account for soft-deleted or hidden records, not only durable creation. If replay matches an operationally inactive record and emits an active acknowledgment, provider and operator views diverge.
Define completion as both structural completeness and operational eligibility. On replay, branch explicitly for hidden or cancelled records: reject or retry, restore visibility, or create a replacement according to product policy. Never silently reuse the active-record acknowledgment path.
This applies when hidden means inactive, not when it is only a harmless presentation preference. The correct branch is a product decision.