مرجع API · البطاقات المملوكة

كشف فاتورة

POST/v1/wallets/{walletId}/invoices/{invoiceId}/owned-cards/reveal

POST /v1/wallets/{walletId}/invoices/{invoiceId}/owned-cards/reveal — يعرض رموز كل بطاقة في فاتورة — كلها أو لا شيء، حتى 100 بطاقة. لا يرسل أي محتوى.

الصلاحيةcards:reveal
المصادقةتغيير موقَّع
ردّ أنيسموقَّع
حدود الموظفين التي يُحتسب ضمنهاكل الاستدعاءات، الكشف
حزمة SDK لـ ‎.NETanis.OwnedCards.RevealInvoiceAsync(walletId, invoiceId)

المعاملات

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

الاستدعاء

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

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

المحتوى: لا محتوى إطلاقًا — ولا حتى {}. أي بايت يُرفض بـ validation_failed. ويبقى التوقيع شاملًا بصمة المحتوى الفارغ.

الردود

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

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

حالات الرفض

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

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

الأنواع

RevealedCredentialCollection

الحقلالنوعملاحظات
itemsموجود دائمًاlist of RevealedCredentialكل بطاقة في الفاتورة مع رموزها — كلها أو لا شيء، 100 بطاقة على الأكثر.

RevealedCredential

الحقلالنوعملاحظات
soldCardIdموجود دائمًاUUIDالبطاقة المبيعة التي تخصها هذه الرموز.
serialNumberstringالرقم التسلسلي للبطاقة. سرّ: احفظه حيث تحفظ الأسرار ولا تسجّله في السجلات أبدًا.
voucherstringرمز القسيمة للبطاقة. سرّ: احفظه حيث تحفظ الأسرار ولا تسجّله في السجلات أبدًا.
revealedAtstring (date-time)وقت كشفها.
expiryDatestring (date)آخر يوم يمكن فيه استخدام البطاقة، بصيغة yyyy-MM-dd. أبلغ به عميلك النهائي. غير موجود حين لا يكون للبطاقة تاريخ انتهاء.
invoiceIdanyالفاتورة التي عليها البطاقة. يظهر أيضًا داخل soldCards في طلب الشراء.
cardCardSummaryبطاقة الكتالوج التي بيعت، لتعرف لأي بطاقة هذه الرموز. تظهر أيضًا داخل soldCards في طلب الشراء.
purchasedAtstring (date-time)وقت شراء البطاقة. يظهر أيضًا داخل soldCards في طلب الشراء.

CardSummary

الحقلالنوعملاحظات
idUUIDمعرّف بطاقة الكتالوج.
nameLocalizedTextاسم البطاقة بالعربية والإنجليزية؛ يُحذف النص المحلي الفارغ.
faceValuestringالقيمة المطبوعة الاختيارية؛ تُحذف حين تكون فارغة.
logostringعنوان URL مطلق واختياري لشعار الفئة الفرعية؛ يُحذف حين يكون فارغًا.
subcategoryobjectالفئة الفرعية للبطاقة، بمعرّفها واسمها المحلي.
subcategory.idUUIDمعرّف الفئة الفرعية.
subcategory.nameLocalizedTextاسم الفئة الفرعية بالعربية والإنجليزية.
categoryobjectفئة البطاقة، بمعرّفها واسمها المحلي.
category.idUUIDمعرّف الفئة.
category.nameLocalizedTextاسم الفئة بالعربية والإنجليزية.

LocalizedText

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