Submit Received SMS
curl --request POST \
--url https://{brand_domain}/api/mobile/v1/sms \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"messages": [
{
"sender": "bKash",
"body": "You have received Tk 500.00 from 01700000000. Ref INV-10029. Fee Tk 0.00. Balance Tk 15400.00. TrxID A8K9D2J3S",
"local_id": 104,
"received_at": "2026-06-23 14:17:12"
}
]
}
'import requests
url = "https://{brand_domain}/api/mobile/v1/sms"
payload = { "messages": [
{
"sender": "bKash",
"body": "You have received Tk 500.00 from 01700000000. Ref INV-10029. Fee Tk 0.00. Balance Tk 15400.00. TrxID A8K9D2J3S",
"local_id": 104,
"received_at": "2026-06-23 14:17:12"
}
] }
headers = {
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'},
body: JSON.stringify({
messages: [
{
sender: 'bKash',
body: JSON.stringify('You have received Tk 500.00 from 01700000000. Ref INV-10029. Fee Tk 0.00. Balance Tk 15400.00. TrxID A8K9D2J3S'),
local_id: 104,
received_at: '2026-06-23 14:17:12'
}
]
})
};
fetch('https://{brand_domain}/api/mobile/v1/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://{brand_domain}/api/mobile/v1/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([
'messages' => [
[
'sender' => 'bKash',
'body' => 'You have received Tk 500.00 from 01700000000. Ref INV-10029. Fee Tk 0.00. Balance Tk 15400.00. TrxID A8K9D2J3S',
'local_id' => 104,
'received_at' => '2026-06-23 14:17:12'
]
]
]),
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>",
"Content-Type: application/json"
],
]);
$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://{brand_domain}/api/mobile/v1/sms"
payload := strings.NewReader("{\n \"messages\": [\n {\n \"sender\": \"bKash\",\n \"body\": \"You have received Tk 500.00 from 01700000000. Ref INV-10029. Fee Tk 0.00. Balance Tk 15400.00. TrxID A8K9D2J3S\",\n \"local_id\": 104,\n \"received_at\": \"2026-06-23 14:17:12\"\n }\n ]\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("Authorization", "Bearer <token>")
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://{brand_domain}/api/mobile/v1/sms")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"messages\": [\n {\n \"sender\": \"bKash\",\n \"body\": \"You have received Tk 500.00 from 01700000000. Ref INV-10029. Fee Tk 0.00. Balance Tk 15400.00. TrxID A8K9D2J3S\",\n \"local_id\": 104,\n \"received_at\": \"2026-06-23 14:17:12\"\n }\n ]\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://{brand_domain}/api/mobile/v1/sms")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["Authorization"] = 'Bearer <token>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"messages\": [\n {\n \"sender\": \"bKash\",\n \"body\": \"You have received Tk 500.00 from 01700000000. Ref INV-10029. Fee Tk 0.00. Balance Tk 15400.00. TrxID A8K9D2J3S\",\n \"local_id\": 104,\n \"received_at\": \"2026-06-23 14:17:12\"\n }\n ]\n}"
response = http.request(request)
puts response.read_body{
"success": true,
"data": [
"<unknown>"
]
}{
"success": true,
"data": {
"status": "accepted",
"server_ref": "OP-481029304",
"error": null
}
}{
"success": false,
"error": "Validation failed",
"errors": [
{
"code": "VALIDATION_FAILED",
"message": "sender exceeds 100 bytes",
"field": "sender"
}
],
"request_id": "8f5a2e9b0c7d4e5f"
}Submit Received SMS
Submits SMS payloads received on the physical companion device to the server. The server parses the payload using brand-configured regex rules to verify customer transaction payments. Supports batch processing up to 200 messages to prevent visual details from getting lost during connection drops. Enforces maximum length limits (100 bytes for sender, 16384 bytes for body) to block DoS attempts.
POST
/
api
/
mobile
/
v1
/
sms
Submit Received SMS
curl --request POST \
--url https://{brand_domain}/api/mobile/v1/sms \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"messages": [
{
"sender": "bKash",
"body": "You have received Tk 500.00 from 01700000000. Ref INV-10029. Fee Tk 0.00. Balance Tk 15400.00. TrxID A8K9D2J3S",
"local_id": 104,
"received_at": "2026-06-23 14:17:12"
}
]
}
'import requests
url = "https://{brand_domain}/api/mobile/v1/sms"
payload = { "messages": [
{
"sender": "bKash",
"body": "You have received Tk 500.00 from 01700000000. Ref INV-10029. Fee Tk 0.00. Balance Tk 15400.00. TrxID A8K9D2J3S",
"local_id": 104,
"received_at": "2026-06-23 14:17:12"
}
] }
headers = {
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'},
body: JSON.stringify({
messages: [
{
sender: 'bKash',
body: JSON.stringify('You have received Tk 500.00 from 01700000000. Ref INV-10029. Fee Tk 0.00. Balance Tk 15400.00. TrxID A8K9D2J3S'),
local_id: 104,
received_at: '2026-06-23 14:17:12'
}
]
})
};
fetch('https://{brand_domain}/api/mobile/v1/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://{brand_domain}/api/mobile/v1/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([
'messages' => [
[
'sender' => 'bKash',
'body' => 'You have received Tk 500.00 from 01700000000. Ref INV-10029. Fee Tk 0.00. Balance Tk 15400.00. TrxID A8K9D2J3S',
'local_id' => 104,
'received_at' => '2026-06-23 14:17:12'
]
]
]),
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>",
"Content-Type: application/json"
],
]);
$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://{brand_domain}/api/mobile/v1/sms"
payload := strings.NewReader("{\n \"messages\": [\n {\n \"sender\": \"bKash\",\n \"body\": \"You have received Tk 500.00 from 01700000000. Ref INV-10029. Fee Tk 0.00. Balance Tk 15400.00. TrxID A8K9D2J3S\",\n \"local_id\": 104,\n \"received_at\": \"2026-06-23 14:17:12\"\n }\n ]\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("Authorization", "Bearer <token>")
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://{brand_domain}/api/mobile/v1/sms")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"messages\": [\n {\n \"sender\": \"bKash\",\n \"body\": \"You have received Tk 500.00 from 01700000000. Ref INV-10029. Fee Tk 0.00. Balance Tk 15400.00. TrxID A8K9D2J3S\",\n \"local_id\": 104,\n \"received_at\": \"2026-06-23 14:17:12\"\n }\n ]\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://{brand_domain}/api/mobile/v1/sms")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["Authorization"] = 'Bearer <token>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"messages\": [\n {\n \"sender\": \"bKash\",\n \"body\": \"You have received Tk 500.00 from 01700000000. Ref INV-10029. Fee Tk 0.00. Balance Tk 15400.00. TrxID A8K9D2J3S\",\n \"local_id\": 104,\n \"received_at\": \"2026-06-23 14:17:12\"\n }\n ]\n}"
response = http.request(request)
puts response.read_body{
"success": true,
"data": [
"<unknown>"
]
}{
"success": true,
"data": {
"status": "accepted",
"server_ref": "OP-481029304",
"error": null
}
}{
"success": false,
"error": "Validation failed",
"errors": [
{
"code": "VALIDATION_FAILED",
"message": "sender exceeds 100 bytes",
"field": "sender"
}
],
"request_id": "8f5a2e9b0c7d4e5f"
}Authorizations
Enter your Short-lived access JWT token.
Body
application/json
Can be a single SMS object payload, a batch array of objects, or a wrapper object containing a messages array.
Show child attributes
Show child attributes
Last modified on July 12, 2026
Related topics
Submit Device HeartbeatRetry Outbound SMSUpdate SMS TemplateList SMS TemplatesGet Pending Outbound SMSWas this page helpful?
⌘I