مرجع API · الشحن المباشر

طلب الشحن المباشر

POST/v1/wallets/{walletId}/direct-recharges

ادفع من هذه المحفظة ليتولى موظفو أنيس تسليم المبلغ للمستلم. احتفظ بمعرّف العملية نفسه إذا ضاع الردّ. منتجات الفواتير (billing) غير متاحة بعد.

الصلاحيةdirect_recharges:create
المصادقةشراء موقَّع
ردّ أنيسموقَّع
حدود الموظفين التي يُحتسب ضمنهاكل الاستدعاءات، المشتريات (حدّ الطلبات)
حزمة SDK لـ ‎.NETanis.DirectRecharges.CreateAsync(walletId, operationId, request)
  • كل ردّ معالجة بالحالة 202 يحتوي فقط operationId وoperationType وstatus: "processing"؛ وتكون operationType هي directRecharge. تستخدم القراءة الكاملة الحالة 200.
  • عدم ظهور العملية في القراءة لا يثبت غيابها. أعد المحتوى المحفوظ نفسه بمعرّف العملية نفسه وتوقيع جديد. يبقى الردّ على العملية المكررة 202 أثناء تأخر ظهورها. لا تُغلق العملية بالرمز idempotency_conflict والحالة 409 إلا إذا كشفت هذه المحاولة تكرار العملية بعد مرور 60 ثانية أو أكثر منذ قبولها الأول، ثم لم تجدها قراءة لاحقة خاصة بتطبيقك. غياب القراءة أو انتهاء المهلة وحده لا يثبت التعارض. ولا يثبت هذا الرمز أن شيئًا لم يُخصم: فقد يكون الطلب الأول قُبل بالفعل، فاقرأ العملية قبل أي محاولة جديدة.
  • تُحتسب عملية الشراء ضمن حدّ orders الحالي وسقف الإنفاق اليومي نفسه للتطبيق مع طلبات البطاقات والمشتريات الأخرى.

المعاملات

الاسمالموضعالنوعملاحظات
walletIdإلزاميpathUUIDمعرّف UUID بأحرف صغيرة مع الشرطات.

الاستدعاء

موقَّع بمفتاحك، مع رقم استخدام لمرة واحدة (nonce) وبصمة للمحتوى ومعرّف العملية في Idempotency-Key.

الترويسات: Signature-Input، Signature، Content-Digest، Nonce، Idempotency-Key، X-Anis-Date، Accept-Language (اختياري). تضبطها حزم SDK كلها نيابةً عنك.

المحتوى: CreateDirectRechargeRequest، بصيغة JSON.

الحقلالنوعملاحظات
productIdإلزاميUUIDمعرّف منتج الشحن المباشر المختار.
payoutAmountإلزاميstringنص مبلغ التسليم المطلوب من عرض السعر.
expectedTotalإلزاميanyالإجمالي الذي أكّدته من الباقة أو عرض السعر، بصيغة Money وعملة LYD. فحص الرصيد دقيق حتى 999,999.999 LYD.
recipientإلزاميlist of DirectRechargeRecipientInputقيم المستلم بمفاتيحها، ويُتحقق منها وفق هذا المنتج.
notestringملاحظتك الاختيارية لعملية الشحن المباشر هذه.
externalReferencestringمرجعك الخاص؛ يظهر إن أرسلته.

الردود

الحالةالمعنىالمحتوى
200نجاح.DirectRecharge
202قُبل — لا نتيجة بعد.DirectRechargeAccepted
400مرفوض: الاستدعاء الموقّع غير سليم البنية.مشكلة
401مرفوض: لم تتم المصادقة.مشكلة
403مرفوض: غير مسموح.مشكلة
404مرفوض: غير موجود، أو ليس لك.مشكلة
409مرفوض: يتعارض مع الحالة الحالية.مشكلة
422مرفوض: الاستدعاء يخالف قاعدة.مشكلة
429مرفوض: بلغتَ حدًا.مشكلة
503لا قرار: خدمة مطلوبة غير متاحة.مشكلة

