راهنمای جامع سامانه مودیان و صورتحساب الکترونیکی

تغییرات سامانه مودیان از نسخه 6.2 تا 7.9

مرور مستند و نسخه‌به‌نسخه دستورالعمل صدور صورتحساب الکترونیکی؛ از تغییر دقت فیلدهای عددی و قواعد اعتبارسنجی تا اضافه شدن الگوهای جدید، فیلدهای حمل‌ونقل، بیمه، فروش زنجیره‌ای و الزامات جدید نسخه 7.9.

مقدمه؛ چرا بررسی نسخه‌های سامانه مودیان مهم است؟

دستورالعمل صدور صورتحساب الکترونیکی یک سند ثابت نیست. سازمان امور مالیاتی در نسخه‌های مختلف، وضعیت اجباری یا اختیاری اقلام اطلاعاتی، فرمول‌ها، تعداد ارقام صحیح و اعشار، قواعد اعتبارسنجی، الگوهای صورتحساب و حتی نام و مفهوم بعضی فیلدها را تغییر داده است. به همین دلیل، نرم‌افزاری که تنها بر اساس یک نسخه قدیمی پیاده‌سازی شده باشد ممکن است صورتحساب ظاهراً صحیح تولید کند اما در کنترل‌های سامانه مودیان با خطا مواجه شود.

در این مقاله تغییرات نسخه‌های موجود از 6.2 تا 7.9 بر اساس متن خود دستورالعمل‌ها مرور شده است. تمرکز مقاله فقط روی «فهرست تغییرات» نیست؛ بلکه توضیح می‌دهد هر تغییر از دید نرم‌افزار حسابداری، مدل داده، اعتبارسنجی و JSON ارسالی چه اهمیتی دارد.

نکته: در مجموعه اسناد این صفحه، فایل نسخه 7.1 وجود ندارد. نسخه 7.2 در سند رسمی خود تغییراتش را نسبت به 7.1 اعلام می‌کند؛ بنابراین درباره جزئیات مستقل نسخه 7.1 در این مقاله چیزی حدس زده نشده است.

خلاصه مهم‌ترین نقاط تغییر از 6.2 تا 7.9

1. افزایش دقت و سخت‌گیری محاسباتی

در نسخه‌های ابتدایی این بازه، بخش مهمی از تغییرات روی تعداد ارقام صحیح و اعشار، مبلغ واحد، تعداد/مقدار، وزن، ارزش ریالی و ارزی، مالیات بر ارزش افزوده و فرمول‌های محاسباتی متمرکز بود. این تغییرات مستقیماً روی نوع ستون‌های پایگاه داده، گرد کردن اعداد و کنترل جمع سطرها اثر می‌گذارد.

2. توسعه الگوهای تخصصی صورتحساب

با پیشرفت نسخه‌ها، قواعد تخصصی برای الگوهایی مانند بلیط هواپیما، فروش ارز، طلا و جواهر، حمل‌ونقل، بیمه، فروش بورس، فرآورده‌های نفتی و در نسخه 7.7 فروش زنجیره‌ای توسعه پیدا کرد.

3. گسترش شدید اقلام اطلاعاتی در نسخه 7.3

نسخه 7.3 یکی از گسترده‌ترین بروزرسانی‌های این مجموعه است. علاوه بر اصلاح تعداد زیادی از قواعد موجود، فیلدهای حمل‌ونقل، بارنامه، مبدأ و مقصد، فرستنده و گیرنده، ناوگان، راننده، کالاهای حمل‌شده و اعلامیه فروش به ساختار دستورالعمل افزوده شدند.

4. تغییرات ساختاری مهم در نسخه 7.9

نسخه 7.9 علاوه بر سه فیلد جدید insr، nti1 و nti2، عنوان «تاریخ و زمان ایجاد صورتحساب» را به «تاریخ و زمان ثبت صورتحساب» تغییر می‌دهد و عنوان «شماره قرارداد حق‌العملکاری» نیز به «شماره قرارداد معامله از طریق شخص ثالث» تغییر می‌کند. همچنین قواعد مرتبط با صورتحساب موضوع ماده 9 و صورتحساب‌های مرجع بازنگری شده‌اند.

