نجوا امکان ارسال پیام در کانال‌های ایمیل، پوش‌نوتیفیکیشن، پیامک و پیام‌رسان‌ها را برای کسب‌وکارها فراهم می‌کند.
در این صفحه نمونه کدهای مستندات مربوط به وب‌سرویس در کانال‌های پوش‌نوتیفیکیشن، پیامک و پیام‌رسان‌ها قرار داده شده است، برای دسترسی کامل به هر سند، فایل مربوط به آن را دانلود نمایید.

مستندات فنی سرویس پوش‌نوتیفیکیشن

وب‌سرویس پوش‌نوتیفیکیشن نجوا به شما این امکان را می‌دهد که:

  • توکن نجوای کاربران خود را دریافت کنید.
  • به توکن خاص پوش ارسال کنید.
  • به همه توکن‌های خود ارسال انبوه داشته باشید.
  • امکان پیاده‌سازی پوش نجوا را در نسخه PWA برای شما فراهم می‌کند.

مستندات دریافت توکن کاربران

پس از فعال کردن سرویس پوش نوتیفیکیشن، به هر کاربری که وارد وب‌سایت شما می‌شود پس از دادن اجازه ارسال پوش نوتیفیکیشن، یک توکن از سمت نجوا تخصیص داده خواهد شد. معیار یکتا بودن کاربر و تخصیص توکن، دستگاه استفاده شده از سمت کاربر برای subscribe شدن در سرویس پوش نوتیفیکیشن می‌باشد.
با دارا بودن این توکن، قادر خواهیم بود عملیات مختلفی از جمله ارسال اختصاصی پوش‌ نوتیفیکیشن به یک یا چند کاربر خاص و … را انجام دهیم.

برای این هدف، نجوا در scope اختصاصی خود در window، دو فانکشن مجزا در اختیار شما قرار داده است:


1- window.NAJVA.najvaUserSubscribed(najva_user_token)
2- window.NAJVA.getUserToken()


فانکشن najvaUserSubscribed:

این فانکشن بلافاصله بعد از subscribe شدن کاربر، اجرا خواهد شد و توکن کاربر را به عنوان پارامتر ورودی در اختیار دارد که شما قادر خواهید بود آن را دریافت کرده و عملیات مورد نظر خود را با استفاده از این توکن انجام دهید.

برای استفاده از این فانکشن،‌ کافی است کد زیر را در قسمت Head وب‌سایت خود قرار دهید و عملیات مورد نظر خود را بعد در داخل این فانکشن انجام دهید:

<script>
  window.NAJVA.najvaUserSubscribed = function(najva_user_token){

    // :در این بخش می‌توانید از توکن کاربر استفاده نمایید. به عنوان مثال
    alert(najva_user_token);
  }
</script>

همانگونه که مشاهده می‌شود در قطعه کد بالا، najva_user_token به عنوان توکن اختصاصی کاربر به فانکشن پاس داده شده و به عنوان نمونه استفاده، این توکن در یک alert جاوااسکریپت نمایش داده شده است.


فانکشن getUserToken:
این فانکشن در لحظه فراخوانی، به شما در صورت subscribe بودن کاربر، توکن اختصاصی کاربر و در غیر این‌صورت، مقدار null برمی‌گرداند. و شما با استفاده از مقدار خروجی این فانکشن در هر جا و هر زمان بعد از subscribe شدن کاربر، مقدار توکن اختصاصی کاربر را داشته باشید:

<script>
  const userToken = await window.NAJVA.getUserToken()
  // :در این بخش می‌توانید از توکن کاربر استفاده نمایید. به عنوان مثال
  alert(userToken);
</script>

 

📥 دانلود مستندات کامل دریافت توکن کاربران

 

مستندات ارسال پوش

نمونه درخواست ورودی:

curl –location ‘https://push.najva.com/v1/send/token/’ \

–header ‘Content-Type: multipart/form-data’ \

–header ‘apiKey: {Api Key}’ \

–form ‘website_id=”45100″‘ \

–form ‘ttl=”24″‘ \

–form date=”2025-07-21T21:04:45+03:30″‘ \

–form ‘tokens[]=”21a4548a-574d-4425-9af2-6a0e70dae649″‘ \

–form ‘tokens[]=”9615c2ea-9d2d-4343-b880-4e79cb115384″‘ \

–form ‘message.title=”transactional sample”‘ \

–form ‘message.body=”this is the body of transactional sample”‘ \

–form ‘message.icon=@/path/to/your/icon.jpg’ \

–form ‘message.image=@/path/to/your/image.jpg’ \

–form ‘message.notification_click.click_url=”https://google.com”‘ \

–form ‘message.button_1.title=”Button One”‘ \

–form ‘message.button_1.click_url=”https://najva.com”‘

نمونه پاسخ خروجی:

{

   “Message”: “Request approved.”,

   “Entries”: {

       “request_id”: “4faac313-f3b2-4f5e-b9b9-dabc7e3f5d4c”,

       “tokens”: [

           {

               “token”: “21a4548a-574d-4425-9af2-6a0e70dae649”,

               “status”: “InvalidToken”,

               “cost”: 0

           },

           {

               “token”: “9615c2ea-9d2d-4343-b880-4e79cb115384”,

               “status”: “Scheduled”,

               “cost”: 25

           }

       ]

   }

}

نمونه درخواست ورودی:

curl –location ‘https://push.najva.com/v1/send/bulk/’ \

–header ‘Content-Type: multipart/form-data’ \

–header ‘apiKey: {Api Key}’ \

–form ‘website_id=”45100″‘ \

–form ‘ttl=”24″‘ \

–form ‘datetime=”025-07-21T21:04:45+03:30″”‘ \

–form ‘message.title=”transactional sample”‘ \

–form ‘message.body=”this is the body of transactional sample”‘ \

–form ‘message.icon=@/path/to/your/icon.jpg’ \

–form ‘message.image=@/path/to/your/image.jpg’ \

–form ‘message.notification_click.click_url=”https://google.com”‘ \

–form ‘message.button_1.title=”Button One”‘ \

–form ‘message.button_1.click_url=”https://najva.com”‘

نمونه پاسخ خروجی:

{

   “Message”: “Request approved.”,

   “Entries”: {

       “campaign_id”: 17834,

       “execution_id”: 19937,

       “execution_status”: “Scheduled”

   }

}

 

📥 دانلود مستندات کامل پوش نوتیفیکیشن

مستندات پیاده‌سازی پوش در PWA

۱. الزامات اولیه

برای آنکه وب‌سایت شما قابلیت نصب به‌عنوان PWA را داشته باشد، شرایط زیر باید فراهم شود:

  • وب‌سایت باید تحت پروتکل HTTPS اجرا شود.
  • فایل manifest.json باید در دسترس مرورگر قرار گیرد.
  • MetaDataهای مناسب در سند HTML قرار داده شوند.

۲. ایجاد فایل manifest.json

فایل manifest.json باید در مسیر عمومی (public) قرار گیرد و حاوی اطلاعات پایه‌ای برنامه باشد:

