ملف Stripe يحمل الحقل transaction_id. ملف CSV من Xero يحمل الحقل Reference. كلاهما يمكن أن يشير إلى الدفعة نفسها، لكن Excel لن يعرف ذلك ما لم تبنِ المطابقة بنفسك.
من هنا تبدأ التسوية عادةً في الانهيار.
المحاسب المستقل نادراً ما يعمل بإعداد موحّد من Stripe إلى Xero لجميع عملائه. عميل يُصدّر معاملات رصيد Stripe. آخر يُرسل معاملات حساب Xero. ثالث يعطيك كشف حساب بنكي وتقرير دفعات Stripe وتصدير يومية يدوية من Xero بفترات زمنية مختلفة. الصعوبة ليست في تعقيد Stripe أو Xero. الصعوبة في أن هيكل الملفات يتغيّر من عميل إلى آخر.
الحل ليس في إجبار كل عميل على نفس جدول البيانات الرئيسي. الحل في بناء سير عمل قائم على الملفات يتحمّل عناوين أعمدة مختلفة، وحقول تواريخ مختلفة، وإشارات مبالغ مختلفة، وأعمدة مراجع مختلفة.
ما يعرضه الملفان فعلاً
Stripe وXero لا يُصدران الصورة نفسها للمعاملة.
Stripe يعرض عادةً نشاط المدفوعات. قد يحتوي الملف على تحصيلات واستردادات ورسوم ونزاعات وحركات رصيد ومعرّفات دفعات ومبالغ صافية، وذلك حسب نوع التصدير. Xero يعرض عادةً القيود المحاسبية. قد يحتوي ملف CSV من Xero على معاملات بنكية ومدفوعات فواتير وسطور يومية ورموز حسابات وأسماء جهات اتصال ومراجع وحالة تسوية.
يعني ذلك أن الملفين يصفان الحدث النقدي ذاته من زاويتين مختلفتين.
| حقل Stripe | حقل Xero الذي قد يحمل المطابقة | ما الذي يمكن أن يخطأ |
|---|---|---|
transaction_id | Reference | قد يخزّن Xero معرّف Stripe داخل حقل نصي أطول |
payout_id | Description أو مرجع كشف الحساب | قد لا يكون معرّف الدفعة مسجّلاً في Xero |
created | Date | قد يكون توقيت Stripe بـ UTC بينما يستخدم Xero تاريخ القيد المحلي |
available_on | Date أو التاريخ البنكي | قد يختلف تاريخ توفّر الدفعة عن تاريخ الترحيل المحاسبي |
gross | Amount | قد يسجّل Xero المبلغ الصافي المستلم بدلاً من الإجمالي |
fee | سطر مصروف الرسوم | قد تكون الرسوم غائبة أو مُرحَّلة ضمن دفعة شهرية |
net | المبلغ المستلم في البنك | الصافي قد يطابق البنك بينما الإجمالي لا يطابق المبيعات |
إن طابقت زوج الأعمدة الخاطئ، بدت السجلات الصحيحة مفقودة.
مثال: تحصيل في Stripe قد يحمل القيم الآتية:
| حقل Stripe | القيمة |
|---|---|
| transaction_id | ch_3P9K2L |
| created | 2026-05-30 23:42:11 UTC |
| gross | 400.00 |
| fee | -12.20 |
| net | 387.80 |
| payout_id | po_1AB982 |
وقد يُظهر تصدير Xero:
| حقل Xero | القيمة |
|---|---|
| Date | 2026-05-31 |
| Reference | ch_3P9K2L |
| Description | Stripe payment - Customer A |
| Amount | 400.00 |
| Account | Sales |
هذان السطران يتطابقان بمعرّف المعاملة والمبلغ الإجمالي، لكنهما لا يتطابقان بالتاريخ ولا بالمبلغ الصافي. إن طابقت بالتاريخ والمبلغ، تفشل هذه الدفعة. إن طابقت بالمرجع والمبلغ الإجمالي، تنجح.
هذا الاختيار هو التسوية.
حدّد نوع تصدير Stripe الذي تُسوّيه
لا تبدأ بفتح الملفين والبحث عن المجموع نفسه. حدّد أولاً ما يمثّله ملف Stripe.
تصدير المعاملات وتقرير تسوية الدفعات وتصدير معاملات الرصيد وتصدير الرسوم — كل منها يجيب على سؤال مختلف.
| نوع تصدير Stripe | الاستخدام الأمثل | ما يجب مطابقته معه |
|---|---|---|
| تصدير المدفوعات أو التحصيلات | إثبات نشاط المبيعات | مدفوعات الفواتير أو قيود المبيعات في Xero |
| تصدير معاملات الرصيد | شرح حركة الإجمالي والرسوم والصافي | المبيعات والرسوم والاستردادات والتسويات في Xero |
| تقرير تسوية الدفعات | إثبات ما وصل إلى البنك | ملف CSV للحساب البنكي أو كشف الحساب في Xero |
| تقرير الرسوم | التحقق من رسوم المعالجة | حساب مصروف رسوم المعالجة في Xero |
| تصدير الاستردادات أو النزاعات | اكتشاف التخفيضات الغائبة عن الدفاتر | قيود الاسترداد أو الإشعارات الدائنة أو التسويات في Xero |
هذه الخطوة تمنع أشيع خطأ في التسوية: مقارنة إجمالي تحصيلات Stripe بالمقبوضات البنكية في Xero.
الرقمان ليسا متساويين بطبيعتهما.
إجمالي تحصيلات Stripe يأتي قبل خصم الرسوم والاستردادات والنزاعات وتوقيت الدفعة. المقبوضات البنكية في Xero قد تعكس فقط النقد الفعلي الواصل. إن كان العميل يسجّل نشاط Stripe صافياً، فإن سطر البنك في Xero سيكون أقل من الإجمالي في Stripe. هذا لا يعني خطأً بالضرورة. يعني أنك بحاجة لشرح الجسر من الإجمالي إلى الصافي.
لسير عمل أعمق على مستوى الدفعات، طبّق المنطق نفسه الوارد في مطابقة ملف CSV لدفعة Stripe مع كشف الحساب البنكي: ابدأ من الإيداع البنكي، حدّد الدفعة، ثم فكّك المعاملات التي تتضمّنها.
أنشئ مفتاح المطابقة قبل تشغيل المعادلات
مفتاح المطابقة هو الحقل الذي يُثبت أن سطرين يمثّلان الحدث ذاته.
في Stripe وXero، أفضل مفتاح عادةً هو معرّف معاملة Stripe، إن كان Xero قد استوعبه. قد يظهر في Xero كـ Reference أو Invoice Number أو Description أو Payment Reference، أو في ملاحظة أُدخلت يدوياً.
إن لم يحتوِ Xero على معرّف معاملة Stripe، استخدم مفتاحاً مركّباً. المفتاح المركّب يجمع حقولاً ضعيفة بمفردها لكنها قوية معاً.
تشكيلات مفيدة:
| المفتاح المركّب | متى يصلح |
|---|---|
| المبلغ + العميل/جهة الاتصال + نافذة التاريخ | مطابقة مدفوعات عملاء فرديين |
| معرّف الدفعة + المبلغ الصافي | مطابقة إيداعات الدفعات |
| رقم الفاتورة + المبلغ الإجمالي | مطابقة مدفوعات Stripe بمقبوضات فواتير Xero |
| مرجع الطلب + المبلغ | مطابقة مدفوعات التجارة الإلكترونية المسجّلة في Xero |
| نافذة التاريخ + المبلغ + جزء من الوصف | مطابقة سطور التغذية البنكية الخالية من معرّف المعاملة |
نافذة التاريخ مهمة لأن تواريخ Stripe وXero كثيراً ما تختلف. دفعة مسجَّلة في وقت متأخر من الليل بتوقيت UTC قد تظهر في اليوم التالي في Xero. قد تضم دفعة واحدة مدفوعات من أيام متعددة. قد يُسجَّل الإيداع البنكي بعد أن يُعلن Stripe توفّر الدفعة.
لا تستخدم المطابقة الدقيقة بالتاريخ ما لم تتأكد أن كلا الملفين يعملان بالأساس الزمني ذاته.
لسير العمل هذا، أنشئ أربعة حقول مساعدة قبل أي مقارنة:
| الحقل المساعد | الغرض |
|---|---|
| المرجع الموحّد | يحذف المسافات وفوارق الأحرف والنص الزائد حول المعرّف |
| نافذة التاريخ | تُتيح هامش يوم إلى ثلاثة أيام حيث يختلف توقيت الدفعة أو المنطقة الزمنية |
| المبلغ بإشارته | يجعل إشارتَي المدين والدائن قابلتَيْن للمقارنة |
| أساس المبلغ | يصنّف المبلغ كإجمالي أو رسوم أو صافٍ أو استرداد أو تسوية |
للحقل المرجع الموحّد، المعادلة الأساسية هي:
=TRIM(SUBSTITUTE(UPPER(A2),CHAR(160)," "))العمود A هو حقل المرجع: معرّف معاملة Stripe أو معرّف الدفعة أو رقم الفاتورة. TRIM يُزيل المسافات العادية؛ CHAR(160) يغطّي مسافة عدم الانقطاع التي يُصدّرها Xero أحياناً. إن ظهر معرّف Stripe داخل وصف أطول مثل "Payment ch_3P9K2L for client"، استخرجه بـ MID قبل التوحيد. للحقل المبلغ بإشارته، استخدم ABS(VALUE(B2)) حيث العمود B هو المبلغ: VALUE يحوّل المبالغ النصية إلى أرقام، وABS يُزيل فارق الإشارة.
هنا حيث يفشل VLOOKUP مع TRIM كثيراً. TRIM يعالج المسافات. لكنه لا يحل المشكلة الأعمق: الملفان قد لا يخزّنان الحدث التجاري ذاته في العمود نفسه، ولا بالتاريخ نفسه، ولا بالأساس نفسه للمبلغ.
افصل الإجمالي والرسوم والاستردادات والصافي قبل مقارنة المجاميع
تسوية Stripe مع Xero لا تبدأ بمجموع واحد ومعادلة واحدة. تحتاج إلى جسر.
استخدم هذا الهيكل:
| طبقة التسوية | المصدر في Stripe | المصدر في Xero | النتيجة المتوقعة |
|---|---|---|---|
| المبيعات الإجمالية | التحصيلات أو المدفوعات | المبيعات أو مقبوضات الفواتير | يجب أن تتطابق بعد فوارق التواريخ |
| الرسوم | عمود الرسوم أو تصدير الرسوم من Stripe | حساب مصروف رسوم المعالجة | يجب أن تتطابق أو تُدرج كغائبة |
| الاستردادات | سطور الاسترداد | الاستردادات أو الإشعارات الدائنة أو التسويات | يجب أن تتطابق بالمرجع أو المبلغ |
| النزاعات | سطور النزاعات | قيود رد المبالغ القسري أو التسويات | يجب تسجيلها بشكل منفصل |
| الدفعة الصافية | تقرير الدفعات | الحساب البنكي في Xero أو ملف CSV بنكي | يجب أن تطابق النقد المودَع |
هذا الهيكل يمنع انهيار التسوية في فرق واحد بلا تفسير.
افترض أن Stripe يُظهر:
| فئة Stripe | المبلغ |
|---|---|
| إجمالي التحصيلات | 8,000.00 |
| الرسوم | -248.00 |
| الاستردادات | -300.00 |
| الدفعة الصافية | 7,452.00 |
وXero يُظهر:
| فئة Xero | المبلغ |
|---|---|
| مقبوضات المبيعات | 8,000.00 |
| رسوم Stripe المسجّلة | -248.00 |
| الاستردادات المسجّلة | 0.00 |
| المقبوض البنكي | 7,452.00 |
المقبوض البنكي صحيح. المبيعات صحيحة. الرسوم صحيحة. العنصر المفقود هو قيد الاسترداد.
إن بدأت من "Stripe لا يطابق Xero"، ليس لديك جواب. إن فصلت الطبقات، الجواب دقيق: استرداد موجود في Stripe لم يُسجَّل في Xero.
هذا هو المخرج الذي يستطيع العميل التصرف بناءً عليه.
عالج ملف CSV من Xero قبل أن يُفسد المطابقة
تصدير Xero يتغيّر بحسب التقرير ونطاق التاريخ والحساب والأعمدة المختارة. هذا يُشكّل مشكلة: معادلة بُنيت لتصدير معيّن قد تشير بصمت إلى العمود الخاطئ في التصدير التالي.
قبل المطابقة، تحقّق من هذه النقاط:
| التحقق | لماذا يهم |
|---|---|
| عناوين الأعمدة | Reference وDescription وInvoice Number يمكن أن تحمل قيم مطابقة مختلفة |
| تنسيق التاريخ | Xero قد يُصدر تواريخ محلية بينما Stripe يستخدم حقول UTC مع طابع زمني |
| إشارات المبالغ | المقبوضات والمدفوعات قد تُصدَّر موجبة أو سالبة حسب التقرير |
| مرشّح الحساب | تصدير الحساب البنكي لن يحتوي على جميع قيود الرسوم أو الاستردادات |
| حالة التسوية | سطور Xero غير المسوَّاة قد تكون مدفوعات صحيحة لا تزال تنتظر المطابقة البنكية |
| التعديلات اليدوية | المراجع التي أضافها العميل قد تكون غير متسقة من شهر إلى آخر |
إن كان ملف Xero تصدير حساب بنكي، طابقه مع دفعات Stripe أو النشاط الصافي الموجَّه للبنك. إن كان تصدير مدفوعات فواتير، طابقه مع التحصيلات أو سجلات الدفع في Stripe. إن كان تصدير دفتر الأستاذ العام، افصل رموز الحسابات أولاً حتى لا تقع المبيعات والرسوم والاستردادات والمقبوضات البنكية في نفس المقارنة.
نوع الملف هو الذي يحدد منطق المطابقة.
لهذا يمكن لعملية نجحت مع عميل الشهر الماضي أن تفشل هذا الشهر. التصدير لا يزال من Xero، لكنه ليس التقرير ذاته. إن تغيّرت العناوين أو الحسابات المضمَّنة، فالمعادلة القديمة لم تعد موثوقة.
لمزيد من التفاصيل حول هذه المشكلة في التصدير، اقرأ كيف تختلف تصديرات كشف الحساب البنكي من Xero عن ملفات CSV البنكية الخام.
استخدم سير عمل قابلاً للتكرار مع كل عميل
للمحاسب المستقل، السؤال العملي ليس "هل أستطيع تسوية هذا الملف من Stripe مع هذا CSV من Xero؟"
السؤال العملي هو هل تصمد هذه العملية مع العميل التالي.
اتّبع التسلسل ذاته في كل مرة، حتى حين تتغيّر الأعمدة:
- حدّد نوع تصدير Stripe.
- حدّد نوع تصدير Xero.
- حدّد أساس المبلغ: إجمالي أو رسوم أو استرداد أو نزاع أو صافٍ.
- اختر أقوى مفتاح مطابقة متاح.
- وحّد المراجع وإشارات المبالغ.
- أتِح نافذة تاريخ حيث يختلف توقيت الدفعة أو المنطقة الزمنية.
- طابق المراجع الدقيقة أولاً.
- طابق المفاتيح المركّبة ثانياً.
- افصل فوارق التواريخ المتوقعة عن السجلات الفعلاً الغائبة.
- أنتج قائمة استثناءات تُبيّن سبب فشل كل سطر.
قائمة الاستثناءات هي الجزء الأهم.
يجب ألا تقول:
| المخرج السيئ | لماذا يفشل |
|---|---|
| غير مسوَّى | لا يعطي أي سبب |
| فرق | لا يوضّح إن كان المبلغ أو التاريخ أو المرجع هو المشكلة |
| راجع يدوياً | يُعيد العمل إلى المحاسب |
يجب أن تقول:
| المخرج الأفضل | ماذا يخبرك |
|---|---|
| استرداد Stripe غائب من Xero | سجّل الاسترداد أو حقّق منه |
| مقبوض Xero بلا معرّف معاملة Stripe | تحقّق هل سُدّد خارج Stripe |
| نفس المرجع، مبلغ مختلف | راجع معالجة الرسوم أو الدفع الجزئي |
| نفس المبلغ، تاريخ خارج النافذة | تحقّق من توقيت الدفعة أو تاريخ القيد |
| دفعة Stripe تطابق البنك لكن الرسوم غائبة | سجّل رسوم المعالجة بشكل منفصل |
هذا هو الفرق بين جدول بيانات يُلوّن الخلايا وتقرير تسوية يُغلق السؤال.
ما يجب أن يُظهره تقرير التسوية الصحيح
التقرير النهائي يجب أن يُثبت ثلاثة أشياء.
أولاً، النقد مُفسَّر. دفعة Stripe أو النشاط الصافي يجب أن يتطابق مع الحساب البنكي في Xero أو القيد الموجَّه للبنك.
ثانياً، الإيرادات مُفسَّرة. إجمالي تحصيلات Stripe يجب أن يتطابق مع المبيعات أو مقبوضات الفواتير في Xero بعد فوارق التواريخ.
ثالثاً، الفوارق مُصنَّفة. الرسوم والاستردادات والنزاعات وفوارق التواريخ والقيود الغائبة من Xero والمراجع الغائبة من Stripe يجب ألا تقع في سلة واحدة غير مشروحة.
تقرير مفيد يبدو هكذا:
| القسم | ما يحتويه |
|---|---|
| الملخّص | إجمالي Stripe وإجمالي Xero والفرق المُفسَّر والفرق غير المُفسَّر |
| السطور المسوَّاة | السجلات المتطابقة بالمرجع والمبلغ ونافذة التاريخ المقبولة |
| فوارق التواريخ | نفس المعاملة، فارق توقيت مقبول |
| فوارق المبالغ | نفس المعاملة، المبلغ لا يتطابق |
| غائب من Xero | سجلات Stripe غير موجودة في ملف CSV من Xero |
| غائب من Stripe | سجلات Xero غير موجودة في تصدير Stripe |
| جسر الرسوم والاستردادات والنزاعات | التخفيضات المتوقعة من الإجمالي إلى الصافي |
| قائمة الإجراءات للعميل | قيود تحتاج تسجيلاً أو تصحيحاً أو تأكيداً |
إن لم يستطع التقرير توضيح سبب الفرق، فالتسوية لم تكتمل. العميل لا يحتاج جدول بيانات مُلوَّناً. يحتاج أن يعرف هل الدفاتر خاطئة، أو توقيت Stripe مختلف، أو سجل ما غائب.
أين يفشل الإجراء عادةً
معظم تسويات Stripe مع Xero تفشل في أحد خمسة مواضع.
مقارنة الإجمالي الخاطئ من Stripe بالإجمالي الخاطئ من Xero. تُقارَن التحصيلات الإجمالية بالمقبوضات البنكية، أو تُقارَن الدفعات بالمبيعات. الأرقام تختلف لأنها تمثّل مراحل مختلفة من تدفق الدفع.
مفتاح المطابقة مُخبَّأ داخل حقل الوصف. قد يتضمّن Xero معرّف Stripe، لكن ليس في عمود مرجعي نظيف. إن قرأت المعادلة Reference فقط، ستفشل تطابقات صحيحة.
التواريخ تُعامَل كقيم دقيقة رغم أنها حقول توقيت. وقت معاملة Stripe وتاريخ توفّرها وتاريخ الدفعة والتاريخ البنكي وتاريخ القيد في Xero ليست قيماً متبادلة.
الرسوم مُسجَّلة صافيةً بدلاً من تسجيلها بشكل منفصل. المبلغ البنكي قد يتطابق بينما حسابا المبيعات والرسوم يبقيان خاطئين.
العملية مبنية على هيكل ملف عميل واحد. نسخ معادلة الشهر الماضي إلى مصنّف عميل جديد يفترض عناوين ومراجع وإشارات متطابقة. هذا الافتراض يخطئ كثيراً.
الحل ليس معادلة بحث أفضل. الحل سير عمل يُسمّي نوع الملف ويُسمّي أساس المبلغ وينتج قائمة استثناءات مُصنَّفة.
الطريقة الصحيحة لتسوية بيانات Stripe مع تصديرات CSV من Xero هي التوقف عن معاملة الملفين كنسختين من الجدول نفسه. ليسا كذلك. Stripe يعرض حركة المدفوعات. Xero يعرض القيود المحاسبية. التسوية تنجح حين تحدّد الجسر بينهما، وتُطابق بالمفتاح الصحيح، وتُفسّر كل فرق في تقرير يستطيع العميل العمل به.
