خبرهای مالی و مالیاتی

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

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

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

1- مقدمه

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

در کلیه مراحل استفاده از API، اصول امنیت اطلاعات شامل احراز هویت و سطح دسترسی ارسال کننده ،محرمانگی، انکارناپذیری و یکپارچگی رعایت شده است.

2- هدف

این سند با هدف تشریح نحوه اتصال به سامانه مودیان ارائه شده است. در این سند مراحل اتصال به سامانه مودیان شامل دریافت اطلاعات مورد نیاز جهت پیکربندی پایانه فروشگاهی-حافظه مالیاتی، ارسال اطلاعات صورتحساب الکترونیکی و استعلام وضعیت صورتحساب های ارسالی به صورت گام به گام و همراه با جزئیات فنی مورد نیاز برای پیاده سازی آن توسط کلیه ذینفعان ارائه شده است.

3- دامنه کاربرد

ذینفعان این سند شامل:

  • اشخاص مشمول (مودیان).
  • شرکت های معتمد ارائه کننده خدمات مالیاتی نوع اول

4- تعاریف

  • شناسه یکتای حافظه مالیاتی: شناسه ای است یکتا دارای مقداری ثابت و منحصر به فرد که به هر حافظه مالیاتی در سطح کشور اختصاص داده می شود، این شناسه از مولفه های تشکیل دهنده شماره منحصر به فرد مالیاتی می باشد که پس از درخواست مودی در کارپوشه تولید و در اختیار وی قرار خواهد گرفت.
  •  شماره منحصر به فرد مالیاتی: شماره ای است یکتا در سامانه مودیان که به ازای هر صورتحساب تولید شده و به صورت منحصر به فرد به آن صورتحساب تخصیص داده می شود. این شماره دارای بخش های اطلاعاتی خاص بوده که جزئیات آن در سند «قالب شناسه یکتای حافظه مالیاتی و شماره منحصر به فرد مالیاتی» ذکر شده است.
  • صورتحساب الکترونیکی: صورتحسابی است دارای شماره منحصر به فرد مالیاتی که اطلاعات مندرج در آن، در حافظه مالیاتی فروشنده ذخیره می شود .

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

  • حافظه مالیاتی: نوعی حافظه الکترونیکی است که برای ثبت و نگهداری اطلاعات مندرج در صورتحساب های الکترونیکی و انتقال آن به سامانه مودیان مورد استفاده قرار می گیرد .حافظه مالیاتی می تواند به شکل سخت افزاری یا نرم افزاری باشد. حافظه مالیاتی، توسط مودی برای ثبت صورتحساب الکترونیکی مورد استفاده قرار می گیرد. هر حافظه مالیاتی باید دارای شماره شناسه یکتا باشد. شناسه یکتای حافظه مالیاتی توسط سازمان اختصاص داده می شود.
  •  پایانه فروشگاهی:  رایانه، دستگاه کارتخوان بانکی، درگاه پرداخت الکترونیکی یا هر وسیله دیگری که امکان اتصال به شبکه های الکترونیکی پرداخت رسمی کشور و سامانه مودیان را داشته و از قابلیت صدور صورتحساب الکترونیکی برخوردار باشد(بند ب ماده 1 قانون).
  •  شرکت های معتمد ارائه کننده خدمات مالیاتی: اشخاص حقوقی دارای پروانه هستند که حسب ضوابط و دستورالعمل های ابلاغی سازمان، نسبت به ارائه مشاوره و آموزش های لازم به مودیان، نصب و پشتیبانی تجهیزات مورد نیاز برای ارائه خدمات مالیاتی از قبیل خدمات مربوط به صدور صورتحساب و سایر امور غیرحاکمیتی با سازمان همکاری می کند(بند چ ماده 1).
  • زیرسامانه جمع آوری و پردازش اطلاعات صورتحساب: زیرسامانه ای است که داده های ارسالی از پایانه های فروشگاهی-حافظه مالیاتی یا شرکت های معتمد ارائه کننده خدمات مالیاتی نوع اول را از طریق واسطه ای نرم افزاری دریافت می کند.
  • حد مجاز فروش: جمع صورتحساب های الکترونیکی صادره توسط هر مودی در هر دوره مالیاتی نمی تواند بیشتر از سه برابر فروش اظهار شده وی در دوره مشابه سال قبل، که مالیات آن به سازمان پرداخت شده یا ترتیب پرداخت آن داده شده است، باشد. جمع صورتحساب های الکترونیکی صادره شده در هر دوره مالیاتی برای واحدهای جدیدالتاسیس یا واحدهای فاقد سابقه مالیاتی نمی تواند بیش از سه برابر معافیت سالانه موضوع ماده(101) قانون مالیات های مستقیم باشد(ماده 6 قانون پایانه های فروشگاهی و سامانه مودیان).
  • شناسه یکتای ارسال صورتحساب: شناسه ای یکتا که هنگام ارسال صورتحساب توسط ارسال کننده به صورتحساب جهت رهگیری آن اختصاص داده میشود. این شناسه با فرمت uuid به صورت رمز نشده ارسال می گردد.
  • رسید یکتای دریافت صورتحساب: هنگام دریافت صورتحساب در زیرسامانه جمع آوری و پردازش اطلاعات، یک شناسه رسید یکتا با فرمت uuid به هر صورتحساب توسط این زیرسامانه اختصاص داده می شود.
  • لیست صورتحساب ها: مجموعه ای از صورتحساب های صادر شده توسط پایانه فروشگاهی-حافظه مالیاتی که در قالب یک مجموعه به سامانه مودیان ارسال می شود.
  • کلاینت: ارسال کننده درخواست به API زیرسامانه جمع آوری و پردازش اطلاعات که می تواند مودی یا شرکت معتمد ارائه کننده خدمات مالیاتی باشد.
  • سرور: سرور سامانه مودیان
  • زوج کلید عمومی و خصوصی : در این سند هرگاه برای انکارناپذیری از کلید عمومی یا خصوصی استفاده می شود منظور کلیدی است که توسط یک  مرکز میانی معتبر برای هر یک  از ذینفعان سامانه مودیان گواهی شده  باشد.
  • مرکز میانی معتبر: هر مرکز میانی که از شورای سیاست گذاری گواهی الکترونیکی کشور مجوز گرفته باشد (موضوع ماده 32 قانون تجارت الکترونیکی). لیست این مراکز از طریق سایت www.rca.gov.ir  بخش مراکز میانی ،قابل دسترسی است.

