1 Go
France multi-opérateurs
2,49 €par mois et par carte SIM active, HT
Commander 1 GoLes webhooks de consommation ThingSIM signalent une carte SIM à 80 % de son forfait, pour repérer un équipement défaillant avant sa mise en pause.
Un équipement qui consomme soudain beaucoup plus de données que d’habitude vous dit quelque chose : une caméra dont la zone de détection couvre désormais une route passante, un routeur qui a basculé sur le secours 4G et y est resté, une mise à jour de firmware bloquée en boucle, ou parfois un équipement compromis. Les webhooks ThingSIM préviennent vos propres systèmes en temps réel, pour que vous puissiez agir avant que la carte SIM atteigne son forfait et se mette en pause.
| Événement | Quand il est envoyé |
|---|---|
iot.sim.usage_threshold |
Une carte SIM dépasse 80 % de son forfait pour la période, puis 100 % |
iot.sim.allowance_reached |
Une carte SIM a utilisé tout son forfait et s’est mise en pause |
iot.sim.allowance_reset |
Une nouvelle période a commencé ; les cartes SIM en pause au plafond reprennent |
iot.sim.plan_changed |
Une carte SIM est passée à un autre forfait |
L’événement à 80 % est l’alerte précoce utile : il reste du temps pour examiner l’équipement, ou passer la carte SIM à un forfait supérieur, avant la mise en pause. Le catalogue des notifications liste tous les événements et leur contenu.
Les webhooks se créent dans le portail ou par l’API. Indiquez une URL HTTPS sur une adresse publique et les types d’événements souhaités :
curl -X POST "https://partners.netavo.com/api/v1/platform/webhooks" \
-H "Authorization: Bearer $THINGSIM_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"url": "https://example.com/thingsim/events",
"description": "Usage alerts",
"types": ["iot.sim.usage_threshold", "iot.sim.allowance_reached"]
}'Vous pouvez vous envoyer un événement de test avec POST /v1/platform/webhooks/{webhookId}/test pour vérifier le point de terminaison avant de compter dessus.
Chaque événement est un POST HTTPS de JSON vers votre URL. Répondez par n’importe quel code 2xx en moins de 10 secondes et faites le traitement ensuite ; toute autre réponse entraîne une nouvelle tentative. Chaque requête porte un en-tête Webhook-Signature avec un horodatage t et une signature v1 : le HMAC-SHA256 de l’horodatage, d’un point et du corps brut de la requête, calculé avec votre secret de signature. Vérifiez-le sur le corps exactement tel que reçu, avant de l’analyser :
import hmac, hashlib, time
def verify(raw_body: bytes, header: str, secret: str, tolerance: int = 300) -> bool:
parts = dict(p.strip().split("=", 1) for p in header.split(",") if "=" in p)
t, sig = parts.get("t"), parts.get("v1")
if not t or not sig or abs(time.time() - int(t)) > tolerance:
return False
signed = t.encode() + b"." + raw_body
expected = hmac.new(secret.encode(), signed, hashlib.sha256).hexdigest()
return hmac.compare_digest(expected, sig)La présentation pour les développeurs donne la même vérification en JavaScript et en C#, et explique la rotation du secret de signature.
Une réponse simple et efficace à une alerte à 80 % :
POST /v1/iot/sims/{iccid}/plan. Le passage au forfait supérieur s’applique immédiatement.POST /v1/iot/sims/{iccid}/pause, puis enquêtez. Voir sécuriser un équipement sur une IP publique.Si vous n’avez que quelques cartes SIM, les alertes de consommation du portail font le même travail sans code ; voir gérer un petit parc de cartes SIM.
Quand une carte SIM dépasse 80 % de son forfait de données pour la période, puis de nouveau à 100 %.
Les envois échoués sont retentés à intervalles croissants. Si un webhook échoue pendant environ une journée, il est désactivé, et vos autres webhooks reçoivent un événement platform.webhook.disabled.
Non. Les alertes de consommation se règlent dans le portail ; les webhooks servent à envoyer les mêmes événements à vos propres systèmes.
Itinérance sur Orange, Bouygues Telecom et Free : l’équipement utilise le réseau le plus fort là où il se trouve.
À propos de ce forfaitFrance multi-opérateurs
2,49 €par mois et par carte SIM active, HT
Commander 1 Go