رفتن به محتوای اصلی
ارسال و وضعیت (نسخهٔ ۲)

ارسال نظیربه‌نظیر (متن متفاوت برای هر گیرنده)

post
https://sms.najva.com/v2/sms/send-p2p

برای هر گیرنده یک متن اختصاصی ارسال می‌کند؛ همه پیام‌ها با یک سرشماره مشترک فرستاده می‌شوند. حداکثر ۱۰٬۰۰۰ پیام در هر فراخوانی مجاز است. شماره‌ها به قالب 09xxxxxxxxx نرمال‌سازی می‌شوند؛ رکوردهای با شماره نامعتبر و شماره‌های تکراری (اولین رخداد نگه داشته می‌شود) از ارسال کنار می‌روند ولی در پاسخ با وضعیت ۰ و ۱۵ گزارش می‌شوند و اگر هیچ رکورد معتبری نماند خطای ۴۱۱ برمی‌گردد. سرشماره باید مجوز can_send_api_campaign داشته باشد و اعتبار حساب برای مجموع هزینه بررسی می‌شود.

احراز هویت

نوع احراز هویتتوکن BearerbearerAuth

کلید API را در هدر Authorization با پیشوند Bearer بفرستید:

``` Authorization: Bearer YOURAPIKEY ```

این روش برای سرویس‌های نسخهٔ ۲، نسخهٔ ۳ و بارگذاری فایل به کار می‌رود. سرویس‌های نسخهٔ ۱ کلید را از مسیر URL می‌گیرند و هدری نمی‌خواهند.

هدر لازم
Authorization: Bearer YOUR_ACCESS_TOKEN

کلید خود را کجا پیدا کنم؟

اطلاعات ورود را از پنل کاربری خود بگیرید و توکن را فقط روی سرور و در یک متغیر محیطی نگه دارید؛ هرگز آن را در کد سمت کاربر قرار ندهید.

بدنهٔ درخواست

application/jsonالزامی

بدنه JSON درخواست ارسال نظیربه‌نظیر. با `ctx.ShouldBindJSON` خوانده می‌شود.

نامنوعالزامیتوضیح
sender*
stringالزامی

سرشماره مشترک همه پیام‌های این درخواست. در صورت نامعتبر بودن، خطای ۴۱۲ برمی‌گردد.

محدودیت: باید یکی از خطوط حساب کاربر با مجوز cansendapi_campaign باشد

نمونه3000505
messages*
array<object>الزامی

فهرست پیام‌ها؛ هر عضو یک جفت «گیرنده و متن» است. بیش از ۱۰٬۰۰۰ عضو خطای ۴۱۴ می‌دهد.

محدودیت: حداکثر ۱۰٬۰۰۰ عضو. آرایهٔ خالی از اعتبارسنجی عبور می‌کند ولی چون هیچ گیرندهٔ معتبری ندارد با خطای ۴۱۱ رد می‌شود.

message*
stringالزامی

متن اختصاصی این گیرنده. برای خطوط پیامکی، عبارت «\nلغو۱۱» به‌طور خودکار به انتهای متن افزوده یا یکسان‌سازی می‌شود؛ برای خطوط پیام‌رسان (بله/روبیکا) این کار انجام نمی‌شود.

محدودیت: حداقل ۱ کاراکتر

نمونهکد تخفیف شما: A1B2C3
receiver*
stringالزامی

شماره گیرنده. به قالب 09xxxxxxxxx نرمال می‌شود. شمارهٔ نامعتبر، تکراری یا خالی باعث خطای اعتبارسنجی نمی‌شود: آن عضو از ارسال کنار گذاشته و در entries با وضعیت ۰ (دریافت کننده نامعتبر) یا ۱۵ (شماره تکراری) گزارش می‌شود. تنها وقتی خطای ۴۱۱ برمی‌گردد که هیچ گیرندهٔ معتبری باقی نماند.

محدودیت: مطابق الگوی ^((\+?98)|0)?9[0-9]{9}$ — در غیر این صورت حذف می‌شود، نه رد درخواست

نمونه09121234567
file_id
stringاختیاری

شناسه فایل بازگشتی از POST /upload-file/bale. باید متعلق به همان حساب باشد و ارائه‌دهنده آن با ارائه‌دهنده سرشماره یکی باشد، وگرنه خطای ۴۰۰ برمی‌گردد.

محدودیت: حداکثر ۱۰۰ کاراکتر

نمونه3f2b7c1e-9a4d-4f1c-8b77-2c0f9e6a5d31می‌تواند null باشد

نمونهٔ درخواست

{
"sender": "3000505",
"messages": [
{
"receiver": "09121234567",
"message": "کد تخفیف شما: A1B2C3"
},
{
"receiver": "09351234567",
"message": "سفارش ۲۳۴۵ شما ارسال شد."
}
],
"file_id": null
}

پاسخ‌ها

ساختار پاسخ

نامنوعالزامیتوضیح
return
ApiStatusاختیاری

وضعیت پاسخ. مقدار status با کد وضعیت HTTP پاسخ یکسان است.

status*
integerالزامی

کد وضعیت — همان کد وضعیت HTTP پاسخ.

نمونه200
message*
stringالزامی

پیام فارسی قابل نمایش به کاربر.

نمونهدرخواست تایید شد.
entries
array<MessageInfo>اختیاری

اطلاعات یک پیامک ثبت‌شده (dto.MessageInfo).

messageid
integer· int64اختیاری

شناسهٔ پیامک در نجوا. برای رکوردهای نامعتبر/تکراری صفر است.

نمونه18392011قالبint64
message
stringاختیاری

متن نهایی پیامک پس از افزودن «لغو۱۱».

status
integerاختیاری

وضعیت پیامک: ۰ دریافت کننده نامعتبر · ۱ در صف ارسال · ۲ زمان‌بندی شده · ۴ ارسال شده به مخابرات · ۶ خطا در ارسال · ۱۰ رسیده به گیرنده · ۱۱ مشکل در رسیدن پیام · ۱۳ لغو شده · ۱۴ بلاک شده · ۱۵ شماره تکراری · ۱۰۰ شناسه نامعتبر.

مقادیر مجاز012461011131415100نمونه1
statustext
stringاختیاری

متن فارسی وضعیت.

نمونهدر صف ارسال
sender
stringاختیاری

سرشمارهٔ ارسال.

نمونه3000505
receptor
stringاختیاری

شمارهٔ گیرنده، نرمال‌شده به قالب 09xxxxxxxxx.

نمونه09121234567
date
integer· int64اختیاری

زمان ثبت درخواست (unix، ثانیه).

نمونه1757145600قالبint64
cost
number· floatاختیاری

هزینه به ریال (مقدار داخلی تومان × ۱۰).

نمونه700قالبfloat

نمونهٔ پاسخ

{
"return": {
"status": 200,
"message": "درخواست تایید شد."
},
"entries": [
{
"messageid": 18392101,
"message": "کد تخفیف شما: A1B2C3\nلغو۱۱",
"status": 1,
"statustext": "در صف ارسال",
"sender": "3000505",
"receptor": "09121234567",
"date": 1757145600,
"cost": 700
},
{
"messageid": 18392102,
"message": "سفارش ۲۳۴۵ شما ارسال شد.\nلغو۱۱",
"status": 1,
"statustext": "در صف ارسال",
"sender": "3000505",
"receptor": "09351234567",
"date": 1757145600,
"cost": 1400
},
{
"messageid": 0,
"message": "",
"status": 15,
"statustext": "شماره تکراری",
"sender": "",
"receptor": "09121234567",
"date": 0,
"cost": 0
}
]
}