5- پیکربندی پایانه فروشگاهی-حافظه مالیاتی

5-1 دریافت شناسه یکتای حافظه مالیاتی

مودی جهت صدور و ارسال صورتحساب الکترونیکی نیاز به دریافت شناسه یکتا حافظه مالیاتی دارد .

بنابراین میبایست به بخش عضویت و ثبت نام کارپوشه خود مراجعه نموده و مراحل زیر را طی نماید:

  1. به ازای هر شناسه یکتا حافظه مالیاتی، یکی از سه حالت ارسال اطلاعات صورتحساب را به شرح ذیل انتخاب کند:
  • توسط خود مودی (به روش مستقیم)
  • ارسال اطلاعات صورتحساب توسط شرکت معتمد ارائه کننده خدمات مالیاتی (به روش غیرمستقیم)
  •  ارسال اطلاعات صورتحساب توسط شرکت معتمد ارائه کننده خدمات مالیاتی (به روش غیرمستقیم و با استفاده از زیرساخت های اختصاصی)

2. کلید عمومی (RSA) دریافتی از مراکز میانی معتبر با طول کلید 2048 بیت را بارگذاری نماید.  

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

3 .ارتباط شناسه یکتای حافظه مالیاتی درخواستی با کدپستی(های) محل فعالیت تعیین گردد.

5-2 پیکربندی و ثبت مشخصات

مودی برای راه اندازی پایانه فروشگاهی-حافظه مالیاتی خود باید از طریق فراخوانی متدهای “دریافت اطلاعات سرور”و “دریافت اطلاعات حافظه مالیاتی”، شماره اقتصادی، نام تجاری، ساعت و تاریخ، کلید عمومی سازمان و شناسه یکتای حافظه مالیاتی را از سرور دریافت کند . جزئیات اقلام اطلاعاتی لازم در جدول 10 توضیح داده شده است.

6 -امنیت اطلاعات

مکانیزم های امنیتی جهت ارسال صورتحساب مطابق با نمودار ارائه شده در شکل(1) می باشند.

6-1 توکن

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

6-2 امضا

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

 621 نرمالسازی درخواست

برای یکسان کردن ساختار تمامی درخواست ها به API های زیرسامانه جمع آوری اطلاعات، برای تمامی بسته های ارسالی شامل همگام و غیرهمگام امضا بر روی درخواست صورت می پذیرد. برای امضا میبایست ابتدا  Header وBody درخواست ادغام و JSON واحد تولید گردد. ضروری است JSON تولید شده مطابق شکل(2) به رشته تبدیل، سپس امضا و ارسال شود.

