التوثيق
الدمجالأخطاء

أكواد أخطاء الدفع

كل قيمة لـ `lastPaymentError.code`، متجمّعة حسب المجال. الـ URL بتاع كل إدخال هو قيمة `lastPaymentError.docUrl`.

الصفحة دي هي وجهة كل lastPaymentError.docUrl اللي كوده جه من PaymentErrorCode. الإرساء (anchors) هنا بيطابق قيمة code، فـ https://docs.xpay.app/integrate/errors/payment-error-codes#card_declined بيوصلك مباشرةً للصف اللي تحت.

لسبب الرفض المحدّد للبنك المُصدِر على دفع بالبطاقة (lastPaymentError.declineCode)، شوف أكواد الرفض. للنموذج ونمط المعالِج، شوف أخطاء الدفع.

التحقّق من البطاقة

العميل دخّل بيانات بطاقة ما بتعدّيش التحقّق الأساسي. paymentMethodType: "card". الإرشاد: confirm_card_data (خلّي العميل يدخّل بياناته تاني).

invalid_number

رقم البطاقة مش بصيغة صالحة (طول غلط، أو فشل في فحص Luhn، إلخ).

invalid_expiry_month

شهر انتهاء الصلاحية مش قيمة صالحة.

invalid_expiry_year

سنة انتهاء الصلاحية مش قيمة صالحة.

invalid_cvc

الـ CVC/CVV مش بصيغة صالحة (طول غلط).

incorrect_number

رقم البطاقة عدّى التحقّق من الصيغة لكن البنك المُصدِر بيقول إنه غلط.

incorrect_cvc

الـ CVC/CVV ما بيطابقش اللي عند البنك المُصدِر.

incorrect_zip

الرمز البريدي ما بيطابقش عنوان الفوترة المسجَّل عند البنك المُصدِر.

expired_card

البطاقة منتهية. العميل محتاج بطاقة تانية.

المعالجة

أخطاء رجعت أثناء محاولة الـ charge الفعلية. خليط من أخطاء البطاقة ونتائج المعالج.

card_declined

البنك المُصدِر رفض العملية من غير سبب أكثر تحديدًا. اقرنه بـ lastPaymentError.declineCode لسبب مستوى البنك المُصدِر لما يكون موجود.

processing_error

حصل خطأ أثناء المعالجة، لكن البنك المُصدِر ما رفضش العملية تمامًا. عادةً مؤقت. الإرشاد: try_again_later.

authentication_required

البنك المُصدِر بيتطلّب مصادقة إضافية (3D Secure) لإتمام الدفع. العميل محتاج يحاول تاني ويكمّل التحدّي.

الحساب والرصيد

insufficient_funds

بطاقة العميل ما عندهاش رصيد متاح كفاية للعملية.

card_velocity_exceeded

البطاقة اتستخدمت مرات كتير في فترة قصيرة. الإرشاد: try_again_later.

الاحتيال والمخاطر

البنك المُصدِر رفض العملية لأسباب مخاطر. الإرشاد: do_not_try_again للتلاتة.

fraudulent

البنك المُصدِر (أو مؤشرات مخاطر XPay نفسها) علّم الدفع كاحتيالي. ما تعيدش المحاولة؛ المحاولة دي مسجّلة عند البنك المُصدِر.

stolen_card

البطاقة اتبلّغ عنها مسروقة. ما تعيدش المحاولة. بلّغ فريق الدعم بتاعك لو المعدّل غير عادي.

lost_card

البطاقة اتبلّغ عنها ضايعة.

المعالج

issuer_not_available

XPay ما قدرش يوصل للبنك المُصدِر للبطاقة. الإرشاد: try_again_later.

processor_timeout

معالج الدفع ما ردّش في الوقت المناسب. الطلب ممكن يكون نجح على ناحيتهم؛ راجع لوحة التحكم قبل إعادة المحاولة. الإرشاد: try_again_later.

processor_declined

المعالج رفض العملية لسبب ما اتترجمش لكود أكثر تحديدًا.

الطلب

amount_too_large

مبلغ العملية بيتعدّى الحد الأقصى المسموح لطريقة الدفع دي.

amount_too_small

مبلغ العملية تحت الحد الأدنى المطلوب لطريقة الدفع دي.

currency_not_supported

العملة مش مدعومة من طريقة الدفع دي.

duplicate_transaction

المعالج اكتشف معاملة مشابهة مؤخرًا. استنى، بعدين أعِد المحاولة.

الاسترداد

charge_already_refunded

حاولت تسترد عملية دفع اتردّت بالكامل بالفعل.

charge_disputed

حاولت تسترد عملية دفع تحت نزاع حاليًا. عمليات الدفع المتنازَع عليها خارج تحكّمك لحد ما النزاع يتحل.

refund_disputed_payment

حاولت تسترد عملية دفع اتنازِع عليها. نفس القاعدة.

طرق الدفع غير البطاقية

payment_declined

طريقة دفع غير بطاقية (BNPL، أو كشك، أو محفظة، أو تحويل بنكي) رفضت الدفع. التفاصيل بتعتمد على المزوّد؛ راجع لوحة التحكم للتفاصيل.

العام

لما المعالج أو البنك المُصدِر ما يرجّعش سبب محدّد، XPay بيرجع لواحد من دول.

generic_decline

الدفع اترفض من غير سبب محدّد.

do_not_honor

البنك المُصدِر رجّع "do not honor"، اللي عادةً معناه إن العميل المفروض يتواصل مع بنكه. الإرشاد: try_again_later.

call_issuer

البنك المُصدِر قال للعميل يكلّمه. اعرض للعميل رسالة واضحة "اتواصل مع بنكك وحاول تاني".

رايح فين بعد كده

في الصفحة دي