اعرف متى
يتغيّر شيء ما.
ترسل BINK حدث JSON موقّعًا بطلب POST إلى نقطة النهاية الخاصة بك كلما حدث شيء على البنية — تكتمل عملية دفع، أو يُسوّى تحويل صادر، أو ينتهي استرداد. تحقق من التوقيع، واستجب، دون استطلاع متكرر.
{
"type": "payment.completed",
"data": {
"id": "pay_8f2a1c",
"reference": "BINK-8F2A1C",
"status": "PAID",
"amountMinor": "5000",
"currency": "EGP"
}
}HTTP/1.1 200 OKشكل الحمولة والترويسات الفعلي من المرجع. للعرض والنسخ فقط.
من الحدث حتى التأكيد.
يقع حدث
يحدث شيء على البنية — تكتمل عملية دفع، أو تُسوّى عملية تحويل صادر.
ترسله BINK بطلب POST
يُسلَّم متن JSON موقّع إلى نقطة النهاية التي سجّلتها.
تتحقق منه
أعد حساب HMAC على {timestamp}.{raw body} وقارنه بقيمة v1.
تعالجه
تصرّف حسب نوع الحدث وحدّث نظامك — بطريقة آمنة من التكرار.
تعيد 200
أكّد الاستلام. يُعاد إرسال الاستجابات غير 2xx مع تباعد تدريجي.
موقّعة بـ HMAC-SHA256.
تحمل كل عملية تسليم الترويسة X-Binkpay-Signature بالصيغة t=<timestamp>,v1=<hmac>، مع نوع الحدث في X-Binkpay-Event. أعد حساب HMAC على {timestamp}.{raw body} باستخدام مفتاحك السري وقارن.
import crypto from 'crypto';
function verifySignature(rawBody, header, secret) {
const [tPart, v1Part] = header.split(',');
const timestamp = tPart.split('=')[1];
const signature = v1Part.split('=')[1];
const expected = crypto
.createHmac('sha256', secret)
.update(`${timestamp}.${rawBody}`)
.digest('hex');
return crypto.timingSafeEqual(
Buffer.from(expected),
Buffer.from(signature),
);
}ثلاثة عشر حدثًا يمكنك الاشتراك فيها.
payment.createdأُنشئت عملية دفع أو رابط دفع.payment.completedتم تحصيل عملية دفع بنجاح.payment.expiredانتهت صلاحية رابط دفع قبل سداده.payment.cancelledأُلغيت عملية دفع معلّقة.
refund.createdقُدّم طلب استرداد.refund.completedاكتمل الاسترداد وأُعيدت الأموال.
payout.requestedطُلب تحويل صادر، وهو بانتظار الموافقة.payout.approvedتمت الموافقة على تحويل صادر ووُضع في قائمة الانتظار.payout.completedسُوّي تحويل صادر إلى حسابك البنكي.payout.failedفشلت محاولة تحويل صادر.payout.rejectedرُفض طلب تحويل صادر.
kyb.status_changedتغيّرت حالة التحقق من نشاطك التجاري.apikey.revokedأُلغي مفتاح API.
يُعاد إرسال أي استجابة غير 2xx مع تباعد أُسّي، ويمكن إعادة إرسال أي عملية تسليم سابقة من لوحة التحكم — راجع المرجع لمعرفة نافذة إعادة المحاولة.
تابع الرحلة.
أدخل أحداث BINK إلى نظامك.
سجّل نقطة نهاية، وتحقق من التوقيع، واستجب لتغيّرات الحالة لحظة حدوثها.
