معاملات SEPA R: مرجع تقني
الرفض، الإرجاع، الاسترداد، العكس. أربعة أحداث دورة حياة مختلفة، لكل منها تأثير مختلف على دفتر الحسابات، وجداول PSD2 الزمنية، ورموز أسباب ISO.
فهم معاملات SEPA R: دليل تقني لمهندسي المدفوعات
"تم إرجاع الدفعة." في SEPA، يمكن أن تعني هذه الجملة أربعة أشياء مختلفة. لكل منها مُشغِّل مختلف، وجدول زمني PSD2 مختلف، ودورة حياة تسوية مختلفة، ومعاملة مختلفة في دفتر الحسابات. معظم التطبيقات تعاملها كحدث "عكس" واحد مع رمز سبب مرفق. هذا يؤدي إلى إدارة غير صحيحة لفترات الاحتفاظ، وتفويت مواعيد PSD2 النهائية، وتناقضات مطابقة تظهر بعد أسابيع.
معاملات SEPA R ليست مفهومًا واحدًا. إنها أربعة.
أربعة أنواع، وليس واحدًا
| النوع | المُشغِّل | متى | الأساس القانوني | التأثير على دفتر الحسابات |
|---|---|---|---|---|
| الرفض | البنك يرفض قبل التسوية بين البنوك | D+1 (قبل التسوية) | كتاب قواعد EPC | لا شيء، لم تتحرك أموال. عمليات بنكية فقط. |
| الإرجاع | البنك يرجع بعد التسوية، ضمن فترة الاحتفاظ | D+5 (Core)، D+2 (B2B) | PSD2 المادة 71 | عكس المبلغ المُسوَّى. تعليم كمُرجَع. |
| الاسترداد | الدافع يعترض بعد انتهاء فترة الاحتفاظ | حتى 8 أسابيع (Core)، لا حق (B2B) | PSD2 المادة 76 | خصم جديد ضد الدائن. ليس عكسًا، بل مطالبة جديدة. |
| العكس | المنشئ يطلب الإلغاء بعد التسوية | لا موعد نهائي ثابت | camt.056 | قيد تصحيح (Stornobuchung وفقًا لـ HGB §239). |
التمييز ليس أكاديميًا. يحدد ما يجب أن يفعله النظام بالأموال، ومتى يجب أن يفعله، وكيف يبدو قيد دفتر الحسابات.
الرفض صامت من منظور الدائن. الدفعة لم تُسوَّ أبدًا. بنك المدين رفضها قبل التسوية (IBAN خاطئ، حساب مغلق، حساب محظور). نظام الدائن قد لا يحتاج حتى للمعرفة، إلا إذا كان يتتبع الدفعة الواردة المتوقعة.
الإرجاع هو عكس ضمن فترة الاحتفاظ. الأموال تمت تسويتها (أُضيفت لحساب الدائن في نظام المقاصة)، لكن خلال فترة الاحتفاظ يرسل بنك المدين إرجاعًا. يجب على دفتر حسابات الدائن عكس الإضافة. تنتقل الأموال من SETTLED_PENDING عائدة إلى المدين.
الاسترداد يحدث بعد انتهاء فترة الاحتفاظ وتصبح الأموال SETTLED_AVAILABLE. الدائن لديه الأموال. المدين يعترض، خلال 8 أسابيع للخصم المباشر SEPA Core (PSD2 المادة 76)، بدون حق اعتراض لـ B2B. الاسترداد ليس عكسًا للقيد الأصلي. إنه خصم جديد منفصل ضد الدائن. القيد الأصلي يبقى في دفتر الحسابات، دون تغيير وغير قابل للتعديل.
العكس يُبدأ بواسطة المنشئ (وليس بنك المدين) عبر طلب إلغاء camt.056. يحدث هذا عادة عندما يكتشف المنشئ تكرارًا أو خطأ بعد التسوية. في المحاسبة الألمانية، هذا Stornobuchung، قيد تصحيح يشير إلى الأصل عبر مفتاح خارجي correction_of. القيد الأصلي يبقى. قيد التصحيح يحمل نفس المبلغ بإشارة معاكسة.
فترات الاحتفاظ ودورة حياة التسوية
بين التسوية والتوفر، تمر الأموال بفترة احتفاظ. المدة تعتمد على المخطط:
| المخطط | فترة الاحتفاظ | التقويم |
|---|---|---|
| الخصم المباشر SEPA Core | 5 أيام عمل TARGET2 | تقويم TARGET2 للبنك المركزي الأوروبي |
| الخصم المباشر SEPA B2B | يومان عمل TARGET2 | تقويم TARGET2 للبنك المركزي الأوروبي |
"أيام العمل" ليست "أيام تقويمية." لدى TARGET2 تقويم عطلات خاص: عطلات نهاية الأسبوع، رأس السنة، الجمعة العظيمة، اثنين الفصح، 1 مايو، عيد الميلاد، 26 ديسمبر. العطلات الوطنية الألمانية التي ليست عطلات TARGET2 لا تُحسب. العطلات الوطنية الإسبانية التي ليست عطلات TARGET2 لا تُحسب. حساب أيام العمل يجب أن يستخدم تقويم TARGET2، وليس تقويمًا وطنيًا.
خلال فترة الاحتفاظ، الأموال في حالة SETTLED_PENDING. رصيد الدائن يُظهر الإضافة، لكن الأموال غير متاحة للسحب أو التحويل الإضافي. بعد انتهاء فترة الاحتفاظ، تنتقل الأموال إلى SETTLED_AVAILABLE. الإرجاع لم يعد ممكنًا (لكن الاسترداد لا يزال ممكنًا، للخصم المباشر Core).
خصم مباشر SEPA وارد أُضيف لحساب الدائن.
الأموال مرئية لكن غير متاحة للسحب. الإرجاع ممكن خلال هذه النافذة.
الإضافة عُكست. الأموال تنتقل عائدة إلى المدين. التسوية أُبطلت.
الأموال أُفرجت ومتاحة. الإرجاع لم يعد ممكنًا.
خصم جديد ضد الدائن. ليس عكسًا، بل مطالبة منفصلة. القيد الأصلي دون تغيير.
التسوية اكتملت. لا معاملات R إضافية ممكنة.
رموز أسباب ISO تقود المنطق
يحمل pacs.004 (إرجاع الدفع) حقل ReasonCode من تعداد ExternalStatusReason1Code. هذا ليس نصًا حرًا. إنه مجموعة مغلقة يحددها ISO 20022 ويقيدها كتب قواعد EPC.
رمز السبب يحدد نوع معاملة R. النوع يحدد إجراء التسوية. الإجراء يحدد الجدول الزمني لـ PSD2. السلسلة حتمية.
| رمز السبب | المعنى | منطق التصنيف |
|---|---|---|
| AC01 | رقم حساب غير صحيح | قبل التسوية → رفض؛ بعد التسوية → إرجاع |
| AC04 | رقم حساب مغلق | إرجاع |
| AC06 | حساب محظور | إرجاع |
| AM05 | دفع مكرر | إرجاع |
| MD01 | لا تفويض (المدين ينكر) | إرجاع |
| MS02 | رفض المدين (بدون سبب) | ضمن فترة الاحتفاظ → إرجاع؛ بعدها → استرداد |
| MS03 | سبب غير محدد | إرجاع |
| SL01 | خدمة محددة يقدمها وكيل المدين | إرجاع |
| DUPL | إرسال مكرر | استرداد (بمبادرة المنشئ) |
| CUST | بطلب من المنشئ | عكس (عبر camt.056) |
| AGNT | وكيل غير صحيح | رفض (قبل التسوية) |
| FOCR | بعد طلب إلغاء | عكس (استجابة لـ camt.056) |
دالة التصنيف:
classify(reason_code, within_holding_period) → R-transaction type
if pre_settlement(reason_code): → REJECT
if within_holding_period: → RETURN
if originator_initiated(reason_code): → REVERSAL
else: → REFUND
عندما يُنفَّذ هذا التصنيف مباشرة على رمز سبب ISO، دون جدول تعيين وسيط، تكون المعالجة حتمية. رمز سبب جديد في إصدار مستقبلي من كتاب قواعد EPC يتطلب إضافة متغير enum واحد. المترجم يحدد كل معالج لا يغطيه. لا جدول تعيين للتحديث. لا نشر للمزامنة.
بنية التنفيذ
ثلاث مسؤوليات، ثلاث خدمات. كل منها تملك اهتمامًا واحدًا.
خدمة التصنيف: تستقبل pacs.004 الوارد، تستخرج رمز السبب، تصنف إلى رفض/إرجاع/استرداد/عكس بناءً على الرمز وحالة فترة الاحتفاظ للتحويل الأصلي.
خدمة التسوية: بناءً على النوع المصنف، تنفذ عملية دفتر الحسابات الصحيحة:
- رفض: لا إجراء على دفتر الحسابات (التحويل الأصلي لم يُسوَّ أبدًا).
- إرجاع: إبطال التسوية المعلقة. الانتقال من
SETTLED_PENDINGإلىRETURNED. - استرداد: إنشاء تحويل خصم جديد ضد الدائن. القيد الأصلي لا يُمس.
- عكس: إنشاء قيد تصحيح (Stornobuchung) بمرجع
correction_ofللتحويل الأصلي.
خدمة التدقيق: تسجل كل معاملة R مع: النوع، رمز السبب، مرجع التحويل الأصلي (يُحل عبر transfer_id → EndToEndId → external_id، سلسلة احتياطية)، الموعد النهائي لـ PSD2، ومعرف حدث DORA.
التحويل الأصلي يُحل عبر ثلاثة مسارات بحث:
- transfer_id مباشر (إذا حملته معاملة R)
- مطابقة EndToEndId (المرجع من طرف إلى طرف ISO)
- مطابقة External_id (مرجع البنك)
سلسلة الاحتياط تتعامل مع واقع العالم الحقيقي أن ليس كل رسائل pacs.004 تحمل جميع حقول المرجع. بعض البنوك تملأ EndToEndId. بعضها يستخدم مرجعه الخارجي. يجب على النظام التعامل مع الثلاثة.
Stornobuchung (قيد التصحيح)
يتطلب القانون التجاري الألماني (HGB §239) أن تُسجَّل تصحيحات قيود دفتر الحسابات كقيود جديدة. أبدًا كتعديلات على الأصل. أبدًا كحذف.
العكس ليس DELETE FROM transfers WHERE id = original_id. إنه:
INSERT INTO transfers (
debit_account_id, -- حساب الدائن الأصلي (الاتجاه معكوس)
credit_account_id, -- حساب المدين الأصلي (الاتجاه معكوس)
amount, -- نفس مبلغ الأصل
correction_of, -- FK → التحويل الأصلي
code, -- رمز العكس
...
)
القيد الأصلي يبقى في دفتر الحسابات. غير قابل للتغيير. قيد التصحيح يشير إليه. المدقق يرى كليهما: الترحيل الأصلي وتصحيحه، مرتبطان بمفتاح خارجي. رصيد دفتر الحسابات يعكس الأثر الصافي. مسار التدقيق يُظهر التاريخ الكامل.
هذه ليست خصوصية ألمانية. إنها ممارسة محاسبية سليمة يتبناها أي نظام يأخذ عدم القابلية للتغيير بجدية. إذا سمح دفتر الحسابات بتعديل القيود التاريخية، يكون مسار التدقيق غير موثوق. إذا كانت التصحيحات قيودًا جديدة تشير إلى الأصل، يكون المسار كاملًا ومقاومًا للتلاعب.
ما يخطئ في الممارسة
ثلاثة أخطاء تنفيذ شائعة:
1. معاملة جميع معاملات R كعكس. الاسترداد ليس عكسًا. العكس يعكس القيد الأصلي (ترحيل تصحيح). الاسترداد مطالبة جديدة تنشئ خصمًا جديدًا. الخلط بينهما يؤدي إلى قيود دفتر حسابات غير صحيحة وحسابات أرصدة غير صحيحة.
2. استخدام أيام تقويمية لفترات الاحتفاظ. فترات احتفاظ SEPA تُحسب بأيام عمل TARGET2. دفعة سُوِّيت يوم الأربعاء قبل عطلة TARGET2 يوم الخميس: فترة الاحتفاظ لا تحسب الخميس. استخدام أيام تقويمية يعني إفراج الأموال مبكرًا جدًا (مخاطر تنظيمية) أو متأخرًا جدًا (تكلفة سيولة).
3. تجاهل التمييز بين B2B و Core. الخصم المباشر SEPA B2B له فترة احتفاظ يومين ولا حق استرداد (المدين ليس له مطالبة بالمادة 76). SEPA Core له فترة احتفاظ 5 أيام ونافذة استرداد 8 أسابيع. إذا طبق النظام قواعد Core على معاملات B2B، يحتفظ بالأموال أكثر من اللازم. إذا طبق قواعد B2B على معاملات Core، يحتفظ أقل من اللازم، ويتعرض لإرجاعات لا يمكنه تغطيتها.
اقرأ المزيد: المدفوعات، تنسيق المدفوعات | الاتصال، القنوات المالية
المصادر:
- المجلس الأوروبي للمدفوعات: EPC016-06 (كتاب قواعد الخصم المباشر SEPA Core، الإصدار 2024.1)
- المجلس الأوروبي للمدفوعات: EPC222-07 (كتاب قواعد الخصم المباشر SEPA B2B)
- PSD2، التوجيه 2015/2366، المادة 71 (المعاملات غير المصرح بها)، المادة 76 (حقوق الاسترداد للخصم المباشر)
- HGB §239، القانون التجاري الألماني، متطلبات تصحيح القيود المحاسبية
- تقويم TARGET2 للبنك المركزي الأوروبي (https://www.ecb.europa.eu/paym/target/target2/profuse/calendar/html/index.en.html)
- ISO 20022 ExternalStatusReason1Code، تعداد رموز أسباب pacs.004.001.11