public/manifest.json
{
“name”: “عنوان کامل برنامه”,
“short_name”: “عنوان کوتاه”,
“start_url”: “/”,
“display”: “standalone”,
“background_color”: “#ffffff”,
“theme_color”: “#4f4691”,
“orientation”: “portrait”,
“icons”: [
{
“src”: “/icons/icon-192.png”,
“sizes”: “192×192”,
“type”: “image/png”
},
{
“src”: “/icons/icon-512.png”,
“sizes”: “512×512”,
“type”: “image/png”
}
]
}

توجه: تصاویر آیکون باید در مسیر public/icons قرار داشته باشند و از ابعاد استاندارد استفاده شود.

۳. درج پیوند فایل مانیفست در HTML

در پروژه‌های Next.js، فایل pages/_document.tsx یا _document.js باید به‌گونه‌ای اصلاح شود که فایل manifest و سایر MetaDataهای مرتبط درج شوند:

import { Html, Head, Main, NextScript } from ‘next/document’;
export default function Document() {
return (
<Html lang=”fa”>
<Head>
<link rel=”manifest” href=”/manifest.json” />
<meta name=”theme-color” content=”#4f4691″ />
<link rel=”apple-touch-icon” href=”/icons/icon-192.png” />
</Head>
<body>
<Main />
<NextScript />
</body>
</Html>
);
}

۴. پیکربندی افزونه next-pwa

برای ساده‌سازی روند، استفاده از بسته next-pwa توصیه می‌شود. این بسته قابلیت‌های PWA را با حداقل پیکربندی به پروژه اضافه می‌کند.

 

📥 مستندات پیاده‌سازی پوش در PWA

مستندات فنی سرویس پیامک

این نسخه مخصوص ارسال‌های تراکنشی پیامک بوده و برای ارسال‌های از جنس تراکنشی، اتومیشنی و یا OTP قابل استفاده است.

ساختار URL این متد:

https://sms.najva.com/v1/{API-KEY}/sms/send.json

پارامتر‌های ورودی:

پارامترنوعتایپتوضیحات
receptorاجباریStringشماره گیرندگان پیام را مشخص می‌کند، می‌توانید چندین شماره را با ‘,’ از یکدیگر جدا کنید.
messageاجباریStringمتن پیام ارسالی، این متن حتما باید به فرمت URL Encode انکود شده باشد.
senderاختیاریStringشماره خط ارسال‌کننده پیام،‌ در صورت خالی بودن، خط پیش فرض انتخاب خواهد شد.
dateاختیاریUnixTimeزمان ارسال پیام، در صورت خالی بودن پیام در لحظه ارسال خواهد شد.
localidاختیاریStringشناسه محلی در پایگاه داده شما

پارامتر‌های خروجی:

پارامترتایپتوضیحات
messageidLongشناسه یکتای پیامک
messageStringمتن پیامک ارسالی
statusIntegerوضعیت ارسال پیامک
statustextStringمتن توضیح وضعیت ارسال پیامک
senderStringشماره فرستنده
receptorStringشماره گیرنده
dateUnixTimeزمان ارسال پیامک
costIntegerهزینه پیامک

نکات:

  • برای استفاده از این روش، کاربر حتما باید خط اختصاصی داشته باشد.
  • برای اطلاع از وضعیت پیامک به جدول وضعیت پیامک‌ها در انتهای مستند مراجعه نمایید.
  • در مورد شناسه محلی LocaId به چند نکته توجه نمایید:
    • در صورت مقدار دهی ،تعداد آن باید برابر تعداد گیرنده باشد و با کاراکتر ویرگول  « , » آنها را از هم جدا کنید
    • در صورت تکرار این شناسه محلی در ارسال‌های قبلی شما، ارسال تکراری انجام نمی‌شود و رکورد مربوط به این شناسه در خروجی قرار خواهد گرفت.

جدول خطاها:

کد خطاتوضیح
۴۰۰پارارمتر‌های ورودی صحیح نیستند.
۴۱۴تعداد دریافت کننده‌ها بیش از ۲۰۰ عدد است.
۴۱۶آدرس IP مبدأ مطابقت ندارد.
۴۱۷تاریخ ارسال اشتباه است.
۴۱۸اعتبار حساب شما کافی نیست.

نمونه درخواست ورودی:

https://sms.najva.com/v1/{API-KEY}/sms/send.json?receptor=0912000000,0912000001&sender=10001234&message=%D8%B3%D8%B1%D9%88%DB%8C%D8%B3%20%D8%A7%D8%B1%D8%B3%D8%A7%D9%84%20%D9%BE%DB%8C%D8%A7%D9%85%DA%A9%20%D9%86%D8%AC%D9%88%D8%A7

نمونه پاسخ خروجی:

{
    “return”: {
        “status”: 200,
        “message”: “تایید شد”
    },
    “entries”: [
        {
            “messageid”: 1,
            “message”: “سرویس ارسال پیامک نجوا”,
            “status”: 1,
            “statustext”: “در صف ارسال”,
            “sender”: “10004346”,
            “receptor”: “09120000000”,
            “date”: 1706619709,
            “cost”: 100
        },
        {
            “messageid”: 2,
            “message”: “سرویس ارسال پیامک نجوا”,
            “status”: 1,
            “statustext”: “در صف ارسال”,
            “sender”: “10004346”,
            “receptor”: “09120000001”,
            “date”: 1706619709,
            “cost”: 100
        }
    ]
}

ارسال با قالب از پیش‌تعریف‌شده پیامک

کاربرد این متد ارسال پیامک از طریق قالب از پیش تعریف شده و پرکردن پارامتر‌های تعریف شده در قالب مد نظر است. برای استفاده از این سرویس باید از طریق پنل،‌ قالب دلخواه خود را اضافه کنید. از کاربردهای این متد، ارسال کد اعتبارسنجی یا اطلاعات مهم و حساس می‌باشد.

مثلا قالب پیامک زیر را در نظر بگیرید:

کد اعتبار سنجی (مقدار اولین توکن): %token 

رمز عبور (مقدار دومین توکن): %token2 

سریال (مقدار سومین توکن): %token3 

مقدار متغیر بعدی (مقدار چهارمین توکن): %token10 

(مقدار پنجمین توکن): %token20

با معین کردن مقادیر توکن در پارامتر‌های درخواست، می‌توانید قالب بالا را مقادیر مشخص‌شده توسط خودتان پر کنید و متنی که از این قالب تولید می‌شود، ارسال خواهد شد.

ساختار URL این متد:

https://sms.najva.com/v1/{API-KEY}/verify/lookup.json

پارامتر‌های ورودی:

پارامترنوعتایپتوضیحات
receptorاجباریStringشماره گیرنده پیام را مشخص می‌کند.
templateاجباریStringنام قالب پیامکی تعریف‌شده در پنل نجوا
senderاجباریStringشماره خط ارسال‌کننده پیام
tokenاجباریStringرشته‌ای که در جایگاه تعریف شده برای token در تمپلیت تعریف شده قرار می‌گیرد.
token2اختیاریStringرشته‌ای که در جایگاه تعریف شده برای token2 در تمپلیت تعریف شده قرار می‌گیرد.
token3اختیاریStringرشته‌ای که در جایگاه تعریف شده برای token3 در تمپلیت تعریف شده قرار می‌گیرد.
token10اختیاریStringرشته‌ای که در جایگاه تعریف شده برای token10 در تمپلیت تعریف شده قرار می‌گیرد.
token20اختیاریStringرشته‌ای که در جایگاه تعریف شده برای token20 در تمپلیت تعریف شده قرار می‌گیرد.

پارامتر‌های خروجی:

پارامترتایپتوضیحات
messageidLongشناسه یکتای پیامک
messageStringمتن پیامک ارسالی
statusIntegerوضعیت ارسال پیامک
statustextStringمتن توضیح وضعیت ارسال پیامک
senderStringشماره فرستنده
receptorStringشماره گیرنده
dateUnixTimeزمان ارسال پیامک
costIntegerهزینه پیامک

نکات:

  • برای اطلاع از وضعیت پیامک به جدول وضعیت پیامک‌ها در انتهای مستند مراجعه نمایید.
  • شماره فرستنده (پارامتر sender) می‌تواند شماره اشتراکی یا شماره اختصاصی کاربر باشد.
  • قالب ارسالی، بایست پیش از استفاده از این متد تایید شده باشد.
  • هر کدام از توکن‌ها مقادیر و محدودیت‌هایی برای مقادیر خود دارند که در ادامه می‌آید. به صورت کلی همه توکن‌ها می‌توانند تمامی کاراکتر‌های معمول مثل حروف انگلیسی، حروف فارسی، اعداد را داشته باشند اما روی طول آن‌ها و شامل بودن کاراکتر فضای خالی محدودیت دارند (دقت شود به صورت کلی روی حداکثر کاراکتر داخل متن پیامک محدودیت وجود دارد.)
پارامترحداکثر طولحداکثر تعداد فضای خالی (space)
token۱۰۰۰
token2۱۰۰۰
token3۱۰۰۰
token10۴
token20۸

جدول خطاها:

کد خطاتوضیح
۴۰۰پارارمتر‌های ورودی صحیح نیستند.
۴۱۴تعداد دریافت کننده‌ها بیش از ۲۰۰ عدد است.
۴۱۷تاریخ ارسال اشتباه است.
۴۱۸اعتبار حساب شما کافی نیست.
۴۲۲مقدار پارامتر ارسال شده معتبر نیست (طولانی بودن و کاراکتر غیرمجاز)
۴۲۴تمپلیت مشخص‌شده تایید نشده است.

نمونه درخواست ورودی:

https://sms.najva.com/v1/{API-KEY}/verify/lookup.json?receptor=0912000000&sender=90000625&template=Test&token=tavalue&token2=tvalue2&token3=tvalue3&token10=tvalue10&token20=tvalue20

نمونه پاسخ خروجی:

{

    “return”: {

        “status”: 200,

        “message”: “درخواست تایید شد.”

    },

    “entries”: [

        {

            “messageid”: 614,

            “message”: “کد اعتبار سنجی (مقدار اولین توکن): tvalue \nرمز عبور (مقدار دومین توکن): tvalue2 \nسریال (مقدار سومین توکن): tvalue3 \nمقدار متغیر بعدی (مقدار دهمین توکن): tvalue10 \n(مقدار بیستمین توکن): tvalue20”,

            “status”: 1,

            “statustext”: “در صف ارسال”,

            “sender”: “90000625”,

            “receptor”: “09120000000”,

            “date”: 1718016806,

            “cost”: 3780

        }

    ]

}

جدول وضعیت پیا‌‌‌م‌ها

کد وضعیتتوضیحات
1در صف ارسال
2زمانبندی شده
4ارسال شده به مخابرات
6خطا در ارسال پیام به سرشماره مشخص شده
10پیامک تحویل گیرنده پیام شده است
11در تحویل پیامک مشکلی رخ داده است، از دسترس بودن مخاطب و یا خاموش بودن گوشی آن از جمله دلایل این وضعیت است.
13ارسال پیامک لغو شده است.
14گیرنده دریافت این پیامک را بلاک کرده است. ممکن است سرشماره یا پیامک‌های تبلیغاتی توسط گیرنده بلاک شده باشد. هزینه‌ی این پیامک به حساب شما باز میگردد.
100شناسه پیامک نامعتبر است.

دریافت وضعیت ارسال

پیامک‌ها بعد از ارسال از طریق وب سرویس، وضعیت در صف خواهند داشت، و سپس به مخابرات ارسال خواهند شد و وضعیت ارسال به مخابرات را خواهند گرفت. سپس به صورت پیوسته وضعیت آنها کنترل می‌شود تا به وضعیت نهایی در سیستم برسند.

از این متد برای کنترل وضعیت تحویل Delivery پیامک استفاده کنید. برای استفاده از این متد باید شناسه یکتای هر پیامک messageid را که پس از ارسال پیامک در خروجی دریافت کرده‌اید را به عنوان پارامتر ورودی ارسال کنید.
در هر بار اجرای این متد می‌توانید وضعیت حداکثر ۵۰۰ پیامک را دریافت کنید. شناسه یکتای پیامک‌ها را به وسیله ‘,’ از یکدیگر متمایز کنید.

ساختار URL این متد:

https://sms.najva.com/v1/{API-KEY}/sms/status.json

پارامتر‌های ورودی:

پارامترنوعتایپتوضیحات
messageidاجباریLongشناسه‌ی یکتای پیامک‌های مورد نظر

پارامتر‌های خروجی:

پارامترتایپتوضیحات
messageidLongشناسه یکتای پیامک
statusIntegerوضعیت ارسال پیامک
statustextStringمتن توضیح وضعیت ارسال پیامک

نکات:

  • برای مشاهده لیست کامل وضعیت پیامک‌ها به انتهای مستند مراجعه نمایید.
  • در صورتی که شناسه پیامک messageid معتبر نباشد، مقدار فیلد status = 100 خواهد بود.

جدول خطاها:

کد خطاتوضیح
۴۰۰پارارمتر‌های ورودی صحیح نیستند.
۴۱۴تعداد messageId‌ها بیش از ۵۰۰ عدد است.

نمونه درخواست ورودی:

https://sms.najva.com/v1/{API-KEY}/sms/status.json?messageid=1234,4321

نمونه پاسخ خروجی:

{
    “return”: {
        “status”: 200,
        “message”: “تایید شد”
    },
    “entries”: [
        {
            “messageid”: 1234,
            “status”: 10,
            “statustext”: “رسیده به گیرنده”
        },
        {
            “messageid”: 4321,
            “status”: 4,
            “statustext”: “رسیده به مخابرات”
        }
    ]
}

دریافت وضعیت به وسیله localId

به وسیله‌ی این متد می‌توانید گزارش پیامک‌ها را بر اساس localid که در هنگام ارسال پیامک به سامانه مشخص نمودید، دریافت کنید. ساختار خروجی این متد مشابه متد دریافت وضعیت ارسال می‌باشد.

در هر بار اجرای این متد می‌توانید از وضعیت حداکثر ۵۰۰ پیامک با خبر شوید. کافیست شناسه محلی پیامک ها را از طریق کاراکتر ویرگول « , » از هم جدا کنید.

