بازگشت به فهرست

سرویس API پیامدهی

اتصال سایر نرم‌افزارها

۱) معرفی API

API سادهٔ HTTP برای اتصال نرم‌افزارهای حسابداری و ERP (هلو، پارمیس، محک، نگین و …) به سرویس پیامک هُما. اگر نرم‌افزار URL و پارامترها را قابل تنظیم بدهد، اتصال مستقیم انجام می‌شود.

هر دو روش GET و POST پشتیبانی می‌شوند.

۲) دریافت توکن API

توکن API از پنل Token, API & MCP Server گرفته می‌شود — همان توکن برای SOAP (UserName)، REST (username)، MCP و درگاه خارجی.

  1. با حساب مدیر اصلی (Main Admin) وارد شوید.
  2. داخل پرتال: بخش مدیریت کاربران را باز کنید و دکمهٔ «توکن‌ها» را بزنید.
  3. کنسول پرتال‌ها: کنار کد پرتال، روی آیکون توکن API (</>) کلیک کنید.
  4. در پنجرهٔ بازشده، توکن اصلی را نمایش دهید و کپی کنید — یا از بخش Token list یک توکن ثانویه بسازید.
  5. کد پرتال را هم یادداشت کنید (در همین پنجره یا کنار نام پرتال در کنسول).

توکن را محرمانه نگه دارید. با «رفرش توکن اصلی»، همهٔ اتصال‌های قبلی قطع می‌شوند.

۳) پارامترهای درگاه و نام‌های معادل

نام پارامترها حساس به بزرگی/کوچکی حروف نیست و برای هر فیلد چند نام معادل (alias) پذیرفته می‌شود تا تنظیم در هر نرم‌افزاری آسان باشد.

ضروری فیلد ضروری اختیاری فیلد اختیاری
پارامتر نام‌های معادل نوع توضیح
usernameuser, unameضروریتوکن API
tomobile, recipient, receiver, phoneضروریشمارهٔ گیرنده؛ به 09XXXXXXXXX نرمال می‌شود
textmessage, msg, body, contentضروریمتن پیامک (حداکثر ۶۰۰ کاراکتر)
passwordpass, apikey, api_key, apiKey, key, tokenاختیاریتوکن API (اگر نرم‌افزار فیلد جداگانه برای رمز دارد)
PortalCodeportalcode, portal_codeاختیاریکد پرتال، مثلاً 10003385
ServerTypeservertype, server_typeاختیارینوع سرور؛ مثلاً 100 برای ارسال عمومی/لیست سیاه
fromsender, line, number, senderid, sender_idاختیاریشمارهٔ خط فرستنده (در صورت خالی، خط پیش‌فرض پرتال)
formatoutput, responseاختیاریtext (پیش‌فرض) یا json

۴) نگاشت فیلدها و احراز هویت

در فیلدهای ورود نرم‌افزار، مقادیر زیر را وارد کنید:

ضروری فیلد ضروری اختیاری فیلد اختیاری
فیلد در نرم‌افزار پارامتر درگاه مقدار نوع
نام کاربری (UserName)usernameتوکن APIضروری
شماره گیرنده (To)toموبایل گیرندهضروری
متن پیام (Message)textمتن پیامکضروری
کد پرتال (PortalCode)PortalCodeکد پرتال، مثلاً 10003385اختیاری
نوع سرور (ServerType)ServerTypeمثلاً 100اختیاری

توکن را در فیلد username قرار دهید و کد پرتال را در پارامتر PortalCode بفرستید. درگاه توکن را از username، password، apikey یا هدر Authorization/X-API-Key هم می‌پذیرد.

۵) هلو (Holoo) — نسخه‌های دارای سرویس‌دهنده دلخواه

در نسخه‌هایی از هلو که امکان تعریف سرویس‌دهنده پیامک یا وب‌سرویس دلخواه دارند، مسیر معمول این است: تنظیمات مدیریتی ← تنظیمات سرویس‌دهنده. روی علامت «+» بزنید و یک درگاه جدید بسازید؛ سپس از دکمهٔ «چرخ‌دندهٔ تنظیمات»، نام پارامترها را تعریف کنید.

