Nordlet

← المدونة

What Defines an Immutable Double-Entry Ledger API

نظرة عملية تفصيلية على الميزات التي تميز دفتر الأستاذ المحاسبي الحقيقي للأسواق الإلكترونية الأوروبية عن مجرد جدول أرصدة قابل للتعديل مغلف بتسويق جيد.

Nordlet Team · · 11 دقائق قراءة

لا يُعرّف دفتر الأستاذ المحاسبي (ledger) للأسواق الإلكترونية بناءً على ما إذا كان يخزن حركات الأموال؛ فمعظم الأنظمة تقوم بذلك. بل يُعرّف بما يحدث عندما يرسل موفر الدفع (payment provider) نفس الويب هوك (webhook) مرتين، أو عندما يصل استرداد أموال بعد أن يكون البائع قد تلقى مستحقاته بالفعل، أو عندما يسأل المدقق كيف وصل رصيد البائع إلى رقمه الحالي. تكشف تلك اللحظات عما إذا كنت تمتلك دفتر أستاذ مزدوج القيد غير قابل للتعديل أم حقل بيانات قابل للتعديل يحمل اسماً براقاً.

باختصار بالنسبة لمنصة سوق إلكترونية، فإن واجهة برمجة تطبيقات دفتر الأستاذ مزدوج القيد وغير القابل للتعديل (immutable double-entry ledger API) تسجل كل حدث ذي أثر مالي كمعاملة دفتر يومية متوازنة، وترحلها بشكل ذري (atomically)، ولا تكتب فوقها أبداً، وتتيح لك استخراج الأرصدة، وإجراء المطابقات مع الأنظمة الخارجية، وتصدير السجل برمجياً. وكل ما عدا ذلك ليس سوى تفاصيل تابعة لهذا النواة الأساسية.

قيود يومية متوازنة، وليست حقل رصيد جاري

الاختبار الأوضح على الإطلاق هو كيفية تمثيل واجهة برمجة التطبيقات لرصيد البائع. إذا كان الرصيد عبارة عن رقم يقوم تطبيقك بزيادته مباشرة، فهذا ليس دفتر أستاذ مزدوج القيد. أما إذا كان الرصيد عبارة عن عرض مشتق من بنود دفتر اليومية المرحّلة، فقد يكون كذلك.

يجب أن تحمل كل معاملة مدينات ودائنات متساوية. فعندما يدفع المشتري 100 يورو مقابل طلب تأخذ فيه السوق الإلكترونية عمولة قدرها 15 يورو، يسجل دفتر الأستاذ حساب المقاصة مديناً بمبلغ 100 يورو في مقابل حساب الدائنين للبائع دائنًا بمبلغ 85 يورو وإيرادات العُمولات دائنة بمبلغ 15 يورو. يتطابق مجموع الطرفين دائماً ليساوي القيمة نفسها. تكتشف هذه القاعدة الهيكلية فئة واسعة من الأخطاء قبل أن تصل إلى التقارير.

يجب أن تعرض معاملة دفتر اليومية، كحد أدنى، ما يلي:

  • معرف معاملة فريد وغير قابل للتعديل
  • بنود المدين والدائن، ويسجل كل منها الحساب والمبلغ والعملة
  • تاريخ استحقاق وطابع زمني للترحيل
  • نوع الحدث التجاري (بيع، استرداد، تحويل مستحقات، استرداد مبالغ مدفوعة chargeback)
  • مفتاح منع التكرار (idempotency key)
  • مرجع مصدري للطلب أو الدفع أو حدث موفر الخدمة
  • الحالة (معلق، مرحّل، معكوس)
  • الخدمة أو بيانات الاعتماد التي أنشأتها

عندئذ يصبح رصيد الأموال المتاحة للبائع استعلاماً (query) موجهاً لتلك البنود، وليس قيمة قام شخص ما بتحديثها في كود التطبيق. وتكمن أهمية ذلك في أن الرصيد المُعدَّل مباشرة يفقد سبب حدوث كل حركة. يتعامل نموذج Nordlet مع دفتر الأستاذ مزدوج القيد باعتباره مسار الكتابة المعتمد (authoritative write path): حيث تُرحّل كل المستندات قيود يومية متوازنة، وترفض قاعدة البيانات نفسها القيود غير المتوازنة تلقائياً. هذا هو الوضع الافتراضي الصحيح لأي شخص يدمج المحاسبة داخل سوق إلكترونية.