بررسی نسخه‌به‌نسخه دستورالعمل صدور صورتحساب الکترونیکی

نسخه 6.2 — دی 1401
دانلود دستورالعمل نسخه 6.2
مهم‌ترین تغییرات نسبت به 6.1
  • کاهش تعداد رقم صحیح فیلدهای دارای ارزش ریالی از 19 به 18 رقم.
  • افزایش تعداد رقم اعشار مبلغ واحد از 2 به 8 رقم.
  • تغییر تعداد رقم اعشار فیلد تعداد/مقدار از 6 به 8 رقم.
  • اصلاح تعاریف مربوط به موضوع صورتحساب.
  • افزودن یا اصلاح قواعد تاریخ و زمان صدور، الگوی صورتحساب و روش پرداخت.
  • اصلاح فرمول ارزش ریالی کالا، ارزش ارزی کالا و مبلغ مالیات بر ارزش افزوده.
  • حذف برخی قواعد قبلی در فیلدهای مبلغ قبل از تخفیف، مبلغ تخفیف، مبلغ بعد از تخفیف و مبلغ واحد.
  • تغییر نوع فیلد نوع ارز از رشته عددی به رشته.
اثر روی نرم‌افزار حسابداری

مهم‌ترین اقدام در مهاجرت به این نسخه، بازبینی نوع داده و precision فیلدهای مالی و مقداری است. اگر محاسبات سمت نرم‌افزار با دقت کمتر انجام شوند، جمع کل و مالیات می‌تواند با نتیجه مورد انتظار سامانه مودیان متفاوت شود. اعتبارسنجی نوع ارز و فرمول‌های محاسباتی نیز باید همزمان بروزرسانی شوند.

نسخه 6.3 — فروردین 1402
دانلود دستورالعمل نسخه 6.3
مهم‌ترین تغییرات نسبت به 6.2
  • اصلاح جدول الگوهای صورتحساب الکترونیکی.
  • افزایش اعشار وزن خالص و مجموع وزن خالص از 3 به 8 رقم.
  • اصلاح قواعد شماره و تاریخ کوتاژ اظهارنامه گمرکی.
  • افزودن قواعد اختصاصی برای مجموع وزن خالص و وزن خالص.
  • افزودن قاعده برای مبلغ واحد.
  • اصلاح قواعد ارزش ریالی و ارزش ارزی کالا.
  • افزودن قواعد سهم نقدی از پرداخت و سهم ارزش افزوده از پرداخت.
  • اصلاح فرمول محاسباتی مبلغ پرداختی.
اثر روی نرم‌افزار حسابداری

در این نسخه کنترل وزن، اطلاعات گمرکی و اجزای تسویه اهمیت بیشتری پیدا می‌کند. نرم‌افزار باید بتواند وزن‌ها را با دقت 8 رقم اعشار نگهداری کند و روابط بین مبلغ پرداختی، سهم نقدی و سهم مالیات بر ارزش افزوده را مطابق قواعد جدید کنترل کند.

نسخه 6.4 — خرداد 1402
دانلود دستورالعمل نسخه 6.4
مهم‌ترین تغییرات نسبت به 6.3
  • اصلاح قواعد شماره گذرنامه و شماره ملی خریدار در الگوی بلیط هواپیما.
  • اصلاح قواعد صورتحساب‌های اصلاحی، ابطالی و برگشت از فروش.
  • اصلاح قواعد سریال داخلی حافظه مالیاتی و الگوی صورتحساب.
  • اصلاح تعریف سهم نقدی و سهم ارزش افزوده از پرداخت.
  • اصلاح قواعد تاریخ کوتاژ و شناسه کالا/خدمت.
  • اصلاح قواعد شماره منحصر به فرد مالیاتی و شماره مالیاتی صورتحساب مرجع.
  • اصلاح واحد اندازه‌گیری، مبلغ واحد، ارزش ریالی، مبلغ مالیات بر ارزش افزوده و سایر مالیات و عوارض.
  • اصلاح بخش اقلام اطلاعاتی صورتحساب الکترونیکی.