ضروری فیلد ضروری اختیاری فیلد اختیاری
فیلد مقدار نوع
آدرس سایت (URL)https://www.HomaCRM.com/api/v1/external/messaging/gatewayضروری
نام کاربریتوکن APIضروری
UserName → پارامترusernameضروری
To → پارامترtoضروری
Message → پارامترtextضروری
نام پنلHomaCRM (دلخواه)اختیاری
PortalCode → پارامترPortalCodeاختیاری
ServerType → پارامترServerTypeاختیاری

در پایان، در «نحوهٔ ارسال»، گزینهٔ ارسال اینترنتی/وب‌سرویس را انتخاب و ذخیره کنید.

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

۶) جدول سازگاری نرم‌افزارها

ساختار اتصال در نسخه‌های مختلف هر نرم‌افزار ممکن است فرق کند. جدول زیر کمک می‌کند سریع تشخیص دهید اتصال مستقیم با URL کافی است یا باید افزونه/واسط جداگانه بررسی شود.

نرم‌افزار وضعیت پیشنهادی روش اتصال توضیح
هلو / Holooقابل تست مستقیم در نسخه‌های دارای سرویس‌دهنده دلخواهوب‌سرویس دلخواهاگر URL و پارامترها قابل تنظیم باشند، همین درگاه کافی است.
هلو APEXنیازمند بررسی نسخهوب‌سرویس دلخواه یا واسطاگر فقط سرویس‌دهنده‌های ثابت دارد، نیازمند واسط اختصاصی است.
پارمیس / Parmisماژول/سامانه پیامکی رسمی داردماژول پیامک یا URL دلخواهاتصال مستقیم فقط وقتی ممکن است که پنل یا وب‌سرویس دلخواه بپذیرد.
محک / Mahakافزونه پیامک‌رسان رسمی داردافزونه یا URL دلخواهاگر افزونه فقط سرویس‌دهنده ثابت دارد، HomaCRM باید به فهرست افزوده شود یا واسط نوشته شود.
نگین / Neginوابسته به محصول دقیقوب‌سرویس دلخواهبه‌دلیل تنوع نرم‌افزارهای با نام نگین، نام کامل محصول و نسخه باید بررسی شود.
دشت همکاران سیستمزیرسیستم پیامک رسمی داردزیرسیستم پیامک یا واسطاتصال مستقیم فقط در صورت وجود URL دلخواه در زیرسیستم/افزونه ممکن است.
سپیدارنیازمند بررسی افزونهافزونه/واسط اختصاصیدر بسیاری از نصب‌ها سرویس‌دهنده‌ها ثابت هستند و URL دلخواه آزاد نیست.
راهکاران همکاران سیستمنیازمند پروژه واسطAPI/Integration اختصاصیبرای ERP سازمانی، تنظیم ساده URL معمولاً کافی نیست.
شایگان، قیاس، فرداد، آرین سیستم، تدبیر، پیوست، رافعوابسته به نسخه و ماژول پیامکوب‌سرویس دلخواه یا واسطاگر فیلد URL و پارامترهای to/text قابل تنظیم باشند، اتصال مستقیم است.
حسابفا، چرتکه و نرم‌افزارهای ابریمعمولاً API محور یا محدود به سرویس داخلیAPI/واسطدر نرم‌افزارهای ابری، امکان انتخاب پنل پیامک دلخواه باید از تنظیمات همان سرویس بررسی شود.

۷) پارمیس / محک / نگین و سایر نرم‌افزارها

در پارمیس و محک، ابتدا بررسی کنید نسخهٔ نصب‌شده از «پنل/وب‌سرویس دلخواه» پشتیبانی می‌کند یا فقط ماژول و سرویس‌دهنده‌های رسمی خود نرم‌افزار را می‌پذیرد. اگر گزینهٔ «وب‌سرویس دلخواه/عمومی» وجود دارد، مقادیر زیر را وارد کنید:

ضروری فیلد ضروری اختیاری فیلد اختیاری
فیلد مقدار نوع
آدرس وب‌سرویس (URL)https://www.HomaCRM.com/api/v1/external/messaging/gatewayضروری
نام کاربریتوکن APIضروری
پارامتر گیرندهtoضروری
پارامتر متنtextضروری
نوع سرور ServerTypeServerTypeاختیاری
کد پرتال PortalCodePortalCodeاختیاری