2 1

فرآیند تبدیل JSON به رشته، مطابق گام های جدول(1)می باشد:

– شی به فرمت کلید-مقدار تبدیل شده به طوری که کلید، عمق جایگاه مقدار را مشخص می نماید.

– کلیدها بر اساس حروف الفبا مرتب شوند.

– سپس مقدارها به ترتیب با هم ادغام شوند:

  • از کاراکتر # به عنوان جداکننده مقادیر(اقلام اطلاعاتی)استفاده شود.
  • در صورتی که کاراکتر# در متن وجود داشته باشد، با ## مشخص می گردد.
  • در صورتی که مقدار فیلدی در رشته، null یا “” باشد؛ با ### مشخص می گردد.

– در آخر آرایه ای از روی این رشته ایجاد می شود.

3

نکات:

  •  در صورتی که داخل JSON آرایه وجود داشته باشد، ترتیب عناصر آرایه دستکاری نشده و با همان ترتیب در نظر گرفته می شود.
  •  در صورتی که ریشه JSON آرایه باشد، داخل فیلد packets قرارگرفته و تبدیل به شی می شود.

روش پیاده سازی نرمالسازی JSON در پیوست های 1-1 و 1-2 ارائه شده است.

6-2-2 فرآیند امضا صورتحساب

برای امضا صورتحساب باید اطلاعات JSON صورتحساب به روشی که برای نرمالسازی بیان شد نرمال شوند. به عنوان مثال اطلاعات JSON صورتحساب زیر را در نظر بگیرید:

4

5

6

◊ تمام اطلاعات پر شده در JSON غیرواقعی و تستی می باشد.

بعد از نرمال سازی JSON صورتحساب مورد نظر، رشته نرمال شده به صورت زیر بدست می آید:

1000000#1#########90000###0###1000000#96#############1000000###2153265
پاستیل میوه ای #989636
1#1655620821274#######90000###############0.09#90000#90000#1090000###شیبابا
655620821274#0002F2B4E7#1#1#0.0#2#########1#1000000###AA56CD0E0620002F2
B4E78#1090000#0###32652362589632#1#0.0#1000000#90000#90000#5656565#5646556
#6037 – 9972 – 9856 – 9865#1655620821274#null#54554224#544542424

رشته تولید شده در مراحل بالا به وسیله کلید خصوصی (مودی/شرکت معتمد) با الگوریتم SHA256-RSA2048هش وامضا می شود و خروجی آن در فیلد dataSignature در شی packet قرارمی گیرد.

◊کد روش امضا در پیوست شماره 1-3 ارائه شده است.

6-3 نحوه رمزگذاری صورتحساب

برای رمزگذاری صورتحساب میبایست یک کلید متقارن (به روش AES/GCM/NoPADDING) با طول 256 بیت تولید شود. برای رمزگذاری از طریق AES/GCM نیاز به یک کلید دیگر به نام IV به طول 128 بیت می باشدکه این کلید به صورت تصادفی تولید می گردد. بعد از تولید کلیدهای مورد نیاز، JSON صورتحساب را ابتدا با کلید متقارن XOR کرده و سپس به روش AES/GCM رمزگذاری می گردد.

جزئیات XOR به این شکل است که باید متنی که میخواهیم XOR کنیم (در اینجا JSON صورتحساب) باید به بلاک های 256 بیتی تبدیل شود و هر بلاک با کلید متقارن که 256 بیت است XOR شود .با این روش ممکن است که بلاک آخر تعداد بیت کمتر از 256 داشته باشد که با همان تعداد از کلید متقارن XOR انجام می شود . برای صورتحساب تستی بخش قبل کلید متقارن رمز شده و IV به صورت hex در زیر نمایش داده شده است :

AES key : 4fda3c622e966e0839441401bbd3b8f191d4267bf5f19b40812a34b212fd3ed9
IV : 4fda3c622e966e0839441401bbd3b8f191d4267bf5f19b40812a34b212fd3ed9

نمونه صورتحساب رمز شده به شکل زیر است :

7

8

کد روش رمزگذاری به روش متقارن GCM/AES در پیوست 1-4 ارائه شده است.