الترحيل بالإضافة فقط (Append-only) مع تصحيحات تعويضية

ينبغي أن تعني صفقة "عدم القابلية للتعديل" (immutability) عدم إمكانية تعديل دفتر اليومية المُرحَّل في مكانه. يتم إصلاح الأخطاء للأمام وليس محوها. فحساب العمولة الخاطئ يتلقى قيد عكسي يلغي القيد الأصلي، يليه قيد مُصحَّح يسجل النتيجة المطلوبة. يرتبط كلاهما بالرسالة الأصلية، ويُظهر سجل التدقيق الشخص الذي بادء بالتغيير ووقت حدوثه.

يجب أن ترفض واجهة برمجة التطبيقات أوامر التحديث UPDATE والحذف DELETE البسيطة الموجهة ضد السجلات المحاسبية المرحّلة. وقد تسمح لك بإرفاق بيانات وصفية غير مالية، مثل مرجع حالة دعم فني، طالما ظلت المبالغ والحسابات والطوابع الزمنية دون مساس.

من المفيد الفصل بين ثلاثة أمور غالباً ما يخلط الناس بينها:

  • عدم القابلية للتعديل التشغيلي: لا يمكن لمستخدمي التطبيق تعديل أو حذف الصفوف المرحّلة.
  • عدم القابلية للتعديل لأغراض التدقيق: يستطيع النظام إثبات أن السجل لم يتغير.
  • الاحتفاظ القانوني: تُحفظ السجلات للمدة التي تقتضيها القوانين السارية.

توفر قاعدة بيانات علائقية تعتمد على الإضافة فقط (append-only) مع صلاحيات صارمة ونسخ احتياطي وسير عمل دقيق للعكس، دفتر أستاذ غير قابل للتعديل حقاً. لا تعد تقنية سلسلة الكتل (blockchain) مطلوبة هنا، وهي في سياق بيانات المحاسبة الأوروبية عادة ما تجلب مشاكل تتعلق بالخصوصية والتصحيح تفوق ميزة كشف العبث التي تضيفها.

الأذرية (Atomicity) ومنع تكرار العمليات (Idempotency)

يجب أن يتم ترحيل حدث السوق الإلكترونية بشكل ذري (atomically). إما أن تُعتمد كافة بنود دفتر اليومية أو لا يُعتمد أي منها. إن تسجيل استلام مبلغ 100 يورو مع الفشل في تسجيل عمولة 15 يورو ينتج عنه نتيجة غير متوازنة ومضللة سيتعين على شخص ما تفكيكها لاحقاً. يفرض Nordlet هذا الشرط تحت طبقة التطبيق: حيث يتحقق مشغل (trigger) مؤجل في قاعدة البيانات من توازن كل عملية ترحيل وقت الاعتماد، بحيث يتعذر اعتماد أي معاملة غير متوازنة من الأساس.

تُعد خاصية منع التكرار (Idempotency) النقطة التي تتداعى عندها معظم عمليات التكامل بهدوء. تعيد أنظمة الدفع المحاولة عند فشل الشبكة، وتُعاد معالجة ملفات التسوية. وبدون مفتاح منع تكرار (idempotency key) مرتبط بالمستأجر أو الحساب، فإن طلب إعادة محاولة واحد سيქმ إنشاء محاسبة مكررة. يجب أن يُرجع الطلب المتكرر الذي يحمل نفس المفتاح المعاملة الأصلية وليس معاملة ثانية.