اثر روی نرم‌افزار حسابداری

این نسخه نشان می‌دهد اعتبارسنجی نباید صرفاً عمومی باشد؛ بسیاری از قواعد به الگوی صورتحساب و موضوع آن وابسته‌اند. در نتیجه بهتر است موتور Validation نرم‌افزار بر اساس نوع، الگو و موضوع صورتحساب قواعد متفاوت اعمال کند.

نسخه 6.5 — شهریور 1402
دانلود دستورالعمل نسخه 6.5
مهم‌ترین تغییرات نسبت به 6.4
  • اصلاح جدول الگوها و جدول جایگاه اقلام صورتحساب.
  • اصلاح قواعد الگوی صورتحساب و اطلاعات خریدار و فروشنده.
  • اصلاح قواعد شماره کوتاژ، مجموع وزن خالص و روش تسویه.
  • اصلاح قواعد مبلغ قبل از تخفیف، تخفیف و مبلغ بعد از تخفیف.
  • اصلاح قواعد حق‌العمل و مبلغ کل کالا/خدمت.
  • افزودن قواعد اختصاصی «تفاوت نرخ خرید و فروش ارز/کارمزد فروش ارز».
  • اصلاح نمونه JSON صورتحساب الکترونیکی ثبتی.
اثر روی نرم‌افزار حسابداری

علاوه بر لایه محاسبات، Mapping بین مدل داخلی برنامه و JSON باید کنترل شود. هر زمان جدول جایگاه اقلام و نمونه JSON تغییر می‌کند، صرفاً تغییر فرم ورودی کافی نیست و DTO، Serializer، Validation و تست‌های ارسال نیز باید بازبینی شوند.

نسخه 6.6 — مهر 1402
دانلود دستورالعمل نسخه 6.6
مهم‌ترین تغییرات نسبت به 6.5
  • اصلاح قواعد کنترلی اختصاصی فیلد مبلغ کل کالا/خدمت.
  • اصلاح بخش صورتحساب الکترونیکی نوع اول.
اثر روی نرم‌افزار حسابداری

حجم تغییرات این نسخه محدود است، اما چون یکی از تغییرات مستقیماً به مبلغ کل کالا/خدمت مرتبط است، تست‌های محاسباتی و کنترل جمع سطر باید دوباره اجرا شوند.

نسخه 6.7 — آذر 1402
دانلود دستورالعمل نسخه 6.7
مهم‌ترین تغییرات نسبت به 6.6
  • تغییر وضعیت مجموعه‌ای از فیلدهای مبلغ، تخفیف، سایر مالیات و عوارض و سایر وجوه قانونی در جدول الگوها.
  • تغییر وضعیت شماره گذرنامه خریدار در الگوی بلیط هواپیما.
  • ویرایش قواعد اطلاعات خریدار و فروشنده.
  • ادغام یکی از قواعد روش تسویه با قاعده قبلی.
  • افزودن قاعده به تعداد/مقدار و مبلغ قبل از تخفیف.
  • حذف برخی قواعد از مبلغ مالیات بر ارزش افزوده و مبلغ کل کالا/خدمت.
اثر روی نرم‌افزار حسابداری

در این نسخه باید ماتریس «الگو × فیلد × وضعیت اجباری/اختیاری/خارج از الگو» بازبینی شود. Hard-code کردن اجباری بودن فیلدها در فرم یا API می‌تواند باعث خطای ارسال در بعضی الگوها شود.