ساختار URL این متد:

https://sms.najva.com/v1/{API-KEY}/sms/statuslocalmessageid.json

پارامتر‌های ورودی:

پارامترنوعتایپتوضیحات
localidاجباریLongشناسه‌ی محلی پیامک‌های مورد نظر

پارامتر‌های خروجی:

پارامترتایپتوضیحات
messageidLongشناسه یکتای پیامک
localidLongشناسه محلی پیامک
statusIntegerوضعیت ارسال پیامک
statustextStringمتن توضیح وضعیت ارسال پیامک

نکات:

  •  وضعیت پیامک ها به جدول وضعیت پیامک ها در انتهای مستند مراجعه نمایید.
  • فقط پیامک‌های ۴۸ ساعت گذشته localid قابل دریافت هستند.

جدول خطاها:

کد خطاتوضیح
۴۱۴تعداد localid ها بیش از ۵۰۰ عدد است.

نمونه درخواست ورودی:

https://sms.najva.com/v1/{API-KEY}/sms/statuslocalmessageid.json?localid=4321

نمونه پاسخ خروجی:

{
    “return”: {
        “status”: 200,
        “message”: “تایید شد”
    },
    “entries”: [
        {
            “messageid”: 1234,
            “status”: 10,

            “localid”: 4321
            “statustext”: “رسیده به گیرنده”
        }
    ]

}

انتخاب پیامک

در صورتی که می‌خواهید اطلاعات پیامک ارسالی را دریافت نمایید، می‌توانید با messageid و استفاده از این متد اطلاعات رکورد را دریافت کنید.

در هر بار اجرای این متد می‌توانید وضعیت حداکثر ۵۰۰ پیامک را دریافت کنید. شناسه یکتای پیامک‌ها را به وسیله ‘,’ از یکدیگر متمایز کنید.

ساختار URL این متد:

https://sms.najva.com/v1/{API-KEY}/sms/select.json

پارامتر‌های ورودی:

پارامترنوعتایپتوضیحات
messageidاجباریLongشناسه‌ی یکتای پیامک‌های مورد نظر

پارامتر‌های خروجی:

پارامترتایپتوضیحات
messageidLongشناسه یکتای پیامک
messageStringمتن پیامک ارسالی
statusIntegerوضعیت ارسال پیامک
statustextStringمتن توضیح وضعیت ارسال پیامک
senderStringشماره فرستنده
receptorStringشماره گیرنده
dateUnixTimeزمان ارسال پیامک
costIntegerهزینه پیامک

نکات:

  • در صورتی که شناسه پیامک messageid معتبر نباشد، مقدار فیلد status = 100 خواهد بود.

جدول خطاها:

کد خطاتوضیح
400پارارمتر‌های ورودی صحیح نیستند.
407دسترسی به اطلاعات مورد نظر برای شما امکان پذیر نیست
414تعداد دریافت کننده‌ها بیش از ۲۰۰ عدد است.

نمونه درخواست ورودی:

https://sms.najva.com/v1/{API-KEY}/sms/select.json?messageid=1234,4321

نمونه پاسخ خروجی:

{
    “return”: {
        “status”: 200,
        “message”: “تایید شد”
    },
    “entries”: [
        {
            “messageid”: 1234,
            “message”: “سرویس ارسال پیامک نجوا”,
            “status”: 1,
            “statustext”: “در صف ارسال”,
            “sender”: “10004346”,
            “receptor”: “09120000000”,
            “date”: 1706619709,
            “cost”: 100
        },
        {
            “messageid”: 4321,
            “message”: “سرویس ارسال پیامک نجوا”,
            “status”: 1,
            “statustext”: “در صف ارسال”,
            “sender”: “10004346”,
            “receptor”: “09120000001”,
            “date”: 1706619709,
            “cost”: 100
        }
    ]
}

لیست ارسال‌های پیامک

برای دریافت لیست پیامک‌های ارسال شده در یک بازه‌ی زمانی خاص از این متد استفاده کنید.

ساختار URL این متد:

https://sms.najva.com/v1/{API-KEY}/sms/selectoutbox.json

پارامتر‌های ورودی:

پارامترنوعتایپتوضیحات
startdateاجباریLongتاریخ شروع بازه‌ی مورد نظر به فرمت UnixTime
enddateاختیاریLongتاریخ پایان بازه‌ی مورد نظر به فرمت UnixTime، مقدار پیش‌فرض زمان حال است.
senderاختیاریStringخط اختصاصی ارسال کننده پیامک

پارامتر‌های خروجی:

پارامترتایپتوضیحات
messageidLongشناسه یکتای پیامک
messageStringمتن پیامک ارسالی
statusIntegerوضعیت ارسال پیامک
statustextStringمتن توضیح وضعیت ارسال پیامک
senderStringشماره فرستنده
receptorStringشماره گیرنده
dateUnixTimeزمان ارسال پیامک
costIntegerهزینه پیامک

نکات:

  • حداکثر طول بازه‌ی درخواست می‌تواند یک روز باشد.
  • تاریخ شروع حداکثر می‌تواند تا ۶۰ روز پیش باشد.
  • حداکثر قابلیت دریافت ۵۰۰ پیامک در این api وجود دارد.
  • تاریخ پایان حتما باید بعد از تاریخ شروع باشد.
  • برای دریافت پیام‌های یک خط خاص از sender استفاده کنید.

جدول خطاها:

کد خطاتوضیح
400پارارمتر‌های ورودی صحیح نیستند.
407دسترسی به اطلاعات مورد نظر برای شما امکان پذیر نیست
417بازه‌ی زمانی داده شده معتبر نیست.

نمونه درخواست ورودی:

https://sms.najva.com/v1/{API-KEY}/sms/selectoutbox.json??startdate=1706619700&enddate=1706620000

نمونه پاسخ خروجی:

{
    “return”: {
        “status”: 200,
        “message”: “تایید شد”
    },
    “entries”: [
        {
            “messageid”: 1,
            “message”: “سرویس ارسال پیامک نجوا”,
            “status”: 1,
            “statustext”: “در صف ارسال”,
            “sender”: “10004346”,
            “receptor”: “09120000000”,
            “date”: 1706619709,
            “cost”: 100
        },
        {
            “messageid”: 2,
            “message”: “سرویس ارسال پیامک نجوا”,
            “status”: 1,
            “statustext”: “در صف ارسال”,
            “sender”: “10004346”,
            “receptor”: “09120000001”,
            “date”: 1706619709,
            “cost”: 100
        }
    ]
}

آخرین ارسال‌های پیامک

برای دریافت لیست آخرین پیامک‌های ارسال شده از این متد استفاده کنید.

ساختار URL این متد:

https://sms.najva.com/v1/{API-KEY}/sms/latestoutbox.json

پارامتر‌های ورودی:

پارامترنوعتایپتوضیحات
pagesizeاختیاریLongتعداد رکورد‌های مورد نیاز (حداکثر ۵۰۰ رکورد)، مقدار پیش‌فرض این پارامتر ۵۰۰ است.
senderاختیاریStringخط اختصاصی ارسال کننده پیامک

پارامتر‌های خروجی:

پارامترتایپتوضیحات
messageidLongشناسه یکتای پیامک
messageStringمتن پیامک ارسالی
statusIntegerوضعیت ارسال پیامک
statustextStringمتن توضیح وضعیت ارسال پیامک
senderStringشماره فرستنده
receptorStringشماره گیرنده
dateUnixTimeزمان ارسال پیامک
costIntegerهزینه پیامک

نکات:

  • برای دریافت پیام‌های یک خط خاص از sender استفاده کنید.

جدول خطاها:

کد خطاتوضیح
400پارارمتر‌های ورودی صحیح نیستند.
407دسترسی به اطلاعات مورد نظر برای شما امکان پذیر نیست
417بازه‌ی زمانی داده شده معتبر نیست.

نمونه درخواست ورودی:

https://sms.najva.com/v1/{API-KEY}/sms/latestoutbox.json?pagesize=2

نمونه پاسخ خروجی:

{
    “return”: {
        “status”: 200,
        “message”: “تایید شد”
    },
    “entries”: [
        {
            “messageid”: 1,
            “message”: “سرویس ارسال پیامک نجوا”,
            “status”: 1,
            “statustext”: “در صف ارسال”,
            “sender”: “10004346”,
            “receptor”: “09120000000”,
            “date”: 1706619709,
            “cost”: 100
        },
        {
            “messageid”: 2,
            “message”: “سرویس ارسال پیامک نجوا”,
            “status”: 1,
            “statustext”: “در صف ارسال”,
            “sender”: “10004346”,
            “receptor”: “09120000001”,
            “date”: 1706619709,
            “cost”: 100
        }
    ]
}

تعداد ارسال‌های پیامک

برای دریافت تعداد پیامک‌های ارسال شده در یک بازه‌ی زمانی خاص از این متد استفاده کنید.

ساختار URL این متد:

https://sms.najva.com/v1/{API-KEY}/sms/countoutbox.json

پارامتر‌های ورودی:

پارامترنوعتایپتوضیحات
startdateاجباریLongتاریخ شروع بازه‌ی مورد نظر به فرمت UnixTime
enddateاختیاریLongتاریخ پایان بازه‌ی مورد نظر به فرمت UnixTime، مقدار پیش‌فرض زمان حال است.
statusاختیاریIntegerدر صورتی که میخواهید فقط پیام‌هایی با وضعیت مشخص را دریافت نمایید از این پارامتر استفاده کنید.

پارامتر‌های خروجی:

پارامترتایپتوضیحات
startdateLongتاریخ شروع بازه‌ی درخواست
enddateLongتاریخ پایان بازه‌ی درخواست
sumpartLongمجموع تعداد صفحات ارسالی
sumcountLongمجموع تعداد پیام‌های ارسالی
costLongهزینه‌ی پیامک‌های ارسالی  (ریال)

نکات:

  • حداکثر طول بازه‌ی درخواست می‌تواند یک روز باشد.
  • تاریخ شروع حداکثر می‌تواند تا ۶۰ روز پیش باشد.
  • تاریخ پایان حتما باید بعد از تاریخ شروع باشد.
  • برای دریافت پیام‌های یک خط خاص از sender استفاده کنید.

جدول خطاها:

کد خطاتوضیح
400پارارمتر‌های ورودی صحیح نیستند.
417بازه‌ی زمانی داده شده معتبر نیست.

نمونه درخواست ورودی:

https://sms.najva.com/v1/{API-KEY}/sms/countoutbox.json??startdate=1706619700&enddate=1706620000

نمونه پاسخ خروجی:

{
    “return”: {
        “status”: 200,
        “message”: “تایید شد”
    },
    “entries”: [
        {
            “startdate”: 1706619700,
            “enddate”: 1706620000,
            “sumpart”: 10,
            “sumcount”: 4,
            “cost”: 12000,
        }
    ]
}

انصراف از ارسال پیامک

با استفاده از این متود می‌توانید ارسال‌های زمانبندی شده را لغو کنید و ارسال آنها را متوقف کنید.

در هر بار اجرای این متد می‌توانید وضعیت حداکثر ۵۰۰ پیامک را دریافت کنید. شناسه یکتای پیامک‌ها را به وسیله ‘,’ از یکدیگر متمایز کنید.

ساختار URL این متد:

https://sms.najva.com/v1/{API-KEY}/sms/cancel.json

پارامتر‌های ورودی:

پارامترنوعتایپتوضیحات
messageidاجباریLongشناسه‌ی یکتای پیامک‌های مورد نظر

پارامتر‌های خروجی:

پارامترتایپتوضیحات
messageidLongشناسه یکتای پیامک
statusIntegerوضعیت ارسال پیامک
statustextStringمتن توضیح وضعیت ارسال پیامک

نکات:

  • در صورتی که شناسه پیامک messageid معتبر نباشد، مقدار فیلد status = 100 خواهد بود.
  • فقط در صورتی که پیامک مورد نظر زمانبندی شده باشد امکان لغو آن وجود دارد.

جدول خطاها:

کد خطاتوضیح
400پارارمتر‌های ورودی صحیح نیستند.
412درخواست لغو شد. تعداد پیامک‌های بیش از ۲۰۰ بوده است.

نمونه درخواست ورودی:

https://sms.najva.com/v1/{API-KEY}/sms/cancel.json?messageid=4321

نمونه پاسخ خروجی:

{
    “return”: {
        “status”: 200,
        “message”: “تایید شد”
    },
    “entries”: [
        {
            “messageid”: 4321,
            “status”: 13,
            “statustext”: “لغو شده”
        }
    ]
}

دریافت پیامک‌های دریافتی

به کمک این متد می‌توانید پیامک‌های دریافتی خط اختصاصی خود را دریافت نمایید.

ساختار URL این متد:

https://sms.najva.com/v1/{API-KEY}/sms/receive.json

پارامتر‌های ورودی:

پارامترنوعتایپتوضیحات
linenumberاجباریStringخط اختصاصی مورد نظر شما
isreadاجباریIntegerخوانده شده: ۱، خوانده نشده: ۰

پارامتر‌های خروجی:

پارامترتایپتوضیحات
messageidLongشناسه پیام دریافتی
message Stringمتن پیامک
sender Stringشماره ارسال کننده پیامک
receptorStringشماره دریافت کننده پیامک
dateUnixTimeتاریخ دریافت پیامک

نکات:

  • هر بار فراخوانی این متد ۱۰۰ پیامک برگردانده می‌شود.

نمونه درخواست ورودی:

https://sms.najva.com/v1/{API-KEY}/sms/receive.json?linenumber=90000123

نمونه پاسخ خروجی:

{
    “return”: {
        “status”: 200,
        “message”: “تایید شد”
    },
    “entries”: [
        {
            “messageid”: 4321,
            “message”:  “پیام دریافتی نمونه”,
            “sender”: “09123456789”,

            “receptor”: “90000123”,

            “date”: 1706619700

        }
    ]
}

تعداد پیامک‌های دریافت شده

از این متد برای دریافت تعداد پیامک های دریافت شده به کلیه خطوط اختصاصی یا یک خط خاص در بازه زمانی استفاده کنید.