يجب أن يرتبط المفتاح بالحدث الأصلي، ونوع الحدث، ومعرف الحدث لدى الموفر، والكيان القانوني، وقيمة مُجَدولة (hash) لحمل الطلب (payload). وإذا وصل نفس المفتاح بمبلغ أو عملة مختلفة، يجب أن تتعامل واجهة برمجة التطبيقات مع ذلك على أنه تعارض وترفضه بدلاً من قبول الحمل الجديد بصمت. القبول الصامت هو ما يؤدي إلى تلف مسارات التدقيق. تعمل رأسية Idempotency-Key header الخاصة بـ Nordlet على هذا النحو: إعادة المحاولة بنفس المفتاح والحمل تُعيد تشغيل الاستجابة المخزنة، بينما يُرفض المفتاح نفسه بحمل مختلف بواسطة الخطأ idempotency_key_reuse. هذه ميزة صغيرة ذات تأثير هائل على المطابقة المحاسبية.

المحاسبة المقسمة متعددة الأطراف (Multi-party split accounting)

طلب السوق الإلكترونية ليس مجرد حركة واحدة. فالعملية الواحدة قد تلامس أموال المشتري، وعائدات البائع، وعولة السوق الإلكترونية، ورسوم معالجة الدفع، وضريبة القيمة المضافة على العمولة، والشحن، والاحتياطيات. يحتاج دفتر الأستاذ إلى هياكل حسابات تبقي هذه العناصر منفصلة بدلاً من دمجها في رقم صافٍ واحد.

هناك افتراض شائع يستحق الاعتراض عليه: ميزة "توزيع المدفوعات" (split payout) الخاصة بموفر الدفع لا تساوي المحاسبة الخاصة بالسوق الإلكترونية. تقسيم الأموال بين المستفيدين يقوم بتوجيه النقد فقط، لكنه لا يمنحك سجلاً كاملاً وغير قابل للتعديل للعمولة المكتسبة، وضريبة القيمة المضافة المحصلة، والاستردادات المستحقة، أو الاحتياطيات المُجمدة. لا يزال يتعين عليك امتلاك دفتر الأستاذ الخاص بك، وما زلت بحاجة إلى مطابقة حساباتك مع موفر الدفع.

يجب أن يُميّز دفتر أستاذ السوق الإلكترونية أيضاً بين أكثر من رصيد واحد للبائع:

حالة الرصيد ما يمثله
معلق (Pending) أموال مرتبطة بحدث لكنها غير مؤهلة للسحب بعد
متاح (Available) أموال اجتازت قواعد الإفراج والاحتياطي والاسترداد والنزاعات
محتجز / مخصص (Held / reserved) مبالغ محتجزة مقابل الاستردادات أو المرتجعات أو ضوابط الاحتيال
مدفوع (Paid out) مبالغ محولة إلى البائع
سالب / قابل للاسترداد (Negative / recoverable) مبالغ مستحقة على البائع بعد تجاوز الاستردادات أو الرسوم للأموال المتاحة

يجب أن يُعد نقل الأموال من الحالة المعلقة إلى الحالة المتاحة معاملة دفتر يومية متوازنة بحد ذاتها، وليس لمجرد إعادة تسمية حقل بيانات.

العمليات العكسية، والاسترداد، والأرصدة السالبة

تتحرك أموال السوق الإلكترونية في الاتجاهين، وغالباً خارج الترتيب الزمني. الحالات الصعبة هي الاستردادات التي تحدث بعد صرف المستحقات والاعتراضات (chargebacks) التي تصل بعد أسابيع. يحدد دفتر الأستاذ الجاد ما يجب فعله عندما يتعذر على رصيد البائع المتاح تغطية مبلغ الاسترداد: إنشاء رصيد سالب، أو نقل المبلغ إلى حسابات المدينين للبائع، أو السحب من الاحتياطي، أو تقييد المدفوعات المستقبلية.

يجب أن تشير كل واحدة من هذه الأحداث إلى المعاملة الأصلية مع الحفاظ عليها. يسجل دفتر الأستاذ الأثر المحاسبي لعملية الاسترداد، ولا يقرر سياسة الاسترداد الخاصة بالسوق الإلكترونية أو مسؤوليتها القانونية. الحفاظ على وضوح هذه الحدود يمنع الكثير من النقاشات التصميمية المتباينة.

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