نسخه 6.8 — دی 1402
دانلود دستورالعمل نسخه 6.8
مهم‌ترین تغییرات نسبت به 6.7
  • تغییر در جدول الگوهای صورتحساب.
  • افزودن فیلد جدید در جدول جایگاه اقلام.
  • اصلاح قاعده فیلد اجرت ساخت.
  • افزودن جدول قواعد مربوط به فیلد عیار.
  • اصلاح نمونه JSON.
  • اصلاح نمونه صورتحساب نوع اول و نوع دوم.
  • افزودن قاعده جدید به نرخ مالیات بر ارزش افزوده.
اثر روی نرم‌افزار حسابداری

اضافه شدن «عیار» و تغییر قواعد اجرت ساخت برای نرم‌افزارهایی که الگوهای تخصصی طلا، جواهر و پلاتین را پشتیبانی می‌کنند اهمیت مستقیم دارد و باید در مدل اقلام و JSON بدنه لحاظ شود.

نسخه 6.9 — اسفند 1402
دانلود دستورالعمل نسخه 6.9
مهم‌ترین تغییرات نسبت به 6.8
  • تغییر در فیلدهای جدول الگوهای صورتحساب الکترونیکی.
  • افزودن جدول قواعد مربوط به فیلد شماره اقتصادی آژانس.
اثر روی نرم‌افزار حسابداری

نرم‌افزارهایی که سناریوهای مرتبط با آژانس را پشتیبانی می‌کنند باید فیلد شماره اقتصادی آژانس و شرایط نمایش و اعتبارسنجی آن را به ساختار اطلاعات صورتحساب اضافه کنند.

نسخه 7.0 — فروردین 1403
دانلود دستورالعمل نسخه 7.0
مهم‌ترین تغییر نسبت به 6.9
  • تغییر قواعد کنترلی اختصاصی مبلغ مالیات بر ارزش افزوده در ارتباط با الگوی طلا، جواهر و پلاتین.
اثر روی نرم‌افزار حسابداری

برای این الگو نباید محاسبه مالیات صرفاً با منطق عمومی کالا و خدمت انجام شود. قواعد اختصاصی الگوی طلا، جواهر و پلاتین باید در موتور محاسبات و Validation مستقل در نظر گرفته شوند.

نسخه 7.2 — تیر 1403
دانلود دستورالعمل نسخه 7.2
مهم‌ترین تغییرات اعلام‌شده نسبت به 7.1
  • تغییر وضعیت اجباری/اختیاری بعضی فیلدها در الگوی فروش ارز و بلیط هواپیما.
  • افزودن شروط و قواعد به صورتحساب اصلاحی و برگشت از فروش.
  • اصلاح محل قرارگیری شماره اقتصادی آژانس.
  • اصلاح قاعده روش تسویه.
  • اصلاح تعریف نرخ برابری ارز با ریال.
  • اصلاح قاعده تاریخ و زمان پرداخت صورتحساب.
  • اصلاح نمونه JSON صورتحساب الکترونیکی ثبتی.
اثر روی نرم‌افزار حسابداری

این نسخه برای ماژول‌های فروش ارز، بلیط و اسناد اصلاحی مهم است. هنگام صدور سند اصلاحی یا برگشت از فروش، بررسی صرف وجود irtaxid کافی نیست و شرایط موضوع صورتحساب و قواعد مرجع نیز باید اعمال شود.

نسخه 7.3 — آذر 1403
دانلود دستورالعمل نسخه 7.3
چرا نسخه 7.3 یک بروزرسانی مهم است؟

سند 7.3 تعداد زیادی از قواعد موجود را اصلاح و دامنه اطلاعات صورتحساب را به شکل محسوسی توسعه داد. فهرست تغییرات رسمی این نسخه 43 مورد را در بر می‌گیرد.