كل ردّ على هذا الاستدعاء موقَّع من أنيس — النجاح وكل رفض. اشترط وجود التوقيع وتحقّق منه قبل أن تتصرف بناءً على الردّ؛ والردّ بلا توقيع فشل، لا يُعدّ ردًّا (كيف).

حالات الرفض

كل رفض لهذا الاستدعاء مشكلةٌ موقَّعة. ابنِ منطقك على رمزها code؛ وكلٌّ منها يرتبط بصفحة تشرح معناه وما عليك فعله.

الخطأالرمزالحالة
بيانات اعتماد غير صالحةinvalid_credentials401
استدعاء موقّع غير سليم البنيةmalformed_signed_request400
صلاحية غير كافيةinsufficient_scope403
عنوان المصدر غير مسموحsource_ip_not_allowed403
تجاوزت حدّ الاستدعاءاتrate_limited429
فشل التحققvalidation_failed422
الخدمة غير متاحةdependency_unavailable503
انتهت مهلة الاستدعاءrequest_timeout504
خطأ داخليinternal_error500
الحساب غير مخوَّلbinding_not_authorized403
الحساب غير فعّالaccount_inactive403
المحفظة غير ممنوحةwallet_not_granted404
غير موجودresource_not_found404
العملة غير مدعومةcurrency_not_supported422
المحفظة معطّلةwallet_disabled409
انتهت صلاحية المحفظةwallet_expired409
يلزم اشتراك أعمالbusiness_subscription_required409
اكتُشف تكرارreplay_detected409
معرّف العملية مستخدم من قبلidempotency_conflict409
تغيّر السعرprice_changed409
الرصيد غير كافٍinsufficient_balance409
بُلغ سقف الإنفاقspending_limit_exceeded429
منتج الشحن المباشر غير متاحdirect_recharge_product_unavailable409
المبلغ خارج الحدودamount_out_of_range422
الشراء غير مسموحpurchase_not_allowed403

الأنواع

CreateDirectRechargeRequest

الحقلالنوعملاحظات
productIdإلزاميUUIDمعرّف منتج الشحن المباشر المختار.
payoutAmountإلزاميstringنص مبلغ التسليم المطلوب من عرض السعر.
expectedTotalإلزاميanyالإجمالي الذي أكّدته من الباقة أو عرض السعر، بصيغة Money وعملة LYD. فحص الرصيد دقيق حتى 999,999.999 LYD.
recipientإلزاميlist of DirectRechargeRecipientInputقيم المستلم بمفاتيحها، ويُتحقق منها وفق هذا المنتج.
notestringملاحظتك الاختيارية لعملية الشحن المباشر هذه.
externalReferencestringمرجعك الخاص؛ يظهر إن أرسلته.

DirectRechargeRecipientInput

الحقلالنوعملاحظات
keyإلزاميstringمفتاح الحقل كما ورد في تعريف المنتج.
valueإلزاميstringقيمة الحقل المرسلة؛ ويستخدم اختيار الموقع معرّفه.

DirectRecharge

