واجهة API سيستمتع بها فريقك فعلاً
واجهة REST متوقعة، ومفاتيح عدم التكرار، وويب هوك موقّعة، وبيئة تجريبية بقنوات محاكاة لتتكامل من البداية إلى النهاية قبل تحريك فرنك واحد.
أول تحصيل لك في طلب واحد
واجهة REST نظيفة، وبنية JSON متوقعة، ومعرّف طلب في كل استجابة. البيئة التجريبية تطابق الإنتاج: نفس API، ونفس الحالات، ونفس الويب هوك.
- مفاتيح للبيئة التجريبية والإنتاج، بنطاق محدد لكل تطبيق
- ويب هوك موقّعة بتوقيع HMAC مع حماية من إعادة الإرسال
- مفاتيح عدم التكرار في كل استدعاء يحرّك الأموال
- أخطاء منظّمة تخبرك بالضبط بما يجب إصلاحه
- مواصفة OpenAPI ومجموعة Postman وملف llms.txt، جميعها منشورة
- جلسات دفع مستضافة واستدعاءات مسطحة لموصلات CRM وERP والمتاجر
curl https://api.capayglobal.com/v1/collections \
-H "Authorization: Bearer sk_test_..." \
-H "Idempotency-Key: 9f1c-collect-01" \
-H "Content-Type: application/json" \
-d '{
"amount": "2500",
"currency": "XAF",
"country": "CM",
"method": "mobile_money",
"msisdn": "2376XXXXXXXX",
"merchant_reference": "order-1042"
}'{
"status": "success",
"data": {
"id": "col_9xKQ2mD41Vb8",
"object": "collection",
"status": "pending",
"amount": "2500",
"currency": "XAF",
"country": "CM",
"method": "mobile_money",
"merchant_reference": "order-1042",
"fees": {
"platform_fee": "50",
"provider_fee": "0",
"total_fee": "50",
"bearer": "merchant"
},
"net_amount": null,
"livemode": false,
"created_at": "2026-08-30T12:04:11Z"
},
"request_id": "req_b0f3d2c1"
}اول تحصيل لك
طلب واحد ينشئ نية دفع، ويعيد معرف الطلب، وفي المحفظة الهاتفية يرسل الطلب الى هاتف الدافع. تتصرف البيئة التجريبية تماما مثل بيئة الانتاج.
curl -X POST https://api.capayglobal.com/v1/collections \
-H "Authorization: Bearer sk_test_XXXXXXXXXXXX" \
-H "Idempotency-Key: col-order-10482-a1b2c3" \
-H "Content-Type: application/json" \
-d '{
"amount": "5000",
"currency": "XAF",
"country": "CM",
"method": "mobile_money",
"msisdn": "+237650000001",
"merchant_reference": "order-10482"
}'{
"status": "success",
"data": {
"id": "col_7Qm3k1Xa9Zr4",
"object": "collection",
"status": "pending",
"amount": "5000",
"currency": "XAF",
"auth_model": "STK_PROMPT",
"livemode": false
},
"request_id": "3fa85f64-5717-4562-b3fc-2c963f66afa6"
}حزم الخوادم
اغلفة رفيعة ومحددة الانواع فوق نفس الواجهة البرمجية، مع عدم التكرار والتحقق من التوقيع بداخلها.
import { Capay } from '@capay/sdk';غير متاح على npm بعد. سطر الاستيراد أعلاه نهائي، لذا لن يتغيّر تكاملك عند النشر.
اقرا الدليلfrom capay import Capayغير متاح على PyPI بعد. سطر الاستيراد أعلاه نهائي، لذا لن يتغيّر تكاملك عند النشر.
اقرا الدليلuse Capay\CapayClient;غير متاح على Packagist بعد. سطر الاستيراد أعلاه نهائي، لذا لن يتغيّر تكاملك عند النشر.
اقرا الدليلتحقق من كل webhook
تحسب التواقيع على الجسم الخام وتقارن بزمن ثابت، ويرفض اي طابع زمني اقدم من 300 ثانية. لا تثق ابدا بـ webhook لم تتحقق منه.
# T is the t= value from X-Capay-Signature; delivery.json is the raw body as received.
T=1767225600
SECRET=whsec_XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
{ printf '%s.' "$T"; cat delivery.json; } \
| openssl dgst -sha256 -hmac "$SECRET" -r | cut -d' ' -f1
# Compare the printed hex with each v1= value in the header (either may match
# during a secret rotation), and reject the delivery if |now - T| > 300 s.X-Capay-Signature: t=1767225600,v1=6f8b4c2d9e0a1b3c5d7e9f0a2b4c6d8e0f1a3b5c7d9e1f0a2b4c6d8e0f1a3b5c
X-Capay-Event-Id: evt_2n4Kq8Zr41Xa
X-Capay-Event-Type: collection.completedيعاد التسليم الفاشل وفق جدول ثابت: 1m, 5m, 30m, 2h, 6h, 12h, 24h, 24h. اي نقطة تفشل 8 مرات متتالية تعطل ويبلغك بذلك، حتى لا تبتلع نقطة ميتة الاحداث بصمت.
يمكن ان يكون سران للتوقيع نشطين في وقت واحد، فتستطيع التدوير دون فقدان حدث. ارفض كل ما هو خارج نافذة 300 ثانية واحفظ معرف الحدث حتى تصبح الاعادة غير ضارة.
بقية الادوات
مواصفات تقرؤها الالة، ومجموعة يمكنك استيرادها، والادوات التي تقرؤها.
ابدأ تحصيل المدفوعات عبر أفريقيا اليوم
أنشئ حساباً مجانياً، وطوّر على البيئة التجريبية، وانطلق مباشرة بعد التحقق.
أخبرنا عن ممراتك وأحجام معاملاتك في أي وقت.