تتطلب الأسواق الإلكترونية عابرة الحدود معالجة صريحة للأموال. يجب أن تستخدم المبالغ رموز العملات وفقاً للمعيار ISO 4217 وتمثيلاً دقيقاً، إما وحدات فرعية صحيحة أو سلاسل عشرية دقيقة الثبات، ودون استخدام الأعداد العشرية العائمة (floats) أبداً. لا يُسمح بالتقريب الصامت. وعندما يحدث تحويل للعملة، يجب أن يحفظ دفتر الأستاذ المبلغ الأصلي، وسعر الصرف (FX)، ومصدر السعر، والطابع الزمني، والمبلغ الناتج، مع ترحيل فروق التقريب إلى حساب محدد.

يجب ألا تدمج معاملة متوازنة واحدة عملات متعددة من دون آلية صرف صريحة. وإذا حدث ذلك، ستتعارض تقاريرك مع الواقع بطرق مؤглеة وصعبة التتبع عند نهاية الشهر.

المطابقة مع الأنظمة الخارجية

دفتر الأستاذ المتوازن داخلياً ليس معتمداً لذاته؛ بل يجب أن يتطابق مع العالم الخارجي: معاملات موفر الدفع، ورسوم الموفر، وتقارير التسوية، وكشوف الحسابات المصرفية، وملفات المدفوعات، وتقارير الاعتراضات.

تدعم واجهة برمجة التطبيقات الناضجة الأحداث الخارجية المستوردة وحالات المطابقة مثل: مطابق، ومطابق جزئياً، وغير مطابق، ومكرر، واختلاف المبلغ، ويحتاج إلى مراجعة. يجب أن تؤدي اختلافات المطابقة إلى إنشاء سجلات استثناءات صريحة أو قيود محاسبية، وألا تُعيد أبداً كتابة تاريخ دفتر الأستاذ في الخفاء. يعتمد نهج Nordlet في مطابقة الحسابات المصرفية ومدفوعات المدفوعات على هذا المبدأ: تتجاهل الكشوف المستوردة وتصديرات Stripe أي شيء تم استيراده مسبقاً، ويتم تقييم اقتراحات الدفع بالدرجات بناءً على المبلغ والمرجع والطرف المقابل ورقم IBAN، وتتولى المطابقة بنقرة واحدة الحالات الروتينية، بينما يتم إبراز الاستثناءات للسطح بدلاً من امتصاصها.

الحدود الأوروبية التي يجب أن تحترمها واجهة برمجة التطبيقات وتلك التي لا تستطيع ذلك

هنا تميل الادعاءات التسويقية غالباً لتجاوز الواقع. يساعد دفتر الأستاذ في الوفاء بالالتزامات الأوروبية، لكنه لا يلبيها بمفرده.

ضريبة القيمة المضافة (VAT). يجب أن يحافظ دفتر الأستاذ على الأبعاد ذات الصلة بالضرائب: الاختصاص القضائي، النسبة، فئة الضريبة، وكيفية تحديد النسبة. ويجب أن يُميّز بين عملية بيع البائع للمشتري وبين عمولة السوق الإلكترونية، وأن يفصل ضريبة القيمة المضافة على الرسوم عن المبالغ العابرة فحسب. يتعامل Nordlet مع حسابات ضريبة القيمة المضافة لكل دولة على حدة، والتحقق من رقم VIES، وإنشاء سجل i.SAF، إلى جانب سيناريوهات نظام نافذة واحدة للمؤسسات OSS و IOSS التي تواجهها الأسواق الإلكترونية الأوروبية. تعامل مع دفتر الأستاذ كدليل وكمحرك ضريبي، وليس كمشورة ضريبية.

قواعد DAC7. تتطلب قواعد الإبلاغ الخاصة بالمنصات روابط موثوقة بين هوية البائع، والاختصاص القضائي، وإجمالي المعاملات، والرسوم، والاستردادات، والمدفوعات. ينتج دفتر الأستاذ المتوازن أدلة المعاملات، لكنه لا يقرر ما إذا كان البائع خاضعاً للإبلاغ أم لا، كما أنه لا يعوض إجراءات اعرف عميلك (KYC)، أو التأهيل (onboarding)، أو سير عمل التقارير. احتفظ بفصل بين محاسبة المعاملات والتقارير التنظيمية كاهتمامين منفصلين.