نکته: پارمیس و محک هر دو در منابع رسمی خود ماژول/افزونه پیامکی معرفی کرده‌اند. بنابراین اگر در نسخهٔ مشتری فقط همان افزونه فعال است و URL دلخواه ندارد، اتصال مستقیم با این درگاه انجام نمی‌شود و باید افزودن HomaCRM به افزونه یا ساخت واسط اختصاصی بررسی شود.

۸) وب‌سرویس عمومی و نمونهٔ آماده (curl)

هر نرم‌افزاری که امکان تعریف «آدرس + پارامترهای دلخواه» را دارد، می‌تواند با الگوی زیر متصل شود:

نمونهٔ GET با curl:

curl -G "https://www.HomaCRM.com/api/v1/external/messaging/gateway" \
  --data-urlencode "username=YOUR_TOKEN" \
  --data-urlencode "PortalCode=10003385" \
  --data-urlencode "ServerType=100" \
  --data-urlencode "to=09129876543" \
  --data-urlencode "text=سلام، سفارش شما ثبت شد"

نمونهٔ POST با curl:

curl -X POST "https://www.HomaCRM.com/api/v1/external/messaging/gateway" \
  -d "username=YOUR_TOKEN" \
  -d "PortalCode=10003385" \
  -d "ServerType=100" \
  -d "to=09129876543" \
  -d "text=کد تأیید شما: 847291"

قالب پاسخ:

  • پیش‌فرض (متن ساده): موفقیت = یک «شناسهٔ پیام» مثبت؛ خطا = مقدار 0 یا منفی.
  • با افزودن ?format=json پاسخ به‌صورت JSON استاندارد برمی‌گردد.
{
  "success": true,
  "data": { "messageId": 184920315, "recipient": "09129876543", "status": "queued", "creditUsed": 1 },
  "meta": { "requestId": "req_7f3a9c21b4e8" }
}

۹) کدهای پاسخ متن ساده و محدودیت‌ها

در حالت پیش‌فرض (متن ساده)، درگاه همیشه با HTTP 200 پاسخ می‌دهد و نتیجه در بدنه است:

مقدار شرح
عدد مثبتموفق — شناسهٔ پیام (کد رهگیری)
0خطای احراز هویت (توکن نامعتبر/نبود توکن)
-2یکی از فیلدهای لازم (to/text) ارسال نشده
-4شمارهٔ گیرنده نامعتبر است
-1خطای ارسال (برای جزئیات از ?format=json استفاده کنید)

محدودیت‌ها:

  • سپیدار / دشت / راهکاران همکاران سیستم: معمولاً با زیرسیستم، افزونه یا API اختصاصی کار می‌کنند. اتصال مستقیم فقط وقتی ممکن است که همان افزونه گزینهٔ URL دلخواه داشته باشد.
  • پارمیس و محک: ماژول/افزونه پیامکی رسمی دارند؛ اگر نسخهٔ مشتری سرویس‌دهنده دلخواه را باز نکند، باید افزونه/واسط اختصاصی بررسی شود.
  • نرم‌افزارهای صرفاً SOAP با این درگاه (REST/HTTP) سازگار نیستند؛ برای آن‌ها از بخش «وب‌سرویس SOAP» همین راهنما استفاده کنید.

نکات

  • برای اتصال نرم‌افزارهای حسابداری از بخش «اتصال سایر نرم‌افزارها» استفاده کنید: نام کاربری = توکن API، کد پرتال = پارامتر PortalCode.
  • اتصال مستقیم فقط وقتی ممکن است که نرم‌افزار اجازه تعریف URL و پارامترهای دلخواه را بدهد؛ در غیر این صورت افزونه/واسط اختصاصی لازم است.
  • ServerType=100 برای ارسال عمومی و OTP (لیست سیاه مخابرات) توصیه می‌شود.
  • پاسخ موفق: عدد بزرگ‌تر از ۱۰۰۰؛ هر عدد دیگر کد خطاست.
  • برای پیام حاوی لینک یا ارسال از شماره عمومی، پروفایل WhoIS باید تکمیل و تأیید شده باشد.
  • برای تست سریع REST API، URL را با پارامترها در مرورگر باز کنید.
  • در صورت خطا، کد بازگشتی و ServerType را در تیکت پشتیبانی ذکر کنید.