ارسال پیامک

ارسال یک متن به یک یا چند گیرنده، یا به گروه‌های دفترچه تلفن.

POST/sms/send
scope: sms.send

متن را به شماره‌های گیرنده ارسال می‌کند. شماره‌ها به‌صورت خودکار نرمال‌سازی و تکراری‌ها حذف می‌شوند؛ اگر حتی یک شماره نامعتبر باشد کل درخواست رد می‌شود و هزینه‌ای کسر نمی‌شود. هزینه پیش از ارسال رزرو و پس از ارسال قطعی می‌شود؛ پیام‌های ناموفق به‌طور خودکار بازگردانده می‌شوند. برای تست بدون هزینه از کلید آزمایشی و lineId: "sandbox" استفاده کنید.

پارامترها

ناممحلنوعتوضیح
lineId *بدنهstringشناسه خط فرستنده (از GET /sms/lines). برای کلید آزمایشی مقدار sandbox.
toبدنهstring | string[]شماره(های) گیرنده؛ فرمت‌های 09121234567، +989121234567 و ارقام فارسی پذیرفته می‌شود. حداکثر ۱۰٬۰۰۰ شماره.
groupIdsبدنهstring[]شناسه گروه‌های دفترچه تلفن؛ مخاطبین لغو عضویت‌شده حذف می‌شوند. حداقل یکی از to یا groupIds الزامی است.
text *بدنهstringمتن پیام (حداکثر ۱۰۰۰ نویسه). فارسی: ۷۰ نویسه در پیام تک‌بخشی و ۶۷ نویسه در هر بخش پیام چندبخشی.
scheduledAtبدنهstring (ISO 8601)زمان ارسال در آینده (حداقل ۱ دقیقه و حداکثر ۶۰ روز بعد). هزینه همان لحظه رزرو می‌شود و پیام در زمان مقرر ارسال می‌گردد؛ تا پیش از آن با POST /sms/batches/{batchId}/cancel قابل لغو است. فهرست: GET /sms/scheduled.
gradualبدنه{ chunkSize, intervalMinutes }ارسال تدریجی: در هر intervalMinutes دقیقه (۱ تا ۱۴۴۰)، chunkSize پیام (۱ تا ۱۰٬۰۰۰) آزاد می‌شود. هزینهٔ کل از ابتدا رزرو می‌شود؛ توقف/ادامه/لغو: POST /sms/batches/{batchId}/pause|resume|cancel (لغو، فقط باقی‌مانده را بازمی‌گرداند). با scheduledAt قابل ترکیب است.
Idempotency-Keyهدرstringکلید یکتا (حداکثر ۱۰۰ نویسه). ارسال دوباره با همان کلید، پیام تکراری نمی‌سازد و نتیجه قبلی را برمی‌گرداند.

خطاهای خاص این endpoint

400invalid_recipientsیک یا چند شماره نامعتبر است (فهرست در details).
402insufficient_balanceاعتبار کافی نیست.
403احراز هویت حساب تکمیل نشده، یا کلید فاقد دسترسی sms.send است.
404خط وجود ندارد یا در دسترس شما نیست.
422no_priceبرای این سرویس تعرفه‌ای تعریف نشده است.

اجرای زنده (محیط تست)

با یک کلید آزمایشی (در پنل ← وب‌سرویس ← «کلید آزمایشی») این درخواست را همین‌جا اجرا کنید. پیام واقعی ارسال نمی‌شود و هزینه‌ای کسر نمی‌شود.

curl -X POST '/sms/send' \
  -H "Authorization: Bearer $IRNOTI_KEY" \
  -H 'Content-Type: application/json' \
  -H 'Idempotency-Key: order-1042' \
  -d '{
  "lineId": "1",
  "to": [
    "09121234567",
    "09351234567"
  ],
  "text": "سفارش شما ارسال شد"
}'
پاسخ نمونه200 OK
{
  "batchId": "918",
  "count": 2,
  "totalPrice": "1960",
  "replayed": false
}
ارسال پیامک — مستندات API | ایران ناتیفیکیشن