توجيه خدمات الدفع PSD2 وحفظ الأموال. تسجيل حركات الأموال لا يُعد ترخيصاً لخدمات الدفع أو حفظاً للأموال. يجب أن توضح واجهة برمجة التطبيقات مسار الأموال والأطراف بوضوح. ولا يستطيع دفتر الأستاذ، بمفرده، توفير تفويض خدمات الدفع أو إثبات الاحتفاظ بالنقد في حساب معين. يظل ذلك مرهوناً بدورك التنظيمي وموفر خدمة الدفع (PSP) الخاص بك.

اللائحة العامة لحماية البيانات (GDPR). تخلق عدم القابلية للتعديل تواتراً حقيقياً مع مبادئ حماية البيانات. الهندسة الأكثر أماناً تبقي الحقائق النقدية في النواة غير القابلة للتعديل والبيانات الشخصية خارجها. استخدم مراجع مستعارة وثابتة للبائعين والعملاء في بنود دفتر اليومية. خزن التفاصيل الشخصية القابلة للتعديل في نظام منفصل ومتحكم في الوصول إليه مع الاحتفاظ الخاص به وسير عمل الحذف. "عدم القابلية للتعديل" ليست ترخيصاً للاحتفاظ بكل حمل دفع إلى الأبد.

قائمة مراجعة لتقييم واجهة برمجة تطبيقات دفتر الأستاذ

تسميات الميزات رخيصة الثمن؛ لذا اختبر السلوك في بيئة تجريبية (sandbox) بدلاً من ذلك. شغل هذه السيناريوهات وتحقق من الأدلة:

  • رحّل طلباً بقيمة 100 يورو مقسماً بين البائع والسوق الإلكترونية، وتأكد من وجود دفتر يومية متوازن بحسابات صريحة.
  • أرسل نفس الطلب مرتين، وتأكد من وجود معاملة واحدة وعدم وجود أي تكرار.
  • حاول تعديل قيد مُرحَّل، وتأكد من رفضه أو تقييده على البيانات الوصفية غير المالية.
  • صحح عمولة خاطئة، وتأكد من وجود قيد عكسي مرتبط بالإضافة إلى القيد المُصحَّح.
  • أصدر استرداداً جزئياً بعد صرف المستحقات، وتأكد من وجود استرداد قابل للتتبع مع حساب مدين للبائع أو رصيد سالب عند الحاجة.
  • أعد تشغيل ويب هوك لموفر الدفع، وتأكد من الكشف عن التكرار.
  • عالج تسوية متعددة العملات، وتأكد من تفاصيل صرف العملات ومحاسبة التحويل.
  • استعلم عن رصيد البائع في نهاية الفترة، وتأكد من الحصول على نتيجة قابلة للتكرار مع تاريخ قطع موثق.
  • استورد تسوية من موفر الخدمة، وتأكد من المطابقة مع حالة استثناء تُبقي السجل سليماً.
  • صدّر نشاط شهر كامل، وتأكد من استخراج كامل ومُقسَّم لصفحات وقابل للتكرار.

أقوى دليل هو التوثيق إلى جانب اختبار قابل للتكرار. كلمات مثل "في الوقت الفعلي"، و"جاهز للتدقيق"، و"غير قابل للتعديل" لا تعني شيئاً من دون نموذج البيانات ودلالات الأخطاء وسلوك الاحتفاظ الكامن خلفها.

ما سنقوم بفحصه أولاً

إذا كنا نقيم واجهة برمجة تطبيقات لدفتر أستاذ غداً لسوق إلكترونية، سنبدأ بأمرين قبل النظر في أي شيء آخر. أولاً، إثبات أن رصيد البائع مشتق من بنود دفتر اليومية وليس من حقل قابل للتعديل، لأن كل ما يتبع ذلك يعتمد عليه. ثانياً، إعادة تشغيل نفس الويب هوك والتأكد من وجود نتيجة محاسبية واحدة تماماً. يخبرك هذان الاختباران عن جودة التصميم الأساسي أكثر من أي قائمة ميزات.

