🪝WebhookToolkit
Twilio

Tester un webhook Twilio en local

Valider un handler Twilio (SMS ou appel entrant) sans envoyer de vrais messages payants : c'est possible. Génère une requête Twilio signée (X-Twilio-Signature, HMAC-SHA1) au format form-urlencoded, édite les paramètres (From, To, Body) et envoie-la à ton serveur local.

🔒 Twilio est réservé au plan Pro — Débloquer
Génère la signature pour voir les headers, le body et la commande cURL prête à coller.

Vérifier la signature côté serveur

handler.js (Node)
const twilio = require('twilio');
const valid = twilio.validateRequest(
  process.env.TWILIO_AUTH_TOKEN,
  req.headers['x-twilio-signature'],
  fullUrl,            // doit correspondre à l'URL cible utilisée ci-dessus
  req.body            // paramètres POST
);

Pour recevoir un vrai webhook Twilio sur ta machine, pointe le numéro vers ton tunnel Relay.

Questions fréquentes

Comment tester un SMS Twilio entrant en local ?

Choisis l'event 'Incoming SMS', renseigne ton Auth Token et l'URL exacte de ton handler (la signature Twilio dépend de l'URL), puis envoie. Le header X-Twilio-Signature est calculé en HMAC-SHA1 sur l'URL + paramètres triés, comme Twilio le fait.

Pourquoi dois-je fournir l'URL cible ?

La signature Twilio inclut l'URL complète du webhook dans le calcul HMAC. Sans la bonne URL, la signature ne sera pas valide côté serveur. C'est pourquoi le champ URL cible est obligatoire pour Twilio.

Le format est-il bien form-urlencoded ?

Oui. Contrairement à Stripe ou GitHub (JSON), Twilio envoie du application/x-www-form-urlencoded. Le générateur produit le bon Content-Type et encode les paramètres correctement.

Twilio est-il inclus dans le plan gratuit ?

Twilio fait partie des presets premium, disponibles avec le plan Pro à 14,90 €/mois.

Tester un webhook Twilio en local — X-Twilio-Signature valide · Webhook Toolkit