تكامل Webhooks
في كل مزامنة، يُرسل JSON موقّع بطلب POST إلى نقطة نهاية HTTPS لديك: المعاملات والأرصدة والحيازات والصفقات من 14 ألف+ بنك، ويُتحقق منه بسر التوقيع الخاص بك.
webhook-id: evt_job-7q2_0_1_1webhook-timestamp: 1792501320webhook-signature: v1,K5oZfzN95Z9UVu1EsfQmfVNQhnkZ2pj9o9NDN/H/pI4=content-type: application/json { "id": "evt_job-7q2_0_1_1", "type": "transactions.delta", "apiVersion": "2026-06-01", "createdAt": "2026-10-20T13:02:00.000Z", "feed": { "id": "feed_9d1", "name": "Chase to Webhook", "dataType": "transactions" }, "job": { "id": "job_7q2", "trigger": "scheduled" }, "batch": { "sequence": 1 }, "data": [ { "id": "10a4d071832649a", "date": "2026-10-19", "amount": 4200.00, … }, { "id": "4bdd8e6931727cd", "date": "2026-10-19", "amount": -86.42, … }, …1 more ]}
من البنك إلى خادمك في ثلاث خطوات.
- 01
ربط نقطة نهاية
لصق عنوان URL عام من نوع HTTPS. يعرض BankSync سر توقيع whsec_ مرة واحدة، ويرسل حدثًا تجريبيًا.
URLhttps://api.yourapp.com/…السرwhsec_••••••••••••الحدث التجريبي● 200 خلال 142 مللي ثانية - 02
توجيه موجز إليها
اختيار الحسابات ونوع البيانات. لا شيء يحتاج إلى مطابقة: تصل البيانات في غلاف JSON له إصدار.
المعاملاتالأرصدةالحيازاتالصفقاتالقروضالحدثtransactions.deltaالمطابقةلا حاجة إليها، تُعرض معاينة للحمولة بدلًا منها - 03
التحقق من كل تسليم
التحقق من التوقيع بأي مكتبة Standard Webhooks، ثم دمج الصفوف حسب id.
server.js
import { Webhook } from 'standardwebhooks'const wh = new Webhook(secret)const event = wh.verify(body, headers)// إزالة التكرار حسب event.id
إعداد Webhooks من البداية إلى النهاية.
إعداد Webhooks في BankSync، مصوَّر بحسابات تجريبية.
ما يصل إلى نقطة النهاية لديك.
- id
- فريد لكل تسليم وثابت عبر إعادات المحاولة. وهو مفتاح عدم التكرار (idempotency) لديك، ويطابق ترويسة webhook-id.
- type
- transactions.delta للمعاملات الجديدة أو المعدَّلة؛ أما الأرصدة والحيازات والصفقات والأوامر والقروض فتصل بصيغة *.snapshot.
- apiVersion
- عقد الحمولة المثبَّت بتاريخ، وهو حاليًا 2026-06-01.
- feed
- معرّف الموجز الذي أرسلها واسمه ونوع بياناته.
- job
- التشغيل الذي ينتمي إليه، وما الذي بدأه: scheduled أو manual أو api أو test أو redelivery.
- batch
- موضع الدفعة في التشغيل، لترتيب الدفعات.
- data
- الصفوف. تتضمن المعاملات id والتاريخ والوصف والمبلغ بإشارته والعملة والفئة وحالة التعليق والحساب.
نقطة النهاية لديك محطة واحدة، لا القصة كلها.
Webhooks باختصار.
- البيانات
- المعاملات والأرصدة والحيازات والصفقات والأوامر والقروض، نوع بيانات واحد لكل موجز.
- التوقيع
- Standard Webhooks: توقيع HMAC-SHA256 على المعرّف والطابع الزمني والمتن. وعند تدوير السر يبقى السر القديم صالحًا لمدة 24 ساعة.
- التسليم
- مرة واحدة على الأقل. يُعاد إرسال الردود 408 و 425 و 429 و 5xx وحالات انتهاء المهلة بتراجع تدريجي؛ والرد 410 يعطّل نقطة النهاية.
- نقاط النهاية
- عناوين HTTPS العامة فقط. تُرفض العناوين الخاصة وعناوين loopback والعناوين الداخلية.
- الجدول الزمني
- يمكنك اختيار المزامنة التلقائية كل ساعة أو يوميًا أو أسبوعيًا حسب خطتك، أو تشغيل مزامنة يدوية في أي وقت.
- الخطة
- خطة Standard أو أعلى، إلى جانب واجهة API و MCP.
- الإعداد
- نحو 5 دقائق. إرسال JSON موقّع إلى نقطة النهاية الخاصة بك؛ دون أي تكلفة لجهات خارجية.
- الحالة
- متاح اليوم.
أسئلة وأجوبة.
كيف أتحقق من Webhook مرسَل من BankSync؟
يحمل كل تسليم الترويسات webhook-id و webhook-timestamp و webhook-signature بصيغة Standard Webhooks. ويُتحقق منها بسر whsec_ الخاص بك عبر أي مكتبة Standard Webhooks، مع رفض الطوابع الزمنية التي مضى عليها أكثر من 5 دقائق.
ماذا يحدث إذا تعطّلت نقطة النهاية لديّ؟
التسليم مرة واحدة على الأقل. يُعاد إرسال الردود 408 و 425 و 429 و 5xx وحالات انتهاء المهلة بتراجع أُسّي بالمعرّف نفسه، لذا تجب إزالة التكرار حسب id. والرد 410 يعطّل نقطة النهاية.
ما الأحداث التي يرسلها BankSync؟
transactions.delta للمعاملات الجديدة أو المعدَّلة؛ و balances.snapshot و holdings.snapshot و trades.snapshot و orders.snapshot و loans.snapshot للحالة الحالية؛ و sync.completed أو sync.failed في نهاية كل تشغيل؛ و endpoint.test للأحداث التجريبية.
هل يمكنني إرسال Webhooks إلى localhost أو إلى شبكة خاصة؟
لا. يجب أن تكون نقاط النهاية عناوين https:// عامة. وتُرفض عند الحفظ العناوين التي تُحل إلى نطاقات خاصة أو loopback أو link-local أو داخلية.
ما الخطة التي تشمل Webhooks؟
تأتي Webhooks مع خطة Standard وما فوقها، إلى جانب واجهة API و MCP.
البيانات البنكية عند نقطة النهاية لديك.
لا توجد علاقة تبعية بين BankSync و Webhooks، ولا يحظى BankSync بتأييد Webhooks، وليس شريكًا رسميًا له. وتعود ملكية العلامات التجارية الخاصة بمنتج Webhooks إلى أصحابها.
