صورتحساب الکترونیکی نسخهٔ دادهای فاکتور فروش است که مؤدیان مالیاتی باید طبق ساختار و ضوابط سازمان امور مالیاتی کشور در سامانهٔ مودیان ثبت کنند. ماژول abrak_odoo_moadian_pro در ابرک فاکتور اودوو را به همان ساختار تبدیل میکند و پیش از هر اقدام، آن را بهصورت پیشنویس و آمادهسازی نگه میدارد. ارسال به سامانه در حالت عادی بسته است و فقط با تأیید صریح مدیر سامانه باز میشود.
اگر فروشندهای فاکتور را در اودوو صادر میکند، سؤال بعدی معمولاً این است که این فاکتور چه تفاوتی با صورتحساب الکترونیکی دارد و نرمافزار چه کاری باید انجام دهد. این مقاله همین را توضیح میدهد: کدام بخشها آمادهسازیاند، کدام بخشها بستهاند و چه کاری باید پیش از هر تلاش انجام شود.
صورتحساب الکترونیکی چیست و با فاکتور معمولی چه فرقی دارد؟
فاکتور معمولی سندی است که فروشنده برای خریدار صادر میکند. صورتحساب الکترونیکی همان اطلاعات فروش را در قالب دادهای با فیلدها، کدها و شناسههای مشخص دارد که به سامانهٔ مودیان میرسد. قواعد ساختار، مهلتها و الزامهای هر نوع مؤدی در پورتال سازمان امور مالیاتی (tax.gov.ir) منتشر میشود، و هر اقدام عملیاتی باید با همان منبع تطبیق داده شود.
در ابرک، مبنای کار فاکتور فروش اودوو (account.move) است. تابع to_moadian_packet از همین فاکتور بستهٔ INVOICE.V01 میسازد. برای برگشت از فروش، کد نوع ۴ و شناسهٔ مالیاتی صورتحساب اصلی لازم است. برای صورتحساب نوع دوم، فیلدهای خریدار در بسته ارسال نمیشوند. این قواعد در کد همان تابع نوشته شدهاند و هنگام ساخت بسته اعمال میشوند.
ابرک چه کاری انجام میدهد و چه کاری انجام نمیدهد؟
کار اصلی ابرک در این ماژول آمادهسازی است: ساخت کلید و درخواست گواهی، ساخت بستهٔ صورتحساب از فاکتور و ثبت وضعیت هر فاکتور. ارسال یا ابطال در سامانه در حالت عادی بسته است و جدا از آمادهسازی کنترل میشود.
- ساخت جفت کلید RSA با طول ۲۰۴۸ بیت و فایل CSR از داخل پروفایل مودیان، بدون نیاز به خط فرمان.
- دانلود کلید عمومی، کلید خصوصی و CSR برای بارگذاری در کارپوشه و تأیید در سامانهٔ GICA.
- تولید محلی شناسهٔ یکتای ۲۲ کاراکتری با کنترل Verhoeff برای هر صورتحساب.
- ساخت بستهٔ پیشنویس از فاکتور، بههمراه صف و گزارش هر تلاش در مدل گزارش ماژول.
- ارسال به سامانه در حالت عادی بسته است، و کرونهای صف ارسال و استعلام در ماژول بهصورت پیشفرض خاموشاند.
اگر فیلدهای الزامی روی فاکتور یا پروفایل کامل نباشد، ساخت بسته پیش از تخصیص شناسه با پیام خطا متوقف میشود. با این کار فاکتور ناقص وارد صف نمیشود.
جریان داده از فاکتور تا بسته
وقتی ماژول بسته را میسازد، هر فاکتور اقلام، مبلغها، مالیات و اطلاعات طرفین را به ساختار INVOICE.V01 تبدیل میکند. در این مرحله سه قاعدهٔ مهم اعمال میشود. مبلغها به ریال صحیح تبدیل میشوند، چون ارز پایه بدون اعشار است. فقط مالیاتی که از نوع ارزش افزوده تشخیص داده شود وارد بخش مالیات بسته میشود. اضافهبهای درصدی که به حساب درآمد میرود، جزئی از بهای کالا حساب میشود و در بخش مالیات ارزش افزوده ظاهر نمیشود.
تخفیف خطی اودو در بسته از اختلاف میان تعداد ضربدر قیمت واحد و جمع جزء خط به دست میآید. بنابراین اگر دادههای یک خط با هم سازگار نباشند، بسته را پیش از ارسال بررسی کنید.
روش گامبهگام آمادهسازی در ابرک
برای آمادهسازی یک شرکت، کارها را به این ترتیب انجام دهید. هیچکدام از مراحل زیر فاکتور واقعی را به سامانه نمیفرستد.
- یک پروفایل مودیان برای شرکت بسازید و با دکمهٔ تولید کلید، جفت کلید RSA و CSR را بسازید.
- کلید عمومی و CSR را از پروفایل دانلود کنید و طبق راهنمای سازمان امور مالیاتی در کارپوشه بارگذاری کنید.
- پس از تأیید CSR، شناسهٔ حافظه را از سامانه بگیرید و آن را در پروفایل ذخیره کنید.
- کالاها و خدمات را با کدهای لازم تکمیل کنید و اطلاعات خریداران مؤدی روی مخاطبها باید درست ثبت شده باشد.
- فاکتورهای نمونه بسازید و بستهٔ پیشنویس آنها را بررسی کنید تا خطاهای داده پیش از ارسال واقعی دیده شوند.
- با دکمهٔ تست اتصال، ارتباط پروفایل با سامانه را بسنجید.
چکلیست پیش از هر تلاش ارسال
- وضعیت فاکتور باید ارسالنشده یا در صف باشد. فاکتورهای تأیید شده دوباره ساخته نمیشوند.
- پروفایل مودیان روی شرکت درست تنظیم شده و شناسهٔ حافظه ثبت است.
- برای برگشت از فروش، شناسهٔ صورتحساب اصلی روی فاکتور وارد شده است.
- مهلت محاسبهشده با تاریخ صدور و تعداد روز پروفایل همخوانی دارد.
- فهرست فاکتورهای نتیجهٔ نامعلوم خالی است یا هر کدام پیش از ارسال استعلام شدهاند.
وضعیتهای هر صورتحساب در ماژول
هر فاکتور در ماژول یکی از وضعیتهای زیر را دارد. وضعیتها در تب سامانهٔ مودیان فاکتور نمایش داده میشوند و فیلترهای لیست نیز بر همین اساس ساخته شدهاند.
| وضعیت | معنی در ابرک |
|---|---|
| ارسالنشده | فاکتور آماده است و هنوز چیزی برای سامانه ساخته نشده یا ارسالی ثبت نشده است. |
| در صف ارسال | فاکتور برای ارسال بعدی علامت خورده، ولی هنوز ارسال واقعی نشده است. |
| ارسالشده، در انتظار نتیجه | بسته رفته و نتیجه هنوز برنگشته. |
| تأیید شده | سامانه بسته را پذیرفته. |
| رد شده یا خطا | سامانه بسته را نپذیرفته یا خطای فنی ثبت شده. |
| نتیجه نامعلوم | پیش از هر ارسال مجدد باید استعلام شود. |
| ابطالشده | صورتحساب در سامانه ابطال شده است. |
خطا، نتیجهٔ نامعلوم و استعلام
بزرگترین خطر در ارسال الکترونیکی، ارسال دوبارهٔ فاکتوری است که قبلاً به سامانه رسیده ولی نتیجهاش ثبت نشده. ماژول برای این حالت وضعیت جداگانه دارد. فاکتور با وضعیت نامعلوم تا استعلام نتیجه، دوباره ساخته یا ارسال نمیشود.
خطاهای موقت مثل محدودیت نرخ یا قطع موقت، از خطای قطعی جدا شدهاند. خطای موقت ممکن است در صف بماند، در حالی که خطای قطعی با پیام دلیل ثبت میشود تا کاربر اصلاح کند. با این تفکیک، تیم مالی میداند هر فاکتور کجاست و چه اقدامی لازم دارد.
مهلت و هشدار فعالیت
ماژول برای هر فاکتور تاریخ مهلت محاسبه میکند. مبنای محاسبه تاریخ صدور و تعداد روز در پروفایل مودیان است. مقدار پیشفرض ۱۲ روز است و در پروفایل قابل تغییر است. پیش از تنظیم نهایی، عدد را با منبع رسمی تطبیق دهید. فاکتوری که از مهلت گذشته باشد، در فیلتر «مودیان: مهلت گذشته» دیده میشود.
ابطال، اصلاحی و برگشت از فروش
ماژول برای صورتحساب اصلاحی، ابطالی و برگشت از فروش دکمهها و قواعد جداگانه دارد. ابطال در سامانه با دکمهٔ «ابطال در مودیان» انجام میشود و همان کنترلهای بستهٔ ارسال روی آن هم اعمال میشود. برای برگشت از فروش، ارجاع به شناسهٔ صورتحساب اصلی اجباری است و باید پیش از ساخت بسته تکمیل شود.
منابع
- مالیات بر ارزش افزوده در ویکیپدیای فارسی
- Taxation in Iran در ویکیپدیای انگلیسی
- پورتال سازمان امور مالیاتی کشور، برای قواعد رسمی و مهلتها: tax.gov.ir
- سامانه مودیان چیست؟ راهنمای کامل صورتحساب الکترونیکی ۱۴۰۵
- آموزش اتصال اودوو به سامانه مودیان، گام به گام
- ثبت نام سامانه مودیان، راهنمای گام به گام
- چکلیست صدور فاکتور رسمی و صورتحساب قانونی
خطاهای رایج پیش از ارسال و نحوهٔ پیشگیری
بیشتر خطاهای آمادهسازی از دادههای ناقص روی فاکتور یا پروفایل میآیند. ماژول این خطاها را پیش از تخصیص شناسه نشان میدهد، بنابراین فاکتور ناقص وارد صف نمیشود. موارد پرتکرار را همینجا مرور کنید.
- شناسهٔ کالا ثبت نشده است. محصول بدون شناسهٔ ۱۳ رقمی کالا و خدمت در تب مودیان فرم محصول، ساخت بسته را متوقف میکند. این شناسه را یکبار برای هر محصول از سامانهٔ شناسهٔ کالا بگیرید و ثبت کنید.
- خریدار شناسهٔ اقتصادی ندارد. برای صورتحساب نوع اول، شماره اقتصادی یا شناسهٔ ملی خریدار در تب مودیان مخاطب لازم است. اگر خریدار مؤدی نیست، نوع دوم را انتخاب کنید. در این حالت فیلدهای خریدار اصلاً در بسته نمیآیند.
- برگشت از فروش بدون مرجع. برای نوع ۴ و برای صورتحسابهای اصلاحی و ابطالی، شناسهٔ مالیاتی صورتحساب اصلی باید روی فاکتور باشد. نبودِ آن، خطای مشخص میدهد.
- فاکتور بدون سطر کالایی. فاکتوری که هیچ سطر کالایی ندارد، پیش از ساخت بسته با پیام خطا متوقف میشود.
پس از ساخت بسته، جمع مبلغها را با فاکتور اودوو مقایسه کنید. مبلغ کل صورتحساب برابر جمع بهای پس از تخفیف بهاضافهٔ ارزش افزوده است. اگر اختلافی دیدید، معمولاً یکی از خطوط دادهای ناسازگار دارد. در پایان هم توجه داشته باشید که در وضعیت پیشفرض، هر ارسال یا ابطال بدون تأیید مالک رد میشود و این رد در گفتگوی فاکتور ثبت میشود. پیش از آزمایش، این تأیید را از مدیر سامانه بگیرید.
مطالب و صفحههای مرتبط
میخواهید خودتان امتحان کنید؟ آزمایش ۱۴ روزهٔ رایگان ابرک را فعال کنید و طرحها و قیمتها را ببینید.
سؤالات متداول
آیا ابرک فاکتور را خودکار به سامانهٔ مودیان میفرستد؟
در حالت عادی خیر. ابرک بستههای پیشنویس میسازد و وضعیتها را نگه میدارد. ارسال به سامانه بسته است و بدون تأیید صریح مدیر سامانه انجام نمیشود.
چه دادهای برای ساخت بستهٔ صورتحساب لازم است؟
پروفایل مودیان با کلید و CSR تأییدشده، شناسهٔ حافظه، و فاکتور با اطلاعات فروشنده، خریدار و اقلام لازم است. اگر یکی از اینها کم باشد، ساخت بسته متوقف میشود.
آیا ماژول کلید خصوصی را در سرور نگه میدارد؟
کلید خصوصی در پروفایل ساخته و قابل دانلود است. نگهداری امن آن بر عهدهٔ مدیر شرکت است و باید از دسترسی عمومی خارج شود.
شناسهٔ یکتای صورتحساب چگونه ساخته میشود؟
ماژول شناسهٔ ۲۲ کاراکتری را محلی میسازد و کاراکتر کنترلی آن با الگوریتم Verhoeff محاسبه میشود. شناسه هنگام آمادهسازی فاکتور به آن نسبت داده شده.
مهلت ۱۲ روزه را چه کسی تعیین میکند؟
مقدار پیشفرض در ماژول ۱۲ روز است و در پروفایل قابل تغییر است. عدد نهایی باید با قواعد اعلامشدهٔ سازمان امور مالیاتی تطبیق داده شود.
اگر نتیجهٔ ارسال مشخص نباشد چه باید کرد؟
فاکتور را دوباره ارسال نکنید. وضعیت نتیجهٔ نامعلوم را با استعلام تکلیف کنید تا از ثبت دوبارهٔ یک سند جلوگیری شود.