OptionalonOptionalonOptionalonOptionalonOptionalonOptionalonOptionalonOptionalonOptionalonOptionalonOptionalonOptionalonOptionalonOptionalonOptionalonOptionalonOptionalonOptionalonOptionalonOptionalonOptionalonOptionalonOptionalonOptionalonOptionalonOptionalonOptionalonOptionalonOptionalonOptionalonOptionalonOptionalwebhookReceiver-side deduplication of webhook payloads by idempotency_key.
AdCP webhooks use at-least-once delivery — publishers retry until they
see a 2xx, so the same event may arrive more than once. When configured,
the first delivery for a given (agent_id, idempotency_key) tuple
dispatches to handlers; subsequent deliveries are dropped and surface
as a webhook_duplicate activity.
Reuses IdempotencyBackend from @adcp/sdk/server — you can share
the same backend across request-side and webhook-side dedup, or use a
dedicated one. Scope is per-agent so keys from different senders are
independent, matching the spec's "scoped to authenticated sender
identity" rule.
If a payload arrives without idempotency_key (non-conforming sender,
or A2A transport which does not carry the field), dispatch proceeds
without dedup and a warning is logged.
OptionalttlSeconds?: numberRetention for dedup keys. Defaults to 86_400 (24h).
Optionalon
Configuration for async handler with typed callbacks