curl --request POST \
--url https://api.example.com/sms \
--header 'ApiKey: <apikey>' \
--header 'Content-Type: application/json' \
--header 'Environment: <environment>' \
--header 'MerchantId: <merchantid>' \
--data '
{
"destinations": "[\"+3300000000\",\"+330000001\"]",
"message": "my message",
"senderName": "my company",
"webhookUrl": "https://my.webhook.target"
}
'import requests
url = "https://api.example.com/sms"
payload = {
"destinations": "[\"+3300000000\",\"+330000001\"]",
"message": "my message",
"senderName": "my company",
"webhookUrl": "https://my.webhook.target"
}
headers = {
"ApiKey": "<apikey>",
"MerchantId": "<merchantid>",
"Environment": "<environment>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {
ApiKey: '<apikey>',
MerchantId: '<merchantid>',
Environment: '<environment>',
'Content-Type': 'application/json'
},
body: JSON.stringify({
destinations: '["+3300000000","+330000001"]',
message: 'my message',
senderName: 'my company',
webhookUrl: 'https://my.webhook.target'
})
};
fetch('https://api.example.com/sms', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://api.example.com/sms",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => json_encode([
'destinations' => '["+3300000000","+330000001"]',
'message' => 'my message',
'senderName' => 'my company',
'webhookUrl' => 'https://my.webhook.target'
]),
CURLOPT_HTTPHEADER => [
"ApiKey: <apikey>",
"Content-Type: application/json",
"Environment: <environment>",
"MerchantId: <merchantid>"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url := "https://api.example.com/sms"
payload := strings.NewReader("{\n \"destinations\": \"[\\\"+3300000000\\\",\\\"+330000001\\\"]\",\n \"message\": \"my message\",\n \"senderName\": \"my company\",\n \"webhookUrl\": \"https://my.webhook.target\"\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("ApiKey", "<apikey>")
req.Header.Add("MerchantId", "<merchantid>")
req.Header.Add("Environment", "<environment>")
req.Header.Add("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.post("https://api.example.com/sms")
.header("ApiKey", "<apikey>")
.header("MerchantId", "<merchantid>")
.header("Environment", "<environment>")
.header("Content-Type", "application/json")
.body("{\n \"destinations\": \"[\\\"+3300000000\\\",\\\"+330000001\\\"]\",\n \"message\": \"my message\",\n \"senderName\": \"my company\",\n \"webhookUrl\": \"https://my.webhook.target\"\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.example.com/sms")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["ApiKey"] = '<apikey>'
request["MerchantId"] = '<merchantid>'
request["Environment"] = '<environment>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"destinations\": \"[\\\"+3300000000\\\",\\\"+330000001\\\"]\",\n \"message\": \"my message\",\n \"senderName\": \"my company\",\n \"webhookUrl\": \"https://my.webhook.target\"\n}"
response = http.request(request)
puts response.read_body[
{
"id": "sms_QIVmCKgbOAcXm4BbVt15H",
"senderId": "1",
"senderName": "my_company",
"destination": "+33600000000",
"smsCount": "7",
"message": "My message",
"status": "received",
"createdAt": "2021-08-19 11:00:31.225+00",
"sentAt": "2021-08-19 11:00:31.229+00",
"receivedAt": "2021-08-19 11:00:32.225+00",
"failureCause": "{\"FailureCause\": \"not_delivered\",\n \"message\":\"Le message a été envoyé mais n'a pas pu être délivré.\"\n }"
}
]{
"status": 400,
"error": {
"statusCode": 400,
"message": [
"destination.provider must be a string"
],
"error": "Bad Request"
}
}{
"status": 401,
"error": {
"type": "authorization_error",
"code": "wrong_credentials",
"message": "L'ID marchand et/ou la clé d'API sont incorrects."
}
}{
"type": "internal_error",
"code": [
"internal_error",
"wrong_credentials",
"not_granted",
"live_mode_not_granted",
"invalid_sandbox_msisdn",
"invalid_url",
"orange_invalid_url",
"wrong_provider",
"override_business_name",
"do_not_override_business_name"
],
"message": "An error occurred on our system. Please try again later."
}Send Sms
Send Sms to different destinations.
curl --request POST \
--url https://api.example.com/sms \
--header 'ApiKey: <apikey>' \
--header 'Content-Type: application/json' \
--header 'Environment: <environment>' \
--header 'MerchantId: <merchantid>' \
--data '
{
"destinations": "[\"+3300000000\",\"+330000001\"]",
"message": "my message",
"senderName": "my company",
"webhookUrl": "https://my.webhook.target"
}
'import requests
url = "https://api.example.com/sms"
payload = {
"destinations": "[\"+3300000000\",\"+330000001\"]",
"message": "my message",
"senderName": "my company",
"webhookUrl": "https://my.webhook.target"
}
headers = {
"ApiKey": "<apikey>",
"MerchantId": "<merchantid>",
"Environment": "<environment>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {
ApiKey: '<apikey>',
MerchantId: '<merchantid>',
Environment: '<environment>',
'Content-Type': 'application/json'
},
body: JSON.stringify({
destinations: '["+3300000000","+330000001"]',
message: 'my message',
senderName: 'my company',
webhookUrl: 'https://my.webhook.target'
})
};
fetch('https://api.example.com/sms', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://api.example.com/sms",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => json_encode([
'destinations' => '["+3300000000","+330000001"]',
'message' => 'my message',
'senderName' => 'my company',
'webhookUrl' => 'https://my.webhook.target'
]),
CURLOPT_HTTPHEADER => [
"ApiKey: <apikey>",
"Content-Type: application/json",
"Environment: <environment>",
"MerchantId: <merchantid>"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url := "https://api.example.com/sms"
payload := strings.NewReader("{\n \"destinations\": \"[\\\"+3300000000\\\",\\\"+330000001\\\"]\",\n \"message\": \"my message\",\n \"senderName\": \"my company\",\n \"webhookUrl\": \"https://my.webhook.target\"\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("ApiKey", "<apikey>")
req.Header.Add("MerchantId", "<merchantid>")
req.Header.Add("Environment", "<environment>")
req.Header.Add("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.post("https://api.example.com/sms")
.header("ApiKey", "<apikey>")
.header("MerchantId", "<merchantid>")
.header("Environment", "<environment>")
.header("Content-Type", "application/json")
.body("{\n \"destinations\": \"[\\\"+3300000000\\\",\\\"+330000001\\\"]\",\n \"message\": \"my message\",\n \"senderName\": \"my company\",\n \"webhookUrl\": \"https://my.webhook.target\"\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.example.com/sms")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["ApiKey"] = '<apikey>'
request["MerchantId"] = '<merchantid>'
request["Environment"] = '<environment>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"destinations\": \"[\\\"+3300000000\\\",\\\"+330000001\\\"]\",\n \"message\": \"my message\",\n \"senderName\": \"my company\",\n \"webhookUrl\": \"https://my.webhook.target\"\n}"
response = http.request(request)
puts response.read_body[
{
"id": "sms_QIVmCKgbOAcXm4BbVt15H",
"senderId": "1",
"senderName": "my_company",
"destination": "+33600000000",
"smsCount": "7",
"message": "My message",
"status": "received",
"createdAt": "2021-08-19 11:00:31.225+00",
"sentAt": "2021-08-19 11:00:31.229+00",
"receivedAt": "2021-08-19 11:00:32.225+00",
"failureCause": "{\"FailureCause\": \"not_delivered\",\n \"message\":\"Le message a été envoyé mais n'a pas pu être délivré.\"\n }"
}
]{
"status": 400,
"error": {
"statusCode": 400,
"message": [
"destination.provider must be a string"
],
"error": "Bad Request"
}
}{
"status": 401,
"error": {
"type": "authorization_error",
"code": "wrong_credentials",
"message": "L'ID marchand et/ou la clé d'API sont incorrects."
}
}{
"type": "internal_error",
"code": [
"internal_error",
"wrong_credentials",
"not_granted",
"live_mode_not_granted",
"invalid_sandbox_msisdn",
"invalid_url",
"orange_invalid_url",
"wrong_provider",
"override_business_name",
"do_not_override_business_name"
],
"message": "An error occurred on our system. Please try again later."
}Headers
Your api key. To create a key, please get into our dashboard. If you don't have access to it, please reach the Support team.
Your merchant ID. This information is available in our dashboard. If you don't have access to it, please reach the Support team.
Allow you to choose between the sandbox mode to perform some tests or the live mode for real world transactions.
live, sandbox Body
Array of destinations number with country code (+44...) or in international format (0044 ...)
"[\"+3300000000\",\"+330000001\"]"
Message content
"my message"
Merchant name
"my company"
Webhook Url
"https://my.webhook.target"
Response
unique identifier for the sms.
"sms_QIVmCKgbOAcXm4BbVt15H"
Identifier of the merchant that send the sms
"1"
name of the merchant that send the sms
"my_company"
Number of the recipient with country code (+44...) or in international format (0044 ...)
"+33600000000"
Number of Sms sent , depending on the message length (1 sms per 160 character)
"7"
Message content
"My message"
Status of the sms
"received"
Datetime in UTC timezone at which the sms was created. Follows theDatetime ISO.
"2021-08-19 11:00:31.225+00"
Datetime in UTC timezone at which the sms was sent. Follows theDatetime ISO.
"2021-08-19 11:00:31.229+00"
Datetime in UTC timezone at which the sms was received. Follows theDatetime ISO.
"2021-08-19 11:00:32.225+00"
Object describing the failure
"{\"FailureCause\": \"not_delivered\",\n \"message\":\"Le message a été envoyé mais n'a pas pu être délivré.\"\n }"