مهم‌ترین تغییرات
  • اصلاح جدول الگوها، جدول جایگاه اقلام و قاعده کلی اقلام اطلاعاتی.
  • اصلاح قواعد تاریخ صدور، نوع، الگو و موضوع صورتحساب.
  • اصلاح قواعد اطلاعات خریدار و فروشنده، وزن، روش تسویه، شناسه کالا/خدمت، مقدار، واحد و مبلغ واحد.
  • اصلاح نرخ برابری ارز، ارزش ریالی، تخفیف‌ها، نرخ و مبلغ مالیات بر ارزش افزوده و مبلغ کل کالا/خدمت.
  • حذف فیلد «تفاوت نرخ خرید و فروش ارز/کارمزد فروش ارز».
  • افزودن «نرخ خرید ارز» و «مأخذ مالیات بر ارزش افزوده» در الگوی فروش ارز.
  • افزودن فیلدهای شماره بارنامه و شماره بارنامه مرجع.
  • افزودن کشور و شهر مبدأ و مقصد.
  • افزودن شناسه فرستنده و گیرنده، نوع بارنامه/نوع حمل، شماره ناوگان و شناسه راننده.
  • افزودن اطلاعات کالاهای حمل‌شده، شناسه و شرح کالای حمل‌شده.
  • افزودن شماره و تاریخ اعلامیه فروش.
  • افزودن جدول کدینگ کشورها و شهرها و اصلاح نمونه JSON.
اثر روی نرم‌افزار حسابداری

اگر نرم‌افزار از سناریوهای حمل‌ونقل یا فروش ارز پشتیبانی می‌کند، نسخه 7.3 فقط یک تغییر Validation نیست و به توسعه مدل داده نیاز دارد. اطلاعات بارنامه، مسیر، اشخاص حمل، ناوگان و کالاهای حمل‌شده باید به صورت ساختاری نگهداری شوند؛ ضمن اینکه فیلدهای قدیمی حذف‌شده نباید همچنان در JSON ارسال شوند.

نسخه 7.4 — اردیبهشت 1404
دانلود دستورالعمل نسخه 7.4
مهم‌ترین تغییرات نسبت به 7.3
  • اصلاح جدول الگوهای صورتحساب و جدول جایگاه اقلام.
  • اصلاح قواعد فیلد الگوی صورتحساب.
  • اصلاح قواعد مبلغ مالیات بر ارزش افزوده.
  • اصلاح قواعد شماره اعلامیه فروش.
  • افزودن شناسه یکتای بیمه‌نامه.
  • افزودن شناسه یکتای الحاقیه.
  • اصلاح نمونه JSON.
اثر روی نرم‌افزار حسابداری

برای کسب‌وکارهای حوزه بیمه، مدل سرآمد صورتحساب باید امکان نگهداری شناسه یکتای بیمه‌نامه و شناسه یکتای الحاقیه را داشته باشد و وضعیت این دو فیلد بر اساس الگوی صورتحساب کنترل شود.

نسخه 7.5 — شهریور 1404
دانلود دستورالعمل نسخه 7.5
مهم‌ترین تغییرات نسبت به 7.4
  • اصلاح جدول الگوها و جدول جایگاه اقلام.
  • اصلاح بخشی از قواعد صورتحساب الکترونیکی اصلاحی.
  • اصلاح قواعد الگوی صورتحساب و اطلاعات خریدار و فروشنده.
  • اصلاح نرخ و مبلغ مالیات بر ارزش افزوده.
  • اصلاح قواعد شماره قرارداد حق‌العملکاری.
  • افزودن فیلد «مبلغ پایه مالیات بر ارزش افزوده» و جدول قواعد اختصاصی آن.
  • اصلاح نمونه JSON صورتحساب.
اثر روی نرم‌افزار حسابداری

اضافه شدن مبلغ پایه مالیات بر ارزش افزوده به معنی اضافه شدن یک مقدار جدید به بدنه بعضی الگوهاست. نرم‌افزار باید علاوه بر ذخیره مقدار، شرایط حضور یا عدم حضور آن را بر اساس الگو و شناسه کالا کنترل کند.

