YASend API

ربط رقم واتساب

الجلسة هي رقم واتساب واحد يبقيه YASend متصلاً على مدار الساعة، كجهاز مرتبط بذلك الرقم (مثل واتساب ويب).

الإنشاء والاتصال

curl -X POST https://api.yasend.dev/v1/sessions -H "Authorization: Bearer $YASEND_KEY" \
  -H "Content-Type: application/json" -d '{"name": "Support line"}'
curl -X POST https://api.yasend.dev/v1/sessions/$SESSION_ID/connect -H "Authorization: Bearer $YASEND_KEY"

ثم اربط الهاتف بإحدى طريقتين.

برمز QR

يدعم GET /v1/sessions/{id}/qr ثلاث صيغ:

format يُعيد
json (الافتراضي) {"qrCode": "<صورة PNG بترميز base64>"}
png الصورة نفسها
string {"qrString": "..."} لترسم رمز QR بنفسك

للمسح: واتساب ← الإعدادات ← الأجهزة المرتبطة ← ربط جهاز.

يتغير الرمز كل 20 ثانية تقريباً، فاستعلم عنه دورياً أثناء عرضه.

الاستجابة المعنى
202 QR_PENDING ما زال الرمز قيد الإنشاء
409 ALREADY_AUTHENTICATED الرقم مرتبط بالفعل

برمز الاقتران (بدون كاميرا)

curl -X POST https://api.yasend.dev/v1/sessions/$SESSION_ID/pairing-code \
  -H "Authorization: Bearer $YASEND_KEY" -H "Content-Type: application/json" \
  -d '{"phoneNumber": "963912345678"}'
# → {"status": "connecting", "pairingCode": "ABCD-EFGH"}

على الهاتف: الأجهزة المرتبطة ← ربط جهاز ← الربط برقم الهاتف بدلاً من ذلك، ثم اكتب الرمز.

الحالة

يعيد GET /v1/sessions/{id} الجلسة، ويعيد GET /v1/sessions/{id}/status حالتها الحية.

status المعنى
pending أُنشئت ولم تتصل بعد
connecting بانتظار مسح رمز QR أو رمز الاقتران
connected مرتبطة ومتصلة: يمكنك الإرسال
reconnecting منقطعة مؤقتاً، ويعيد YASend الاتصال تلقائياً
disconnected متوقفة (أوقفتها أنت أو أوقفتها باقتك)، وما زالت مرتبطة
logged_out أُلغي ربطها من الهاتف. اتصل من جديد وامسح رمز QR جديداً
conflict فُتح الرقم كواتساب ويب في مكان آخر
banned_suspected يبدو أن واتساب قيّد الرقم
crashed فشل التشغيل مراراً. راجع سجل الأحداث ثم اتصل من جديد

يوضح statusReason سبب آخر تغيير، ويعيد GET /v1/sessions/{id}/events السجل الكامل. اشترك في الويب هوك session.alert لتعرف بالمشكلات فور حدوثها.

البقاء متصلاً

  • إعادة تشغيل الخوادم: يبقى رقمك مرتبطاً. يخزّن YASend تسجيل الدخول بأمان، ويعيد الاتصال تلقائياً بعد إعادة التشغيل وانقطاع الشبكة، دون مسح رمز QR جديد.
  • تسجيل الخروج: لا يسجّل YASend خروج أي رقم من تلقاء نفسه. حذف الجلسة وحده يفعل ذلك.
الطلب أثره
POST /v1/sessions/{id}/pause يرفض الإرسال فوراً (SESSION_PAUSED)، وتستمر الرسائل الواردة والويب هوك
POST /v1/sessions/{id}/resume يسمح بالإرسال من جديد
POST /v1/sessions/{id}/disconnect يغلق الاتصال مع بقاء الربط. اتصل من جديد متى شئت دون مسح
DELETE /v1/sessions/{id} يسجّل خروج الرقم من واتساب ويحذف الجلسة ومفتاحها

الباقات والإيقاف

الحالة ما يحدث
انتهاء التجربة أو الباقة تنقطع الجلسات فوراً (وتبقى مرتبطة)، ويُرفض الإرسال بـ 402 SUBSCRIPTION_EXPIRED خلال فترة سماح قصيرة
انتهاء فترة السماح يُرفض الإرسال والاتصال بـ 402 SUBSCRIPTION_SUSPENDED حتى التجديد
التجديد تعود الجلسات للاتصال تلقائياً، بلا مسح رمز QR
الانتقال إلى باقة بجلسات أقل تُوقف الجلسات الأحدث الزائدة عن الحد بالطريقة نفسها

صحة الرقم

يعيد GET /v1/sessions/{id}/health:

  • درجة صحة الرقم؛
  • يوم الإحماء وحد اليوم؛
  • ما يمنع الإرسال حالياً، إن وُجد.

راجع الأمان والإحماء.