ساختار URL این متد:

https://sms.najva.com/v1/{API-KEY}/sms/countinbox.json

پارامتر‌های ورودی:

پارامترنوعتایپتوضیحات
startdateاجباریLongتاریخ شروع بازه‌ی مورد نظر به فرمت UnixTime
enddateاختیاریLongتاریخ پایان بازه‌ی مورد نظر به فرمت UnixTime، مقدار پیش‌فرض زمان حال است.
linenumberاختیاریIntegerخط اختصاصی مورد نظر شما
isreadاجباریIntegerخوانده شده: ۱، خوانده نشده: ۰

پارامتر‌های خروجی:

پارامترتایپتوضیحات
startdateLongتاریخ شروع بازه‌ی درخواست
enddateLongتاریخ پایان بازه‌ی درخواست
sumcountLongمجموع تعداد پیام‌های دریافتی

نکات:

  • حداکثر طول بازه‌ی درخواست می‌تواند یک روز باشد.
  • تاریخ شروع حداکثر می‌تواند تا ۶۰ روز پیش باشد.
  • تاریخ پایان حتما باید بعد از تاریخ شروع باشد.

جدول خطاها:

کد خطاتوضیح
400پارارمتر‌های ورودی صحیح نیستند.
417بازه‌ی زمانی داده شده معتبر نیست.

نمونه درخواست ورودی:

https://sms.najva.com/v1/{API-KEY}/sms/countinbox.json?linenumber=90000123

نمونه پاسخ خروجی:

{
    “return”: {
        “status”: 200,
        “message”: “تایید شد”
    },
    “entries”: [
        {
            “startdate”: 1706619700,
            “enddate”: 1706620000,
            “sumcount”: 10

        }
    ]
}

وب‌هوک

برای دریافت گزارش‌ها از طریق callback بایست در بخش تنظیمات پیامک پنل نجوا آدرس endpoint و متد ارسال درخواست وب‌هوک از میان متد‌های GET و POST، تعیین شود.

پس از آن، به ازای هر تغییر در وضعیت پیامک ارسالی، درخواستی برای endpoint معرفی شده توسط شما ارسال می‌شود. در حال حاضر، درخواست وب‌هوک تنها یک بار ارسال می‌شود (در صورتی که status مناسب توسط endpoint بازگردانده نشود، دوباره درخواست وب‌هوک ارسال نمی‌شود)

در درخواستی که از طرف نجوا به endpoint شما ارسال می‌شود، دو پارامتر زیر وجود دارند(در body درخواست):

  • messageid: که آیدی پیام ارسالی را مشخص می‌کند
  • status: که وضعیت پیام ارسالی را نشان می‌دهد. (طبق جدول پیوست شده)

نمونه‌ پیام ارسالی:

    {
        “messageid”: 1234,
        “status”: 10,
    }

این نسخه مخصوص ارسال‌های تعداد بالای پیامک از طریق API بوده و برای ارسال‌های از جنس کمپینی قابل استفاده است.

احراز هویت در تمام endpoint ها

برای احراز هویت در تمامی endpoint‌ها، با استفاده از توکن دریافت شده در صفحه‌ی تنظیمات (API TOKEN)، این توکن را در قالب هدر (header) زیر در تمامی درخواست‌ها ارسال نمایید.

محتوانام هدر
Bearer <API_TOKEN>Authorization

ارسال پیامک دسته‌ای

کاربرد این متد ارسال پیامک یکسان به یک دسته از مخاطبان است. برای ارسال تکی نیز از همین متد استفاده کنید. در این متد می‌توانید حداکثر به ۱۰۰۰۰ نفر در یک درخواست پیامک ارسال کنید.

ساختار URL این متد:

باید از متد POST برای ارسال به این endpoint استفاده کنید.

https://sms.najva.com/v2/sms/send

پارامتر‌های ورودی:

پارامترنوعتایپتوضیحات
receptorاجباریStringشماره گیرندگان پیام را مشخص می‌کند. به صورت لیستی از شماره‌ها می‌باشد.
messageاجباریStringمتن پیام ارسالی، این متن حتما باید به فرمت URL Encode انکود شده باشد.
senderاجباریStringشماره خط ارسال‌کننده پیام

پارامتر‌های خروجی:

پارامترتایپتوضیحات
messageidLongشناسه یکتای پیامک
messageStringمتن پیامک ارسالی
statusIntegerوضعیت ارسال پیامک
statustextStringمتن توضیح وضعیت ارسال پیامک
senderStringشماره فرستنده
receptorStringشماره گیرنده
dateUnixTimeزمان ارسال پیامک
costIntegerهزینه پیامک

نکات:

  • برای اطلاع از وضعیت پیامک به جدول وضعیت پیام‌ها در انتهای مستند مراجعه نمایید.
  • محدودیت تعداد دریافت کننده‌ها ۱۰۰۰۰ نفر است.

جدول خطاها:

کد خطاتوضیح
۴۰۰پارارمتر‌های ورودی صحیح نیستند.
۴۱۴تعداد دریافت کننده‌ها بیش از 10000 عدد است.
۴۱۸اعتبار حساب شما کافی نیست.

نمونه درخواست ورودی:

درخواست باید به فرمت زیر در body ارسال شود.

{
  “message”: “این پیامک از زیرساخت ارسال پیامک نجوا ارسال شده است.”,
  “sender”: “90000123”,
  “receivers”: [
    “09120000000”,
    “09120000001”,
    “09120000002”
  ]
}

نمونه پاسخ خروجی:

{
    “return”: {
        “status”: 200,
        “message”: “تایید شد”
    },
    “entries”: [
        {
            “messageid”: 1,
            “message”: این پیامک از زیرساخت ارسال پیامک نجوا ارسال شده است.,
            “status”: 1,
            “statustext”: “در صف ارسال”,
            “sender”: 90000123,
            “receptor”: 09120000000,
            “date”: 1706619709,
            “cost”: 1000
        },
        {
            “messageid”: 2,
            “message”: این پیامک از زیرساخت ارسال پیامک نجوا ارسال شده است.,
            “status”: 1,
            “statustext”: “در صف ارسال”,
            “sender”: 90000123,
            “receptor”: 09120000001,
            “date”: 1706619709,
            “cost”: 1000
        },
        {
            “messageid”: 3,
            “message”: این پیامک از زیرساخت ارسال پیامک نجوا ارسال شده است.,
            “status”: 1,
            “statustext”: “در صف ارسال”,
            “sender”: 90000123,
            “receptor”: 09120000002,
            “date”: 1706619709,
            “cost”: 1000
        }    ]
}

ارسال پیامک نظیر به نظیر

کاربرد این متد ارسال پیامک دسته‌ای به صورت نظر به نظر (متن ارسالی برای هر مخاطب متفاوت باشد) است.  در این متد می‌توانید حداکثر به ۱۰۰۰۰ نفر در یک درخواست پیامک ارسال کنید.

ساختار URL این متد:

باید از متد POST برای ارسال به این endpoint استفاده کنید.

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

پارامتر‌های ورودی:

