Webhooks en temps réel — rapports de livraison, réponses, boîte de réception, opt-outs et plus.

Qu'est-ce que les webhooks ?

Les webhooks sont une extension d'une API, mais au lieu que votre code demande des données à Smstools, Smstools vous envoie des données. Les données arrivent dans une requête web à votre application. Les webhooks sont également utilisés pour notifier votre application d'événements tels qu'un appel ou un message entrant. Comme les serveurs Smstools doivent pouvoir envoyer des données à votre application via des webhooks, vous devez configurer un serveur web pour recevoir les requêtes HTTP entrantes. Vous devez également spécifier l'URL de chaque webhook sur votre serveur web afin que les données puissent être envoyées à chacun.

  • Livraison en temps réel
  • Endpoint sécurisé
POST POST → votre endpoint
[  {    "webhook_id": "wh_a9b56720-7adc-4c78-a04d-62521d1d3b09",    "webhook_type": "delivery_report",    "username": "myusername",    "timezone": "Europe/Brussels",    "message": {      "messageid": "e1qk89exbzgf6fzfunceym2sd67h88",      "datetime": "2026-01-01 00:00:00",      "datetime_utc": "2026-01-01 00:00:00",      "content": "here comes your message body",      "sender": "yoursender",      "receiver": "32470123456",      "reference": "yourref",      "delivery_code": "1",      "delivery_status": "delivered",      "delivery_status_datetime": "2026-01-01 00:00:00",      "delivery_code_detail": "10",      "delivery_code_detail_description": "Unknown Subscriber"    }  }]
Exemple de payload
Support belge
Conforme RGPD
Serveurs UE · 99,97% uptime
Push en temps réel

Type Description
delivery_report Rapport de livraison après chaque message envoyé. Parfois, il peut y avoir 2 webhooks : d'abord un statut 'soumis' et ensuite un statut 'livré' ou 'non livré'. Parfois, des détails supplémentaires sont disponibles lorsque le message n'a pas été livré.
read_report Confirmation de lecture après la lecture du message. Une confirmation de lecture n'est disponible que pour la Messagerie Sociale ou en utilisant le lien 'Demander un rapport de lecture'.
inbox_message Message entrant. Disponible uniquement si vous utilisez la Messagerie Sociale ou un numéro virtuel.
call_forwarding Renvoi d’appel. Disponible uniquement si vous utilisez la messagerie sociale ou un numéro virtuel.
add_contact 1 contact a été ajouté via l’API ou le logiciel
delete_contact 1 contact a été supprimé via l’API ou le logiciel
add_group Un groupe a été ajouté via l’API ou le logiciel
delete_group Un groupe a été supprimé via l’API ou le logiciel
add_optout Un contact a été ajouté à la liste de désinscription via l’API ou le logiciel
delete_optout Un contact a été retiré de la liste de désinscription via l’API ou le logiciel
funds_purchased Le compte a effectué un nouvel achat de crédits
insufficient_funds Le compte ne dispose plus de crédits disponibles
email2sms_received Email2Sms a reçu un e-mail et a tenté de l’envoyer par SMS

Code Statut Explication
0 SUBMITTED Ce message a été livré avec l'opérateur mais nous n'avons pas reçu de rapport de livraison.
1 DELIVERED Ce message a été livré avec succès.
2 NOT DELIVERED Ce message n'a pas été livré. Raison possible : le destinataire est hors de portée du réseau, problèmes réseau, destinataire à l'étranger.
3 BUFFERED Ce message a été livré avec l'opérateur mais pas avec le destinataire.
4 REJECTED Ce message est refusé par l'opérateur.
5 REJECTED Informations étendues ci-dessous !
9 UNKNOWN Il n'y a pas de rapports de livraison disponibles pour ce message.

Ci-dessous un aperçu des codes d'erreur possibles que vous pourriez recevoir.

Statut Explication
10 Le numéro du destinataire est invalide ou inconnu
11 Le destinataire est temporairement hors de portée de l'opérateur de réseau
12 Problème lié au téléphone.
13 Problème de réseau de l'opérateur
14 Message expiré - raison inconnue
15 Le destinataire est répertorié sur une liste noire
16 Problème de contenu du message
17 Le destinataire ne peut pas être réglé
18 L'opérateur a refusé cela en raison de spam
19 L'abonné ne peut pas recevoir de messages premium (bloqué par l'opérateur)

