توثيق REST API

واجهة TSA API تربط حسابات شام كاش المرتبطة بحسابك. جميع الطلبات عبر عنوان واحد مع معاملات resource و action. الخدمة مخصّصة لـ شام كاش فقط.

خطوات البدء
  1. أنشئ حساباً واحصل على api_key من لوحة التحكم
  2. اربط حساب شام كاش عبر QR من لوحة التحكم
  3. انسخ account_address من بطاقة الحساب
  4. أرسل الطلبات مع Header X-Api-Key (مُفضّل)

المصادقة

Base URL

https://tsaapis.com/api/v1

المسار /api/v1 ثابت. غيّر الدومين عند النشر.

1) Header (مُفضّل)

X-Api-Key: YOUR_API_KEY_HERE
Accept: application/json

2) Query String (بديل)

https://tsaapis.com/api/v1?resource=status&api_key=YOUR_API_KEY_HERE

يدعم GET و POST على /api/v1. العمليات المالية (تحويل) عبر POST فقط.

1) فحص الحالة GET

https://tsaapis.com/api/v1?resource=status
{
  "success": true,
  "message": "API is working.",
  "user": { "id": 1, "name": "...", "email": "..." },
  "limits": { "max_linked_accounts": 10 }
}

2) الحسابات المرتبطة GET

https://tsaapis.com/api/v1?resource=accounts&action=list
{
  "success": true,
  "data": {
    "shamcash": [
      { "account_address": "YOUR_ADDRESS_HERE" }
    ]
  }
}

يرجع account_address فقط. الرصيد والسجلات عبر نقاط متخصصة.

3) عرض الرصيد GET

معامل إجباري: account_address

https://tsaapis.com/api/v1?resource=shamcash&action=balance&account_address=YOUR_ADDRESS
{
  "success": true,
  "data": {
    "account_address": "YOUR_ADDRESS",
    "balances": [
      { "currency": "USD", "balance": 0.05 },
      { "currency": "SYP", "balance": 6880 },
      { "currency": "EUR", "balance": 0 }
    ]
  }
}

4) سجلات واردة GET

تحويلات وصلت لحسابك (tranKind = 1). آخر ~50 عملية — ليس الأرشيف الكامل.

https://tsaapis.com/api/v1?resource=shamcash&action=logs&account_address=YOUR_ADDRESS
{
  "success": true,
  "data": {
    "account_address": "YOUR_ADDRESS",
    "log_type": "incoming",
    "items": [
      {
        "tran_id": "266982707",
        "tran_kind": 1,
        "direction": "incoming",
        "from_name": "اسم المرسل",
        "to_name": "اسم المرسل",
        "currency": "SYP",
        "amount": 2000,
        "datetime": "2026-06-11 01:56:45",
        "account": "PEER_ADDRESS",
        "note": ""
      }
    ]
  }
}

5) سجلات صادرة GET

تحويلات أرسلتها (tranKind = 2)

https://tsaapis.com/api/v1?resource=shamcash&action=outgoing_logs&account_address=YOUR_ADDRESS
{
  "success": true,
  "data": {
    "account_address": "YOUR_ADDRESS",
    "log_type": "outgoing",
    "items": [
      {
        "tran_id": "266981106",
        "tran_kind": 2,
        "direction": "outgoing",
        "from_name": "TS_1",
        "to_name": "TS_1",
        "currency": "SYP",
        "amount": 24000,
        "datetime": "2026-06-11 01:52:15",
        "account": "PEER_ADDRESS",
        "note": ""
      }
    ]
  }
}

6) بحث عملية GET

بحث برقم العملية ضمن حساب واحد — الواردة فقط. معاملات: account_address + tx

https://tsaapis.com/api/v1?resource=shamcash&action=find_tx&tx=266982707&account_address=YOUR_ADDRESS
{
  "success": true,
  "data": {
    "found": true,
    "transaction": {
      "tran_id": "266982707",
      "from_name": "Client Name",
      "to_name": "Your Name",
      "currency": "SYP",
      "amount": 2000,
      "datetime": "2026-06-11 01:56:45",
      "account": "PEER_ADDRESS",
      "note": "شحن رصيد"
    },
    "account": { "account_address": "YOUR_ADDRESS" }
  }
}

إن لم تُوجد: "found": false مع HTTP 200.

7) التحقق من مستلم GET

قبل التحويل — تأكد أن to_address صحيح. معاملات: account_address + to_address

https://tsaapis.com/api/v1?resource=shamcash&action=resolve&account_address=YOUR_ADDRESS&to_address=RECEIVER_ADDRESS
{
  "success": true,
  "data": { "address": "RECEIVER_ADDRESS", "name": "اسم المستلم", "account_number": "..." }
}

8) تحويل رصيد POST

مهم: التحويل غير متاح خلال 24 ساعة من وقت ربط الحساب. قبلها يعمل الرصيد والسجلات والبحث فقط — التحويل يُفعَّل بعد مرور 24 ساعة من ربط الحساب.

عملية مالية — POST فقط. أرسل X-Api-Key في Header.

POST https://tsaapis.com/api/v1?resource=shamcash&action=transfer&account_address=YOUR_ADDRESS

Body (form أو JSON):

to_address=RECEIVER_ADDRESS
amount=1000
currency=SYP
note=اختياري
pin=اختياري

currency: USD أو SYP أو EUR

{
  "success": true,
  "data": {
    "tran_id": "123456789",
    "amount": 1000,
    "currency": "SYP",
    "to_address": "RECEIVER_ADDRESS",
    "message": "تم الإرسال"
  }
}

to_address = عنوان المستلم في شام كاش (32 حرف hex).

الأخطاء

شكل الرد: { "success": false, "error": "..." }

502 قراءة · 400 تحويل/resolve · 200 find_tx بدون نتيجة → found: false

HTTPالسببالوصف
401مصادقةمفتاح API مفقود أو غير صحيح
429حد الطلباتكثرة طلبات — انتظر قليلاً
404غير موجودresource/action خطأ أو حساب غير مرتبط
405طريقة خاطئةtransfer يتطلب POST فقط
400معاملاتaccount_address · tx · amount · currency · to_address
400Sham Cashرفض تحويل أو تحقق (رصيد، PIN، عنوان…)
502اتصالتعذّر الوصول لـ api.shamcash.sy أو جلسة منتهية