پس از رمزگذاری صورتحساب، از طریق الگوریتم GCM/AES ،باید کلید متقارن رمز شده و IV در کنار صورتحساب رمزشده قرار گیرد. برای رمزگذاری کلید متقارن باید از روش نامتـقارن SHA256-OAEP-RSA استفاده شودکه برای این منظور از کلید/های عمومی سازمان با طول 4096 بیت اخذ شده از یک مرکز میانی معتبر استفاده می شود (کلید عمومی سازمان با استفاده از متدINFORMATION_SERVER_GET به دست می آید).

کد روش رمزگذاری به روش نامتقارن 256RSA-OAEP-SHA در پیوست 1-5 ارائه شده است.

7- فراخوانی متدهای API جمع آوری اطلاعات سامانه مودیان

7-1 آدرس API ها 

آدرس APIهای زیرسامانه جمع آوری و پردازش اطلاعات به صورت زیر است که پیشوند تمام آدرس ها قرار می گیرد.

https://tp.tax.gov.ir/req/

آدرس هایی که با tsp شروع می شوند برای شرکت های معتمد ارائه کننده خدمات مالیاتی در نظر گرفته شده و آدرس هایی که با self-tsp شروع می شوند برای مودیانی که قصد دارند خودشان صورتحساب ارسال کنند در نظر گرفته شده است.

دومکانیزم برای درخواستهای با اولویت عادی و درخواستهای با اولویت بالا وجود دارد. آدرسnormal-enqueue برای درخواست های معمولی و fast-enqueue برای درخواستهای با اولویت بالا در نظر گرفته شده است.

متدها همراه با آدرس API در جدول(2) ارائه شده اند.

9
7-2 ساختار درخواست ها

در این بخش ساختار درخواست ها به API شرح داده شده است. در جدول (3)ساختار کلی درخواست ارائه شده است.

ساختار کلی سرویس همگام مشابه با سرویس غیرهمگام بوده و تفاوت آن درفیلد packet است. بطوری که در حالت همگام به جای آرایه ای از درخواست، فقط یک درخواست میتوان ارسال نمود (packet .)در درخواست غیرهمگام میتوان مجموعه ای از بسته ها (packets )را ارسال نمود.

10

◊فیلد signatureKeyId اختیاری بوده و مقدار پیش فرض آن برابر با null خواهد بود.

اطلاعات تکمیلی فیلدها در جدول (4)آورده شده است:

جدول 4 .توضیحات مربوط به فیلدهای درخواست

11

12

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

در صورتی که کلاینت، نتیجه رسیدگی به یک بسته را failed دریافت نماید، لازم است پس از اطمینان از عدم وجود خطاها در بسته ارسالی آن را مجدداً ارسال نماید. در ارسال مجدد باید مقدار فیلد retry برابر true باشد تا سرویس غیرهمگام در جریان ارسال مجدد درخواست باشد.

ساختار بسته های ارسالی به سرور و فیلدهای مربوطه به ترتیب مطابق جداول (5) و(6) می باشد.

13

14

15

7-3 سرویس های جمع آوری و پردازش اطلاعات

درخواست همگام و غیرهمگام دو سرویس اصلی زیر سامانه جمع آوری و پردازش اطلاعات می باشند:

731 متد غیرهمگام 

7-3-1-1 سرویس درخواست غیرهمگام (ارسال صورتحساب)

ارسال صورتحساب به صورت غیرهمگام انجام می شود و جهت ارسال به احراز هویت و امضا دیجیتال صورتحساب و کل لیست ارسالی و همچنین رمزگذاری نیاز است.

برای اینکه ساختار مناسبی برای رهگیری تغییرات بسته ها وجود داشته باشد، نوع بسته( PacketType)در صورتحساب به دو بخش تقسیم بندی می شود.

16

برای مثال اگر صورتحسابی با نسخه بسته 01 داشته باشیم، نوع بسته به صورت زیر خواهد بود:

INVOICE.V01

فرآیند ارسال صورتحساب مطابق شکل(3)و به شرح ذیل می باشد:

  1. مودی یا TSP با ارسال درخواست توکن به سرور جمع آوری فرآیند ارسال صورتحساب را شروع می کند .
  2. توکن دریافت شده در سرآیند درخواست قرار می گیرد و صورتحساب ارسال می شود.
  3. مودی یا TSP رسید یکتای دریافت صورتحساب درخواست خود را از سامانه مودیان دریافت می کند .
  4. مودی یا TSP می تواند به وسیله فراخوانی متدهای استعلام از وضعیت ارسال صورتحساب خود با خبر شود.
17

در صورتی که وضعیت درخواست به صورت “PENDING “باشد به این معنی است که هنوز درخواست پردازش نشده است.

