Voor de ontwikkelaars.

Ontwikkelaars kunnen onze SMS functie ea. makkelijk integreren in hun applicatie via onderstaande APIs.

Bericht versturen


Met onze SMS API kan je jouw eigen software verbinden met onze SMS gateway.

Testomgeving nodig? Je kan als nummer 3211111111 gebruiken om onze API te testen, zonder dat er effectief een SMS verzonden wordt.

Base URL:
POST: https://core.smsbox.be/api/v1/sendsms

Parameters:
Parameter Input Omschrijving
Required
(2 mogelijkheden)
apikey
POST parameter
X-Api-Key
request header
apikey (urlencoded)

X-Api-Key: apikey
SMSBOX apikey, deze apikey kan je aanmaken door in te loggen in je SMSBOX account.
Required
numbers 32496123456,32479123456 mobiele nummers gescheiden door een komma (countrycode+nummer)
Required
message uw bericht (urlencoded) max. 160 tekens, zie uitzonderingen
Optional
from alphanumeriek tot max. 11 tekens, numeriek 16 tekens Enkel van toepassing voor NIET BE bestemmelingen. BE = geen eigen afzender mogelijk.
Optional
longsms 0/1 longsms max. 459 tekens (opgelet : 1 sms-kost = 160 tekens). Zie uitzonderingen
Optional
noti https://www.domein.be/script.php doorsturen van afleverrapporten naar uw webserver via HTTP-POST met velden msgid,status. Zie de statuscodes in het tab Response
Optional
tts 0/1 Text To Speech (SMS to voice call)
Optional
ttslng 0 = NL (Nederlands), 1 = EN (Engels), 2 = FR (Frans) Text To Speech taal
Ik tel 160 tekens via notepad/word, maar er wordt een dubbele sms kost aangerekend? Sommige tekens tellen voor meerdere tekens in een sms bericht. Dit heeft te maken met GSM encoding. De volgende tekens tellen voor 2 tekens \r\n, [, \, ], ^, {, |, }, ~, €. Dit kan resulteren in een hogere sms-kost.
Name Name Name
Euro symbol \ Backslash } Right brace
[ Open bracket ^ Caret ~ Tilde
] Close bracket { Left brace | Vertical bar
Code Messsage Omschrijving
100[{"number":32412345678","msgid":123}]SMS verzonden, in message ontvangt u het nummer en msgid. Msgid is de referentie van het afleverrapport die naar noti wordt verstuurd.
01Sender not okAfzender NOK
04Apikey not allowedApiKey niet correct
05No prefixGeen prefix opgegeven
06No messageGeen bericht opgegeven
07Max char reachedlongsms=0, bericht max. 160 tekens
longsms=1, bericht max. 459 tekens
08No numberGeen GSM-nummer opgegeven
09No valid numberGeen geldig GSM-nummer
10Not enough creditsGeen genoeg credits meer
11Max 500 number allowed> 500 gsm-nummers opgegeven
13Sender too longAfzender te lang. max. 16 tekens voor numeriek, 11 tekens voor alphanumeriek
Status Omschrijving
10Sent
11Delivered
12Buffered
13Undelivered
14Expired
15Rejected
16Unknown
20Blacklist
01Error
Example PHP:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
<?php

header
("content-type: text/plain");

$headerauth true// True/False chose for header authentication (more secure) or submit apikey in query

$apikey ""// Your smsbox api token
$numbers ""// 32496123456, multiple numbers are divided by a comma
$message "This is a test message from smsbox";

// SendSMS
print_r(sendsms($apikey$numbers$message));

function 
sendsms($apikey$numbers$message) {

    global 
$headerauth;

    
$data 'numbers='.urlencode($numbers).
    
'&message='.urlencode($message);

    if (!
$headerauth) { $data .= '&apikey='.urlencode($apikey); }

    
$response sendToHost($apikey"https://core.smsbox.be/api/v1/sendsms"$data$headerauth);

    return 
$response;

}

function 
sendToHost($apikey$url$data$headerauth true) {

    
$headers = array();

    if (
$headerauth) { $headers[] = "X-Api-Key: " $apikey; }

    
$headers[] = "Content-Type: application/x-www-form-urlencoded";

    
$ch curl_init();
    
curl_setopt($chCURLOPT_RETURNTRANSFERTRUE);
    
curl_setopt($chCURLOPT_URL$url);
    
curl_setopt($chCURLOPT_HTTPHEADER$headers);
    
curl_setopt($chCURLOPT_CUSTOMREQUEST"POST");
    
curl_setopt($chCURLOPT_POSTFIELDS$data);

    
curl_setopt($chCURLOPT_FORBID_REUSEtrue);
    
curl_setopt($chCURLOPT_CONNECTTIMEOUT5);
    
curl_setopt($chCURLOPT_TIMEOUT10);
    
curl_setopt($chCURLOPT_VERBOSE0);
    
curl_setopt($chCURLOPT_HEADER1); // Set to 0 to remove the headers from response

    
$response curl_exec($ch);

    return 
$response;

}

?>
Response:
1
2
3
4
5
6
7
8
9
10
HTTP/1.1  200  OK
Content-Type:  application/json

{
   "code":100,
   "message":[{
                           "number":"32498765432",
                           "msgid":15547355
                       }]
}
Example .NET: (required .NET Framework > 4.5)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
//on top of your .cs file
using System.Net.Http;
using Newtonsoft.Json.Linq;

//call this code inside your function
var response = await sendSMS("324xxxxxxxx","This is a test message from smsbox");

//parse JSON response
JObject json = JObject.Parse(response);
int code = (int)json.GetValue("code");
if (code == 100)
{
    // OK, message has been send
    // if necessary you can parse the message field to retrieve the number and msgid (= message ID)
    // this message ID will also be send to the "noti" variable, see documentation for more info
    JArray message = (JArray)json.GetValue("message");
    // Loop through the array
    // [{"number":324xxxxxxxx","msgid":123}]
}
else
{
    // Send message has failed, check documentation to get the description of the code.
}

private async Task<string> sendSMS(string number, string message)
{
    var token = "ENTER_YOUR_APIKEY";

    HttpClient client = new HttpClient();
    client.DefaultRequestHeaders.Add("X-Api-Key", token);

    var values = new Dictionary<string, string>
    {
        { "numbers", number },
        { "message", message },
    };

    var content = new FormUrlEncodedContent(values);
    var response = await client.PostAsync("https://core.smsbox.be/api/v1/sendsms", content);
    var responseString = await response.Content.ReadAsStringAsync();
    return responseString;
}