بعد ذلك، تكتسب الاعتبارات البرمجية (API-first) أهمية بالغة لسرعة إطلاق فريقك للمنتج: حزم تطوير البرمجيات المهيكلة (typed SDKs)، ويب هوك لأحداث مثل sale_invoice.paid، وبيئة تجريبية عاملة، وقفل الفترات لحماية الشهور المغلقة. لقد بُني Nordlet حول هذا النموذج، حيث تُعرض نفس مجموعة الميزات عبر واجهة برمجة التطبيقات وتطبيق الواجهة الأمامية، وهو ما يسمح للمنصة بإدارة دفاتر جاهزة للتدقيق داخل منتجها الخاص بدلاً من دمج نظام الدفع الخارجي بطريقة ترقيعية. للاطلاع على الصورة الأوسع لكيفية تناسب دفتر الأستاذ هذا مع حزمة تقنيات السوق الإلكترونية، راجع دليلنا حول واجهات برمجة تطبيقات دفاتر الأستاذ مزدوجة القيد لمحاسبة الأسواق الإلكترونية.

FAQ

هل يضمن القيد المزدوج صحة محاسبتي؟

لا. يمكن أن يكون دفتر الأستاذ متوازناً تماماً أثناء ترحيله إلى حسابات خاطئة، أو تطبيقه لمعالجة ضريبية غير صحيحة، أو نسب الأموال إلى البائع الخطأ. التوازن هو ضوابط هيكلية ترصد الأخطاء الحسابية والأجزاء الناقصة من المعاملة، ولكنه لا يقول شيئاً عما إذا كانت منطق عملك قد ربط الحدث بشكل صحيح. ولهذا السبب فإن اختبار البيئة التجريبية مقابل سيناريوهات حقيقية أهم بكثير من فحص التوازن بمفرده.

هل يعتبر دفتر أستاذ موفر الدفع كافياً للسوق الإلكترونية؟

عادة لا. يتتبع موفر خدمة الدفع (PSP) الأموال داخل نظامه الخاص، وهو أمر مفيد لحركات الأموال والمدفوعات. لكن لا يزال يتعين على سوقك الإلكترونية امتلاك سجلاتها الخاصة لإيرادات العُمولات، والالتزامات تجاه البائعين، وضريبة القيمة المضافة على الرسوم، والاستردادات، والاحتياطيات، والنزاعات، والتقارير الإدارية. يجب مطابقة النظامين معاً، والتعامل مع رؤية الموفر كمحاسبتك الخاصة يترك ثغرات تظهر جلياً وقت التدقيق.

هل أحتاج إلى تقنية سلسلة الكتل (blockchain) لجعل دفتر الأستاذ غير قابل للتعديل؟

لا. يمنحك مخزن علائقي يعتمد على الإضافة فقط مع صلاحيات كتابة صارمة، وسير عمل تصحيح مُتحكم به، وتسجيل التدقيق، والنسخ الاحتياطي الموثوق، إمكانية عدم القابلية للتعديل تشغيلياً ولأغراض التدقيق. تضيف سلسلة الكتل أدلة قابلة للتوزيع لكشف التعبث، لكنها تجلب صعوبات في الخصوصية والأداء والتصحيح تتعارض مع متطلبات المحاسبة الأوروبية واللائحة العامة لحماية البيانات GDPR. بالنسبة لمعظم الأسواق الإلكترونية، فإنها تحل مشكلة لا تواجهها أصلاً.

هل يمكن لدفتر أستاذ غير قابل للتعديل الاحتفاظ بالبيانات إلى الأبد في ظل اللائحة العامة لحماية البيانات GDPR؟

الاحتفاظ بالسجلات المحاسبية للمدة التي يفرضها القانون أمراٌ جائز. أما الاحتفاظ الكامل بالبيانات الشخصية أو أحمال الدفع إلى أجل غير مسمى لمجرد أن دفتر الأستاذ غير قابل للتعديل فهو أمر غير جائز. احتفظ بالحقائق النقدية والمراجع المستعارة في النواة غير القابلة للتعديل، واحتفظ بالتفاصيل الشخصية في نظام منفصل يتمتع بسياسات الاحتفاظ والحذف المناسبة. تنطبق خاصية عدم القابلية للتعديل على الحدث المالي، وليس على كل جزء من البيانات المرتبطة به.