Sent to your URL when data changes (type dataset.changed; type test from the test endpoint)

Change events are queued and delivered by a job that runs every 15 minutes; the test endpoint delivers at once. Verify the ACD-Signature header: t=<unix seconds>,v1=<hex HMAC-SHA256 of t + '.' + raw body, keyed with your webhook secret>; reject events older than 5 minutes. Answer with a 2xx within 10 seconds. A 2xx, a 3xx (redirects are not followed) or a 4xx other than 429 ends the delivery (4xx answers are not retried); timeouts, network errors, 429 and 5xx are retried on the following runs, about every 15 minutes, up to 3 attempts in all, with the same event id (ACD-Event-Id), so receivers can de-duplicate. Up to 50 queued events are kept per key until delivered. VAT-history changes arrive under feature 'vat', tax-treaty changes under 'wht'.

postWebhookdatasetChanged

Headers

ACD-Signaturestring required

t=<unix seconds>,v1=<hex HMAC-SHA256>

ACD-Event'dataset.changed' | 'test' required
ACD-Event-Idstring required

Same as 'id' in the body; unchanged on retries

Payload

idstring required

Stable event id (evt_...; evt_test_... for tests), also in header ACD-Event-Id

type'dataset.changed' | 'test' required
createdstring date-time required
dataset_versionstring required
previous_versionstring

Not on test events

docsstring

Link to the webhook documentation (not on test events)

Response

Received

Changes

Webhooks have no change history: a webhook is keyed by its event name rather than a path and method, so no recorded change can name it.