Statut Explication
2000 INSUFFICIENT_FUNDS
2001 TOO_LONG
2002 TOO_SHORT
2003 TIMEOUT
2004 GATEWAY_ISSUES
2005 INVALID_SENDER
2006 INVALID_NUMBER
4000 UNKNOWN
4001 EMPTY_MESSAGE
4002 EMPTY_CLIENT
4003 LOCKED
4004 BLOCKED
4005 JOB_FAILED
4006 DUPLICATE
4007 INVALID_CONTENT

Exemple : rapport de livraison

								[
  {
	"webhook_id": "wh_a9b56720-7adc-4c78-a04d-62521d1d3b09",
	"webhook_type": "delivery_report",
	"username": "myusername",
	"timezone": "Europe/Brussels",
	"message": {
	  "messageid": "e1qk89exbzgf6fzfunceym2sd67h88",
	  "datetime": "2019-01-01 00:00:00",
	  "datetime_utc": "2019-01-01 00:00:00",
	  "content": "here comes your message body",
	  "sender": "yoursender",
	  "receiver": "32470123456",
	  "reference": "yourref",
	  "delivery_code": "1",
	  "delivery_status": "delivered",
	  "delivery_status_datetime": "2019-01-01 00:00:00",
	  "delivery_code_detail": "10",
	  "delivery_code_detail_description": "Unknown Subscriber"
	}
  }
]

Exemple : rapport de confirmation de lecture

								[
  {
	"webhook_id": "wh_a9b56720-7adc-4c78-a04d-62521d1d3b09",
	"webhook_type": "read_report",
	"username": "myusername",
	"timezone": "Europe/Brussels",
	"message": {
	  "messageid": "e1qk89exbzgf6fzfunceym2sd67h88",
	  "datetime": "2019-01-01 00:00:00",
	  "datetime_utc": "2019-01-01 00:00:00",
	  "content": "here comes your message body",
	  "sender": "yoursender",
	  "receiver": "32470123456",
	  "reference": "yourref",
	  "delivery_code": "1",
	  "delivery_status": "delivered",
	  "delivery_status_datetime": "2019-01-01 00:00:00",
	  "read_status": "message_read",
	  "read_datetime": "2019-01-01 00:01:00"
	}
  }
]

Exemple : message entrant

								[
  {
	"webhook_id": "wh_a9b56720-7adc-4c78-a04d-62521d1d3b09",
	"webhook_type": "inbox_message",
	"username": "myusername",
	"timezone": "Europe/Brussels",
	"message": {
	  "id": "12345678",
	  "date": "2019-01-01 00:00:00",
	  "date_utc": "2019-01-01 00:00:00",
	  "sender": "sendernumber",
	  "receiver": "12345678",
	  "content": "message content",
	  "type": "sms",
	  "file": null,
	  "processed": 0
	},
	"isreply": {
	  "reply": true,
	  "orig_message_content": "original message content",
	  "orig_messageid": "985zvqipp73csuuha2079fbshx",
	  "orig_messagedate": "2019-01-01 00:00:00",
	  "orig_messagedate_utc": "2019-01-01 00:00:00",
	  "orig_sender": "32471123456",
	  "orig_receiver": "12345678",
	  "orig_reference": ""
	}
  }
]

Exemple : renvoi d’appel

								[
  {
	"webhook_id": "wh_a9b56720-7adc-4c78-a04d-62521d1d3b09",
	"webhook_type": "call_forwarding",
	"username": "myusername",
	"timezone": "Europe/Brussels",
	"message": {
	  "id": "12345678",
	  "date": "2019-01-01 00:00:00",
	  "date_utc": "2019-01-01 00:00:00",
	  "sender": "sendernumber",
	  "receiver": "12345678",
	  "content": "Incoming VOIP Call - Forwarded to XXXXX",
	  "content_type": "complete",
	  "type": "call"
	}
  }
]

Exemple : Ajouter un contact

								[
  {
	"webhook_id": "wh_a9b56720-7adc-4c78-a04d-62521d1d3b09",
	"webhook_type": "add_contact",
	"username": "myusername",
	"timezone": "Europe/Brussels",
	"contact": {
	  "action": "add",
	  "groupid": "12345",
	  "groupname": "Groupname",
	  "receiver": "32498123456",
	  "firstname": "John",
	  "lastname": "Doe",
	  "Custom1": null,
	  "Custom2": null,
	  "Custom3": null,
	  "Custom4": null,
	  "Custom5": null,
	  "Custom6": null,
	  "Custom7": null,
	  "Custom8": null,
	  "unsubscribed": null,
	  "unsubscribe_date": null
	}
  }
]

Exemple : Supprimer un contact

								[
  {
	"webhook_id": "wh_a9b56720-7adc-4c78-a04d-62521d1d3b09",
	"webhook_type": "delete_contact",
	"username": "myusername",
	"timezone": "Europe/Brussels",
	"contact": {
	  "action": "delete",
	  "groupid": "12345",
	  "groupname": "Groupname",
	  "receiver": "32498123456",
	  "firstname": "John",
	  "lastname": "Doe",
	  "Custom1": null,
	  "Custom2": null,
	  "Custom3": null,
	  "Custom4": null,
	  "Custom5": null,
	  "Custom6": null,
	  "Custom7": null,
	  "Custom8": null,
	  "unsubscribed": null,
	  "unsubscribe_date": null
	}
  }
]

Exemple : Ajouter un groupe

								[
  {
	"webhook_id": "wh_a9b56720-7adc-4c78-a04d-62521d1d3b09",
	"webhook_type": "add_group",
	"username": "myusername",
	"timezone": "Europe/Brussels",
	"group": {
	  "action": "add",
	  "groupid": "12345",
	  "groupname": "Groupname"
	}
  }
]

Exemple : Supprimer un groupe

								[
  {
	"webhook_id": "wh_a9b56720-7adc-4c78-a04d-62521d1d3b09",
	"webhook_type": "delete_group",
	"username": "myusername",
	"timezone": "Europe/Brussels",
	"message": {
	  "id": "12345678",
	  "date": "2019-01-01 00:00:00",
	  "content": "Group deleted",
	  "type": "group"
	}
  }
]

Exemple : Ajouter un désabonnement

								[
  {
	"webhook_id": "wh_a9b56720-7adc-4c78-a04d-62521d1d3b09",
	"webhook_type": "add_optout",
	"username": "myusername",
	"timezone": "Europe/Brussels",
	"optout": {
	  "action": "add",
	  "id": "1234",
	  "number": "32498123456",
	  "memo": "Sample opt-out",
	  "date": "2025-08-04",
	  "date_utc": "2025-08-04"
	}
  }
]

Exemple : Supprimer un désabonnement

								[
  {
	"webhook_id": "wh_a9b56720-7adc-4c78-a04d-62521d1d3b09",
	"webhook_type": "delete_optout",
	"username": "myusername",
	"timezone": "Europe/Brussels",
	"optout": {
	  "action": "delete",
	  "number": "32498123456",
	  "date": "2025-08-04",
	  "date_utc": "2025-08-04"
	}
  }
]

Exemple : Crédits achetés

								[
  {
	"webhook_id": "wh_a9b56720-7adc-4c78-a04d-62521d1d3b09",
	"webhook_type": "funds_purchased",
	"username": "myusername",
	"timezone": "Europe/Brussels",
	"funds": {
	  "order_id": "1234",
	  "item_amount": 1,
	  "currency": "eur",
	  "total_price": 10,
	  "price_excl": 0,
	  "purchase_type": "credits",
	  "payment_mode": "online",
	  "reference": "Reference",
	  "date": "2025-08-04 14:33:45",
	  "date_utc": "2025-08-04 12:33:45"
	}
  }
]

Exemple : Crédits insuffisants

								[
  {
	"webhook_id": "wh_a9b56720-7adc-4c78-a04d-62521d1d3b09",
	"webhook_type": "insufficient_funds",
	"username": "myusername",
	"timezone": "Europe/Brussels",
	"funds": {
	  "item_amount": "0.000",
	  "item_type": "balance",
	  "message": "Insufficient funds",
	  "date": "2025-08-04 14:34:22",
	  "date_utc": "2025-08-04 12:34:22"
	}
  }
]

Exemple : Déclencheur Email2SMS

								[
  {
	"webhook_id": "wh_a9b56720-7adc-4c78-a04d-62521d1d3b09",
	"webhook_type": "email2sms_received",
	"username": "myusername",
	"timezone": "Europe/Brussels",
	"email2sms": {
	  "sender": "[email protected]",
	  "receiver": {
		"group": false,
		"receiver": "32498123456"
	  },
	  "result": "Success",
	  "status": "Message Sent",
	  "email_message_id": "abc123def456",
	  "sms_message_id": "985zvqipp73csuuha2079fbshx",
	  "date": "2025-01-01 00:00:00",
	  "date_utc": "2025-01-01 00:00:00"
	}
  }
]
Découvrez notre plateforme SMS aujourd'hui !

Envoyer des SMS n'a jamais été aussi simple.