Aller au contenu

Intégration Webhook

Avec les webhooks, vous pouvez informer de manière proactive n'importe quel système des prochaines dates de collecte – sans interrogation. müll.io envoie un HTTP POST à votre URL dès qu'une collecte est due dans le nombre de jours configuré.

Les webhooks peuvent être créés et supprimés directement via l'API. Cas d'utilisation : automatisations n8n / Make, bots Discord ou Slack, messages ntfy.sh, systèmes d'automatisation de la maison ou applications personnalisées.


1. Créer une clé API

Pour créer des webhooks, vous avez d'abord besoin d'une clé API. Enregistrez votre adresse e-mail et vous recevrez votre clé par e-mail.

Obtenir une clé API gratuite


2. Créer un webhook

Envoyez une requête POST à /api/webhook avec votre clé API dans l'en-tête. L'adresse est transmise directement dans le corps de la requête.

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"
  }'

La réponse contient l'id et le secret du webhook :

{
  "id": "018f1e2a-3b4c-7d5e-8f9a-0b1c2d3e4f56",
  "url": "https://mein-server.example/webhook",
  "secret": "a3f8b1c2d4e5...",
  "daysBeforeCollection": 1,
  "active": true
}
Le secret n'est retourné qu'une seule fois – lors de la création du webhook. Stockez-le en sécurité, vous en avez besoin pour la vérification de signature.

3. Payload & vérification de signature

müll.io envoie quotidiennement à 18h00 un POST à tous les webhooks actifs lorsqu'une collecte est due dans le nombre de jours configuré :

{
  "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" }
  ]
}

Chaque requête contient l'en-tête X-Muell-Signature: sha256=<hmac>. Vérification en 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. Supprimer le webhook

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

En cas de succès, le serveur répond avec HTTP 204 (sans corps).


← Aperçu des intégrations  ·  Documentation API complète (ouvre dans un nouvel onglet)