الحقلالنوعملاحظات
operationIdموجود دائمًاUUIDقيمة UUID نفسها المرسلة في Idempotency-Key لهذا الشراء.
statusموجود دائمًاDirectRechargeStatusالحالة المدمجة المعروضة للعميل؛ تضيف الإعادة الجزئية مبالغ بدل حالة جديدة.
numberموجود دائمًاintegerرقم عملية الشحن المباشر المسجّل.
walletIdموجود دائمًاstringالمحفظة المستخدمة في هذا الشراء.
productموجود دائمًاDirectRechargeProductReferenceمعرّف منتج الشحن المباشر المشترى وعنوانه.
payoutموجود دائمًاDirectRechargePayoutنص مبلغ التسليم وعملته المسماة؛ وليس بصيغة Money للدينار.
exchangeRateموجود دائمًاstringسعر الصرف المعروض كنص عشري.
priceموجود دائمًاMoneyالسعر بالدينار الليبي مع تعديلات الموقع وشريحة المحفظة المطبّقة.
commissionموجود دائمًاMoneyالعمولة بالدينار الليبي المشمولة في total.
totalموجود دائمًاMoneyإجمالي تكلفة المحفظة بصيغة Money وعملة LYD. فحص الرصيد دقيق حتى 999,999.999 LYD.
recipientموجود دائمًاlist of DirectRechargeRecipientValueقيم المستلم المحفوظة وتسميات عرضها.
notestringملاحظتك الاختيارية لعملية الشحن المباشر هذه.
externalReferencestringمرجعك الخاص؛ يظهر إن أرسلته.
requestedAtموجود دائمًاstring (date-time)وقت طلب عملية الشحن المباشر بتوقيت UTC.
completedAtstring (date-time)وقت الإكمال إن ورد، بتوقيت UTC.
proofUrlstringعنوان إثبات التسليم المحفوظ إن ورد؛ دون ضمان للوصول أو مدة الصلاحية.
reasonstringسبب التعليق أو الرفض في إحدى حالتيه.
partialRefundDirectRechargePartialRefundمبالغ الإعادة الجزئية المسوّاة والمتبقي؛ لا تحدث إلا إذا فُعّلت الإعادة الجزئية للمنتج.

DirectRechargeStatus

DirectRechargeProductReference

الحقلالنوعملاحظات
idموجود دائمًاUUIDمعرّف منتج الشحن المباشر المختار.
titleموجود دائمًاstringنص منتج الشحن المباشر المعروض.

DirectRechargePayout

الحقلالنوعملاحظات
amountموجود دائمًاstringمبلغ التسليم كنص عشري.
currencyموجود دائمًاDirectRechargeCurrencyكائن اسم عرض عملة التسليم.

DirectRechargeCurrency

الحقلالنوعملاحظات
nameموجود دائمًاstringاسم العرض الوارد لهذا العنصر.

Money

الحقلالنوعملاحظات
amountموجود دائمًاstringنص عشري، وليس عدد JSON. قد يكون رصيد المحفظة سالبًا عند استخدام الدين المسموح. تتبع الأسعار والإجماليات قواعد المبلغ لكل مسار.
currencyموجود دائمًاstringرمز عملة من ثلاثة أحرف كبيرة، مثل LYD. اقرأ عملة المحفظة من balance.currency.
asOfstring (date-time)وقت قراءة هذا السعر أو الرصيد.

DirectRechargeRecipientValue

الحقلالنوعملاحظات
keyموجود دائمًاstringمفتاح الحقل كما ورد في تعريف المنتج.
nameLocalizedTextتسميات العرض بالعربية والإنجليزية مع حذف اللغة الفارغة.
valueموجود دائمًاstringقيمة الحقل المرسلة؛ ويستخدم اختيار الموقع معرّفه.
valueNamestringاسم عرض القيمة المختارة إن ورد.

LocalizedText

الحقلالنوعملاحظات
arstringالنص العربي؛ يُحذف حين يكون فارغًا.
enstringالنص الإنجليزي؛ يُحذف حين يكون فارغًا.

DirectRechargePartialRefund

الحقلالنوعملاحظات
refundedPayoutموجود دائمًاstringنص مبلغ التسليم المعاد أو المتبقي بعملة المنتج.
refundedTotalموجود دائمًاMoneyمبلغ المحفظة المعاد أو المتبقي بالدينار الليبي.
remainingPayoutموجود دائمًاstringنص مبلغ التسليم المعاد أو المتبقي بعملة المنتج.
remainingTotalموجود دائمًاMoneyمبلغ المحفظة المعاد أو المتبقي بالدينار الليبي.

DirectRechargeAccepted

الحقلالنوعملاحظات
operationIdموجود دائمًاUUIDقيمة UUID نفسها المرسلة في Idempotency-Key لهذا الشراء.
operationTypeموجود دائمًاstringتكون دائمًا directRecharge. القيم: directRecharge
statusموجود دائمًاstringتكون دائمًا processing؛ النتيجة لم تصبح نهائية. القيم: processing