| senderNumber | شماره فرستنده |
| recipientNumber | شماره گیرنده |
| templateId | شناسه قالب ارسال پیام |
| parameters | آرایه پارامترهای قالب ارسال پیام |
| sendTimestamp | این پارامتر اختیاری می باشد و جهت تعیین تاریخ و زمان ارسال پیام مورد استفاده قرار می گیرد. مقدار این پارامتر می بایست بر اساس Unix Time (تعداد ثانیه از 00:00:00 01-01-1970 UTC) ارائه گردد و مقدار تاریخ و زمان ارسالی می بایست بزرگتر از تاریخ و زمان جاری سیستم باشد. جهت استعلام وضعیت ارسال پیام زمان بندی شده از متد messages/status (گزارش وضعیت پیام های ارسالی بر اساس شناسه یکتای مجموعه پیام های ارسالی (batchId)) اسنفاده نمایید. |
1000xxxx
00981000xxxx
+981000xxxx
981000xxxx
09xxxxxxxxx
9xxxxxxxxx
00989xxxxxxxxx
+989xxxxxxxxx
989xxxxxxxxx
| name | نام پارامتر |
| value | مقدار پارامتر (حداکثر 100 کاراکتر) |
{
"senderNumber": "10001000",
"recipientNumber": "09100000000",
"templateId": "TydSt1skQE",
"parameters": [
{
"name": "code",
"value": "123456"
},
{
"name": "price",
"value": "1,000,000"
}
]
}
{
"senderNumber": "10001000",
"recipientNumber": "09100000000",
"templateId": "TydSt1skQE",
"parameters": [
{
"name": "code",
"value": "123456"
},
{
"name": "price",
"value": "1,000,000"
}
],
"sendTimestamp": 1770177035
}
| 400 |
درخواست ارسالی صحیح نمی باشد. در صورتی که مقادیر پارامترهای ارسالی معتبر نباشند و یا فراخوانی متد با خطای منطقی متناسب با سیستم و یا تنظیمات سیستم مواجه شود کد وضعیت پاسخ Http برابر با ۴۰۰ خواهد بود.
مقدار پارامتر errorCode در خروجی، برابر با کد خطای مربوطه و مقدار پارامتر errorMessage شرح خطای مربوطه می باشد.
در صورتی که مقادیر پارامترهای ارسالی معتبر نباشند، پارامتر validationErrors، آرایه ای شامل نام پارامتر (field) و شرح خطای مربوط به نامعتبر بودن مقدار پارامتر (errorMessage) می باشد.
(
لیست کدهای خطا
)
نمونه های مختلف خروجی :
{
"errorCode": 1001,
"errorMessage": ".مقادیر پارامترهای ارسالی معتبر نمی باشند",
"validationErrors": [
{
"field": "senderNumber",
"errorMessage": ".فیلد [ شماره فرستنده ] را وارد نمایید"
},
{
"field": "recipientNumber",
"errorMessage": ".فیلد [ شماره گیرنده ] را وارد نمایید"
},
{
"field": "content",
"errorMessage": ".فیلد [ متن پیام ] را وارد نمایید"
}
]
}
{
"errorCode": 1053,
"errorMessage": ".شماره خط فرستنده در حساب کاربر تعریف نشده است"
}
{
"errorCode": 1107,
"errorMessage": ".شناسه قالب ارسال پیام مورد نظر معتبر نمی باشد"
}
|
||||||||||||||||||||||||||||||||
| 401 |
خطای اهراز هویت رخ داده است. (Api Key یا توکن ارسالی معتبر نمی باشد.) (مقدار پارامتر errorCode در خروجی، برابر با عدد ۴۰۱ و مقدار پارامتر errorMessage شرح خطای مربوطه می باشد.)
نمونه خروجی :
{
"errorCode": 401,
"errorMessage": ".خطای احراز هویت رخ داده است"
}
|
||||||||||||||||||||||||||||||||
| 403 |
مجوز دسترسی به متد برای حساب کاربری تعریف نشده است. (مقدار پارامتر errorCode در خروجی، برابر با عدد ۱۰۰۵ و مقدار پارامتر errorMessage شرح خطای مربوطه می باشد.)
آدرس IP جهت دسترسی به سرویس معتبر نمی باشد. (مقدار پارامتر errorCode در خروجی، برابر با عدد ۱۰۰۶ و مقدار پارامتر errorMessage علت عدم دسترسی کاربر به سرویس می باشد.)
نمونه خروجی :
{
"errorCode": 1005,
"errorMessage": ".مجوز دسترسی به متد برای حساب کاربری تعریف نشده است"
}
{
"errorCode": 1006,
"errorMessage": ".آدرس آی پی جهت دسترسی به سرویس معتبر نمی باشد"
}
|
||||||||||||||||||||||||||||||||
| 500 |
خطایی در سرور رخ داده است. (مقدار پارامتر errorCode در خروجی، برابر با کد خطای مربوطه جهت ارائه به بخش پشتیبانی و مقدار پارامتر errorMessage شرح خطای مربوطه می باشد.)
نمونه خروجی :
{
"errorCode": 1000011011,
"errorMessage": "خطایی در سرور رخ داده است. | شناسه خطا : 1000011011"
}
|
||||||||||||||||||||||||||||||||
| 200 |
اجرای موفقیت آمیز عملیات و خروجی حاوی یک شناسه یکتا برای مجموعه پیام ارسالی (batchId) و یک شی حاوی اطلاعات پیام ارسالی به نام message می باشد. پارامترهای شی message عبارتند از :
نمونه خروجی :
{
"batchId": "03bd52ed-8cb0-4a43-b9e7-dafff83c9565",
"message": {
"sentMessageId": "ec28329d-503f-4e9e-be82-c88bbd6f88d6",
"senderNumber": "10001000",
"recipientNumber": "09100000000",
"content": "Your message content",
"language": "English",
"operator": "Mci",
"parts": "1",
"cost": "1,800",
"messageStatus": 1
}
}
|
curl -X POST "https://api.smsafzar.ir/messages/send/template" \
-H "X-Api-Key: Your_Api_Key-Value" \
-H "Cache-Control: no-cache" \
-H "Accept: application/json" \
-H "Content-Type: application/json" \
-d '{
"senderNumber": "10001000",
"recipientNumber": "09100000000",
"templateId": "TydSt1skQE",
"parameters": [{"name":"code","value":"123456"},{"name":"price","value":"1,000,000"}]
}'
curl -X POST "https://api.smsafzar.ir/messages/send" \
-H "Authorization: Bearer YourToken" \
-H "Cache-Control: no-cache" \
-H "Accept: application/json" \
-H "Content-Type: application/json" \
-d '{
"senderNumber": "10001000",
"recipientNumber": "09100000000",
"templateId": "TydSt1skQE",
"parameters": [{"name":"code","value":"123456"},{"name":"price","value":"1,000,000"}]
}'
using RestSharp;
var apiBaseUrl = "https://api.smsafzar.ir";
var apiKey = "YourApiKey";
// Options
var options = new RestClientOptions(apiBaseUrl);
// Client
var client = new RestClient(options);
// Request
var messageJson = new
{
senderNumber = "10001000",
recipientNumber = "09100000000",
templateId = "TydSt1skQE",
parameters = new[]{new { name = "code", value = "123456" },new { name = "price", value = "1,000,000" }}
};
var request = new RestRequest("messages/send/template");
request.AddHeader("X-Api-Key", apiKey);
request.AddHeader("Cache-Control", "no-cache");
request.AddHeader("Accept", "application/json");
request.AddHeader("Content-Type", "application/json");
request.AddJsonBody(messageJson);
// Call
var response = await client.PostAsync(request);
// Response
Console.WriteLine($"Response Status Code: {(int)response.StatusCode}");
Console.WriteLine($"Response Content: {response.Content}");
using RestSharp;
var apiBaseUrl = "https://api.smsafzar.ir";
var jwtToken = "YourToken";
// Options
var options = new RestClientOptions(apiBaseUrl);
// Client
var client = new RestClient(options);
// Request
var messageJson = new
{
senderNumber = "10001000",
recipientNumber = "09100000000",
templateId = "TydSt1skQE",
parameters = new[]{new { name = "code", value = "123456" },new { name = "price", value = "1,000,000" }}
};
var request = new RestRequest("messages/send/template");
request.AddHeader("Authorization", $"Bearer {jwtToken}");
request.AddHeader("Cache-Control", "no-cache");
request.AddHeader("Accept", "application/json");
request.AddHeader("Content-Type", "application/json");
request.AddJsonBody(messageJson);
// Call
var response = await client.PostAsync(request);
// Response
Console.WriteLine($"Response Status Code: {(int)response.StatusCode}");
Console.WriteLine($"Response Content: {response.Content}");
import java.net.URI;
import java.net.http.HttpClient;
import java.net.http.HttpRequest;
import java.net.http.HttpResponse;
import com.fasterxml.jackson.databind.ObjectMapper;
try {
String apiBaseUrl = "https://api.smsafzar.ir";
String apiKey = "YourApiKey";
Map<String, String> message = new HashMap<>();
messageJson.put("senderNumber", "10001000");
messageJson.put("recipientNumber", "09100000000");
messageJson.put("templateId", "TydSt1skQE");
List<Map<String, String>> parameters = List.of(Map.of("name", "code", "value", "123456"),Map.of("name", "price", "value", "1,000,000"));
messageJson.put("parameters", parameters);
ObjectMapper objectMapper = new ObjectMapper();
String requestBody = objectMapper.writeValueAsString(message);
// Client
HttpClient client = HttpClient.newHttpClient();
//Request
HttpRequest request = HttpRequest.newBuilder()
.uri(URI.create(apiBaseUrl + "/messages/send/template"))
.header("X-Api-Key", apiKey)
.header("Cache-Control", "no-cache")
.header("Accept", "application/json")
.header("Content-Type", "application/json")
.POST(HttpRequest.BodyPublishers.ofString(requestBody))
.build();
// Call
HttpResponse<String> response = client.send(request, HttpResponse.BodyHandlers.ofString());
//Response
int responseStatusCode = response.statusCode();
String responseContent = response.body();
System.out.println("Response Status Code: " + responseStatusCode);
System.out.println("Response Content: " + responseContent);
} catch (Exception e) {
e.printStackTrace();
}
import java.net.URI;
import java.net.http.HttpClient;
import java.net.http.HttpRequest;
import java.net.http.HttpResponse;
import com.fasterxml.jackson.databind.ObjectMapper;
try {
String apiBaseUrl = "https://api.smsafzar.ir";
String jwtToken = "YourToken";
Map<String, String> message = new HashMap<>();
messageJson.put("senderNumber", "10001000");
messageJson.put("recipientNumber", "09100000000");
messageJson.put("templateId", "TydSt1skQE");
List<Map<String, String>> parameters = List.of(Map.of("name", "code", "value", "123456"),Map.of("name", "price", "value", "1,000,000"));
messageJson.put("parameters", parameters);
ObjectMapper objectMapper = new ObjectMapper();
String requestBody = objectMapper.writeValueAsString(message);
// Client
HttpClient client = HttpClient.newHttpClient();
//Request
HttpRequest request = HttpRequest.newBuilder()
.uri(URI.create(apiBaseUrl + "/messages/send/template"))
.header("Authorization", "Bearer " + jwtToken)
.header("Cache-Control", "no-cache")
.header("Accept", "application/json")
.header("Content-Type", "application/json")
.POST(HttpRequest.BodyPublishers.ofString(requestBody))
.build();
// Call
HttpResponse<String> response = client.send(request, HttpResponse.BodyHandlers.ofString());
//Response
int responseStatusCode = response.statusCode();
String responseContent = response.body();
System.out.println("Response Status Code: " + responseStatusCode);
System.out.println("Response Content: " + responseContent);
} catch (Exception e) {
e.printStackTrace();
}
import requests
api_base_url = "https://api.smsafzar.ir"
api_key = "YourApiKey"
message_json = {
"senderNumber": "10001000",
"recipientNumber": "09100000000",
"templateId": "TydSt1skQE",
"parameters": [{"name": "code", "value": "123456"},{"name": "price", "value": "1,000,000"}]
}
headers = {
"X-Api-Key": api_key,
"Cache-Control": "no-cache",
"Accept": "application/json",
"Content-Type": "application/json"
}
# Call
response = requests.post(f"{api_base_url}/messages/send/template", json=message_json, headers=headers)
# Response
print("Response Code:", response.status_code)
print("Response Content:", response.json())
import requests
api_base_url = "https://api.smsafzar.ir"
jwt_token = "YourToken"
message_json = {
"senderNumber": "10001000",
"recipientNumber": "09100000000",
"templateId": "TydSt1skQE",
"parameters": [{"name": "code", "value": "123456"},{"name": "price", "value": "1,000,000"}]
}
headers = {
"Authorization": f"Bearer {jwt_token}",
"Cache-Control": "no-cache",
"Accept": "application/json",
"Content-Type": "application/json"
}
# Call
response = requests.post(f"{api_base_url}/messages/send/template", json=message_json, headers=headers)
# Response
print("Response Code:", response.status_code)
print("Response Content:", response.json())
<?php
$apiBaseUrl = "https://api.smsafzar.ir";
$apiKey = "YourApiKey";
$messageJson = json_encode([
'senderNumber' => '10001000',
'recipientNumber' => '09100000000',
'templateId' => 'TydSt1skQE',
'parameters' => [['name' => 'code', 'value' => '123456'],['name' => 'price', 'value' => '1,000,000']]
]);
// Initialize CURL session
$ch = curl_init();
// Set CURL options
curl_setopt($ch, CURLOPT_URL, "{$apiBaseUrl}/messages/send/template");
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_POST, true);
curl_setopt($ch, CURLOPT_POSTFIELDS, $messageJson);
curl_setopt($ch, CURLOPT_HTTPHEADER, [
"X-Api-Key: $apiKey",
"Cache-Control: no-cache",
"Accept: application/json",
"Content-Type: application/json"
]);
// Call
$response = curl_exec($ch);
// Response
if (curl_errno($ch)) {
echo 'Error:' . curl_error($ch);
} else {
$httpStatusCode = curl_getinfo($ch, CURLINFO_HTTP_CODE);
echo "Response Status Code: " . $httpStatusCode . "\n";
echo "Response Content: " . $response . "\n";
}
// Close the CURL session
curl_close($ch);
?>
<?php
$apiBaseUrl = "https://api.smsafzar.ir";
$jwtToken = "YourToken";
$messageJson = json_encode([
'senderNumber' => '10001000',
'recipientNumber' => '09100000000',
'templateId' => 'TydSt1skQE',
'parameters' => [['name' => 'code', 'value' => '123456'],['name' => 'price', 'value' => '1,000,000']]
]);
// Initialize CURL session
$ch = curl_init();
// Set CURL options
curl_setopt($ch, CURLOPT_URL, "{$apiBaseUrl}/messages/send/template");
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_POST, true);
curl_setopt($ch, CURLOPT_POSTFIELDS, $messageJson);
curl_setopt($ch, CURLOPT_HTTPHEADER, [
"Authorization: Bearer $jwtToken",
"Cache-Control: no-cache",
"Accept: application/json",
"Content-Type: application/json"
]);
// Call
$response = curl_exec($ch);
// Response
if (curl_errno($ch)) {
echo 'Error:' . curl_error($ch);
} else {
$httpStatusCode = curl_getinfo($ch, CURLINFO_HTTP_CODE);
echo "Response Status Code: " . $httpStatusCode . "\n";
echo "Response Content: " . $response . "\n";
}
// Close the CURL session
curl_close($ch);
?>
const axios = require('axios');
const apiBaseUrl = 'https://api.smsafzar.ir';
const apiKey = 'YourApiKey';
const messageJson = {
senderNumber: '10001000',
recipientNumber: '09100000000',
"templateId": "TydSt1skQE",
"parameters": [{ "name": "code", "value": "123456" },{ "name": "price", "value": "1,000,000" }]
};
const headers = {
'X-Api-Key': apiKey,
'Cache-Control': 'no-cache',
'Accept': 'application/json',
'Content-Type': 'application/json'
};
// Request
axios.post(`${apiBaseUrl}/messages/send/template`, messageJson, { headers })
.then(response => {
// Response
console.log('Response Status Code:', response.status);
console.log('Response Content:', response.data);
})
.catch(error => {
// Error
console.error('Error:', error.response ? error.response.data : error.message);
});
const axios = require('axios');
const apiBaseUrl = 'https://api.smsafzar.ir';
const jwtToken = 'YourToken';
const messageJson = {
senderNumber: '10001000',
recipientNumber: '09100000000',
"templateId": "TydSt1skQE",
"parameters": [{ "name": "code", "value": "123456" },{ "name": "price", "value": "1,000,000" }]
};
const headers = {
'Authorization': `Bearer ${jwtToken}`,
'Cache-Control': 'no-cache',
'Accept': 'application/json',
'Content-Type': 'application/json'
};
// Request
axios.post(`${apiBaseUrl}/messages/send/template`, messageJson, { headers })
.then(response => {
// Response
console.log('Response Status Code:', response.status);
console.log('Response Content:', response.data);
})
.catch(error => {
// Error
console.error('Error:', error.response ? error.response.data : error.message);
});
let httpClient= inject(HttpClient);
let apiBaseUrl = 'https://api.smsafzar.ir';
let apiKey = 'YourApiKey';
const messageJson = {
senderNumber: '10001000',
recipientNumber: '09100000000',
"templateId": "TydSt1skQE",
"parameters": [{ "name": "code", "value": "123456" },{ "name": "price", "value": "1,000,000" }]
};
let headers = new HttpHeaders({
'X-Api-Key': apiKey,
'Cache-Control': 'no-cache',
'Accept': 'application/json',
'Content-Type': 'application/json'
});
// Request
this.http.post(`${apiBaseUrl}/messages/send/template`, messageJson, { headers , observe: 'response' })
.subscribe(response => {
// Response
console.log('Response Status Code:', response.status);
console.log('Response Content:', response.body);
}, error => {
console.error('Error:', error);
});
let httpClient= inject(HttpClient);
let apiBaseUrl = 'https://api.smsafzar.ir';
let jwtToken = 'YourToken';
const messageJson = {
senderNumber: '10001000',
recipientNumber: '09100000000',
"templateId": "TydSt1skQE",
"parameters": [{ "name": "code", "value": "123456" },{ "name": "price", "value": "1,000,000" }]
};
let headers = new HttpHeaders({
'Authorization': `Bearer ${jwtToken}`,
'Cache-Control': 'no-cache',
'Accept': 'application/json',
'Content-Type': 'application/json'
});
// Request
this.http.post(`${apiBaseUrl}/messages/send/template`, messageJson, { headers , observe: 'response' })
.subscribe(response => {
// Response
console.log('Response Status Code:', response.status);
console.log('Response Content:', response.body);
}, error => {
console.error('Error:', error);
});
import React, { useState } from 'react';
const [responseStatusCode, setResponseStatusCode] = useState(null);
const [responseContent, setResponseContent] = useState('');
const apiBaseUrl = 'https://api.smsafzar.ir';
const apiKey = 'YourApiKey';
const messageJson = {
senderNumber: '10001000',
recipientNumber: '09100000000',
"templateId": "TydSt1skQE",
"parameters": [{ "name": "code", "value": "123456" },{ "name": "price", "value": "1,000,000" }]
};
try {
// Request
const response = await fetch(`${apiBaseUrl}/messages/send/template`, {
method: 'POST',
headers: {
'X-Api-Key': apiKey,
'Cache-Control': 'no-cache',
'Accept': 'application/json',
'Content-Type': 'application/json',
},
body: JSON.stringify(messageJson),
});
// Response
const content = await response.json();
setResponseStatusCode(response.status);
setResponseContent(content);
console.log('Response Status Code:', response.status);
console.log('Response Content:', content);
} catch (error) {
console.error('Error:', error);
}
import React, { useState } from 'react';
const [responseStatusCode, setResponseStatusCode] = useState(null);
const [responseContent, setResponseContent] = useState('');
const apiBaseUrl = 'https://api.smsafzar.ir';
const jwtToken = 'YourToken';
const messageJson = {
senderNumber: '10001000',
recipientNumber: '09100000000',
"templateId": "TydSt1skQE",
"parameters": [{ "name": "code", "value": "123456" },{ "name": "price", "value": "1,000,000" }]
};
try {
// Request
const response = await fetch(`${apiBaseUrl}/messages/send/template`, {
method: 'POST',
headers: {
'Authorization': `Bearer ${jwtToken}`,
'Cache-Control': 'no-cache',
'Accept': 'application/json',
'Content-Type': 'application/json',
},
body: JSON.stringify(messageJson),
});
// Response
const content = await response.json();
setResponseStatusCode(response.status);
setResponseContent(content);
console.log('Response Status Code:', response.status);
console.log('Response Content:', content);
} catch (error) {
console.error('Error:', error);
}