مقدمه: جمع بانکها درست است؛ گردش نقد غلط است
مدیر مالی یک شرکت خدماتی، گزارش پایان ماه را باز میکند. فایلهای دو بانک، مجموعاً ۷۲۰ میلیون ریال واریزی و ۴۰۰ میلیون ریال برداشت نشان میدهند. داشبورد هوشمند بدون بررسی منشأ طرف مقابل، همه واریزیها را «دریافت عملیاتی» و همه برداشتها را «پرداخت عملیاتی» مینامد. خالص جریان گزارششده، ۳۲۰ میلیون ریال مثبت است؛ همان مقداری که افزایش کل موجودی بانکها نیز نشان میدهد.
آیا تطبیق خالص به معنی صحت گزارش است؟ خیر. از ۷۲۰ میلیون ریال واریزی، ۴۰۰ میلیون ریال فقط از حساب بانکی دیگر خود شرکت منتقل شده است. تنها ۳۲۰ میلیون ریالاز مشتری بیرونی دریافت شده؛ برداشت ۴۰۰ میلیونی نیز به تأمینکننده پرداخت نشده، بلکه به حساب دوم شرکت رفته است. در این مثال، اگر انتقال داخلی را مانند دریافت و پرداخت عملیاتی بشماریم، هر یک از دو رقم ناخالص دریافتها و پرداختها ۴۰۰ میلیون ریال بیشنمایی میشود، حتی اگر خالص نهایی اتفاقاً درست بماند.
این خطا از جنس مغایرت مانده نیست؛ از جنس اشتباه در ماهیت و طبقهبندی جریانها است. بانکها ممکن است کاملاً درست باشند، اما صورت جریانهای نقدی و داشبورد عملکرد نقد شرکت تصویر نادرستی ارائه دهند.
رویداد تازه فناوری: مغایرتگیری AI از حساب بانکی تا ERP
شرکت Atlar در ۲۹ اکتبر ۲۰۲۶ از گسترش مغایرتگیری بانکی مبتنی بر هوش مصنوعی خود برای NetSuite و Microsoft Dynamics 365 خبر داد. طبق توضیح رسمی شرکت، موتور تطبیق، ردیفهای صورتحساب بانک را با اسناد باز ERP مقایسه میکند و برای مواردی مانند کارمزد بانکی، سود و انتقالهای داخلی امکان استفاده از قواعد کدینگ حسابداری فراهم است. در عین حال، مطابق همان معرفی، تأیید انسانی پیش از ثبت در دفاتر نقش دارد و عاملهای جدیدِ پیشنهاددهنده تطبیق و قاعده در حال عرضه تدریجیاند.
این اطلاعیه توصیف قابلیتهای اعلامشده سازنده است، نه سند عملکرد مستقل یا اثبات اتصال مستقیم به بانکهای ایران. سناریوی خطای ۴۰۰ میلیونی این مقاله آموزشی است و هیچ نقص واقعی به Atlar نسبت نمیدهد. پیام کاربردی برای تولیدکننده نرمافزار مالی ایرانی روشن است: عامل هوشمند باید پیش از طبقهبندی جریان نقد، تشخیص دهد ردیف بانکی رویداد اقتصادی با طرف بیرونی است یا جابهجایی بین اجزای نقد خود همان شخصیت گزارشگر.

