ارسال پیامک

POST /v1/messages

این Endpoint یک پیام را برای پردازش ثبت می‌کند. X-API-Key و Idempotency-Key هر دو الزامی هستند.

درخواست (Request)

{
  "sender": "300099000121",
  "recipient": "09121234567",
  "message": "پیام آزمایشی SMSDaily",
  "clientReference": "order-140501"
}
فیلد نوع محدودیت توضیح
sender string ۵ تا ۲۰ نویسه سرشماره مجاز حساب
recipient string حداکثر ۲۰ نویسه شماره موبایل گیرنده
message string ۱ تا ۲۰۰۰ نویسه متن پیام
clientReference string/null حداکثر ۱۲۰ نویسه شناسه اختیاری درخواست در سیستم مشتری

هدرهای مهم (Headers)

X-API-Key: YOUR_API_KEY
Idempotency-Key: 5c88a3d2-65ce-4cc1-9ea0-1d7efe675d40
Content-Type: application/json

Idempotency-Key در محدوده همان API Key بررسی می‌شود. هنگام تلاش مجدد به‌دلیل خطای شبکه یا Timeout، کلید درخواست اصلی را حفظ کنید تا ارسال تکراری ایجاد نشود.

پاسخ پیام جدید

HTTP/1.1 202 Accepted
Location: /v1/messages/SMS-20260808-A1B2C3D4
{
  "trackingCode": "SMS-20260808-A1B2C3D4",
  "status": "queued",
  "encoding": "Persian",
  "characterCount": 23,
  "partCount": 1,
  "submittedAt": "2026-08-08T05:30:00Z",
  "duplicate": false
}

trackingCode شناسه اصلی پیگیری مشتری است. شناسه دیتابیس و شناسه Provider بخشی از قرارداد عمومی نیستند.

تلاش مجدد برای درخواست ثبت‌شده

اگر همان درخواست با همان Idempotency-Key دوباره دریافت شود، سرویس پیام جدیدی ایجاد نمی‌کند و پاسخ موجود را با 200 OK برمی‌گرداند:

{
  "trackingCode": "SMS-20260808-A1B2C3D4",
  "status": "queued",
  "encoding": "Persian",
  "characterCount": 23,
  "partCount": 1,
  "submittedAt": "2026-08-08T05:30:00Z",
  "duplicate": true
}

Encoding و تعداد بخش

پاسخ، encoding، characterCount و partCount محاسبه‌شده را برمی‌گرداند تا Backend مشتری بداند پیام با چه مشخصاتی ثبت شده است. جزئیات تعرفه و هزینه در قرارداد مالی حساب مدیریت می‌شود و نباید از روی تعداد نویسه به‌صورت مستقل حدس زده شود.