A webhook sends a message to another system every time a WTN is created in WasteBolt. Use it to start an n8n or Zapier workflow, add a row to a spreadsheet, post in Slack, or update your own software, without anyone copying details across.

Open Workflows → Webhooks. Webhooks are in Beta. Only the account owner (primary admin) can change the settings. Other admins see a note that it’s managed by the account owner.


How It Works

  • One webhook URL per account.
  • One event: wtn_created. Each time a WTN is created, by anyone and by any route (Gate, imports, Hot Picks, Create WTN, automation), WasteBolt sends a JSON message to your URL.
  • Messages are sent in batches every few minutes, so expect a short delay after the WTN is created.
  • If you set a signing secret, every message is signed so your system can check it really came from WasteBolt.

Setting It Up

  1. Turn on Enabled.
  2. Paste your Webhook URL, for example the webhook trigger URL from n8n or Zapier.
  3. Optionally, set a Signing Secret: click Generate a new secret, then copy it into your receiving system.
  4. Click Save Settings.
  5. Click Send Test Webhook to check it arrives.

URL rules

The URL must be a public https:// address on port 443 or 8443, with no username or password in it. WasteBolt doesn’t follow redirects, and waits up to 10 seconds for a reply.

Pausing

Turn Enabled off to stop sending without losing your settings.


What’s Sent

Each message is a POST with a JSON body like this:

{
  "event": "wtn_created",
  "sent_at": "2026-09-25T10:00:00.000Z",
  "wtn": { "note_number": "...", "status": "...", "dwt_status": "...", "created_at": "..." },
  "producer": { "name": "...", "address": "...", "postcode": "..." },
  "carrier": { "name": "...", "address": "...", "postcode": "..." },
  "consignee": { "name": "...", "address": "...", "postcode": "..." },
  "waste": { "name": "...", "ewc_code": "...", "is_hazardous": false },
  "transfer": { "date": "...", "gross_weight": 0, "tare_weight": 0, "net_weight": 0, "vehicle_reg": "..." }
}

It contains just what an automation needs, not every field on the WTN. Weights are in kilograms.

A test message has the same shape, with example details, a note number of TEST-0001, and "test": true, so your workflow can tell it apart.


Verifying the Signature

With a signing secret set, each request carries the header:

X-WasteBolt-Signature: sha256=<signature>

The signature is an HMAC-SHA256 of the raw request body, using your secret as the key, written as hexadecimal. To check a message:

  1. Take the raw body exactly as received, before parsing it.
  2. Work out the HMAC-SHA256 of it with your secret.
  3. Compare it with the value after sha256= in the header. If they match, the message came from WasteBolt and wasn’t changed.

Tip: Generating a new secret means your receiving system needs the new one too, or it will reject messages.


Recent Deliveries

Recent Deliveries lists what’s been sent, with each one marked Sent or Failed, along with the WTN number, the HTTP status your server returned and any error.

A delivery fails if your URL doesn’t answer within 10 seconds, can’t be reached, or replies with an error. Failed deliveries aren’t retried automatically, so check Recent Deliveries if something didn’t arrive, fix the cause, and pick up any missed WTNs from Reports.


Frequently Asked Questions

Can I get a webhook when a WTN is submitted to Defra, or edited?

Not yet. The only event is wtn_created. To be emailed when WTNs are submitted, see Email Workflow and DWT Auto Submit.

Can I send to more than one URL?

There’s one URL per account. Point it at an n8n or Zapier workflow that passes the message on to everything else.

Is there an API?

Yes: see the developer API documentation.