پارامترنوعتایپتوضیحات
receptorاجباریStringشماره گیرندگان پیام را مشخص می‌کند. به صورت لیستی از شماره‌ها می‌باشد.
messageاجباریStringمتن پیام ارسالی، این متن حتما باید به فرمت URL Encode انکود شده باشد.
senderاختیاریStringشماره خط ارسال‌کننده پیام،‌ در صورت خالی بودن، خط پیش فرض انتخاب خواهد شد.

پارامتر‌های خروجی:

پارامترتایپتوضیحات
messageidLongشناسه یکتای پیامک
messageStringمتن پیامک ارسالی
statusIntegerوضعیت ارسال پیامک
statustextStringمتن توضیح وضعیت ارسال پیامک
senderStringشماره فرستنده
receptorStringشماره گیرنده
dateUnixTimeزمان ارسال پیامک
costIntegerهزینه پیامک

نکات:

  • برای اطلاع از وضعیت پیامک به جدول وضعیت پیامک‌ها در انتهای مستند مراجعه نمایید.
  • محدودیت تعداد دریافت کننده‌ها ۱۰۰۰۰ نفر است.

جدول خطاها:

کد خطاتوضیح
۴۰۰پارارمتر‌های ورودی صحیح نیستند.
۴۱۴تعداد دریافت کننده‌ها بیش از ۱۰۰۰۰ عدد است.
۴۱۸اعتبار حساب شما کافی نیست.

نمونه درخواست ورودی:

{
  “sender”: “90000123”,
  “messages”: [
    {
      “message”: “پیامک 1”,
      “receiver”: “09120000000”
    },
    {
      “message”: “پیامک 2”,
      “receiver”: “09120000001”
    },
    {
      “message”: “پیامک 3”,
      “receiver”: “09120000002”
    }
  ]
}

نمونه پاسخ خروجی:

{
    “return”: {
        “status”: 200,
        “message”: “تایید شد”
    },
    “entries”: [
        {
            “messageid”: 1,
            “message”: پیامک 1,
            “status”: 1,
            “statustext”: “در صف ارسال”,
            “sender”: 90000123,
            “receptor”: 09120000000,
            “date”: 1706619709,
            “cost”: 1000
        },
        {
            “messageid”: 2,
            “message”: پیامک 2,
            “status”: 1,
            “statustext”: “در صف ارسال”,
            “sender”: 90000123,
            “receptor”: 09120000001,
            “date”: 1706619709,
            “cost”: 1000
        },
        {
            “messageid”: 3,
            “message”: پیامک 3,
            “status”: 1,
            “statustext”: “در صف ارسال”,
            “sender”: 90000123,
            “receptor”: 09120000002,
            “date”: 1706619709,
            “cost”: 1000
        }    ]
}

دریافت وضعیت ارسال

پیامک‌ها بعد از ارسال از طریق وب سرویس، وضعیت در صف خواهند داشت، و سپس به مخابرات ارسال خواهند شد و وضعیت ارسال به مخابرات را خواهند گرفت. سپس به صورت پیوسته وضعیت آنها کنترل می‌شود تا به وضعیت نهایی در سیستم برسند.

از این متد برای کنترل وضعیت تحویل Delivery پیامک استفاده کنید. برای استفاده از این متد باید شناسه یکتای هر پیامک messageid را که پس از ارسال پیامک در خروجی دریافت کرده‌اید را به عنوان پارامتر ورودی ارسال کنید.
در هر بار اجرای این متد می‌توانید وضعیت حداکثر 1000 پیامک را دریافت کنید.

ساختار URL این متد:

باید از متد POST برای ارسال به این endpoint استفاده کنید.

https://sms.najva.com/v2/sms/status

پارامتر‌های ورودی:

پارامترنوعتایپتوضیحات
messageidsاجباریList[Long]لیست messageid هایی که وضعیت آنها را می‌خواهید.

پارامتر‌های خروجی:

پارامترتایپتوضیحات
messageidLongشناسه یکتای پیامک
statusIntegerوضعیت ارسال پیامک
statustextStringمتن توضیح وضعیت ارسال پیامک

نکات:

  • برای مشاهده لیست کامل وضعیت پیام‌ها به انتهای مستند مراجعه نمایید.
  • در صورتی که شناسه پیامک messageid معتبر نباشد، مقدار فیلد status = 100 خواهد بود.

جدول خطاها:

کد خطاتوضیح
۴۰۰پارارمتر‌های ورودی صحیح نیستند.
۴۱۴تعداد messageId‌ها بیش از 1000 عدد است.

نمونه درخواست ورودی:

{
  “messageids”: [
    1,
    2,
    3
  ]
}

نمونه پاسخ خروجی:

{
    “return”: {
        “status”: 200,
        “message”: “تایید شد”
    },
    “entries”: [
        {
            “messageid”: 1,
            “status”: 10,
            “statustext”: “رسیده به گیرنده”
        },
        {
            “messageid”: 2,
            “status”: 4,
            “statustext”: “رسیده به مخابرات”
        },
        {
            “messageid”: 3,
            “status”: 100,
            “statustext”: “شناسه پیامک نامعتبر است”
        }
    ]
}

دریافت لیست پیامک‌های ارسالی اخیر

این endpoint در دست توسعه است و هنوز در دسترس نیست.

در صورتی که می‌خواهید اطلاعات پیامک ارسالی آخر خود را دریافت نمایید، از این متد استفاده نمایید.

در هر بار اجرای این متد می‌توانید وضعیت حداکثر ۲۰۰ پیامک را دریافت کنید.

ساختار URL این متد:

باید از متد GET برای درخواست به این endpoint استفاده کنید.

https://sms.najva.com/v2/sms/outbox

پارامتر‌های ورودی:

پارامترنوعتایپتوضیحات
pageاجباریIntegerشماره‌ی صفحه‌ی مورد نظر (شروع از 0)
pageSizeاجباریIntegerتعداد پیامک‌ها در پاسخ

پارامتر‌های خروجی:

پارامترتایپتوضیحات
messageidLongشناسه یکتای پیامک
messageStringمتن پیامک ارسالی
statusIntegerوضعیت ارسال پیامک
statustextStringمتن توضیح وضعیت ارسال پیامک
senderStringشماره فرستنده
receptorStringشماره گیرنده
dateUnixTimeزمان ارسال پیامک
costIntegerهزینه پیامک

جدول خطاها:

کد خطاتوضیح
400پارارمتر‌های ورودی صحیح نیستند.

نمونه درخواست ورودی:

https://sms.najva.com/v2/{API-KEY}/sms/outbox

نمونه پاسخ خروجی:

{
    “return”: {
        “status”: 200,
        “message”: “تایید شد”
    },
    “entries”: [
          “totalMessages”: 1000,
          “page”: 0
        {
            “messageid”: 1234,
            “message”: “سرویس ارسال پیامک نجوا”,
            “status”: 1,
            “statustext”: “در صف ارسال”,
            “sender”: “10004346”,
            “receptor”: “09120000000”,
            “date”: 1706619709,
            “cost”: 100
        },
        {
            “messageid”: 4321,
            “message”: “سرویس ارسال پیامک نجوا”,
            “status”: 1,
            “statustext”: “در صف ارسال”,
            “sender”: “10004346”,
            “receptor”: “09120000001”,
            “date”: 1706619709,
            “cost”: 100
        }
    ]
}

