پشتیبانی کامل
با تیمی با تجربه، صبور و حرفه ای در تمام روزهای هفته
بروزرسانی مداوم
ما در تلاشیم به صورت همیشگی امکانات جدیدی را به سامانه اضافه کنیم
موتور بهینه ارسال
موتور ارسال هوشمند که کیفیت ارسال ها را تضمین می کند
طراحی جدید
بازنگری در طراحی سامانه بر اساس سلیقه کاربران امروزی
پشتیبانی کامل
با تیمی با تجربه، صبور و حرفه ای در تمام روزهای هفته
بروزرسانی مداوم
ما در تلاشیم به صورت همیشگی امکانات جدیدی را به سامانه اضافه کنیم
موتور بهینه ارسال
موتور ارسال هوشمند که کیفیت ارسال ها را تضمین می کند
طراحی جدید
بازنگری در طراحی سامانه بر اساس سلیقه کاربران امروزی
پشتیبانی کامل
با تیمی با تجربه، صبور و حرفه ای در تمام روزهای هفته
بروزرسانی مداوم
ما در تلاشیم به صورت همیشگی امکانات جدیدی را به سامانه اضافه کنیم
موتور بهینه ارسال
موتور ارسال هوشمند که کیفیت ارسال ها را تضمین می کند
طراحی جدید
بازنگری در طراحی سامانه بر اساس سلیقه کاربران امروزی
راهنمای استفاده از متدهای سامانه پیامک SMS.ir
- مقدمه و مفاهیم
- احراز هویت
- کدهای وضعیت
- ارسال گروهی
- ارسال نظیر به نظیر
- حذف ارسال زمانبندی شده
- ارسال Verify
- گزارش وضعیت یک پیامک
- گزارش وضعیت بسته پیامک
- گزارش ارسال های روز جاری
- گزارش ارسال های آرشیوی
- گزارش آخرین پیامک های دریافتی
- گزارش امروز پیامک های دریافتی
- گزارش آرشیو پیامک های دریافتی
- دریافت اعتبار فعلی
- دریافت لیست خطوط
RESTFUL API
برای راحتی هر چه بیشتر در ارسال پیامها، وب سرویسهای کاربردی از نوع RESTful در اختیار توسعهدهندگان قرار داده شده است. وب سرویس های RESTful میتوانند با استفاده از هر زبان برنامهنویسی و یا شیوه دلخواه دیگر فراخوانی و مورد استفاده قرار گیرند.
مقدمه
در این بخش مفاهیم و قراردادهای کلی مربوط به استفاده از وب سرویس sms.ir، شرح داده خواهند شد.
HTTP REQUEST HEADER
شما میتوانید برای انجام تنظیمات ضروری و یا شخصی سازی شده، از هدرهای مشخص شده در جدول زیر استفاده نمایید.
کلید | مقدار | عملکرد |
---|---|---|
ACCEPT | application/json
یا application/xml | دریافت خروجی با فرمت Json یا Xml |
X-API-KEY | کلید تعریف شده در پنل | احراز هویت (توضیحات بیشتر) |
HTTP STATUS CODE
تمامی درخواست های ارسالی دارای Http status code های بازگشتی مطابق جدول زیر میباشند.
کلید | مقدار |
---|---|
200 | عملیات موفقیت آمیز |
400 | وقوع خطای منطقی (کدهای وضعیت همراه با توضیحات) |
401 | وجود خطا در فرآیند احراز هویت |
429 | تعداد درخواست غیر مجاز |
500 | خطای غیر منتظره |
Unix Time
واحد مقادیر مربوط به زمان در سطح این سامانه به صورت Unix Time و بر حسب ساعت هماهنگ جهانی (UTC) لحاظ شده است.
مدل بازگشتی
تمامی درخواست های ارسالی دارای مدل بازگشتی یکپارچه با ساختار زیر میباشند.
{
"status": 1,
"message": "موفق",
"data": [
۳۰۰۰۴۵۰۵۰۰۰۰۲۷,
۱۰۰۰۲۱۶۶۵۹۳۸۱۸
]
}
Status | کد وضعیت ( کدهای وضعیت همراه با توضیحات ) |
---|---|
Message | توضیحات وضعیت درخواست |
Data | دیتای بازگشتی |
AUTHORIZATION – احراز هویت
به منظور هویت سنجی در هنگام استفاده از وب سرویسهای پیامک سفید ملزم به ارسال کلید خصوصی در بخش هدر درخواست مورد نظر میباشید.
کلید های خصوصی شما در پنل برنامه نویسان قابل مشاهده و مدیریت میباشند.
در هنگام فراخوانی متدهای سامانه کلید خصوصی را با عنوان X-API-KEY در هدر درخواست قرار دهید.
X-API-KEY | PN1TVeBeaAehFLJAKU4XdfpsFXsQguYfleO0bV4ceh6diTZid2hRXza3uSkBbDef |
---|
کدهای وضعیت
کدهای وضعیت ارسال
کد | توضیحات |
---|---|
1 | عملیات با موفقیت انجام شد |
0 | مشکلی در سامانه رخ داده است، لطفا با پشتیبانی در تماس باشید |
10 | کلید وب سرویس نامعتبر است |
11 | کلید وب سرویس غیرفعال است |
12 | کلید وب سرویس محدود به IPهای تعریف شده میباشد |
13 | حساب کاربری غیر فعال است |
14 | حساب کاربری در حالت تعلیق قرار دارد |
20 | تعداد درخواست بیشتر از حد مجاز است |
101 | شماره خط نامعتبر میباشد |
102 | اعتبار کافی نمیباشد |
103 | درخواست شما دارای متن (های) خالی است |
104 | درخواست شما دارای موبایل (های) نادرست است |
105 | تعداد موبایل ها بیشتر از حد مجاز (۱۰۰ عدد) میباشد |
106 | تعداد متن ها بیشتر از حد مجاز (۱۰۰ عدد) میباشد |
107 | لیست موبایل ها خالی میباشد |
108 | لیست متن ها خالی میباشد |
109 | زمان ارسال نامعتبر میباشد |
110 | تعداد شماره موبایل ها و تعداد متن ها برابر نیستند |
111 | با این شناسه ارسالی ثبت نشده است |
112 | رکوردی برای حذف یافت نشد |
113 | قالب یافت نشد |
کدهای وضعیت دلیوری
کد | توضیحات |
---|---|
1 | رسیده به گوشی |
2 | نرسیده به گوشی |
3 | پردازش در مخابرات |
4 | نرسیده به مخابرات
|
5 | رسیده به مخابرات |
6 | خطا |
7 | لیست سیاه |
ارسال گروهی
این متد برای ارسال یک متن پیامک به گروهی از شماره موبایل ها مورد استفاده قرار میگیرد. همچنین شما میتوانید با مقداردهی به پارامتر زمان ارسال، از قابلیت ارسال پیامک زمانبندی شده نیز استفاده نمایید.
POST |
---|
https://api.sms.ir/v1/send/bulk |
نکات
- حداکثر تعداد مجاز شمارههای مقصد ۱۰۰ میباشد.
- برای ارسال زمانبندی شده، انتخاب زمان گذشته نامعتبر میباشد.
- برای ارسال زمانبندی شده، زمان معتبر میتواند در بازه یک ساعت آینده تا حداکثر ۳ روز آینده در نظر گرفته شود.
پارامترهای بدنه درخواست
lineNumber | اجباری | Long | شماره خط ارسالی |
---|---|---|---|
MessageText | اجباری | String | متن پیام کوتاه
|
Mobiles | اجباری | Array of String | شماره موبایلها |
SendDateTime | اختیاری | UnixTime | زمان ارسال پیامک (در صورت خالی بودن، ارسال در لحظه انجام میشود) |
متای دیتای بازگشتی
PackId | Guid | شناسه یکتای مجموعه ارسال |
---|---|---|
MessageIds | Array of Integer
| آرایه ای از شناسه های یکتای هر پیامک |
Cost | Decimal | اعتبار مصرفی مجموعه ارسال |
مثال
بدنه درخواست
{
"lineNumber": 30004505000017,
"messageText": "سرویس پیامکی ایده پردازان با 10 سال سابقه همراه شماست",
"mobiles": [
"00912xxxx677",
"0919xxxx904"
]
}
پاسخ
{
"status": 1,
"message": "موفق",
"data": {
"packId": "2b99e63c-9bf8-4a21-9bfe-3f72dc1b46f1",
"messageIds": [
۸۶۵۲۲۰۲۳,
۸۶۵۲۲۰۲۴
],
"cost": 2.0
}
}
ارسال نظیر به نظیر
این متد برای ارسال به گروهی از موبایلها با متنهای متفاوت برای هر کدام، مورد استفاده قرار میگیرد. همچنین شما میتوانید با مقداردهی به پارامتر زمان ارسال، از قابلیت ارسال پیامک زمانبندی شده نیز استفاده نمایید.
POST |
---|
https://api.sms.ir/v1/send/likeToLike |
نکات
- حداکثر تعداد مجاز شمارههای مقصد ۱۰۰ میباشد.
- برای ارسال زمانبندی شده، انتخاب زمان گذشته نامعتبر میباشد.
- برای ارسال زمانبندی شده، زمان معتبر میتواند در بازه یک ساعت آینده تا نهایتا ۳ روز آینده در نظر گرفته شود.
- تعداد شماره موبایلها و متنهای پیامک باید برابر باشند.
پارامترهای بدنه درخواست
lineNumber | اجباری | Long | شماره خط ارسالی |
---|---|---|---|
MessageText | اجباری | String | متن پیام کوتاه
|
Mobiles | اجباری | Array of String | شماره موبایلها |
SendDateTime | اختیاری | UnixTime | زمان ارسال پیامک (در صورت خالی بودن، ارسال در لحظه انجام میشود) |
مدل دیتای بازگشتی
PackId | Guid | شناسه یکتای مجموعه ارسال |
---|---|---|
MessageIds | Array of Integer
| آرایه ای از شناسه های یکتای هر پیامک |
Cost | Decimal | اعتبار مصرفی مجموعه ارسال |
مثال
بدنه درخواست
{
"lineNumber": "30004505000017",
"messageTexts": [
"سرویس پیامکی ایده پردازان با ۱۰ سال سابقه همراه شماست",
"ipdemy.ir پلتفرم آموزش آنلاین، آکادمی ایده پردازان"
],
"mobiles": [
"912xxxx677",
"+98919xxxx904"
]
}
پاسخ
{
"status": 1,
"message": "موفق",
"data": {
"packId": "2b99e63c-9bf8-4a21-9bfe-3f72dc1b46f1",
"messageIds": [
۸۶۵۲۲۰۲۳,
۸۶۵۲۲۰۲۴
],
"cost": 2.0
}
}
حذف ارسال زمانبندی شده
بهمنظور حذف و انصراف از ارسال زمانبندی شده میتوانید از متد زیر استفاده نمایید. در این متد، شناسه مجموعه ارسال (packId) دریافتی از خروجی ارسال گروهی یا نظیر به نظیر، مورد استفاده قرار میگیرد.
DELETE |
---|
https://api.sms.ir/v1/send/scheduled/{packId} |
نکات
- حداکثر تا ۳ دقیقه مانده به زمان ارسال زمانبندی شده، مجاز به لغو آن میباشید.
پارامترهای درخواست
PackId | اجباری | Guid | شناسه مجموعه ارسال |
---|---|---|---|
مدل دیتای بازگشتی
ReturnedCreditCount | Decimal | مقدار اعتبار بازگشتی |
---|---|---|
SmsCount | Integer | تعداد پیامکها |
مثال
درخواست:
https://api.sms.ir/v1/send/scheduled/2b99e63c-9bf8-4a21-9bfe-3f72dc1b46f1
پاسخ
{
"status": 1,
"message": "موفق",
"data": {
"returnedCreditCount": 10.0,
"smsCount": 5
}
}
ارسال Verify
با استفاده از این متد شما قادر به ارسال پیامک به منظور ارسال کد اعتبارسنجی (verification code)، کد تایید، فاکتور خرید و به طور کلی پیامکهایی با اولویت بالا و پارامترهای پویا میباشید. از آنجایی که این نوع از ارسال با خطوط خدماتی ارسال میشود امکان دریافت آن توسط افرادی که پیامکهای تبلیغاتی خود را مسدود کردهاند نیز وجود دارد و با اولویت بالایی ارسال خواهد شد.
برای استفاده از این نوع ارسال ابتدا قالب پیامک خود را در پنل (بخش ارسال سریع) مشخص نمایید.
POST |
---|
https://api.sms.ir/v1/send/verify |
پارامترهای درخواست
Mobile | اجباری | String | شماره موبایل |
---|---|---|---|
TemplateId | اجباری | Integer | شناسه قالب (قالب ها از طریق پنل قابل تعریف و مدیریت میباشند) |
Parameters | اجباری | Array of Parameter Model | آرایه ای از مدل parameter برای تعیین مقادیر جایگزین شونده در قالب تعریف شده (ساختار مدل parameter در جدول زیر ذکر شده است) |
مدل Parameter
Name | اجباری | String | کلید تعیین شده در قالب (بدون در نظر گرفتن # در ابتدا و انتهای آن) |
---|---|---|---|
Value
| اجباری | String | مقدار کلید تعیین شده برای جایگزینی در قالب پیامک |
مدل دیتای بازگشتی
MessageId | Integer | شناسه یکتای پیامک |
---|---|---|
Cost | Decimal | اعتبار مصرفی ارسال |
مثال
بدنه درخواست
{
"mobile": "919xxxx904",
"templateId": 100000,
"parameters": [
{
"name": "Code",
"value": "12345"
}
]
}
پاسخ
{
"status": 1,
"message": "موفق",
"data": {
"messageId": 89545112,
"cost": 1.0
}
}
گزارش پیامک (دریافت وضعیت)
شما میتوانید با استفاده از شناسه یکتای پیامک که پس از انجام هریک از ارسالها دریافت کردهاید، با فراخوانی این متد، به دریافت اطلاعات پیامک و همینطور اطلاع از وضعیت (Delivery) آن اقدام نمایید.
GET |
---|
https://api.sms.ir/v1/send/{messageId} |
پارامترهای درخواست
PackId | اجباری | Integer | شناسه یکتای پیامک |
---|---|---|---|
مدل دیتای بازگشتی
MessageId | Integer | شناسه یکتای پیامک |
---|---|---|
Mobile | Long | شماره موبایل
|
MessageText | String | متن پیامک
|
SendDateTime | Integer (UnixTime) | زمان ارسال |
LineNumber | Long | شماره خط |
Cost | Decimal | اعتبار کسر شده |
DeliveryState | Nullable Byte | وضعیت دلیوری (توضیحات تکمیلی وضعیتها) |
DeliveryDateTime | Nullable Integer (UnixTime) | زمان دلیوری |
مثال
درخواست:
https://api.sms.ir/v1/send/
پاسخ
{
"status": 1,
"message": "موفق",
"data": {
"messageId": 89545112,
"mobile": 912xxxx677,
"messageText": "سرویس پیامکی ایده پردازان با 10 سال سابقه همراه شماست",
"sendDateTime": 1628683626,
"lineNumber": 30004505000017,
"cost": 1.0,
"deliveryState": 1,
"deliveryDateTime": 1628683629
}
}
گزارش مجموعه ارسال
شما میتوانید با استفاده از شناسه مجموعه ارسال، گزارشی از پیامکهای ارسالی در آن درخواست به همراه وضعیتهایشان را دریافت نمایید.
GET |
---|
https://api.sms.ir/v1/send/pack/{packId} |
پارامترهای درخواست
PackId | اجباری | Guid | شناسه مجموعه ارسال |
---|---|---|---|
مدل دیتای بازگشتی (آرایهای از مدل زیر)
MessageId | Integer | شناسه یکتای پیامک |
---|---|---|
Mobile | Long | شماره موبایل
|
MessageText | String | متن پیامک
|
SendDateTime | Integer (UnixTime) | زمان ارسال |
LineNumber | Long | شماره خط |
Cost | Decimal | اعتبار کسر شده |
DeliveryState | Nullable Byte | وضعیت دلیوری (توضیحات تکمیلی وضعیتها) |
DeliveryDateTime | Nullable Integer (UnixTime) | زمان دلیوری |
مثال
درخواست:
https://api.sms.ir/v1/send/pack/bdec19c9-2736-4095-8ef1-ea21afe3771f
پاسخ
{
"status": 1,
"message": "موفق",
"data": [{
"messageId": 89545112,
"mobile": 912xxxx677,
"messageText": "سرویس پیامکی ایده پردازان با 10 سال سابقه همراه شماست",
"sendDateTime": 1628683626,
"lineNumber": 30004505000017,
"cost": 1.0,
"deliveryState": 1,
"deliveryDateTime": 1628683629
},{
"messageId": 89545113,
"mobile": 919xxxx378,
"messageText": "ipdemy.ir پلتفرم آموزش آنلاین، آکادمی ایده پردازان",
"sendDateTime": 1628683626,
"lineNumber": 30004505000017,
"cost": 1.0,
"deliveryState": 3,
"deliveryDateTime": 1628683625
}]
}
گزارش ارسالهای روز
با استفاده از متد زیر، گزارشی از ارسالهای انجام شده در روز جاری قابل دریافت است.
GET |
---|
https://api.sms.ir/v1/send/live |
پارامترهای درخواست
PageSize | اختیاری | Integer | تعداد آیتمهای در صفحه (مقدار پیشفرض ۱۰ میباشد) |
---|---|---|---|
PageNumber | اختیاری | Integer | شماره صفحه درخواستی (مقدار پیشفرض ۱ میباشد)
|
مدل دیتای بازگشتی (آرایهای از مدل زیر)
MessageId | Integer | شناسه یکتای پیامک |
---|---|---|
Mobile | Long | شماره موبایل
|
MessageText | String | متن پیامک
|
SendDateTime | Integer (UnixTime) | زمان ارسال |
LineNumber | Long | شماره خط |
Cost | Decimal | اعتبار کسر شده |
DeliveryState | Nullable Byte | وضعیت دلیوری (توضیحات تکمیلی وضعیتها) |
DeliveryDateTime | Nullable Integer (UnixTime) | زمان دلیوری |
مثال
درخواست:
https://api.sms.ir/v1/send/live?pageSize=25&pageNumber=3
پاسخ
{
"status": 1,
"message": "موفق",
"data": [{
"messageId": 89545112,
"mobile": 912xxxx677,
"messageText": "سرویس پیامکی ایده پردازان با 10 سال سابقه همراه شماست",
"sendDateTime": 1628683626,
"lineNumber": 30004505000017,
"cost": 1.0,
"deliveryState": 1,
"deliveryDateTime": 1628683629
},{
"messageId": 89545113,
"mobile": 919xxxx378,
"messageText": "ipdemy.ir پلتفرم آموزش آنلاین، آکادمی ایده پردازان",
"sendDateTime": 1628683626,
"lineNumber": 30004505000017,
"cost": 1.0,
"deliveryState": 3,
"deliveryDateTime": 1628683625
}]
}
گزارش ارسالهای آرشیو شده
با فراخوانی متد زیر، گزارشی از ارسالهای انجام شده در گذشته (تا انتهای روز قبل)، را دریافت خواهید نمود.
GET |
---|
https://api.sms.ir/v1/send/archive |
پارامترهای درخواست
FromDate | اختیاری | Integer (UnixTime) | از تاریخ |
---|---|---|---|
ToDate | اختیاری | Integer (UnixTime) | تا تاریخ |
PageSize | اختیاری | Integer | تعداد آیتمهای در صفحه (مقدار پیشفرض ۱۰ میباشد) |
PageNumber | اختیاری | Integer | شماره صفحه درخواستی (مقدار پیشفرض ۱ میباشد) |
مدل دیتای بازگشتی (آرایهای از مدل زیر)
MessageId | Integer | شناسه یکتای پیامک |
---|---|---|
Mobile | Long | شماره موبایل
|
MessageText | String | متن پیامک
|
SendDateTime | Integer (UnixTime) | زمان ارسال |
LineNumber | Long | شماره خط |
Cost | Decimal | اعتبار کسر شده |
DeliveryState | Nullable Byte | وضعیت دلیوری (توضیحات تکمیلی وضعیتها) |
DeliveryDateTime | Nullable Integer (UnixTime) | زمان دلیوری |
مثال
درخواست:
https://api.sms.ir/v1/send/archive?fromDate=1613465574&toDate=1623805200
پاسخ
{
"status": 1,
"message": "موفق",
"data": [{
"messageId": 89545112,
"mobile": 912xxxx677,
"messageText": "سرویس پیامکی ایده پردازان با 10 سال سابقه همراه شماست",
"sendDateTime": 1628583626,
"lineNumber": 30004505000017,
"cost": 1.0,
"deliveryState": 1,
"deliveryDateTime": 1628683629
},{
"messageId": 89545113,
"mobile": 919xxxx378,
"messageText": "ipdemy.ir پلتفرم آموزش آنلاین، آکادمی ایده پردازان",
"sendDateTime": 1628583626,
"lineNumber": 30004505000017,
"cost": 1.0,
"deliveryState": 3,
"deliveryDateTime": 1628683625
},{
"messageId": 89545114,
"mobile": 921xxxx432,
"messageText": "HyperBox.irفروشگاه اینترنتی اسباب بازی و عروسک ",
"sendDateTime": 1628583626,
"lineNumber": 30004505000017,
"cost": 1.0,
"deliveryState": 1,
"deliveryDateTime": 1628683669
}]
]
}
گزارش آخرین پیامکهای دریافتی
شما میتوانید با استفاده از این متد، تازهترین پیامکهای دریافتی را مشاهده نمایید. لازم به ذکر است هر پیامک دریافتی تنها یک مرتبه توسط این متد قابل دستیابی میباشد و پس از آن به دلیل قرار گرفتن در حالت خوانده شده قابل دسترسی مجدد توسط این متد نمیباشند.
GET |
---|
https://api.sms.ir/v1/receive/latest |
پارامترهای درخواست
Count | اختیاری | Integer | تعداد درخواستی (حداکثر تعداد درخواستی و مقدار پیشفرض ۱۰۰ میباشد) |
---|---|---|---|
مدل دیتای بازگشتی (آرایهای از مدل زیر)
Mobile | Long | شماره موبایل ارسال کننده |
---|---|---|
MessageText | String | متن پیامک |
Number | Long | شماره خط دریافت کننده |
ReceivedDateTime | Integer (UnixTime) | زمان دریافت |
مثال
درخواست:
https://api.sms.ir/v1/receive/latest?count=50
پاسخ
{
"status": 1,
"message": "موفق",
"data": [
{
"messageText": "HyperBox.irفروشگاه اینترنتی اسباب بازی و عروسک",
"number": 30004505000017,
"mobile": 912xxxx002,
"receivedDateTime": 1628683625
}
]
}
گزارش پیامکهای دریافتی روز
با فراخوانی متد زیر، گزارش پیامکهای دریافتی روز جاری (اعم از خوانده شده و نشده) قابل دستیابی میباشد.
GET |
---|
https://api.sms.ir/v1/receive/live |
پارامترهای درخواست
CountPageSize | اختیاری | Integer | تعداد آیتمهای در صفحه (مقدار پیشفرض ۱۰ میباشد) |
---|---|---|---|
PageNumber | اختیاری | Integer | شماره صفحه درخواستی (مقدار پیشفرض ۱ میباشد) |
مدل دیتای بازگشتی (آرایهای از مدل زیر)
Mobile | Long | شماره موبایل ارسال کننده |
---|---|---|
MessageText | String | متن پیامک |
Number | Long | شماره خط دریافت کننده |
ReceivedDateTime | Integer (UnixTime) | زمان دریافت |
مثال
درخواست:
https://api.sms.ir/v1/receive/live?pageSize=20&pageNumber=3
پاسخ
{
"status": 1,
"message": "موفق",
"data": [
{
"messageText": "HyperBox.irفروشگاه اینترنتی اسباب بازی و عروسک",
"number": 30004505000017,
"mobile": 912xxxx002,
"receivedDateTime": 1628683625
}
]
}
گزارش پیامکهای دریافتی روز
با فراخوانی متد زیر، گزارشی از پیامکهای دریافتی در گذشته (تا انتهای روز قبل)، را مشاهده خواهید نمود.
GET |
---|
https://api.sms.ir/v1/receive/archive |
پارامترهای درخواست
FromDate | اختیاری | Integer (UnixTime) | از تاریخ |
---|---|---|---|
ToDate | اختیاری | Integer (UnixTime)
| تا تاریخ
|
PageSize | اختیاری | Integer | تعداد آیتمهای در صفحه (مقدار پیشفرض ۱۰ میباشد) |
PageNumber | اختیاری | شماره صفحه درخواستی (مقدار پیشفرض ۱ میباشد) |
مدل دیتای بازگشتی (آرایهای از مدل زیر)
Mobile | Long | شماره موبایل ارسال کننده |
---|---|---|
MessageText | String | متن پیامک |
Number | Long | شماره خط دریافت کننده |
ReceivedDateTime | Integer (UnixTime) | زمان دریافت |
مثال
درخواست:
https://api.sms.ir/v1/receive/archive?fromDate=1613465574&toDate=1623805200
پاسخ
{
"status": 1,
"message": "موفق",
"data": [
{
"messageText": "HyperBox.irفروشگاه اینترنتی اسباب بازی و عروسک",
"number": 30004505000017,
"mobile": 912xxxx002,
"receivedDateTime": 1628683625
}
]
}
دریافت مقدار اعتبار فعلی
برای مشاهده مقدار اعتبار فعلی از متد زیر استفاده نمایید.
GET |
---|
https://api.sms.ir/v1/credit |
دیتای بازگشتی
Decimal | مقدار اعتبار |
---|---|
مثال
درخواست:
https://api.sms.ir/v1/credit
پاسخ
{
"status": 1,
"message": "موفق",
"data": 165.3
}
دریافت لیست خطوط
با استفاده از این متد، لیست خطوط آماده استفاده برای ارسال، قابل مشاهده است.
GET |
---|
https://api.sms.ir/v1/line |
دیتای بازگشتی (آرایه ای از Long)
Long | شماره خط |
---|---|
مثال
درخواست:
https://api.sms.ir/v1/line
پاسخ
{
"status": 1,
"message": "موفق",
"data": [10002155613464, 30004505000017]
}
راهنمای استفاده از متدهای سامانه پیامک SMS.ir
- مقدمه و مفاهیم
- احراز هویت
- کدهای وضعیت
- ارسال گروهی
- ارسال نظیر به نظیر
- حذف ارسال زمانبندی شده
- ارسال Verify
- گزارش وضعیت یک پیامک
- گزارش وضعیت بسته پیامک
- گزارش ارسال های روز جاری
- گزارش ارسال های آرشیوی
- گزارش آخرین پیامک های دریافتی
- گزارش امروز پیامک های دریافتی
- گزارش آرشیو پیامک های دریافتی
- دریافت اعتبار فعلی
- دریافت لیست خطوط
RESTFUL API
برای راحتی هر چه بیشتر در ارسال پیامها، وب سرویسهای کاربردی از نوع RESTful در اختیار توسعهدهندگان قرار داده شده است. وب سرویس های RESTful میتوانند با استفاده از هر زبان برنامهنویسی و یا شیوه دلخواه دیگر فراخوانی و مورد استفاده قرار گیرند.
مقدمه
در این بخش مفاهیم و قراردادهای کلی مربوط به استفاده از وب سرویس sms.ir، شرح داده خواهند شد.
HTTP REQUEST HEADER
شما میتوانید برای انجام تنظیمات ضروری و یا شخصی سازی شده، از هدرهای مشخص شده در جدول زیر استفاده نمایید.
کلید | مقدار | عملکرد |
---|---|---|
ACCEPT | application/json
یا application/xml | دریافت خروجی با فرمت Json یا Xml |
X-API-KEY | کلید تعریف شده در پنل | احراز هویت (توضیحات بیشتر) |
HTTP STATUS CODE
تمامی درخواست های ارسالی دارای Http status code های بازگشتی مطابق جدول زیر میباشند.
کلید | مقدار |
---|---|
200 | عملیات موفقیت آمیز |
400 | وقوع خطای منطقی (کدهای وضعیت همراه با توضیحات) |
401 | وجود خطا در فرآیند احراز هویت |
429 | تعداد درخواست غیر مجاز |
500 | خطای غیر منتظره |
Unix Time
واحد مقادیر مربوط به زمان در سطح این سامانه به صورت Unix Time و بر حسب ساعت هماهنگ جهانی (UTC) لحاظ شده است.
مدل بازگشتی
تمامی درخواست های ارسالی دارای مدل بازگشتی یکپارچه با ساختار زیر میباشند.
{
"status": 1,
"message": "موفق",
"data": [
۳۰۰۰۴۵۰۵۰۰۰۰۲۷,
۱۰۰۰۲۱۶۶۵۹۳۸۱۸
]
}
Status | کد وضعیت ( کدهای وضعیت همراه با توضیحات ) |
---|---|
Message | توضیحات وضعیت درخواست |
Data | دیتای بازگشتی |
AUTHORIZATION – احراز هویت
به منظور هویت سنجی در هنگام استفاده از وب سرویسهای پیامک سفید ملزم به ارسال کلید خصوصی در بخش هدر درخواست مورد نظر میباشید.
کلید های خصوصی شما در پنل برنامه نویسان قابل مشاهده و مدیریت میباشند.
در هنگام فراخوانی متدهای سامانه کلید خصوصی را با عنوان X-API-KEY در هدر درخواست قرار دهید.
X-API-KEY | PN1TVeBeaAehFLJAKU4XdfpsFXsQguYfleO0bV4ceh6diTZid2hRXza3uSkBbDef |
---|
کدهای وضعیت
کدهای وضعیت ارسال
کد | توضیحات |
---|---|
1 | عملیات با موفقیت انجام شد |
0 | مشکلی در سامانه رخ داده است، لطفا با پشتیبانی در تماس باشید |
10 | کلید وب سرویس نامعتبر است |
11 | کلید وب سرویس غیرفعال است |
12 | کلید وب سرویس محدود به IPهای تعریف شده میباشد |
13 | حساب کاربری غیر فعال است |
14 | حساب کاربری در حالت تعلیق قرار دارد |
20 | تعداد درخواست بیشتر از حد مجاز است |
101 | شماره خط نامعتبر میباشد |
102 | اعتبار کافی نمیباشد |
103 | درخواست شما دارای متن (های) خالی است |
104 | درخواست شما دارای موبایل (های) نادرست است |
105 | تعداد موبایل ها بیشتر از حد مجاز (۱۰۰ عدد) میباشد |
106 | تعداد متن ها بیشتر از حد مجاز (۱۰۰ عدد) میباشد |
107 | لیست موبایل ها خالی میباشد |
108 | لیست متن ها خالی میباشد |
109 | زمان ارسال نامعتبر میباشد |
110 | تعداد شماره موبایل ها و تعداد متن ها برابر نیستند |
111 | با این شناسه ارسالی ثبت نشده است |
112 | رکوردی برای حذف یافت نشد |
113 | قالب یافت نشد |
کدهای وضعیت دلیوری
کد | توضیحات |
---|---|
1 | رسیده به گوشی |
2 | نرسیده به گوشی |
3 | پردازش در مخابرات |
4 | نرسیده به مخابرات
|
5 | رسیده به مخابرات |
6 | خطا |
7 | لیست سیاه |
ارسال گروهی
این متد برای ارسال یک متن پیامک به گروهی از شماره موبایل ها مورد استفاده قرار میگیرد. همچنین شما میتوانید با مقداردهی به پارامتر زمان ارسال، از قابلیت ارسال پیامک زمانبندی شده نیز استفاده نمایید.
POST |
---|
https://api.sms.ir/v1/send/bulk |
نکات
- حداکثر تعداد مجاز شمارههای مقصد ۱۰۰ میباشد.
- برای ارسال زمانبندی شده، انتخاب زمان گذشته نامعتبر میباشد.
- برای ارسال زمانبندی شده، زمان معتبر میتواند در بازه یک ساعت آینده تا حداکثر ۳ روز آینده در نظر گرفته شود.
پارامترهای بدنه درخواست
lineNumber | اجباری | Long | شماره خط ارسالی |
---|---|---|---|
MessageText | اجباری | String | متن پیام کوتاه
|
Mobiles | اجباری | Array of String | شماره موبایلها |
SendDateTime | اختیاری | UnixTime | زمان ارسال پیامک (در صورت خالی بودن، ارسال در لحظه انجام میشود) |
متای دیتای بازگشتی
PackId | Guid | شناسه یکتای مجموعه ارسال |
---|---|---|
MessageIds | Array of Integer
| آرایه ای از شناسه های یکتای هر پیامک |
Cost | Decimal | اعتبار مصرفی مجموعه ارسال |
مثال
بدنه درخواست
{
"lineNumber": 30004505000017,
"messageText": "سرویس پیامکی ایده پردازان با 10 سال سابقه همراه شماست",
"mobiles": [
"00912xxxx677",
"0919xxxx904"
]
}
پاسخ
{
"status": 1,
"message": "موفق",
"data": {
"packId": "2b99e63c-9bf8-4a21-9bfe-3f72dc1b46f1",
"messageIds": [
۸۶۵۲۲۰۲۳,
۸۶۵۲۲۰۲۴
],
"cost": 2.0
}
}
ارسال نظیر به نظیر
این متد برای ارسال به گروهی از موبایلها با متنهای متفاوت برای هر کدام، مورد استفاده قرار میگیرد. همچنین شما میتوانید با مقداردهی به پارامتر زمان ارسال، از قابلیت ارسال پیامک زمانبندی شده نیز استفاده نمایید.
POST |
---|
https://api.sms.ir/v1/send/likeToLike |
نکات
- حداکثر تعداد مجاز شمارههای مقصد ۱۰۰ میباشد.
- برای ارسال زمانبندی شده، انتخاب زمان گذشته نامعتبر میباشد.
- برای ارسال زمانبندی شده، زمان معتبر میتواند در بازه یک ساعت آینده تا نهایتا ۳ روز آینده در نظر گرفته شود.
- تعداد شماره موبایلها و متنهای پیامک باید برابر باشند.
پارامترهای بدنه درخواست
lineNumber | اجباری | Long | شماره خط ارسالی |
---|---|---|---|
MessageText | اجباری | String | متن پیام کوتاه
|
Mobiles | اجباری | Array of String | شماره موبایلها |
SendDateTime | اختیاری | UnixTime | زمان ارسال پیامک (در صورت خالی بودن، ارسال در لحظه انجام میشود) |
مدل دیتای بازگشتی
PackId | Guid | شناسه یکتای مجموعه ارسال |
---|---|---|
MessageIds | Array of Integer
| آرایه ای از شناسه های یکتای هر پیامک |
Cost | Decimal | اعتبار مصرفی مجموعه ارسال |
مثال
بدنه درخواست
{
"lineNumber": "30004505000017",
"messageTexts": [
"سرویس پیامکی ایده پردازان با ۱۰ سال سابقه همراه شماست",
"ipdemy.ir پلتفرم آموزش آنلاین، آکادمی ایده پردازان"
],
"mobiles": [
"912xxxx677",
"+98919xxxx904"
]
}
پاسخ
{
"status": 1,
"message": "موفق",
"data": {
"packId": "2b99e63c-9bf8-4a21-9bfe-3f72dc1b46f1",
"messageIds": [
۸۶۵۲۲۰۲۳,
۸۶۵۲۲۰۲۴
],
"cost": 2.0
}
}
حذف ارسال زمانبندی شده
بهمنظور حذف و انصراف از ارسال زمانبندی شده میتوانید از متد زیر استفاده نمایید. در این متد، شناسه مجموعه ارسال (packId) دریافتی از خروجی ارسال گروهی یا نظیر به نظیر، مورد استفاده قرار میگیرد.
DELETE |
---|
https://api.sms.ir/v1/send/scheduled/{packId} |
نکات
- حداکثر تا ۳ دقیقه مانده به زمان ارسال زمانبندی شده، مجاز به لغو آن میباشید.
پارامترهای درخواست
PackId | اجباری | Guid | شناسه مجموعه ارسال |
---|---|---|---|
مدل دیتای بازگشتی
ReturnedCreditCount | Decimal | مقدار اعتبار بازگشتی |
---|---|---|
SmsCount | Integer | تعداد پیامکها |
مثال
درخواست:
https://api.sms.ir/v1/send/scheduled/2b99e63c-9bf8-4a21-9bfe-3f72dc1b46f1
پاسخ
{
"status": 1,
"message": "موفق",
"data": {
"returnedCreditCount": 10.0,
"smsCount": 5
}
}
ارسال Verify
با استفاده از این متد شما قادر به ارسال پیامک به منظور ارسال کد اعتبارسنجی (verification code)، کد تایید، فاکتور خرید و به طور کلی پیامکهایی با اولویت بالا و پارامترهای پویا میباشید. از آنجایی که این نوع از ارسال با خطوط خدماتی ارسال میشود امکان دریافت آن توسط افرادی که پیامکهای تبلیغاتی خود را مسدود کردهاند نیز وجود دارد و با اولویت بالایی ارسال خواهد شد.
برای استفاده از این نوع ارسال ابتدا قالب پیامک خود را در پنل (بخش ارسال سریع) مشخص نمایید.
POST |
---|
https://api.sms.ir/v1/send/verify |
پارامترهای درخواست
Mobile | اجباری | String | شماره موبایل |
---|---|---|---|
TemplateId | اجباری | Integer | شناسه قالب (قالب ها از طریق پنل قابل تعریف و مدیریت میباشند) |
Parameters | اجباری | Array of Parameter Model | آرایه ای از مدل parameter برای تعیین مقادیر جایگزین شونده در قالب تعریف شده (ساختار مدل parameter در جدول زیر ذکر شده است) |
مدل Parameter
Name | اجباری | String | کلید تعیین شده در قالب (بدون در نظر گرفتن # در ابتدا و انتهای آن) |
---|---|---|---|
Value
| اجباری | String | مقدار کلید تعیین شده برای جایگزینی در قالب پیامک |
مدل دیتای بازگشتی
MessageId | Integer | شناسه یکتای پیامک |
---|---|---|
Cost | Decimal | اعتبار مصرفی ارسال |
مثال
بدنه درخواست
{
"mobile": "919xxxx904",
"templateId": 100000,
"parameters": [
{
"name": "Code",
"value": "12345"
}
]
}
پاسخ
{
"status": 1,
"message": "موفق",
"data": {
"messageId": 89545112,
"cost": 1.0
}
}
گزارش پیامک (دریافت وضعیت)
شما میتوانید با استفاده از شناسه یکتای پیامک که پس از انجام هریک از ارسالها دریافت کردهاید، با فراخوانی این متد، به دریافت اطلاعات پیامک و همینطور اطلاع از وضعیت (Delivery) آن اقدام نمایید.
GET |
---|
https://api.sms.ir/v1/send/{messageId} |
پارامترهای درخواست
PackId | اجباری | Integer | شناسه یکتای پیامک |
---|---|---|---|
مدل دیتای بازگشتی
MessageId | Integer | شناسه یکتای پیامک |
---|---|---|
Mobile | Long | شماره موبایل
|
MessageText | String | متن پیامک
|
SendDateTime | Integer (UnixTime) | زمان ارسال |
LineNumber | Long | شماره خط |
Cost | Decimal | اعتبار کسر شده |
DeliveryState | Nullable Byte | وضعیت دلیوری (توضیحات تکمیلی وضعیتها) |
DeliveryDateTime | Nullable Integer (UnixTime) | زمان دلیوری |
مثال
درخواست:
https://api.sms.ir/v1/send/
پاسخ
{
"status": 1,
"message": "موفق",
"data": {
"messageId": 89545112,
"mobile": 912xxxx677,
"messageText": "سرویس پیامکی ایده پردازان با 10 سال سابقه همراه شماست",
"sendDateTime": 1628683626,
"lineNumber": 30004505000017,
"cost": 1.0,
"deliveryState": 1,
"deliveryDateTime": 1628683629
}
}
گزارش مجموعه ارسال
شما میتوانید با استفاده از شناسه مجموعه ارسال، گزارشی از پیامکهای ارسالی در آن درخواست به همراه وضعیتهایشان را دریافت نمایید.
GET |
---|
https://api.sms.ir/v1/send/pack/{packId} |
پارامترهای درخواست
PackId | اجباری | Guid | شناسه مجموعه ارسال |
---|---|---|---|
مدل دیتای بازگشتی (آرایهای از مدل زیر)
MessageId | Integer | شناسه یکتای پیامک |
---|---|---|
Mobile | Long | شماره موبایل
|
MessageText | String | متن پیامک
|
SendDateTime | Integer (UnixTime) | زمان ارسال |
LineNumber | Long | شماره خط |
Cost | Decimal | اعتبار کسر شده |
DeliveryState | Nullable Byte | وضعیت دلیوری (توضیحات تکمیلی وضعیتها) |
DeliveryDateTime | Nullable Integer (UnixTime) | زمان دلیوری |
مثال
درخواست:
https://api.sms.ir/v1/send/pack/bdec19c9-2736-4095-8ef1-ea21afe3771f
پاسخ
{
"status": 1,
"message": "موفق",
"data": [{
"messageId": 89545112,
"mobile": 912xxxx677,
"messageText": "سرویس پیامکی ایده پردازان با 10 سال سابقه همراه شماست",
"sendDateTime": 1628683626,
"lineNumber": 30004505000017,
"cost": 1.0,
"deliveryState": 1,
"deliveryDateTime": 1628683629
},{
"messageId": 89545113,
"mobile": 919xxxx378,
"messageText": "ipdemy.ir پلتفرم آموزش آنلاین، آکادمی ایده پردازان",
"sendDateTime": 1628683626,
"lineNumber": 30004505000017,
"cost": 1.0,
"deliveryState": 3,
"deliveryDateTime": 1628683625
}]
}
گزارش ارسالهای روز
با استفاده از متد زیر، گزارشی از ارسالهای انجام شده در روز جاری قابل دریافت است.
GET |
---|
https://api.sms.ir/v1/send/live |
پارامترهای درخواست
PageSize | اختیاری | Integer | تعداد آیتمهای در صفحه (مقدار پیشفرض ۱۰ میباشد) |
---|---|---|---|
PageNumber | اختیاری | Integer | شماره صفحه درخواستی (مقدار پیشفرض ۱ میباشد)
|
مدل دیتای بازگشتی (آرایهای از مدل زیر)
MessageId | Integer | شناسه یکتای پیامک |
---|---|---|
Mobile | Long | شماره موبایل
|
MessageText | String | متن پیامک
|
SendDateTime | Integer (UnixTime) | زمان ارسال |
LineNumber | Long | شماره خط |
Cost | Decimal | اعتبار کسر شده |
DeliveryState | Nullable Byte | وضعیت دلیوری (توضیحات تکمیلی وضعیتها) |
DeliveryDateTime | Nullable Integer (UnixTime) | زمان دلیوری |
مثال
درخواست:
https://api.sms.ir/v1/send/live?pageSize=25&pageNumber=3
پاسخ
{
"status": 1,
"message": "موفق",
"data": [{
"messageId": 89545112,
"mobile": 912xxxx677,
"messageText": "سرویس پیامکی ایده پردازان با 10 سال سابقه همراه شماست",
"sendDateTime": 1628683626,
"lineNumber": 30004505000017,
"cost": 1.0,
"deliveryState": 1,
"deliveryDateTime": 1628683629
},{
"messageId": 89545113,
"mobile": 919xxxx378,
"messageText": "ipdemy.ir پلتفرم آموزش آنلاین، آکادمی ایده پردازان",
"sendDateTime": 1628683626,
"lineNumber": 30004505000017,
"cost": 1.0,
"deliveryState": 3,
"deliveryDateTime": 1628683625
}]
}
گزارش ارسالهای آرشیو شده
با فراخوانی متد زیر، گزارشی از ارسالهای انجام شده در گذشته (تا انتهای روز قبل)، را دریافت خواهید نمود.
GET |
---|
https://api.sms.ir/v1/send/archive |
پارامترهای درخواست
FromDate | اختیاری | Integer (UnixTime) | از تاریخ |
---|---|---|---|
ToDate | اختیاری | Integer (UnixTime) | تا تاریخ |
PageSize | اختیاری | Integer | تعداد آیتمهای در صفحه (مقدار پیشفرض ۱۰ میباشد) |
PageNumber | اختیاری | Integer | شماره صفحه درخواستی (مقدار پیشفرض ۱ میباشد) |
مدل دیتای بازگشتی (آرایهای از مدل زیر)
MessageId | Integer | شناسه یکتای پیامک |
---|---|---|
Mobile | Long | شماره موبایل
|
MessageText | String | متن پیامک
|
SendDateTime | Integer (UnixTime) | زمان ارسال |
LineNumber | Long | شماره خط |
Cost | Decimal | اعتبار کسر شده |
DeliveryState | Nullable Byte | وضعیت دلیوری (توضیحات تکمیلی وضعیتها) |
DeliveryDateTime | Nullable Integer (UnixTime) | زمان دلیوری |
مثال
درخواست:
https://api.sms.ir/v1/send/archive?fromDate=1613465574&toDate=1623805200
پاسخ
{
"status": 1,
"message": "موفق",
"data": [{
"messageId": 89545112,
"mobile": 912xxxx677,
"messageText": "سرویس پیامکی ایده پردازان با 10 سال سابقه همراه شماست",
"sendDateTime": 1628583626,
"lineNumber": 30004505000017,
"cost": 1.0,
"deliveryState": 1,
"deliveryDateTime": 1628683629
},{
"messageId": 89545113,
"mobile": 919xxxx378,
"messageText": "ipdemy.ir پلتفرم آموزش آنلاین، آکادمی ایده پردازان",
"sendDateTime": 1628583626,
"lineNumber": 30004505000017,
"cost": 1.0,
"deliveryState": 3,
"deliveryDateTime": 1628683625
},{
"messageId": 89545114,
"mobile": 921xxxx432,
"messageText": "HyperBox.irفروشگاه اینترنتی اسباب بازی و عروسک ",
"sendDateTime": 1628583626,
"lineNumber": 30004505000017,
"cost": 1.0,
"deliveryState": 1,
"deliveryDateTime": 1628683669
}]
]
}
گزارش آخرین پیامکهای دریافتی
شما میتوانید با استفاده از این متد، تازهترین پیامکهای دریافتی را مشاهده نمایید. لازم به ذکر است هر پیامک دریافتی تنها یک مرتبه توسط این متد قابل دستیابی میباشد و پس از آن به دلیل قرار گرفتن در حالت خوانده شده قابل دسترسی مجدد توسط این متد نمیباشند.
GET |
---|
https://api.sms.ir/v1/receive/latest |
پارامترهای درخواست
Count | اختیاری | Integer | تعداد درخواستی (حداکثر تعداد درخواستی و مقدار پیشفرض ۱۰۰ میباشد) |
---|---|---|---|
مدل دیتای بازگشتی (آرایهای از مدل زیر)
Mobile | Long | شماره موبایل ارسال کننده |
---|---|---|
MessageText | String | متن پیامک |
Number | Long | شماره خط دریافت کننده |
ReceivedDateTime | Integer (UnixTime) | زمان دریافت |
مثال
درخواست:
https://api.sms.ir/v1/receive/latest?count=50
پاسخ
{
"status": 1,
"message": "موفق",
"data": [
{
"messageText": "HyperBox.irفروشگاه اینترنتی اسباب بازی و عروسک",
"number": 30004505000017,
"mobile": 912xxxx002,
"receivedDateTime": 1628683625
}
]
}
گزارش پیامکهای دریافتی روز
با فراخوانی متد زیر، گزارش پیامکهای دریافتی روز جاری (اعم از خوانده شده و نشده) قابل دستیابی میباشد.
GET |
---|
https://api.sms.ir/v1/receive/live |
پارامترهای درخواست
CountPageSize | اختیاری | Integer | تعداد آیتمهای در صفحه (مقدار پیشفرض ۱۰ میباشد) |
---|---|---|---|
PageNumber | اختیاری | Integer | شماره صفحه درخواستی (مقدار پیشفرض ۱ میباشد) |
مدل دیتای بازگشتی (آرایهای از مدل زیر)
Mobile | Long | شماره موبایل ارسال کننده |
---|---|---|
MessageText | String | متن پیامک |
Number | Long | شماره خط دریافت کننده |
ReceivedDateTime | Integer (UnixTime) | زمان دریافت |
مثال
درخواست:
https://api.sms.ir/v1/receive/live?pageSize=20&pageNumber=3
پاسخ
{
"status": 1,
"message": "موفق",
"data": [
{
"messageText": "HyperBox.irفروشگاه اینترنتی اسباب بازی و عروسک",
"number": 30004505000017,
"mobile": 912xxxx002,
"receivedDateTime": 1628683625
}
]
}
گزارش پیامکهای دریافتی روز
با فراخوانی متد زیر، گزارشی از پیامکهای دریافتی در گذشته (تا انتهای روز قبل)، را مشاهده خواهید نمود.
GET |
---|
https://api.sms.ir/v1/receive/archive |
پارامترهای درخواست
FromDate | اختیاری | Integer (UnixTime) | از تاریخ |
---|---|---|---|
ToDate | اختیاری | Integer (UnixTime)
| تا تاریخ
|
PageSize | اختیاری | Integer | تعداد آیتمهای در صفحه (مقدار پیشفرض ۱۰ میباشد) |
PageNumber | اختیاری | شماره صفحه درخواستی (مقدار پیشفرض ۱ میباشد) |
مدل دیتای بازگشتی (آرایهای از مدل زیر)
Mobile | Long | شماره موبایل ارسال کننده |
---|---|---|
MessageText | String | متن پیامک |
Number | Long | شماره خط دریافت کننده |
ReceivedDateTime | Integer (UnixTime) | زمان دریافت |
مثال
درخواست:
https://api.sms.ir/v1/receive/archive?fromDate=1613465574&toDate=1623805200
پاسخ
{
"status": 1,
"message": "موفق",
"data": [
{
"messageText": "HyperBox.irفروشگاه اینترنتی اسباب بازی و عروسک",
"number": 30004505000017,
"mobile": 912xxxx002,
"receivedDateTime": 1628683625
}
]
}
دریافت مقدار اعتبار فعلی
برای مشاهده مقدار اعتبار فعلی از متد زیر استفاده نمایید.
GET |
---|
https://api.sms.ir/v1/credit |
دیتای بازگشتی
Decimal | مقدار اعتبار |
---|---|
مثال
درخواست:
https://api.sms.ir/v1/credit
پاسخ
{
"status": 1,
"message": "موفق",
"data": 165.3
}
دریافت لیست خطوط
با استفاده از این متد، لیست خطوط آماده استفاده برای ارسال، قابل مشاهده است.
GET |
---|
https://api.sms.ir/v1/line |
دیتای بازگشتی (آرایه ای از Long)
Long | شماره خط |
---|---|
مثال
درخواست:
https://api.sms.ir/v1/line
پاسخ
{
"status": 1,
"message": "موفق",
"data": [10002155613464, 30004505000017]
}
RESTFUL API
برای راحتی هر چه بیشتر در ارسال پیامها، وب سرویسهای کاربردی از نوع RESTful در اختیار توسعهدهندگان قرار داده شده است. وب سرویس های RESTful میتوانند با استفاده از هر زبان برنامهنویسی و یا شیوه دلخواه دیگر فراخوانی و مورد استفاده قرار گیرند.
مقدمه
در این بخش مفاهیم و قراردادهای کلی مربوط به استفاده از وب سرویس sms.ir، شرح داده خواهند شد.
HTTP REQUEST HEADER
شما میتوانید برای انجام تنظیمات ضروری و یا شخصی سازی شده، از هدرهای مشخص شده در جدول زیر استفاده نمایید.
کلید | مقدار | عملکرد |
---|---|---|
ACCEPT | application/json
یا application/xml | دریافت خروجی با فرمت Json یا Xml |
X-API-KEY | کلید تعریف شده در پنل | احراز هویت (توضیحات بیشتر) |
HTTP STATUS CODE
تمامی درخواست های ارسالی دارای Http status code های بازگشتی مطابق جدول زیر میباشند.
کلید | مقدار |
---|---|
200 | عملیات موفقیت آمیز |
400 | وقوع خطای منطقی (کدهای وضعیت همراه با توضیحات) |
401 | وجود خطا در فرآیند احراز هویت |
429 | تعداد درخواست غیر مجاز |
500 | خطای غیر منتظره |
Unix Time
واحد مقادیر مربوط به زمان در سطح این سامانه به صورت Unix Time و بر حسب ساعت هماهنگ جهانی (UTC) لحاظ شده است.
مدل بازگشتی
تمامی درخواست های ارسالی دارای مدل بازگشتی یکپارچه با ساختار زیر میباشند.
{
"status": 1,
"message": "موفق",
"data": [
۳۰۰۰۴۵۰۵۰۰۰۰۲۷,
۱۰۰۰۲۱۶۶۵۹۳۸۱۸
]
}
Status | کد وضعیت ( کدهای وضعیت همراه با توضیحات ) |
---|---|
Message | توضیحات وضعیت درخواست |
Data | دیتای بازگشتی |
AUTHORIZATION – احراز هویت
به منظور هویت سنجی در هنگام استفاده از وب سرویسهای پیامک سفید ملزم به ارسال کلید خصوصی در بخش هدر درخواست مورد نظر میباشید.
کلید های خصوصی شما در پنل برنامه نویسان قابل مشاهده و مدیریت میباشند.
در هنگام فراخوانی متدهای سامانه کلید خصوصی را با عنوان X-API-KEY در هدر درخواست قرار دهید.
X-API-KEY | PN1TVeBeaAehFLJAKU4XdfpsFXsQguYfleO0bV4ceh6diTZid2hRXza3uSkBbDef |
---|
کدهای وضعیت
کدهای وضعیت ارسال
کد | توضیحات |
---|---|
1 | عملیات با موفقیت انجام شد |
0 | مشکلی در سامانه رخ داده است، لطفا با پشتیبانی در تماس باشید |
10 | کلید وب سرویس نامعتبر است |
11 | کلید وب سرویس غیرفعال است |
12 | کلید وب سرویس محدود به IPهای تعریف شده میباشد |
13 | حساب کاربری غیر فعال است |
14 | حساب کاربری در حالت تعلیق قرار دارد |
20 | تعداد درخواست بیشتر از حد مجاز است |
101 | شماره خط نامعتبر میباشد |
102 | اعتبار کافی نمیباشد |
103 | درخواست شما دارای متن (های) خالی است |
104 | درخواست شما دارای موبایل (های) نادرست است |
105 | تعداد موبایل ها بیشتر از حد مجاز (۱۰۰ عدد) میباشد |
106 | تعداد متن ها بیشتر از حد مجاز (۱۰۰ عدد) میباشد |
107 | لیست موبایل ها خالی میباشد |
108 | لیست متن ها خالی میباشد |
109 | زمان ارسال نامعتبر میباشد |
110 | تعداد شماره موبایل ها و تعداد متن ها برابر نیستند |
111 | با این شناسه ارسالی ثبت نشده است |
112 | رکوردی برای حذف یافت نشد |
113 | قالب یافت نشد |
کدهای وضعیت دلیوری
کد | توضیحات |
---|---|
1 | رسیده به گوشی |
2 | نرسیده به گوشی |
3 | پردازش در مخابرات |
4 | نرسیده به مخابرات
|
5 | رسیده به مخابرات |
6 | خطا |
7 | لیست سیاه |
ارسال گروهی
این متد برای ارسال یک متن پیامک به گروهی از شماره موبایل ها مورد استفاده قرار میگیرد. همچنین شما میتوانید با مقداردهی به پارامتر زمان ارسال، از قابلیت ارسال پیامک زمانبندی شده نیز استفاده نمایید.
POST |
---|
https://api.sms.ir/v1/send/bulk |
نکات
- حداکثر تعداد مجاز شمارههای مقصد ۱۰۰ میباشد.
- برای ارسال زمانبندی شده، انتخاب زمان گذشته نامعتبر میباشد.
- برای ارسال زمانبندی شده، زمان معتبر میتواند در بازه یک ساعت آینده تا حداکثر ۳ روز آینده در نظر گرفته شود.
پارامترهای بدنه درخواست
lineNumber | اجباری | Long | شماره خط ارسالی |
---|---|---|---|
MessageText | اجباری | String | متن پیام کوتاه
|
Mobiles | اجباری | Array of String | شماره موبایلها |
SendDateTime | اختیاری | UnixTime | زمان ارسال پیامک (در صورت خالی بودن، ارسال در لحظه انجام میشود) |
متای دیتای بازگشتی
PackId | Guid | شناسه یکتای مجموعه ارسال |
---|---|---|
MessageIds | Array of Integer
| آرایه ای از شناسه های یکتای هر پیامک |
Cost | Decimal | اعتبار مصرفی مجموعه ارسال |
مثال
بدنه درخواست
{
"lineNumber": 30004505000017,
"messageText": "سرویس پیامکی ایده پردازان با 10 سال سابقه همراه شماست",
"mobiles": [
"00912xxxx677",
"0919xxxx904"
]
}
پاسخ
{
"status": 1,
"message": "موفق",
"data": {
"packId": "2b99e63c-9bf8-4a21-9bfe-3f72dc1b46f1",
"messageIds": [
۸۶۵۲۲۰۲۳,
۸۶۵۲۲۰۲۴
],
"cost": 2.0
}
}
ارسال نظیر به نظیر
این متد برای ارسال به گروهی از موبایلها با متنهای متفاوت برای هر کدام، مورد استفاده قرار میگیرد. همچنین شما میتوانید با مقداردهی به پارامتر زمان ارسال، از قابلیت ارسال پیامک زمانبندی شده نیز استفاده نمایید.
POST |
---|
https://api.sms.ir/v1/send/likeToLike |
نکات
- حداکثر تعداد مجاز شمارههای مقصد ۱۰۰ میباشد.
- برای ارسال زمانبندی شده، انتخاب زمان گذشته نامعتبر میباشد.
- برای ارسال زمانبندی شده، زمان معتبر میتواند در بازه یک ساعت آینده تا نهایتا ۳ روز آینده در نظر گرفته شود.
- تعداد شماره موبایلها و متنهای پیامک باید برابر باشند.
پارامترهای بدنه درخواست
lineNumber | اجباری | Long | شماره خط ارسالی |
---|---|---|---|
MessageText | اجباری | String | متن پیام کوتاه
|
Mobiles | اجباری | Array of String | شماره موبایلها |
SendDateTime | اختیاری | UnixTime | زمان ارسال پیامک (در صورت خالی بودن، ارسال در لحظه انجام میشود) |
مدل دیتای بازگشتی
PackId | Guid | شناسه یکتای مجموعه ارسال |
---|---|---|
MessageIds | Array of Integer
| آرایه ای از شناسه های یکتای هر پیامک |
Cost | Decimal | اعتبار مصرفی مجموعه ارسال |
مثال
بدنه درخواست
{
"lineNumber": "30004505000017",
"messageTexts": [
"سرویس پیامکی ایده پردازان با ۱۰ سال سابقه همراه شماست",
"ipdemy.ir پلتفرم آموزش آنلاین، آکادمی ایده پردازان"
],
"mobiles": [
"912xxxx677",
"+98919xxxx904"
]
}
پاسخ
{
"status": 1,
"message": "موفق",
"data": {
"packId": "2b99e63c-9bf8-4a21-9bfe-3f72dc1b46f1",
"messageIds": [
۸۶۵۲۲۰۲۳,
۸۶۵۲۲۰۲۴
],
"cost": 2.0
}
}
حذف ارسال زمانبندی شده
بهمنظور حذف و انصراف از ارسال زمانبندی شده میتوانید از متد زیر استفاده نمایید. در این متد، شناسه مجموعه ارسال (packId) دریافتی از خروجی ارسال گروهی یا نظیر به نظیر، مورد استفاده قرار میگیرد.
DELETE |
---|
https://api.sms.ir/v1/send/scheduled/{packId} |
نکات
- حداکثر تا ۳ دقیقه مانده به زمان ارسال زمانبندی شده، مجاز به لغو آن میباشید.
پارامترهای درخواست
PackId | اجباری | Guid | شناسه مجموعه ارسال |
---|---|---|---|
مدل دیتای بازگشتی
ReturnedCreditCount | Decimal | مقدار اعتبار بازگشتی |
---|---|---|
SmsCount | Integer | تعداد پیامکها |
مثال
درخواست:
https://api.sms.ir/v1/send/scheduled/2b99e63c-9bf8-4a21-9bfe-3f72dc1b46f1
پاسخ
{
"status": 1,
"message": "موفق",
"data": {
"returnedCreditCount": 10.0,
"smsCount": 5
}
}
ارسال Verify
با استفاده از این متد شما قادر به ارسال پیامک به منظور ارسال کد اعتبارسنجی (verification code)، کد تایید، فاکتور خرید و به طور کلی پیامکهایی با اولویت بالا و پارامترهای پویا میباشید. از آنجایی که این نوع از ارسال با خطوط خدماتی ارسال میشود امکان دریافت آن توسط افرادی که پیامکهای تبلیغاتی خود را مسدود کردهاند نیز وجود دارد و با اولویت بالایی ارسال خواهد شد.
برای استفاده از این نوع ارسال ابتدا قالب پیامک خود را در پنل (بخش ارسال سریع) مشخص نمایید.
POST |
---|
https://api.sms.ir/v1/send/verify |
پارامترهای درخواست
Mobile | اجباری | String | شماره موبایل |
---|---|---|---|
TemplateId | اجباری | Integer | شناسه قالب (قالب ها از طریق پنل قابل تعریف و مدیریت میباشند) |
Parameters | اجباری | Array of Parameter Model | آرایه ای از مدل parameter برای تعیین مقادیر جایگزین شونده در قالب تعریف شده (ساختار مدل parameter در جدول زیر ذکر شده است) |
مدل Parameter
Name | اجباری | String | کلید تعیین شده در قالب (بدون در نظر گرفتن # در ابتدا و انتهای آن) |
---|---|---|---|
Value
| اجباری | String | مقدار کلید تعیین شده برای جایگزینی در قالب پیامک |
مدل دیتای بازگشتی
MessageId | Integer | شناسه یکتای پیامک |
---|---|---|
Cost | Decimal | اعتبار مصرفی ارسال |
مثال
بدنه درخواست
{
"mobile": "919xxxx904",
"templateId": 100000,
"parameters": [
{
"name": "Code",
"value": "12345"
}
]
}
پاسخ
{
"status": 1,
"message": "موفق",
"data": {
"messageId": 89545112,
"cost": 1.0
}
}
گزارش پیامک (دریافت وضعیت)
شما میتوانید با استفاده از شناسه یکتای پیامک که پس از انجام هریک از ارسالها دریافت کردهاید، با فراخوانی این متد، به دریافت اطلاعات پیامک و همینطور اطلاع از وضعیت (Delivery) آن اقدام نمایید.
GET |
---|
https://api.sms.ir/v1/send/{messageId} |
پارامترهای درخواست
PackId | اجباری | Integer | شناسه یکتای پیامک |
---|---|---|---|
مدل دیتای بازگشتی
MessageId | Integer | شناسه یکتای پیامک |
---|---|---|
Mobile | Long | شماره موبایل
|
MessageText | String | متن پیامک
|
SendDateTime | Integer (UnixTime) | زمان ارسال |
LineNumber | Long | شماره خط |
Cost | Decimal | اعتبار کسر شده |
DeliveryState | Nullable Byte | وضعیت دلیوری (توضیحات تکمیلی وضعیتها) |
DeliveryDateTime | Nullable Integer (UnixTime) | زمان دلیوری |
مثال
درخواست:
https://api.sms.ir/v1/send/
پاسخ
{
"status": 1,
"message": "موفق",
"data": {
"messageId": 89545112,
"mobile": 912xxxx677,
"messageText": "سرویس پیامکی ایده پردازان با 10 سال سابقه همراه شماست",
"sendDateTime": 1628683626,
"lineNumber": 30004505000017,
"cost": 1.0,
"deliveryState": 1,
"deliveryDateTime": 1628683629
}
}
گزارش مجموعه ارسال
شما میتوانید با استفاده از شناسه مجموعه ارسال، گزارشی از پیامکهای ارسالی در آن درخواست به همراه وضعیتهایشان را دریافت نمایید.
GET |
---|
https://api.sms.ir/v1/send/pack/{packId} |
پارامترهای درخواست
PackId | اجباری | Guid | شناسه مجموعه ارسال |
---|---|---|---|
مدل دیتای بازگشتی (آرایهای از مدل زیر)
MessageId | Integer | شناسه یکتای پیامک |
---|---|---|
Mobile | Long | شماره موبایل
|
MessageText | String | متن پیامک
|
SendDateTime | Integer (UnixTime) | زمان ارسال |
LineNumber | Long | شماره خط |
Cost | Decimal | اعتبار کسر شده |
DeliveryState | Nullable Byte | وضعیت دلیوری (توضیحات تکمیلی وضعیتها) |
DeliveryDateTime | Nullable Integer (UnixTime) | زمان دلیوری |
مثال
درخواست:
https://api.sms.ir/v1/send/pack/bdec19c9-2736-4095-8ef1-ea21afe3771f
پاسخ
{
"status": 1,
"message": "موفق",
"data": [{
"messageId": 89545112,
"mobile": 912xxxx677,
"messageText": "سرویس پیامکی ایده پردازان با 10 سال سابقه همراه شماست",
"sendDateTime": 1628683626,
"lineNumber": 30004505000017,
"cost": 1.0,
"deliveryState": 1,
"deliveryDateTime": 1628683629
},{
"messageId": 89545113,
"mobile": 919xxxx378,
"messageText": "ipdemy.ir پلتفرم آموزش آنلاین، آکادمی ایده پردازان",
"sendDateTime": 1628683626,
"lineNumber": 30004505000017,
"cost": 1.0,
"deliveryState": 3,
"deliveryDateTime": 1628683625
}]
}
گزارش ارسالهای روز
با استفاده از متد زیر، گزارشی از ارسالهای انجام شده در روز جاری قابل دریافت است.
GET |
---|
https://api.sms.ir/v1/send/live |
پارامترهای درخواست
PageSize | اختیاری | Integer | تعداد آیتمهای در صفحه (مقدار پیشفرض ۱۰ میباشد) |
---|---|---|---|
PageNumber | اختیاری | Integer | شماره صفحه درخواستی (مقدار پیشفرض ۱ میباشد)
|
مدل دیتای بازگشتی (آرایهای از مدل زیر)
MessageId | Integer | شناسه یکتای پیامک |
---|---|---|
Mobile | Long | شماره موبایل
|
MessageText | String | متن پیامک
|
SendDateTime | Integer (UnixTime) | زمان ارسال |
LineNumber | Long | شماره خط |
Cost | Decimal | اعتبار کسر شده |
DeliveryState | Nullable Byte | وضعیت دلیوری (توضیحات تکمیلی وضعیتها) |
DeliveryDateTime | Nullable Integer (UnixTime) | زمان دلیوری |
مثال
درخواست: