Gå til indhold

Webhook-integration

Med webhooks kan du proaktivt informere ethvert system om kommende afhentningsdatoer – uden polling. müll.io sender en HTTP POST til din URL, så snart en afhentning er forfalden inden for det konfigurerede antal dage.

Webhooks kan oprettes og slettes direkte via API'en. Anvendelsestilfælde: n8n/Make-automatiseringer, Discord- eller Slack-bots, ntfy.sh-beskeder, hjemmeautomatiseringssystemer eller brugerdefinerede applikationer.


1. Opret API-nøgle

For at oprette webhooks skal du først have en API-nøgle. Registrér din e-mailadresse, og du modtager din nøgle via e-mail.

Få gratis API-nøgle


2. Opret webhook

Send en POST-anmodning til /api/webhook med din API-nøgle i headeren. Adressen sendes direkte i anmodningens body.

curl -X POST https://müll.io/api/webhook \
  -H "Authorization: API-KEY <dein-api-key>" \
  -H "Content-Type: application/json" \
  -d '{
    "url": "https://mein-server.example/webhook",
    "daysBeforeCollection": 1,
    "street": "Musterstraße",
    "houseNumber": "1a",
    "zip": "12345",
    "city": "Musterstadt",
    "country": "DE"
  }'

Svaret indeholder id og secret for webhooken:

{
  "id": "018f1e2a-3b4c-7d5e-8f9a-0b1c2d3e4f56",
  "url": "https://mein-server.example/webhook",
  "secret": "a3f8b1c2d4e5...",
  "daysBeforeCollection": 1,
  "active": true
}
Secret'en returneres kun én gang – når webhooken oprettes. Gem den sikkert; du har brug for den til signaturverifikation.

3. Payload og signaturverifikation

müll.io sender dagligt en POST til alle aktive webhooks kl. 18:00, når en afhentning er forfalden inden for det konfigurerede antal dage:

{
  "event": "upcoming_collection",
  "sent_at": "2024-01-14T18:00:00+00:00",
  "days_until": 1,
  "address": {
    "street": "Musterstraße",
    "houseNumber": "1a",
    "zip": "12345",
    "city": "Musterstadt",
    "country": "DE"
  },
  "collections": [
    { "type": "Restmüll", "date": "2024-01-15" },
    { "type": "Papier",   "date": "2024-01-15" }
  ]
}

Hver anmodning indeholder headeren X-Muell-Signature: sha256=<hmac>. Verifikation i Node.js:

const crypto = require('crypto');

function verifySignature(body, secret, signatureHeader) {
  const expected = 'sha256=' + crypto
    .createHmac('sha256', secret)
    .update(body)
    .digest('hex');
  return crypto.timingSafeEqual(
    Buffer.from(expected),
    Buffer.from(signatureHeader)
  );
}

4. Slet webhook

curl -X DELETE https://müll.io/api/webhook/018f1e2a-3b4c-7d5e-8f9a-0b1c2d3e4f56 \
  -H "Authorization: API-KEY <dein-api-key>"

Ved succes svarer serveren med HTTP 204 (ingen body).


← Integrationsoversigt  ·  Fuld API-dokumentation (åbner i ny fane)