وب‌هوک

برای دریافت گزارش‌ها از طریق callback بایست در بخش تنظیمات پیامک پنل نجوا آدرس endpoint و متد ارسال درخواست وب‌هوک از میان متد‌های GET و POST، تعیین شود.

پس از آن، به ازای هر تغییر در وضعیت پیامک ارسالی، درخواستی برای endpoint معرفی شده توسط شما ارسال می‌شود. در حال حاضر، درخواست وب‌هوک تنها یک بار ارسال می‌شود (در صورتی که status مناسب توسط endpoint بازگردانده نشود، دوباره درخواست وب‌هوک ارسال نمی‌شود)

در درخواستی که از طرف نجوا به endpoint شما ارسال می‌شود، دو پارامتر زیر وجود دارند(در body درخواست):

  • messageid: که آیدی پیام ارسالی را مشخص می‌کند
  • status: که وضعیت پیام ارسالی را نشان می‌دهد. (طبق جدول پیوست شده)

نمونه‌ پیام ارسالی:

    {
        “messageid”: 1234,
        “status”: 10,
    }

جدول وضعیت پیا‌‌‌م‌ها

کد وضعیتتوضیحات
1در صف ارسال
2زمانبندی شده
4ارسال شده به مخابرات
6خطا در ارسال پیام به سرشماره مشخص شده
10پیامک تحویل گیرنده پیام شده است
11در تحویل پیامک مشکلی رخ داده است، از دسترس بودن مخاطب و یا خاموش بودن گوشی آن از جمله دلایل این وضعیت است.
13ارسال پیامک لغو شده است.
14گیرنده دریافت این پیامک را بلاک کرده است. ممکن است سرشماره یا پیامک‌های تبلیغاتی توسط گیرنده بلاک شده باشد. هزینه‌ی این پیامک به حساب شما باز میگردد.
100شناسه پیامک نامعتبر است.

وب‌سرویس هوشمند نجوا با هدف بهینه‌سازی هزینه و بازخورد از کاربران نهایی برای پیامک‌هایث تراکنشی ایجاد شده است. در واقع، این سرویس با ارسال پیام در کم‌هزینه‌ترین و بهترین کانال از نظر بازخورد بین کانال‌ پیام‌رسان‌ها و پیامک، باعث می‌شود:

  • کاربران نهایی کسب‌وکارها در کانالی که بیشترین تعامل را با آن دارند پیام کسب‌وکار را دریافت کنند.
  • برای ارسال هر پیام از سمت کسب‌وکار به سمت مشتری نهایی، ابتدا کم‌هزینه‌ترین کانال بررسی شده و پیام در ادامه به سراغ کانال‌های پرهزینه هدایت می‌شود. در نتیجه این فرآیند، هزینه کلی هر پیام کاهش می‌یابد.

راز هویت در تمام endpoint ها

برای احراز هویت در تمامی endpoint‌ها، با استفاده از توکن دریافت شده در صفحه‌ی تنظیمات (API TOKEN)، این توکن را در قالب هدر (header) زیر در تمامی درخواست‌ها ارسال نمایید.

محتوانام هدر
Bearer <API_TOKEN>Authorization

ارسال پیامک به مخاطب خاص

کاربرد این متد ارسال پیامک به یک مخاطب است. 

ساختار URL این متد:

باید از متد POST برای ارسال به این endpoint استفاده کنید.

https://sms.najva.com/v3/sms/send

پارامتر‌های ورودی:

پارامترنوعتایپتوضیحات
receptorاجباریStringشماره گیرنده پیام را مشخص می‌کند. 
messageاجباریStringمتن پیام ارسالی
sender_map.smsاجباریStringشماره خط ارسال‌کننده پیام
sender_map.rubikaاختیاریStringتوکن بات روبیکای ارسال کننده پیام
sender_map.baleاختیاریStringآیدی بازوی بله

پارامتر‌های خروجی:

پارامترتایپتوضیحات
messageidLongشناسه یکتای پیامک
messageStringمتن پیامک ارسالی
statusIntegerوضعیت ارسال پیامک
statustextStringمتن توضیح وضعیت ارسال پیامک
receptorStringشماره گیرنده
costmap.rubikaIntegerهزینه پیام در روبیکا (در صورتی که از روبیکا استفاده کرده باشید)
costmap.baleIntegerهزینه پیام در بله (در صورتی که از بله استفاده کرده باشید)
costmap.smsIntegerهزینه پیام در پیامک

نکات:

  • برای اطلاع از وضعیت پیامک به جدول وضعیت پیام‌ها در انتهای مستند مراجعه نمایید.
  • هنگامی که یک sender_map را تعریف می‌کنید، ارسال کننده‌ی پیامک اجباری است و حداقل یکی از ارسال کننده‌های بله یا روبیکا نیز اجباری هستند. می‌توانید هر دوی آن‌ها را نیز مشخص کنید که در این صورت اولویت اول با روبیکا و اولویت دوم با بله می‌باشد.

جدول خطاها:

کد خطاتوضیح
۴۰۰پارارمتر‌های ورودی صحیح نیستند.
۴۱۸اعتبار حساب شما کافی نیست.

نمونه درخواست ورودی:

درخواست باید به فرمت زیر در body ارسال شود.

{

    “message”: تست از سرویس هوشمند ارسال پیامک نجوا“,

    “receiver”: “09120000000“,

    “sender_map”: {

        “rubika”: “<rubika_token_id>“,

        “bale”: “<bale_bot_id>“,

        “sms”: “90000

    }

}

نمونه پاسخ خروجی:

{
    “return”: {
        “status”: 200,
        “message”: “تایید شد”
    },
    “entries”: [
        {
            “messageid”: 1,
            “message”: تست از سرویس هوشمند ارسال پیامک نجوا,
            “status”: 1,
            “statustext”: “در صف ارسال”,
            “receptor”: 09120000000,

            “cost_map”: {

                  “rubika”: 80,

                  “sms”: 104,

                  “bale”: 80,

            }
        },

    ]

جدول وضعیت پیا‌‌‌م‌ها

کد وضعیتتوضیحات
1در صف ارسال
2زمانبندی شده
4ارسال شده به مخابرات
6خطا در ارسال پیام به سرشماره مشخص شده
10پیامک تحویل گیرنده پیام شده است
11در تحویل پیامک مشکلی رخ داده است، از دسترس بودن مخاطب و یا خاموش بودن گوشی آن از جمله دلایل این وضعیت است.
13ارسال پیامک لغو شده است.
14گیرنده دریافت این پیامک را بلاک کرده است. ممکن است سرشماره یا پیامک‌های تبلیغاتی توسط گیرنده بلاک شده باشد. هزینه‌ی این پیامک به حساب شما بازمی‌گردد.
100شناسه پیامک نامعتبر است.

 

📥 دانلود مستندات کامل پیامک نسخه ۱

📥 دانلود مستندات کامل پیامک نسخه ۲

📥 دانلود مستندات کامل وب‌سرویس هوشمند