نسخه 7.6 — مهر 1404
دانلود دستورالعمل نسخه 7.6
مهم‌ترین تغییرات نسبت به 7.5
  • اصلاح جدول الگوهای صورتحساب.
  • اصلاح ردیف‌های 95 و 96 جدول جایگاه اقلام.
  • اصلاح قاعده تاریخ و زمان صدور صورتحساب.
  • اصلاح قواعد الگوی صورتحساب و اطلاعات خریدار و فروشنده.
  • اصلاح متن بخش الگوهای صورتحساب الکترونیکی.
  • اصلاح بخش روش تسویه.
  • تغییر در شماره و تاریخ اعلامیه فروش بورس.
اثر روی نرم‌افزار حسابداری

کنترل تاریخ صدور و روش تسویه باید با نسخه جدید همگام شود. همچنین نرم‌افزارهایی که سناریوی بورس را پوشش می‌دهند باید Mapping و اعتبارسنجی دو فیلد اعلامیه فروش را دوباره بررسی کنند.

نسخه 7.7 — آذر 1404
دانلود دستورالعمل نسخه 7.7
مهم‌ترین تغییر: اضافه شدن الگوی فروش زنجیره
  • افزودن الگوی فروش زنجیره به جدول الگوهای صورتحساب الکترونیکی.
  • اصلاح قواعد فیلد الگوی صورتحساب برای پشتیبانی از الگوی جدید.
  • افزودن قواعد مرتبط با فروش زنجیره در اطلاعات خریدار و فروشنده.
  • اصلاح قواعد شماره کوتاژ اظهارنامه گمرکی.
  • افزودن قواعد فروش زنجیره به شناسه کالا/خدمت.
  • اصلاح قواعد وزن خالص و ارزش ریالی کالا.
  • افزودن قواعد فروش زنجیره به نرخ مالیات بر ارزش افزوده.
  • افزودن قواعد مرتبط به شماره قرارداد حق‌العملکاری.
اثر روی نرم‌افزار حسابداری

اضافه شدن یک الگوی جدید باید در همه لایه‌ها دیده شود: انتخاب الگو در رابط کاربری، تعیین فیلدهای مجاز و اجباری، قواعد خریدار و فروشنده، اعتبارسنجی اقلام و تولید JSON. اضافه کردن صرف یک گزینه جدید به لیست الگوها برای پشتیبانی کامل از نسخه 7.7 کافی نیست.

نسخه 7.8 — اردیبهشت 1405
دانلود دستورالعمل نسخه 7.8
تغییر نسبت به 7.7
  • اصلاح تعریف و ردیف 1 قواعد کنترل و اعتبارسنجی فیلد «نرخ برابری ارز با ریال/نرخ فروش ارز» در بخش 7-35 و جدول 37.
اثر روی نرم‌افزار حسابداری

اگر نرم‌افزار الگوی فروش ارز را پشتیبانی می‌کند، باید قاعده Validation نرخ ارز با متن نسخه 7.8 تطبیق داده شود؛ حتی با وجود کوچک بودن فهرست تغییرات این نسخه، همین قاعده می‌تواند روی پذیرش صورتحساب‌های ارزی اثر مستقیم داشته باشد.

نسخه 7.9 — تیر 1405
دانلود دستورالعمل نسخه 7.9
نسخه 7.9 چه چیزهایی را تغییر می‌دهد؟