نمونه CURL درخواست درپیوست 2-1 ارائه شده است.

7312 ساختار بسته صورتحساب

شناسنامه همه اقلام اطلاعاتی که در انواع و الگوهای صورتحساب وجود دارند به شرح جدول(7) می باشد:

18
19

20

21

22

23

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

7313 پاسخ درخواست غیرهمگام

پس از دریافت درخواست توسط سرور و بررسی مربوط به لایه انتقال پاسخ مناسب مطابق جداول(8) و (9)به کلاینت ارائه می شود.

24
25

26

7-3-2متدهای همگام

7-3-2-1سرویس درخواست های همگام

در جدول(10) جزئیات ورودی و خروجی بسته های همگام بیان شده است.

لازم به ذکر است در متدهای همگام امضای درخواست ارسالی نیاز است و داده ها به رمزگذاری نیاز ندارند.

28

7-3-2-2 پاسخ درخواست های همگام

7323 متد دریافت توکن 

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

برای ارسال توکن ابتدا عبارت Bearer اضافه شده سپس توکن ارسال می شود. نمونه CURL درخواست در پیوست 2-2 ارائه شده است.

7324 متد استعلام اطلاعات حافظه مالیاتی مودی و حد مجاز فروش مودی

با استفاده از این متد میتوان اطلاعات حافظه مالیاتی مودی را دریافت نمود.این متد نیاز به احراز هویت دارد.

نمونه CURL درخواست در پیوست 2-3 ارائه شده است.

7-3-2-5 متد استعلام بستههای ارسالی غیرهمگام 

برای استعلام وضعیت صورتحساب های ارسال شده میتوان از متدهای ذیل استفاده کرد: این متدها به احراز هویت نیاز دارند.

  • Inquiry_by_uid: کلاینت می تواند با آرایه ای از UID ها، صورتحساب های مورد نظر خود را استعلام نماید. در پاسخ وضعیت آنها باز گردانده می شود.

نمونه CURL درخواست در پیوست 2-4-1 ارائه شده است  .

نکته : وجود fiscalId در ورودی درخواست کنار هر uid ضروری می باشد.

  • Inquiry_by_reference_number: در این متد،    کلاینت   میتواند   با آرایه ای از reference_number ها ،صورتحساب های مورد نظر خود را استعلام نماید. در پاسخ وضعیت آنها باز گردانده می شود.

نمونه CURL درخواست در پیوست 2-4-2 ارائه شده است.

  • Inquiry_by_time: با این متد صورتحساب های دارای خطا از یک زمان مشخص تا زمان حال مشخص می شوند.

نمونه CURL درخواست در پیوست 2-4-3 ارائه شده است.

  • Inquiry_by_time_range: با این متد صورتحساب های دارای خطا در یک بازه زمانی مشخص می شوند.

نمونه CURL درخواست در پیوست 2-4-4 ارائه شده است.

نکته: فیلد time ، تاریخ شمسی با فرمت YYYYMMDD است و دقت شود فقط در خروجی این درخواست بسته هایی که وضعیت FAILED دارند برگشت داده می شوند.

732-6 متد دریافت اطلاعات سرور

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

نمونه CURL درخواست در پیوست 2-5 ارائه شده است.

7-3-2-7 متد دریافت لیست کامل شناسه کالا/خدمات و نرخ مالیاتی

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

نمونه CURL درخواست در پیوست 2-6 ارائه شده است.

◊ارسال فیلد فیلتر و مرتب سازی در ورودی اختیاری است. شماره صفحه از یک شروع می شود.

برای مثال اگر 10 رکورد اول را بخواهیم دریافت کنیم ورودی به صورت زیر خواهد بود:

732-8 متد استعلام اطلاعات شماره اقتصادی

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

نمونه CURL درخواست در پیوست 2-7 ارائه شده است.

8- لیست خطاها

8-1 مدل داده خطاها
8-2 لیست خطاهای لایه انتقال

 8-3لیست خطاهای لایه محتوا

پیوست1

1-1 کد نرمالسازی JSON به زبان java

⇐ در کلاس CryptoUtils در کد بالا می توانید از متد استاتیک normalJson استفاده کنید.

2-1 کد DotNet برای نرمالسازی JSON

⇐کد بالا از کلاس دیگری به نام JSONHelper استفاده می کند که در ادامه آورده شده:

 

⇐ در کلاس CryptoUtils می توانید از متد NormalJson برای نرمالسازی JSON مدنظر استفاده کنید.

