المبالغ والعملات

المبالغ أعداد صحيحة بالوحدة الصغرى للعملة. تعرّف على عدد المنازل العشرية لكل عملة مدعومة.

كل مبلغ في الـ API (amount وamount_refunded وcommission وnet…) هو عدد صحيح بالوحدة الصغرى للعملة، يُرسل مع رمز العملة currency وفق ISO 4217. لا توجد كسور عشرية ولا أعداد عائمة في أي مكان من الـ API.

{ "amount": 1500, "currency": "KWD" }

تعني 1.500 د.ك (دينار واحد و500 فلس)، لأن للدينار الكويتي ثلاث منازل عشرية.

العملات المدعومة

العملةالرمزالمنازل العشريةالوحدة الصغرىمثال: amount ← القيمة
الدينار الكويتيKWD3فلس1500 ← 1.500 د.ك
الدينار البحرينيBHD3فلس2750 ← 2.750 د.ب
الريال العُمانيOMR3بيسة10000 ← 10.000 ر.ع
الدينار الأردنيJOD3فلس500 ← 0.500 د.أ
الريال السعوديSAR2هللة9999 ← 99.99 ر.س
الدرهم الإماراتيAED2فلس25000 ← 250.00 د.إ
الريال القطريQAR2درهم1050 ← 10.50 ر.ق
الجنيه المصريEGP2قرش100000 ← 1,000.00 ج.م

انتبه للعملات ذات المنازل الثلاث

القيمة 100 تعني 1.00 ر.س لكنها تعني 0.100 د.ك فقط. حوّل دائمًا باستخدام عدد المنازل العشرية للعملة، ولا تضرب أبدًا في 100 بشكل ثابت.

المبالغ ذات المنازل الثلاث تنتهي بصفر

في بعض الحسابات، ومنها الحسابات الإماراتية، يجب أن تنتهي مبالغ KWD وBHD وOMR وJOD بصفر: القيمة 1250 مقبولة، أما 1255 فتعيد 422 validation_error مع details.fields.amount = "unsupported". وتقريب الأسعار ذات المنازل الثلاث إلى أقرب 10 يعمل مع كل الحسابات. راجع المبالغ ذات المنازل الثلاث.

التحويل

إلى الوحدات الصغرى: minor = round(major × 10^exponent). وللعرض: major = minor / 10^exponent مع عدد منازل عشرية يساوي exponent تمامًا.

تجنّب الحساب بالأعداد العائمة في المبالغ: حلّل النصوص العشرية أو استخدم مكتبة أعداد عشرية، واحفظ أعدادًا صحيحة في قاعدة بياناتك.

const EXPONENTS = { KWD: 3, BHD: 3, OMR: 3, JOD: 3, SAR: 2, AED: 2, QAR: 2, EGP: 2 };

// "12.5" KWD -> 12500
function toMinor(value, currency) {
  const exp = EXPONENTS[currency];
  const [whole, frac = ''] = String(value).split('.');
  if (frac.length > exp) throw new Error(`Too many decimals for ${currency}`);
  return Number(whole) * 10 ** exp + Number(frac.padEnd(exp, '0') || 0);
}

// 12500 KWD -> "KWD 12.500" (pass locale "ar-KW" for Arabic digits)
function format(minor, currency, locale = 'en') {
  const exp = EXPONENTS[currency];
  return new Intl.NumberFormat(locale, {
    style: 'currency',
    currency,
    minimumFractionDigits: exp,
    maximumFractionDigits: exp,
  }).format(minor / 10 ** exp);
}

العملة ووسائل الدفع

تؤثر العملة التي تختارها على وسائل الدفع الظاهرة في صفحة الدفع. ففي الحسابات التي تدعم الوسائل المحلية تُعرض كي-نت مع KWD، ومدى مع SAR، وبنفت مع BHD. وتعمل البطاقات وApple Pay وGoogle Pay مع مختلف العملات في كل الحسابات. وتعتمد الوسائل المتاحة لك على حسابك: راجع وسائل الدفع وحسابك. تظهر العملات المفعّلة في حسابك ضمن إعدادات لوحة التحكم.