نسخه 7.9 یک بروزرسانی صرفاً محاسباتی نیست و هم در نام و مفهوم فیلدها، هم در قواعد صورتحساب مرجع و هم در ساختار JSON تغییر ایجاد می‌کند. فهرست رسمی تغییرات این نسخه 18 مورد دارد.

  • افزودن سه قلم اطلاعاتی «قاعده ارسال صورتحساب»، «یادداشت 1» و «یادداشت 2».
  • تغییر عنوان «تاریخ و زمان ایجاد صورتحساب» به «تاریخ و زمان ثبت صورتحساب».
  • تغییر عنوان «شماره قرارداد حق‌العملکاری» به «شماره قرارداد معامله از طریق شخص ثالث».
  • اصلاح وضعیت اقلام اطلاعاتی در بعضی الگوهای صورتحساب.
  • اصلاح تعریف صورتحساب مرجع و نکات مرتبط با صورتحساب‌های اصلاحی و برگشت از فروش.
  • افزودن بخش مربوط به «صورتحساب الکترونیکی موضوع ماده (9) قانون پایانه‌های فروشگاهی و سامانه مودیان».
  • اصلاح قواعد تاریخ و زمان صدور صورتحساب.
  • اصلاح قواعد تاریخ و زمان ثبت صورتحساب.
  • حذف بعضی قواعد قبلی از فیلد شماره منحصر به فرد مالیاتی صورتحساب مرجع.
  • اصلاح قواعد روش تسویه.
  • افزودن جداول مستقل قواعد برای insr، nti1 و nti2.
  • افزودن فیلدهای جدید به نمونه JSON صورتحساب.
اثر روی نرم‌افزار حسابداری

برای مهاجرت صحیح به 7.9 باید هم دیتابیس و DTOها و هم Validation و JSON بروزرسانی شوند. در UI نیز بهتر است برچسب «تاریخ و زمان ثبت صورتحساب» جایگزین عنوان قبلی شود و مفهوم قرارداد شخص ثالث به جای عنوان قدیمی حق‌العملکاری نمایش داده شود. همچنین منطق تشخیص شرایط صورتحساب موضوع ماده 9 باید قبل از ارسال اعمال شود تا مقدار insr فقط در شرایط تعریف‌شده ارسال شود.

فیلدهای مهم در نسخه 7.9

جدول جایگاه اقلام در نسخه 7.9 تا ردیف 102 ادامه دارد و مشخص می‌کند هر قلم در سرآمد، بدنه یا اطلاعات پرداخت قرار می‌گیرد و نام متناظر آن در JSON چیست. چند فیلد کلیدی که در پیاده‌سازی نرم‌افزار باید به آن‌ها توجه ویژه داشت عبارت‌اند از:

taxid

شماره منحصر به فرد مالیاتی صورتحساب. این فیلد در سرآمد قرار می‌گیرد و شناسه اصلی صورتحساب در ساختار سامانه مودیان است.

indatim

تاریخ و زمان صدور صورتحساب به میلادی. مقدار آن باید با قواعد زمانی نسخه جاری کنترل شود.

indati2m

تاریخ و زمان ثبت صورتحساب به میلادی. در نسخه 7.9 عنوان این قلم از «ایجاد» به «ثبت» تغییر کرده و قواعد آن نیز بازنگری شده است.

irtaxid

شماره منحصر به فرد مالیاتی صورتحساب مرجع. این فیلد برای ارتباط صورتحساب‌های وابسته با سند مرجع استفاده می‌شود و در نسخه 7.9 بخشی از قواعد قبلی آن تغییر کرده است.

inp

الگوی صورتحساب. بسیاری از قواعد اجباری، اختیاری یا خارج از الگو بودن سایر فیلدها به مقدار این فیلد وابسته‌اند؛ بنابراین Validation باید از الگو آگاه باشد.

setm

روش تسویه. قواعد این فیلد در چند نسخه تغییر کرده و در نسخه 7.9 نیز اصلاح شده است. مقادیر مرتبط با نقد، نسیه و سهم ارزش افزوده باید با روش تسویه سازگار باشند.

bsrn

شماره قرارداد معامله از طریق شخص ثالث. عنوان این فیلد در نسخه 7.9 از «شماره قرارداد حق‌العملکاری» تغییر کرده است؛ بنابراین عنوان فرم‌ها، مستندات داخلی و Validation بهتر است با اصطلاح جدید هماهنگ شوند.

vba

مبلغ پایه مالیات بر ارزش افزوده. این قلم در بدنه صورتحساب قرار می‌گیرد و حضور آن وابسته به الگو و شرایط تعریف‌شده در قواعد اختصاصی است.

insr

