دفع طلب
سجّل طلبًا واحدًا وكيف يُقسَّم ماله بين المطعم والموصِّل وعمولتك.
POST
https://zovopay.com/api/partner/v1/ordersحدّ المعدّل: 60 طلبًا/دقيقة. المصادقة بـX-Client-Id / X-Client-Secret.
نموذج التقسيم
ترسل إجماليّ الطلب وقائمة تقسيمات. كل تقسيم يسمّي نوع المستفيد وحصّته. يقيّد ZovoPay كل طرف من محفظة مقاصّتك عند التسوية.
جسم الطلب
| الحقل | النوع | الوصف |
|---|---|---|
partner_order_ref مطلوب | string | معرّف طلبك. آمن للتكرار: إعادة إرسال نفس المرجع تُعيد الطلب الموجود. |
payment_source مطلوب | enum | أحد القيم zovopay, card, paypal, cod. |
total_amount مطلوب | number | إجماليّ مبلغ الطلب، أكبر من 0. |
currency مطلوب | string(3) | رمز عملة ISO، مثل USD. |
splits مطلوب | array | تقسيم واحد على الأقلّ (انظر أدناه). |
splits[].beneficiary_type مطلوب | enum | merchant, courier أو partner (عمولتك). |
splits[].beneficiary_ref اختياريّ | integer | معرّف الرابط للتاجر/الموصِّل المحدّد (من لوحتك). اتركه فارغًا لعمولتك الخاصّة. |
splits[].amount مطلوب | number | حصّة هذا المستفيد (0 أو أكثر). |
idempotency_key اختياريّ | string | حماية إضافيّة ضدّ الإرسال المكرّر. |
is_shadow اختياريّ | boolean | true إذا كان المطعم ليس على ZovoPay (يُتتبَّع في دفتر الظلّ بدلًا من ذلك). |
shadow_merchant_ref / shadow_merchant_name اختياريّ | string | يحدّد المطعم خارج المنصّة عندما يكون is_shadow=true. |
مثال طلب
{
"partner_order_ref": "D-1001",
"payment_source": "zovopay",
"total_amount": 25.00,
"currency": "USD",
"splits": [
{ "beneficiary_type": "merchant", "beneficiary_ref": 12, "amount": 20.00 },
{ "beneficiary_type": "courier", "beneficiary_ref": 34, "amount": 3.00 },
{ "beneficiary_type": "partner", "amount": 2.00 }
]
}
نجاح — 201 Created
{
"status": true,
"data": {
"order_id": 9001,
"partner_order_ref": "D-1001",
"currency": "USD",
"order_amount": 25.00,
"payment_method": "zovopay",
"payment_status": "pending",
"settlement_status": "unsettled",
"is_shadow": false
}
}
🔁 الأمان ضدّ التكرار (Idempotency): الطلبات فريدة لكل (شركة، partner_order_ref). إعادة إرسال نفس المرجع لن تنشئ تكرارًا.