FAKESHIELD API v1

افحص الطلب قبل أن تشحنه

واجهة برمجيّة لفحص طلبات الدفع عند الاستلام مقابل سجلّ ثقةٍ مشترك بين تجّار الجزائر. تعمل مع أيّ منصّة — Shopify أو WooCommerce أو نظامك الخاصّ. لا تحتاج متجرًا على Mystoq.

بدء سريع

ثلاث خطوات من الصفر إلى أوّل قرار:

  1. احصل على مفتاحك فورًا من بوّابة FakeShield التجريبيّة — بريدك فقط، بلا انتظار.
  2. ثبّت الحزمة، أو استعمل curl مباشرةً.
  3. افحص قبل الشحن، ثمّ أعِد النتيجة بعد التسليم أو الإرجاع.
npm i @mystoq/fakeshield
import { FakeShield } from '@mystoq/fakeshield';

const fs = new FakeShield(process.env.FAKESHIELD_KEY);

const { tier, score, recommend } = await fs.check({
  phone: '0555123456',
  name: 'سامية بن يحيى',
  address: 'حي الشهداء، عمارة 4، عنابة',
  wilaya: 23,
  amount: 8400,
});

if (tier === 'reject') return refuse();
if (tier === 'call')   return queueForConfirmation();
await ship();

المصادقة

مفتاح في ترويسة كلّ طلب:

Authorization: Bearer fsk_<prefix>_<secret>

لا تضع المفتاح في المتصفّح

المفتاح يمثّلك، وسجلّات المشترين بيانات شخصيّة. الاستدعاء من خادمك فقط — لا من جافاسكربت صفحة الدفع.

الحدود والحصص

البندالطبقة المجّانيّة
الفحوص1000 فحص يوميًّا
تسجيل النتائجبلا حدّ — لا نريد أبدًا تثبيط تغذية الشبكة
معدّل الطلبات300 طلب/دقيقة
الأساسhttps://mystoq.com/api

فحص طلب

POST /fakeshield/check

كلّما أرسلت حقولًا أكثر، كان القرار أدقّ. الحقل الوحيد الإلزاميّ هو phone.

curl -X POST https://mystoq.com/api/fakeshield/check \
  -H "Authorization: Bearer $FAKESHIELD_KEY" \
  -H "Content-Type: application/json" \
  -d '{"phone":"0555123456","name":"سامية بن يحيى",
       "address":"حي الشهداء، عنابة","wilaya":23,"amount":8400}'
{
  "score": 96,
  "risk": -18,
  "tier": "ship",
  "recommend": "اشحن",
  "signals": [
    { "k": "الشبكة", "v": "3 توصيلات عبر متجرين", "c": "ok", "w": -18 },
    { "k": "IP", "v": "سكني", "c": "ok", "w": 0 }
  ]
}
tierالمدىالمعنى
ship70–100اشحن
call40–69أكّد هاتفيًّا أوّلًا
reject0–39أدلّة حقيقيّة ضدّ هذا المشتري

تسجيل النتيجة

POST /fakeshield/v1/outcomes

هذا ما تدفعه مقابل الفحص المجّانيّ: ماذا حدث فعلًا. والتسليم الناجح لا يقلّ أهميّةً عن الرفض — فهو ما يمنع مشتريًا نزيهًا من الانزلاق إلى تصنيفٍ سيّئ.

curl -X POST https://mystoq.com/api/fakeshield/v1/outcomes \
  -H "Authorization: Bearer $FAKESHIELD_KEY" \
  -H "Content-Type: application/json" \
  -d '{"phone":"0555123456","order_ref":"ORD-2291","outcome":"delivered"}'
الحقلالوصف
phoneمطلوب
order_refمطلوب — مرجعك أنت. التكرار لا يُحتسب مرّتين
outcomedelivered · returned · cancelled · refused
wilaya · amount · occurred_atاختياريّة

خاصيّة التكرار الآمن: إعادة إرسال نفس order_ref تُعيد duplicate بلا أثر — آمنة للاستدعاء من webhook أو طابور يُعيد المحاولة.

استعلام عموميّ

GET /public/v1/trust/buyer/{phone}

بلا مفتاح، ويُعيد حكمًا فقط — لا تاريخ ولا أعداد. سجلّ أيّ شخص بياناتٌ شخصيّة لا تُكشف علنًا.

{
  "phone": "0555123456",
  "status": "clean",
  "is_blocked": false,
  "public_message": "رقم غير محظور — لا سجلّ سلبي على الشبكة."
}

status: clean (معروف وبلا بلاغ) · blocked (سجلّ سلبي مؤكَّد) · unknown (لم يمرّ على الشبكة).

لا يُعيد هذا المسار أيّ رقم إحصائيّ — لا عدد طلبات ولا إلغاءات ولا متاجر ولا تواريخ. تلك بيانات شخصيّة لا تُكشف إلّا للتاجر المُصادَق عليه عبر /api/dashboard/buyer-trust/{phone}.

الأخطاء

الرمزالمعنى
401مفتاح مفقود أو خاطئ أو مُلغى
403account_suspended
422خطأ في المدخلات — التفاصيل في errors
429quota_exceeded مع resets_at، أو تجاوز معدّل الطلبات

اِفشل مفتوحًا

إن تعذّر الوصول إلى FakeShield، لا توقف البيع. الفحص مساعدةٌ لا بوّابة — والحزمة تُعيد المحاولة مرّتين تلقائيًّا قبل أن تُخطئ.

قواعد الشبكة

  • لا اختراع لدرجة: رقمٌ لم يمرّ علينا يُعاد بـunknown — لا تخمين.
  • لا وصم من مصدرٍ واحد: الحظر يتطلّب تأكيدًا من تاجرٍ ثانٍ مستقلّ.
  • المُبلِّغ تحت المراقبة: من تُناقض بلاغاتُه الواقع تنخفض سمعته آليًّا وتخرج بلاغاته من الحساب.
  • سجلّ لا يُمحى: كلّ حكم يعود إلى السطر الذي سبّبه، وكلّ خطأ قابل للسحب مع إعادة حساب من تأثّر به.
  • حقّ الاعتراض: مراجعة بشريّة خلال 48 ساعة — التفاصيل.