Receive inbound message or DLR
curl --request POST \
--url https://example.com/callback \
--header 'Content-Type: application/x-www-form-urlencoded' \
--data 'ID=<string>' \
--data 'DLRID=<string>' \
--data 'SOURCEADDR=<string>' \
--data 'SOURCEADDRTON=<string>' \
--data 'SOURCEADDRNPI=<string>' \
--data 'DESTADDR=<string>' \
--data 'MESSAGE=<string>' \
--data 'STATUS=<string>' \
--data 'MSGTYPE=<string>' \
--data 'KEYWORD=<string>' \
--data 'CHARCODE=<string>' \
--data 'VP=<string>' \
--data 'CONCATSMSREF=<string>' \
--data 'CONCATSMSSEQ=<string>' \
--data 'CONCATSMSMAX=<string>'import requests
url = "https://example.com/callback"
payload = {
"ID": "<string>",
"DLRID": "<string>",
"SOURCEADDR": "<string>",
"SOURCEADDRTON": "<string>",
"SOURCEADDRNPI": "<string>",
"DESTADDR": "<string>",
"MESSAGE": "<string>",
"STATUS": "<string>",
"MSGTYPE": "<string>",
"KEYWORD": "<string>",
"CHARCODE": "<string>",
"VP": "<string>",
"CONCATSMSREF": "<string>",
"CONCATSMSSEQ": "<string>",
"CONCATSMSMAX": "<string>"
}
headers = {"Content-Type": "application/x-www-form-urlencoded"}
response = requests.post(url, data=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {'Content-Type': 'application/x-www-form-urlencoded'},
body: new URLSearchParams({
ID: '<string>',
DLRID: '<string>',
SOURCEADDR: '<string>',
SOURCEADDRTON: '<string>',
SOURCEADDRNPI: '<string>',
DESTADDR: '<string>',
MESSAGE: '<string>',
STATUS: '<string>',
MSGTYPE: '<string>',
KEYWORD: '<string>',
CHARCODE: '<string>',
VP: '<string>',
CONCATSMSREF: '<string>',
CONCATSMSSEQ: '<string>',
CONCATSMSMAX: '<string>'
})
};
fetch('https://example.com/callback', 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://example.com/callback",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => "ID=%3Cstring%3E&DLRID=%3Cstring%3E&SOURCEADDR=%3Cstring%3E&SOURCEADDRTON=%3Cstring%3E&SOURCEADDRNPI=%3Cstring%3E&DESTADDR=%3Cstring%3E&MESSAGE=%3Cstring%3E&STATUS=%3Cstring%3E&MSGTYPE=%3Cstring%3E&KEYWORD=%3Cstring%3E&CHARCODE=%3Cstring%3E&VP=%3Cstring%3E&CONCATSMSREF=%3Cstring%3E&CONCATSMSSEQ=%3Cstring%3E&CONCATSMSMAX=%3Cstring%3E",
CURLOPT_HTTPHEADER => [
"Content-Type: application/x-www-form-urlencoded"
],
]);
$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://example.com/callback"
payload := strings.NewReader("ID=%3Cstring%3E&DLRID=%3Cstring%3E&SOURCEADDR=%3Cstring%3E&SOURCEADDRTON=%3Cstring%3E&SOURCEADDRNPI=%3Cstring%3E&DESTADDR=%3Cstring%3E&MESSAGE=%3Cstring%3E&STATUS=%3Cstring%3E&MSGTYPE=%3Cstring%3E&KEYWORD=%3Cstring%3E&CHARCODE=%3Cstring%3E&VP=%3Cstring%3E&CONCATSMSREF=%3Cstring%3E&CONCATSMSSEQ=%3Cstring%3E&CONCATSMSMAX=%3Cstring%3E")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("Content-Type", "application/x-www-form-urlencoded")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.post("https://example.com/callback")
.header("Content-Type", "application/x-www-form-urlencoded")
.body("ID=%3Cstring%3E&DLRID=%3Cstring%3E&SOURCEADDR=%3Cstring%3E&SOURCEADDRTON=%3Cstring%3E&SOURCEADDRNPI=%3Cstring%3E&DESTADDR=%3Cstring%3E&MESSAGE=%3Cstring%3E&STATUS=%3Cstring%3E&MSGTYPE=%3Cstring%3E&KEYWORD=%3Cstring%3E&CHARCODE=%3Cstring%3E&VP=%3Cstring%3E&CONCATSMSREF=%3Cstring%3E&CONCATSMSSEQ=%3Cstring%3E&CONCATSMSMAX=%3Cstring%3E")
.asString();require 'uri'
require 'net/http'
url = URI("https://example.com/callback")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["Content-Type"] = 'application/x-www-form-urlencoded'
request.body = "ID=%3Cstring%3E&DLRID=%3Cstring%3E&SOURCEADDR=%3Cstring%3E&SOURCEADDRTON=%3Cstring%3E&SOURCEADDRNPI=%3Cstring%3E&DESTADDR=%3Cstring%3E&MESSAGE=%3Cstring%3E&STATUS=%3Cstring%3E&MSGTYPE=%3Cstring%3E&KEYWORD=%3Cstring%3E&CHARCODE=%3Cstring%3E&VP=%3Cstring%3E&CONCATSMSREF=%3Cstring%3E&CONCATSMSSEQ=%3Cstring%3E&CONCATSMSMAX=%3Cstring%3E"
response = http.request(request)
puts response.read_bodyAPI Reference
Receive inbound message or DLR
Webhook your application must implement. The Messaging Platform POSTs inbound mobile-originated messages and delivery reports to your configured callback URL. Replace the server URL with your own HTTPS endpoint.
POST
/
callback
Receive inbound message or DLR
curl --request POST \
--url https://example.com/callback \
--header 'Content-Type: application/x-www-form-urlencoded' \
--data 'ID=<string>' \
--data 'DLRID=<string>' \
--data 'SOURCEADDR=<string>' \
--data 'SOURCEADDRTON=<string>' \
--data 'SOURCEADDRNPI=<string>' \
--data 'DESTADDR=<string>' \
--data 'MESSAGE=<string>' \
--data 'STATUS=<string>' \
--data 'MSGTYPE=<string>' \
--data 'KEYWORD=<string>' \
--data 'CHARCODE=<string>' \
--data 'VP=<string>' \
--data 'CONCATSMSREF=<string>' \
--data 'CONCATSMSSEQ=<string>' \
--data 'CONCATSMSMAX=<string>'import requests
url = "https://example.com/callback"
payload = {
"ID": "<string>",
"DLRID": "<string>",
"SOURCEADDR": "<string>",
"SOURCEADDRTON": "<string>",
"SOURCEADDRNPI": "<string>",
"DESTADDR": "<string>",
"MESSAGE": "<string>",
"STATUS": "<string>",
"MSGTYPE": "<string>",
"KEYWORD": "<string>",
"CHARCODE": "<string>",
"VP": "<string>",
"CONCATSMSREF": "<string>",
"CONCATSMSSEQ": "<string>",
"CONCATSMSMAX": "<string>"
}
headers = {"Content-Type": "application/x-www-form-urlencoded"}
response = requests.post(url, data=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {'Content-Type': 'application/x-www-form-urlencoded'},
body: new URLSearchParams({
ID: '<string>',
DLRID: '<string>',
SOURCEADDR: '<string>',
SOURCEADDRTON: '<string>',
SOURCEADDRNPI: '<string>',
DESTADDR: '<string>',
MESSAGE: '<string>',
STATUS: '<string>',
MSGTYPE: '<string>',
KEYWORD: '<string>',
CHARCODE: '<string>',
VP: '<string>',
CONCATSMSREF: '<string>',
CONCATSMSSEQ: '<string>',
CONCATSMSMAX: '<string>'
})
};
fetch('https://example.com/callback', 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://example.com/callback",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => "ID=%3Cstring%3E&DLRID=%3Cstring%3E&SOURCEADDR=%3Cstring%3E&SOURCEADDRTON=%3Cstring%3E&SOURCEADDRNPI=%3Cstring%3E&DESTADDR=%3Cstring%3E&MESSAGE=%3Cstring%3E&STATUS=%3Cstring%3E&MSGTYPE=%3Cstring%3E&KEYWORD=%3Cstring%3E&CHARCODE=%3Cstring%3E&VP=%3Cstring%3E&CONCATSMSREF=%3Cstring%3E&CONCATSMSSEQ=%3Cstring%3E&CONCATSMSMAX=%3Cstring%3E",
CURLOPT_HTTPHEADER => [
"Content-Type: application/x-www-form-urlencoded"
],
]);
$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://example.com/callback"
payload := strings.NewReader("ID=%3Cstring%3E&DLRID=%3Cstring%3E&SOURCEADDR=%3Cstring%3E&SOURCEADDRTON=%3Cstring%3E&SOURCEADDRNPI=%3Cstring%3E&DESTADDR=%3Cstring%3E&MESSAGE=%3Cstring%3E&STATUS=%3Cstring%3E&MSGTYPE=%3Cstring%3E&KEYWORD=%3Cstring%3E&CHARCODE=%3Cstring%3E&VP=%3Cstring%3E&CONCATSMSREF=%3Cstring%3E&CONCATSMSSEQ=%3Cstring%3E&CONCATSMSMAX=%3Cstring%3E")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("Content-Type", "application/x-www-form-urlencoded")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.post("https://example.com/callback")
.header("Content-Type", "application/x-www-form-urlencoded")
.body("ID=%3Cstring%3E&DLRID=%3Cstring%3E&SOURCEADDR=%3Cstring%3E&SOURCEADDRTON=%3Cstring%3E&SOURCEADDRNPI=%3Cstring%3E&DESTADDR=%3Cstring%3E&MESSAGE=%3Cstring%3E&STATUS=%3Cstring%3E&MSGTYPE=%3Cstring%3E&KEYWORD=%3Cstring%3E&CHARCODE=%3Cstring%3E&VP=%3Cstring%3E&CONCATSMSREF=%3Cstring%3E&CONCATSMSSEQ=%3Cstring%3E&CONCATSMSMAX=%3Cstring%3E")
.asString();require 'uri'
require 'net/http'
url = URI("https://example.com/callback")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["Content-Type"] = 'application/x-www-form-urlencoded'
request.body = "ID=%3Cstring%3E&DLRID=%3Cstring%3E&SOURCEADDR=%3Cstring%3E&SOURCEADDRTON=%3Cstring%3E&SOURCEADDRNPI=%3Cstring%3E&DESTADDR=%3Cstring%3E&MESSAGE=%3Cstring%3E&STATUS=%3Cstring%3E&MSGTYPE=%3Cstring%3E&KEYWORD=%3Cstring%3E&CHARCODE=%3Cstring%3E&VP=%3Cstring%3E&CONCATSMSREF=%3Cstring%3E&CONCATSMSSEQ=%3Cstring%3E&CONCATSMSMAX=%3Cstring%3E"
response = http.request(request)
puts response.read_bodyBody
application/x-www-form-urlencoded
Parameters sent by MP for inbound MO messages or delivery reports.
Original message ID.
Message ID the DLR refers to.
Sender address.
Destination address.
Message content or status text.
DLR status: 1 Delivered, 2 In process, 3 Failed, 4 Deleted, 5 Expired, 6 Rejected, 7 Canceled, 8 Queued, 9 Orphaned, 10 Relayed, 11 Unknown.
First word of inbound message.
Validity period in seconds.
Response
200
Acknowledge receipt. Response body should be empty.
⌘I
