Smstools

Webhooks

Recevez des rappels en temps réel sur les mises à jour dans Smstools.

Qu'est-ce que les webhooks ?

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.

Qu'est-ce que les webhooks ?

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

Codes de détails du rapport de livraison 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.

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": "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 : message entrant

								[
  {
	"webhook_id": "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": "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 : rapport de confirmation de lecture

								[
  {
	"webhook_id": "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 : Ajouter un contact

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