Smstools

Webhooks

Receive realtime callbacks about updates in Smstools.

What are webhooks?

What are webhooks?

Webhooks are an extension of an API, but instead of your code requesting data from Smstools, Smstools sends data to you. The data arrives in a web request to your application. Webhooks are also used to notify your application of events such as an incoming call or message. Since the Smstools servers need to be able to send data to your application via webhooks, you need to set up a webserver to receive the incoming HTTP requests. You also need to specify the URL of each webhook on your webserver so that data can be sent to each one.

What are webhooks?

Overview available webhooks

Type Description
delivery_report Delivery report after each sent message. Sometimes there can be 2 webhooks: first a 'submitted' status and later a 'delivered' or 'not delivered' status. Sometimes there are additional details available when the message was not delivered.
read_report Read confirmation after the message is read. A read confirmation is only available for Social Messaging or by using the 'Ask for a read report' link.
inbox_message Incoming message. Only available if you are using Social Messaging or a virtual number.

Delivery report codes

Delivery report detail codes Status Explanation
0 SUBMITTED This message was delivered with the operator but we did not receive any delivery report.
1 DELIVERED This message is delivered successfully.
2 NOT DELIVERED This message was not delivered. Possible reason: receiver is outside the range of the network, network problems, receiver in foreign country.
3 BUFFERED This message is delivered with the operator but not delivered with the receiver.
4 REJECTED This message is refused by the operator.
5 REJECTED Extended info below!
9 UNKNOWN There are no delivery reports available for this message.

Delivery report detail codes

Status Explanation
10 Receiver number is invalid or unknown
11 Receiver is temporarily outside the range of the network operator
12 Phone related problem.
13 Operator network problem
14 Message expired - reason unknown
15 Receiver is listed on a blacklist
16 Message content problem
17 Receiver cannot be settled
18 Operator refused this due to spam
19 Subscriber cannot receive premium messages (blocked by operator)

Delivery report detail codes on response code 5

Status Explanation
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

Example: delivery report

								[
	{
		"webhook_id": "svt1jtrmekgb67ratwa31ptupc",
		"webhook_type": "delivery_report",
		"username": "myusername",
		"message": {
			"messageid": "e1qk89exbzgf6fzfunceym2sd67h88",
			"datetime": "2019-01-01 00:00:00",
			"content": "here comes your message body",
			"sender": "yoursender",
			"receiver": "32470123456",
			"reference": "yourref",
			"delivery_code": "1",                                       [Possible values: 0,1,2,3,4,9]
			"delivery_status": "delivered"                              [code explanation]
			"delivery_code_detail": "10",                               [delivery code with additional details]
			"delivery_code_detail_description": "Unknown Subscriber"    [detailed explanation]
		}
	}
]

Example: incoming message

								[
	{
		"webhook_id": "xvt1jtrrekgb67ratwa31ptuzp",
		"webhook_type": "inbox_message",
		"username": "myusername",
		"message": {
			"id": "12345678",
			"date": "2019-01-01 00:00:00",
			"sender": "sendernumber",
			"receiver": "12345678",
			"content": "message content",
			"type": "sms"                       [Possible values: sms,whatsapp]
		}
		"isreply": {							[The isreply content will only be added when the message was replied to another message]
			"reply": true,						
			"orig_message_content": "original message content",
			"orig_messageid": "985zvqipp73csuuha2079fbshx",
			"orig_messagedate": "2019-01-01 00:00:00",
			"orig_sender": "32471123456",
			"orig_receiver": "12345678",
			"orig_reference": ""
		}
	}
]

Example: read confirmation report

								[
	{
		"webhook_id": "xvt1jtrrekgb67ratwa31ptuzp",
		"webhook_type": "read_report",
		"username": "myusername",
		"message": {
			"messageid": "e1qk89exbzgf6fzfunceym2sd67h88",
			"datetime": "2019-01-01 00:00:00",
			"content": "here comes your message body",
			"sender": "yoursender",
			"receiver": "32470123456",
			"reference": "yourref",
			"delivery_code": "1",
			"delivery_status": "delivered"
			"read_status": "message_read",
			"read_datetime": "2019-01-01 00:01:00"
		}
	}
]