If-Match makes a concurrent change safe.
Idempotency
Retry safety is handled for you. DropHub derives the key from a value you already send:
Keys are scoped to your merchant account, so two calls naming the same order are one submission.
Replay semantics
Bringing your own key
SendIdempotency-Key only if you want to control the replay window yourself. An explicit key always wins over the derived one.
ETags and If-Match
Your webhook carries a strong numeric entity tag matching^"[0-9]+"$, quotes included. It is the endpoint’s version in ETag form.
A conditional request is required for all three ways of changing it:
PATCH /v2/external/webhookDELETE /v2/external/webhookPOST /v2/external/webhook/secret-rotations
The two failure modes
Reading the current tag
TheETag comes back on the representation you read and on the response to a successful change — so a sequence of updates can use each response’s tag for the next call without an extra GET.