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