قاعده ارسال صورتحساب؛ فیلدی عددی با حداکثر طول 2 که در شرایط خاص اجباری است. در نسخه 7.9، اگر فاصله صدور تا ارسال از مهلت مجاز اعلامی بیشتر باشد، طبق قواعد سند مقدار 1 برای این فیلد در سناریوی مربوط به ماده 9 استفاده می‌شود.

nti1 و nti2

یادداشت 1 و یادداشت 2؛ هر دو رشته‌ای، اختیاری و با حداکثر طول 30 هستند و امکان درج توضیح مورد نظر فروشنده یا خریدار را فراهم می‌کنند.

چک‌لیست بروزرسانی نرم‌افزار حسابداری برای نسخه‌های جدید

برای سازگاری واقعی با نسخه جدید، فقط تغییر JSON خروجی کافی نیست. پیشنهاد می‌شود بروزرسانی در چند لایه مستقل کنترل شود:

  • مدل داده: فیلدهای جدید، فیلدهای حذف‌شده، طول، نوع و تعداد اعشار بررسی شود.
  • رابط کاربری: فقط فیلدهای مجاز همان الگو نمایش داده شوند و عنوان‌های جدید جایگزین عنوان‌های منسوخ شوند.
  • اعتبارسنجی: قواعد بر اساس نوع، الگو و موضوع صورتحساب اعمال شوند، نه به صورت یکسان برای همه اسناد.
  • محاسبات: فرمول مبلغ قبل و بعد از تخفیف، مالیات، ارزش ریالی/ارزی و جمع کل با قواعد نسخه جاری تست شود.
  • صورتحساب مرجع: منطق اصلاحی، ابطالی و برگشت از فروش با قواعد نسخه جاری کنترل شود.
  • JSON: نام دقیق فیلد، محل قرارگیری در header/body/payments و نوع داده قبل از ارسال بررسی شود.
  • مهاجرت نسخه: شماره نسخه دستورالعمل در تنظیمات یا کد نرم‌افزار قابل ردیابی باشد تا تغییرات بعدی قابل مدیریت باشند.
  • تست: برای هر الگوی فعال، حداقل یک نمونه معتبر و چند نمونه نامعتبر به صورت خودکار تست شود.

جمع‌بندی

مسیر نسخه 6.2 تا 7.9 نشان می‌دهد سامانه مودیان از یک ساختار نسبتاً عمومی به سمت مجموعه‌ای از قواعد دقیق و وابسته به سناریو حرکت کرده است. در نسخه‌های 6.x تمرکز زیادی روی دقت فیلدها، محاسبات، تخفیف، مالیات، وزن و تسویه دیده می‌شود. از نسخه 7.3 به بعد دامنه اقلام تخصصی به شکل محسوسی گسترش پیدا می‌کند و حمل‌ونقل، فروش ارز، بیمه، بورس و فروش زنجیره‌ای نقش پررنگ‌تری در ساختار صورتحساب پیدا می‌کنند.

در نسخه 7.9 نیز تغییرات وارد مرحله دیگری شده‌اند: علاوه بر افزودن فیلدهای جدید، مفهوم برخی اقلام تغییر کرده و قواعد مربوط به زمان ثبت، صورتحساب مرجع، قرارداد شخص ثالث و صورتحساب موضوع ماده 9 بازنویسی شده‌اند. بنابراین برای یک نرم‌افزار حسابداری سازگار با سامانه مودیان، بهترین رویکرد این است که قواعد نسخه جاری به صورت ماژولار و قابل بروزرسانی پیاده‌سازی شوند، نه اینکه صرفاً یک JSON ثابت در برنامه تولید شود.

برای تصمیم‌گیری درباره اجباری یا اختیاری بودن هر فیلد، همیشه باید الگوی صورتحساب و آخرین نسخه دستورالعمل ملاک قرار گیرد؛ زیرا وضعیت یک قلم می‌تواند بین الگوهای مختلف متفاوت باشد.