مثال عددی: مانده دو حساب بانک به چه عددی میرسد؟
تمام اشخاص، حسابها، مبلغها و تراکنشها فرضی و واحد ارقام میلیون ریال است. فرض میکنیم هر دو حساب ریالی و متعلق به همان شخصیت حقوقی هستند؛ حسابها، در چارچوب سیاست گزارشگری شرکت، جزء «نقد» محسوب میشوند و هیچ کارمزد، سود بانکی، محدودیت در دسترسبودن، تسعیر ارز یا تراکنش دیگری وجود ندارد.
شرکت ماه را با ۶۰۰ میلیون ریال در بانک الف و ۳۰۰ میلیون ریال در بانک ب آغاز میکند. طی ماه، مشتری بابت طلب معتبر ۳۲۰ میلیون ریال به حساب الف واریز میکند. خزانهدار نیز برای مدیریت نقدینگی، ۴۰۰ میلیون ریال از بانک الف به بانک ب انتقال میدهد.
| شرح گردش | بانک الف | بانک ب | جمع دو حساب |
|---|---|---|---|
| مانده ابتدای ماه | ۶۰۰ | ۳۰۰ | ۹۰۰ |
| وصول از مشتری بیرونی | ۳۲۰+ | صفر | ۳۲۰+ |
| انتقال داخلی از الف به ب | ۴۰۰− | ۴۰۰+ | صفر |
| مانده پایان ماه | ۵۲۰ | ۷۰۰ | ۱٬۲۲۰ |
آزمون مستقل روشن است:
بانک الف: ۶۰۰ + ۳۲۰ − ۴۰۰ = ۵۲۰
بانک ب: ۳۰۰ + ۴۰۰ = ۷۰۰
کل نقد: ۹۰۰ + ۳۲۰ = ۱٬۲۲۰
یعنی افزایش کل نقد ۳۲۰ میلیون ریال است. برداشت از بانک الف و واریز به بانک ب، در محدوده دو حساب نقد خود شرکت، جمع نقد واحد تجاری را تغییر نداده است.
دو گزارش ممکن است خالص برابر اما تفسیر کاملاً متفاوت داشته باشند
فرض کنیم گزارشساز بانک، تمام علامتهای مثبت را دریافت و تمام علامتهای منفی را پرداخت طبقهبندی کند:
| شاخص گزارش | خروجی اشتباه با جمع گردش بانکها | خروجی قابل دفاع در مفروضات مثال |
|---|---|---|
| دریافت از اشخاص بیرونی | ۷۲۰ | ۳۲۰ |
| پرداخت به اشخاص بیرونی | ۴۰۰ | صفر |
| خالص تغییر نقد | ۳۲۰ | ۳۲۰ |
| مانده نقد پایان ماه | ۱٬۲۲۰ | ۱٬۲۲۰ |
در خروجی غلط، ۴۰۰ میلیون ریال گردش داخلی یکبار به دریافتها و یکبار به پرداختها اضافه شده است. نتیجه این است که جمع دریافتهای گزارششده ۱۲۵ درصد بیش از دریافت واقعی بیرونی است: ۴۰۰ تقسیم بر ۳۲۰ برابر ۱۲۵ درصد. از سوی دیگر، به جای صفر، ۴۰۰ میلیون ریال پرداخت بیرونی نشان داده میشود.
این دو بیشنمایی ناخالص را نباید با هم جمع کرد و ۸۰۰ میلیون ریال زیان یا بدهی نامید؛ هر دو وجهِ نمایش اشتباه یک انتقال داخلی ۴۰۰ میلیونی هستند. همچنین ممکن است گزارش مدیریتی داخلی «کل گردش حسابها» عمداً انتقالها را نمایش دهد؛ اشکال زمانی رخ میدهد که همین شاخص، بدون توضیح، معادل جریان نقد حاصل از فعالیتهای عملیاتی یا «وصول از مشتریان» معرفی شود.

استاندارد حسابداری شماره ۲ ایران دقیقاً چه حکمی دارد؟
در استاندارد حسابداری شماره ۲ ایران «صورت جریانهای نقدی» (تجدیدنظرشده ۱۳۹۷)، بند ۸ تصریح میکند انتقال میان اقلامی که «نقد» یا «معادلهای نقد» را تشکیل میدهند، جزء جریانهای نقدی عملیاتی، سرمایهگذاری یا تأمین مالی نیست؛ زیرا جابهجایی در چارچوب مدیریت نقد واحد تجاری رخ میدهد. بندهای ۶ و ۷ نیز به تعریف نقد و معادلهای نقد مربوطاند. متن استاندارد، از جمله بند ۴۹، بر ارائه اجزای نقد و معادلهای نقد و تطبیق آنها با صورت وضعیت مالی تأکید دارد.
در چارچوب بینالمللی نیز بند ۹ IAS 7 همین تمایز را بیان میکند. شرط مهم: هر حرکت بین دو حساب یا دو ابزار مالی لزوماً انتقال میان اجزای نقد و معادل نقد نیست؛ باید ماهیت حساب، شخصیت حقوقی، مالکیت و شرایط طبقهبندی هر دو طرف بررسی شود.
برای مثال، انتقال وجه به سپرده بلندمدتی که معادل نقد نیست میتواند در چارچوب قابل اعمال ماهیت متفاوتی داشته باشد. پرداخت وجه به شرکت فرعی مستقل نیز در صورتهای مالی جداگانه همان واحد با جابهجایی بین دو حساب بانکی خود شرکت یکسان نیست. گزارش تلفیقی، بهنوبهخود، قواعد و حذفهای مرتبط را دارد. این مقاله فقط دو حساب نقد متعلق به یک واحد گزارشگر را بررسی میکند.
ثبت درست در دفتر کل چگونه است؟
در مفروضات مثال، دریافت ۳۲۰ میلیون ریالی مشتری، در صورتی که واقعاً وصول یک حساب دریافتنی موجود باشد، بهصورت ساده میتواند چنین ثبت شود:
بدهکار بانک الف ۳۲۰؛ بستانکار حسابهای دریافتنی مشتری ۳۲۰.
برای جابهجایی داخلی ۴۰۰ میلیون ریال:
بدهکار بانک ب ۴۰۰؛ بستانکار بانک الف ۴۰۰.
این ثبت درآمد یا هزینه جدیدی ایجاد نمیکند و با فرض اینکه هر دو حساب در تعریف نقد واحد تجاری قرار دارند، جریان نقد بیرونی نیز نمیسازد.
اگر در زمان انتقال، وجه موقتاً در حساب «وجوه در راه» قرار میگیرد، باید با شناسه انتقال و شواهد تسویه، مسیر بین حساب مبدأ و مقصد کنترل شود. انتخاب ثبت واسط و زمان اثر به طراحی سیستم و وضعیت واقعی انتقال بستگی دارد. نکته آن است که ورود وجه از بانک ب نباید دوباره حساب دریافتنی مشتری را تسویه کند و برداشت بانک الف نیز نباید هزینه تأمینکننده یا خرید کالا شناخته شود.
سه آزمون که پیش از برچسبزدن «انتقال داخلی» لازم است
آزمون اول ـ مالکیت هر دو حساب: آیا شناسه مالک و شخصیت حقوقی دو حساب یکی است؟ فقط شباهت نام تجاری یا اینکه هر دو شرکت در یک گروه قرار دارند کافی نیست. انتقال بین دو شخصیت حقوقی ممکن است پرداخت، دریافت، وام یا تسویه درونگروهی باشد؛ آثار آن در صورتهای مالی جداگانه و تلفیقی متفاوت است.
آزمون دوم ـ ماهیت نقد در دو طرف: آیا هر دو حساب یا ابزار، طبق تعریف استاندارد و سیاست مصوب شرکت، در اجزای نقد و معادل نقد جای میگیرند؟ اگر مبلغ به یک سرمایهگذاری غیرمعادلنقد انتقال یافته باشد، نباید آن را بیبررسی از صورت جریانهای نقدی حذف کرد.
آزمون سوم ـ پیوند دو طرف تراکنش: آیا مبلغ، ارز، تاریخ، شناسه پیگیری بانکی و وضعیت قطعی دو طرف با هم سازگار است؟ یک برداشت ۴۰۰ میلیونی و یک واریز ۴۰۰ میلیونی نزدیک به همان تاریخ، قرینه هستند، نه اثبات کافی. انتقال در انتظار، برگشتخورده یا دارای کارمزد نیز نیازمند رسیدگی مستقل است.
خطر ویژه در پایان ماه: برداشت امروز و واریز فردا
ممکن است بانک الف در آخرین روز ماه، ۴۰۰ میلیون ریال برداشت نشان دهد ولی بانک ب آن را در نخستین روز ماه بعد ثبت کند. در این حالت، تطبیق یکروزه ساده، طرف دوم را پیدا نمیکند. اگر عامل بهصورت خودکار برداشت را هزینه دوره طبقهبندی کند، نهتنها ماهیت نقد را اشتباه گرفته، بلکه ممکن است مانده وجوه در راه و برش زمانی نیز نادرست شود.
حسابدار باید رسید انتقال، زمان دستور، وضعیت تسویه، تأیید بانک مقصد و مبنای شناسایی وجه در گزارشگری را بررسی کند. در بعضی شرایط ثبت واسط معتبر لازم است؛ اما ثبت واسط نباید به روشی برای مخفیکردن اختلاف حلنشده تبدیل شود.
یک طراحی درست، وضعیت «مبدأ ثبت شده ـ مقصد در انتظار تأیید» را مجاز میداند و از صفرکردن خودکار اختلاف با سند ساختگی پرهیز میکند. فقط پس از تکمیل شواهد، پرونده انتقال بسته میشود.
اگر برای انتقال وجه کارمزد بپردازیم چه؟
فرض کنید بهجای سناریوی بدون کارمزد، بانک الف ۲ میلیون ریال کارمزد واقعی برداشت کند. انتقال اصل وجه ۴۰۰ میلیون ریال همچنان جابهجایی داخلی است، اما ۲ میلیون ریال کارمزد، پرداخت به ارائهدهنده خدمت بانکی محسوب میشود و باید مطابق ماهیت و مبنای گزارشگری طبقهبندی شود.
در این حالت، با ثابتبودن سایر ارقام، موجودی بانک الف پایان ماه ۵۱۸ میلیون ریال، بانک ب ۷۰۰ میلیون ریال و جمع نقد ۱٬۲۱۸ میلیون ریال میشود. افزایش خالص نقد از ابتدای ماه ۳۱۸ میلیون ریال است؛ نه ۳۲۰.
در سناریوی سادهای که کارمزد در جریانهای عملیاتی گزارش میشود، دریافت مشتری ۳۲۰ و پرداخت کارمزد ۲، خالص ۳۱۸ میلیون ریال ایجاد میکنند. بنابراین حذف اصل انتقال ۴۰۰ میلیونی نباید موجب حذف هزینه یا خروج نقد واقعی همراه آن شود. طبقهبندی کارمزد در شرکت واقعی تابع شرایط و استاندارد قابل اعمال است.
چرا یک عامل AI ممکن است دو طرف را اشتباه طبقهبندی کند؟
اگر بانک مقصد در شرح واریز فقط نوشته باشد «انتقال ساتنا» و نام بانک مبدأ در فیلد کوتاه دیگری آمده باشد، مدل ممکن است آن را دریافت مشتری فرض کند. از سوی دیگر، بانک مبدأ میتواند برداشت را با شناسهای ثبت کند که قالب آن با شناسه بانک مقصد متفاوت است. فقط تطبیق مبلغ و تاریخ بهتنهایی کافی نیست.
عامل هوشمند میتواند متن صورتحسابها را تحلیل کند، شناسه حسابهای متعلق به شرکت را از فهرست حسابهای بانکی تأییدشده بازیابی کند و پیشنهاد دهد این دو گردش یک انتقال داخلیاند. ولی فهرست مالکیت حساب، قواعد شناسایی نقد، تأیید بانک و تاریخ مؤثر باید از داده معتبر و موتور کنترل استخراج شوند؛ نه از حدس مدل زبانی.
مهمتر اینکه قاعده یادگرفتهشده از تصمیم قبلی حسابدار، قبل از فعالشدن باید روی نمونههای واقعی و نمونههای نقضآزمایش شود. اگر دو مشتری مستقل هر دو ۴۰۰ میلیون ریال به حسابهای مختلف واریز کرده باشند، مدل نباید صرف تساوی مبلغ، دو دریافت را انتقال داخلی اعلام کند.
هشت کنترل پیشنهادی برای نرمافزار مالی و خزانهداری هوشمند
۱. فهرست بانکی نسخهدار: برای هر حساب، نام بانک، شناسه حساب، مالک حقوقی، ارز، وضعیت فعالیت و طبقهبندی در صورتهای مالی ثبت و تأیید شود.
۲. شناسه مشترک انتقال: شناسه دستور، پیگیری بانکی، تاریخ مؤثر، مبلغ و ارز هر دو طرف نگهداری شود؛ اختلاف قالب شناسهها باید قابل بررسی باشد.
۳. تطبیق دوطرفه و حساب واسط: هیچ انتقال داخلی فقط با یک گردش بانکی «تکمیل» محسوب نشود؛ انتقالهای در راه جدا گزارش شوند.
۴. موتور قواعد گزارشگری: تشخیص اینکه هر دو سمت «نقد یا معادل نقد» هستند و آیا باید از طبقات صورت جریان نقدی کنار گذاشته شوند، با قاعده مستقل و قابل آزمون انجام شود.
۵. تفکیک گردش ناخالص بانک از جریان نقد بیرونی:داشبورد باید «کل واریز و برداشت حسابها» و «جریانهای نقدی عملیاتی، سرمایهگذاری و تأمین مالی» را با نام و تعریف جدا نشان دهد.
۶. تفکیک کارمزد، سود و اختلاف ارز: مبلغ اصلی انتقال، کارمزد واقعی بانک، آثار تسعیر و سایر رویدادها نباید در یک برچسب ترکیب شوند.
۷. کنترل چندشرکتی: انتقال بین دو حساب متعلق به دو شخصیت حقوقی مستقل، صرفاً بهدلیل مشترک بودن گروه تجاری حذف نشود؛ بررسی صورتهای مالی جداگانه و تلفیقی مستقل است.
۸. تأیید انسانی و ردپای حسابرسی: پیشنهاد AI، اسناد مبدأ، دلیل پذیرش یا رد، نتیجه بانک و اثر بر دفتر کل و صورت جریانهای نقدی ذخیره شود؛ عامل بدون اختیار مجاز سند قطعی صادر نکند.
کاربرد عملی برای حسابداران ایرانی و سامانههای مالی
در ایران بسیاری از واحدهای تجاری برای عملیات روزانه چند حساب بانکی دارند؛ دریافت از مشتری ممکن است در یک بانک باشد، پرداخت حقوق یا تأمینکنندگان از بانک دیگر انجام شود و خزانهداری برای تأمین مانده لازم بین حسابها وجه جابهجا کند. اگر سامانه مالی فقط فایل گردش هر بانک را بخواند، امکان بزرگنمایی دریافت و پرداخت در گزارش مدیریت و صورت جریانهای نقدی وجود دارد.
راهکار باید با استاندارد حسابداری شماره ۲ ایران (تجدیدنظرشده ۱۳۹۷) و تعریف مصوب اجزای نقد و معادل نقد در همان واحد تجاری سازگار باشد. این موضوع به نرخ مالیات، ارسال صورتحساب الکترونیکی یا مهلت سامانه مؤدیان مربوط نیست و نباید ادعای تغییر مقررات مالیاتی برای آن مطرح کرد.
همچنین معرفی اتصال Atlar به ERPهای خارجی، اثبات استفاده عملیاتی در بانکهای ایران نیست. برای محصول ایرانی باید API یا فایل بانکی واقعاً مجاز، امن و در دسترسانتخاب شود. کنترل مالکیت حساب، محرمانگی اطلاعات، ریال و تومان، تقویم شمسی و ثبت وضعیت انتقال از حداقلهای طراحی است.
فرصت محصولی برای «حسابداران برتر»
برای برند تولیدکننده نرمافزارهای مالی و ابزارهای هوشمند حسابداران برتر، میتوان یک ماژول پیشنهادی با نام «نگهبان گردشهای داخلی بانک و صورت جریان نقدی» طراحی کرد. این صرفاً پیشنهاد توسعه است و به معنی عرضه فعلی یا وجود اتصال آماده بانکی نیست.
سامانه، گردش بانکهای مجاز را کنار دفتر کل و فهرست حسابهای متعلق به شرکت قرار میدهد. AI زوجهای احتمالی انتقال را پیشنهاد میکند و برای حسابدار توضیح میدهد چرا یک برداشت و واریز به هم مربوطاند. موتور قواعد، پیامد حسابداری و طبقهبندی جریان نقد را بر اساس شخصیت حقوقی، تعریف نقد و وضعیت تسویه کنترل میکند. حسابدار نتیجه را بازبینی و تأیید میکند.
خروجی مطلوب علاوه بر «مغایرتگیری صفر»، باید دو گزارش جدا داشته باشد: گردش ناخالص تمام حسابهای بانکی و جریان نقد واقعی به تفکیک فعالیت و طرف بیرونی. در کنار آنها پرونده انتقالهای ناقص، اختلاف تاریخ و کارمزد مستقل نگهداری شود.
پایلوت چهار هفتهای برای سنجش دقت
هفته اول: دو یا سه حساب بانکی یک شخصیت حقوقی را در یک دوره بستهشده انتخاب کنید؛ مانده ابتدا و انتها، گردشها و اسناد انتقال را از منابع مجاز دریافت کنید. شناسه مالکیت حساب و طبقهبندی آن را با مسئول مالی تأیید کنید.
هفته دوم: فهرست پاسخ مرجع بسازید: وصول از مشتری، پرداخت به فروشنده، انتقال داخلی کامل، انتقال در راه، کارمزد، برگشت بانکی و انتقال به حساب شخصیت حقوقی دیگر. هر مورد باید شاهد و دلیل طبقهبندی داشته باشد.
هفته سوم: عامل فقط پیشنهاد تطبیق و شرح اختلاف بدهد. موتور محاسبات قطعی، اثر بر مانده حسابها و گزارش جریان نقد را بازسازی کند؛ اجرای ثبت واقعی تا زمان تأیید مسئول غیرفعال بماند.
هفته چهارم: ارزش انتقالهای داخلیِ درست شناساییشده، دریافتها و پرداختهای ناخالصِ اشتباه حذفشده، موارد طبقهبندی نادرست، هشدارهای کاذب، انتقالهای حلنشده و زمان رسیدگی را اندازه بگیرید. «مبلغ جابهجایی داخلی» را بهعنوان «صرفهجویی نقدی» یا «افزایش درآمد» اعلام نکنید.
جمعبندی: گزارش بانک با صورت جریان نقد یکسان نیست
در مثال آموزشی، دو بانک در مجموع ۷۲۰ میلیون ریال واریزی و ۴۰۰ میلیون ریال برداشت ثبت کرده بودند. اما ۴۰۰ میلیون ریال تنها بین دو حساب نقد متعلق به همان شرکت جابهجا شد و از بیرون واحد تجاری وارد یا به بیرون آن پرداخت نشد. با فرض اینکه هر دو حساب جزء نقد شرکتاند، دریافت واقعی بیرونی ۳۲۰ میلیون ریال و پرداخت بیرونی صفر بود.
مانده نهایی ۱٬۲۲۰ میلیون ریالی درست بود، ولی تلقی دو سمت انتقال داخلی بهعنوان جریان عملیاتی، هر یک از ارقام ناخالص دریافت و پرداخت را ۴۰۰ میلیون ریال بیشنمایی میکرد؛ درحالیکه خالص همچنان ۳۲۰ باقی میماند.
ارزش هوش مصنوعی در اینجا فقط تطبیق دو عدد برابر نیست؛ تشخیص مرز بین جابهجایی نقد داخل شرکت و جریان نقد ناشی از فعالیت اقتصادی با بیرون است. مدل پیشنهاد میدهد، موتور قواعد منشأ و ماهیت را کنترل میکند و حسابدار نتیجه و ارائه صورتهای مالی را تأیید میکند.
برای آشنایی با راهکارهای نرمافزاری مالی و هوش مصنوعی، به وبسایت حسابداران برتر مراجعه کنید:
مطالعه مرتبط در حسابداران برتر
برای بررسی مسئله مستقلِ تشخیص یک رویداد اقتصادی از چند پیام بانکی، مقاله سه درخواست پرداخت یک بدهی؛ جلوگیری از ثبت تکراری با AI را بخوانید.