13 روش امضا رشته( string)

1-3-1 کد جاوا
1-3-2 کد #C

 

14 کد روش رمزگذاری به روش متقارن AES/ GCM 

141 کد جاوا :  

⇐ متد نحوه ایجاد کلید متقارن Random:

⇐ متد ایجاد یک مقدار Random مورد استفاده در رمزنگاری متقارن(IV)

⇐ نحوه رمزنگاری با استفاده از SecretKey و IV

⇐ کد نحوه XOR کردن دو آرایه

142 کد #C

در #C می توانید با [ ]byte به صــورت کاملا تصــادفی دو کلید IV و Secret Key را ایجاد کنید و از روش زیر متن خود را encrypt کنید :

5- کد روش رمزگذاری به روش نامتقارن RSA_OAEP_SHA256

1-5-1 کد جاوا
2-5-1 کد #C

پیوست 2

1-2 دریافت صورتحساب
  • نمونه CURL :


  • نمونه پاسخ درخواست بالا

  • نمونه پاسخ درخواست در صورت رخداد خطا

 

2-2 متد دریافت توکن

  • نمونه CURL:

  • نمونه پاسخ درخواست

 


2-3 استعلام اطلاعات حافظه مالیاتی مودی و حد مجاز فروش مودی

  • نمونه CURL:

  • نمونه پاسخ سرویس بالا:

4-2 دریافت پاسخ بسته های ارسالی غیر همگام (استعلام)

1-4-3 استعلام از طریق :UID (Inquiry_by_uid)
  • نمونه CURL:


2-4-2 استعلام با رسید یکتای دریافت صورتحساب (Inquiry_by_reference_number):

  •  نمونه ارسال درخواست CURL :  

243 دریافت خطاهای بسته های ارسالی غیرهمگام با استفاده از زمان(INQUIRY_BY_TIME):

  • نمونه CURL:

2-4-4 دریافت خطاهای بسته های ارسالی غیر همگام با استفاده از بازه زمانی(NQUIRY_BY_TIME_RANGE)

  • نمونه CURL:

 

2-4-5 نمونه پاسخ درخواست های استعلام

نمونه پاسخ درخواست های استعلام در صورت رخ دادن خطا

5-2 دریافت اطلاعات سرور (GET_SERVER_INFORMATION)

  • نمونه CURL:
1 11

نمونه پاسخ درخواست

6-2 دریافت لیست کامل شناسه کالا/خدمات و نرخ مالیاتی (GER_SERVER_STUFF_LIST)

  • نمونه CURL:

  • نمونه پاسخ

5 6

7-2 استعلام اطلاعات شماره اقتصادی (GET_ECONOMIC_CODE_INFORMATION)

  • نمونه CURL:

  • نمونه پاسخ

دیدگاهی در مورد “دستورالعمل فنی نحوه اتصال به سامانه مودیان

  1. محمد گفت:

    با سلام. این وب سرویس مورد تائید سازمان مالیاتی هست؟

    1. بله از خود سازمان دریافت شده

  2. امیرکیان گفت:

    باسلام
    api ها و skd های جاوا سامانه مودیان در کجا قرار گرفته است ؟!

  3. مصطفی حسینی گفت:

    سلام خسته نباشید میخوساتم بپرسم پراپرتی signature در GET_TOKEN همون کلید عمومی کاربر هستش ؟
    و اگر هستش میخواستم بدونم دوباره رمز نگاری شده چوند فرمتی که داره با فرمت کلید عمومی که ساختم (BaseString64) یکسان نیست
    خیلی ممنون متشکر

  4. user_9355978663 گفت:

    با سلام، هیچ فایل پیوستی و یا کد نمونه ای که نشون نمیده در بخش پیوست!!!!

  5. ali گفت:

    سلام ما در پیاده سازی دچار اشکالاتی هستیم .شما خودتون پیاده سازی رو انجام داده اید

  6. مصطفی گفت:

    سلام. چرا پیوستاتون ناقصه؟ مثلا پیوست ۲-۲ نمونه CURL نیست

    1. همکاران در حال تکمیل می باشند

  7. مهرداد گفت:

    سلام و وقتتون بخیر
    میخواستم بدونم برای تست فضایی درنظر گرفته شده یا شناسه و کلید خاصی در اختیارمون میزارن که بتونیم تست کنیم ؟

    1. متاسفانه امکانش توسط مجموعه ما وجود ندارد

دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *