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

یکپارچه‌سازی کامل برای تیم‌های فنی و سامانه‌های فروش

اتصال نرم‌افزار به آسا با وب‌سرویس (API) و ارسال خودکار صورتحساب

نرم‌افزار فروش، فروشگاه اینترنتی یا ERP شما صورتحساب را مستقیم و خودکار برای آسا می‌فرستد و نتیجه را از همان مسیر می‌گیرد. کنترل، امضا و ارسال به سامانه مؤدیان با آساست؛ ۲۴ ساعته، ۷ روز هفته و با ظرفیت تا ۱٬۰۰۰ صورتحساب در ثانیه برای هر مؤدی.

دانش فنی لازم
برنامه‌نویس
حجم مناسب صورتحساب
زیاد تا بسیار زیاد
راه‌اندازی
نیازمند توسعه در سمت شما
میزان خودکارسازی
کاملاً خودکار

روش «وب‌سرویس (API)» چیست و برای چه کسی مناسب است؟

وب‌سرویس نسخه ۲ آسا یک API مبتنی بر JSON در نشانی api-v2.asatsp.ir است. با آن در هر درخواست ۱ تا ۲۵۰ صورتحساب ثبت می‌کنید، تعیین می‌کنید بلافاصله به سامانه مؤدیان ارسال شوند یا فقط ثبت بمانند، و بعداً وضعیت هر صورتحساب را با شناسه داخلی خودتان، شماره صورتحساب یا شماره منحصربه‌فرد مالیاتی استعلام می‌کنید.

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

احراز هویت با Client ID و Client Secret انجام می‌شود که در پنل آسا صادر می‌کنید. برای آزمایش، صورتحساب را با نشان Sandbox و شناسه یکتای حافظه مالیاتی محیط آزمایشی سازمان بفرستید تا چیزی به محیط عملیاتی نرود.

مناسب است اگر…

  • نرم‌افزار فروش، فروشگاه اینترنتی، برنامه موبایل یا ERP اختصاصی دارید و تیم فنی در اختیارتان است.
  • می‌خواهید صورتحساب به‌محض صدور و بدون دخالت کاربر ثبت و ارسال شود.
  • شرکت نرم‌افزاری هستید و می‌خواهید ارسال به سامانه مؤدیان را به محصول خود اضافه کنید.
  • نرم‌افزار شما ابری است یا نمی‌خواهید برنامه‌ای کنار پایگاه داده نصب شود.

روش دیگری انتخاب کنید اگر…

  • برنامه‌نویس در اختیار ندارید و از سپیدار، هلو، تدبیر یا سیبا استفاده می‌کنید: اتصال نرم‌افزار حسابداری
  • فقط می‌خواهید تعدادی صورتحساب را یک‌جا و بدون توسعه ثبت کنید: فایل اکسل

صورتحساب در این روش چه مسیری را طی می‌کند؟

  1. نرم‌افزار شماساخت صورتحساب و فراخوانی API
  2. وب‌سرویس آسااحراز هویت، اعتبارسنجی و ثبت
  3. امضا و ارسالبا کلید معتمد آسا به سامانه مؤدیان
  4. پیگیری وضعیتاستعلام نتیجه از همان API
مسیر صورتحساب در روش «وب‌سرویس (API)» تا سامانه مؤدیان

مراحل راه‌اندازی و استفاده

  1. ثبت‌نام و تعریف کسب‌وکار

    در پنل آسا کسب‌وکار را با شناسه یکتای حافظه مالیاتی تعریف کنید. برای آزمایش، شناسه حافظه مالیاتی محیط Sandbox را هم ثبت کنید.

  2. صدور اعتبارنامه API

    در پنل، از «کسب‌وکارها» وارد تنظیمات کسب‌وکار شوید و در زبانه «اتصال API v2» اعتبارنامه صادر کنید. Client Secret فقط همان لحظه نمایش داده می‌شود؛ آن را در جای امنی نگه دارید.

  3. دریافت توکن دسترسی

    با Client ID و Client Secret، سرویس دریافت توکن را فراخوانی کنید و توکن را در سرآیند Authorization درخواست‌های بعدی بگذارید. اعتبار پیش‌فرض توکن ۶۰ دقیقه است.

  4. ثبت صورتحساب در محیط آزمایشی

    صورتحساب را با مدل ساده یا JSON استاندارد و با نشان Sandbox بفرستید و پاسخ هر صورتحساب را بررسی کنید. خطاها به تفکیک فیلد برمی‌گردند.

  5. پیگیری وضعیت

    وضعیت صورتحساب را با سرویس‌های استعلام بپرسید: در صف ارسال، ارسال‌شده و در انتظار پاسخ سامانه، موفق یا دارای خطا.

  6. انتقال به محیط عملیاتی

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

مزایا و معایب روش «وب‌سرویس (API)»

مزایا

  • خودکارسازی کاملصورتحساب مستقیم از نرم‌افزار شما ثبت و ارسال می‌شود و نتیجه را هم همان نرم‌افزار استعلام می‌کند.
  • ظرفیت بالا، ۲۴ ساعتهحجم بالای فروش هم معطل نمی‌ماند: وب‌سرویس شبانه‌روزی و بدون تعطیلی پاسخ می‌دهد و ظرفیت ارسال آن تا ۱٬۰۰۰ صورتحساب در ثانیه برای هر مؤدی است.
  • مستقل از سیستم‌عامل و پایگاه دادههر زبان و سکویی که بتواند درخواست HTTP بفرستد کافی است؛ روی سرور شما چیزی نصب نمی‌شود.
  • ارسال گروهیدر هر درخواست تا ۲۵۰ صورتحساب ثبت می‌شود و پاسخ هر صورتحساب جداگانه برمی‌گردد.
  • مدل ساده در کنار JSON رسمیاگر نمی‌خواهید ساختار رسمی سامانه مؤدیان را خودتان بسازید، مدل ساده کار را کوتاه می‌کند.
  • محیط آزمایشیبا نشان Sandbox پیش از ارسال واقعی، اتصال و داده‌ها را آزمایش کنید.
  • مستندات کامل با نمونه‌کدمستندات فارسی همراه نمونه درخواست به cURL، JavaScript، C#، Python و PHP در دسترس است.
  • جلوگیری از ثبت تکراریهر درخواست شناسه یکتا دارد و درخواست تکراری دوباره ثبت نمی‌شود.

معایب و محدودیت‌ها

  • نیاز به برنامه‌نویسپیاده‌سازی، آزمون و نگهداری اتصال بر عهده تیم فنی شماست و زمان توسعه می‌خواهد.
  • پیگیری وضعیت با استعلامنتیجه ارسال خودکار به نرم‌افزار شما اعلام نمی‌شود؛ وضعیت را باید دوره‌ای استعلام کنید.
  • مسئولیت نگهداری اعتبارنامهنگهداری امن Client Secret و تعویض دوره‌ای آن با شماست.
  • کیفیت داده با نرم‌افزار شماستشناسه کالا/خدمت، اطلاعات خریدار و محاسبات باید در سامانه شما درست تولید شود؛ خطای داده یعنی رد صورتحساب.

امنیت روش «وب‌سرویس (API)»

  • اعتبارنامه اختصاصی هر کسب‌وکار

    هر کسب‌وکار Client ID و Client Secret خودش را دارد. Secret فقط یک‌بار نمایش داده می‌شود و قابل بازیابی نیست.

  • تعویض فوری Secret

    اگر احتمال می‌دهید Secret فاش شده باشد، با یک کلیک Secret جدید بگیرید؛ Secret قبلی همان لحظه نامعتبر می‌شود.

  • توکن کوتاه‌مدت

    درخواست‌ها با توکنی انجام می‌شوند که به‌صورت پیش‌فرض ۶۰ دقیقه اعتبار دارد.

  • دسترسی محدود با scope

    برای هر توکن فقط دسترسی لازم را بخواهید: ثبت و ارسال، ابطال، یا فقط استعلام.

  • فقط HTTPS

    همه درخواست‌های وب‌سرویس روی ارتباط رمزنگاری‌شده انجام می‌شوند.

  • محیط آزمایشی جدا

    صورتحساب‌های آزمایشی با نشان Sandbox و شناسه جداگانه فرستاده می‌شوند و به محیط عملیاتی نمی‌روند.

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

پیش‌نیازها

  • برنامه‌نویس یا تیم فنی آشنا با فراخوانی سرویس‌های HTTP و JSON
  • Client ID و Client Secret صادرشده از زبانه «اتصال API v2» در تنظیمات کسب‌وکار
  • شناسه یکتای حافظه مالیاتی فعال؛ برای آزمایش، شناسه جداگانه محیط Sandbox سازمان
  • شناسه ۱۳ رقمی کالا/خدمت اقلام و کد واحدهای اندازه‌گیری (از سرویس داده‌های مرجع)

پیش‌نیاز مشترک همه روش‌ها ثبت‌نام رایگان در پنل آسا و دریافت شناسه یکتای حافظه مالیاتی با کلید معتمد آسا است. مراحل را در راهنمای ثبت‌نام و دریافت شناسه یکتا ببینید.

مستندات و منابع این روش

مشخصات فنی در یک نگاه

مشخصات فنی وب‌سرویس نسخه ۲ آسا
مشخصهمقدار
نشانی پایهhttps://api-v2.asatsp.ir
قالب دادهJSON با کدگذاری UTF-8
احراز هویتClient ID و Client Secret ← توکن دسترسی (Bearer)
اعتبار توکن۶۰ دقیقه (پیش‌فرض)
تعداد صورتحساب در هر درخواست۱ تا ۲۵۰
ظرفیت ارسالتا ۱٬۰۰۰ صورتحساب در ثانیه برای هر مؤدی
دریافت نتیجهبا سرویس‌های استعلام؛ وب‌هوک ندارد
محیط آزمایشینشان sandBox روی هر صورتحساب، با شناسه حافظه مالیاتی Sandbox
انواع صورتحسابنوع ۱ و نوع ۲؛ موضوع اصلی، اصلاحی، ابطالی و برگشت از فروش
نمونه‌کدcURL، JavaScript، C#، Python، PHP

نمونه درخواست دریافت توکن

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

POST /api/auth/v2/token
curl -X POST "https://api-v2.asatsp.ir/api/auth/v2/token" \
  -H "Content-Type: application/json; charset=utf-8" \
  -d '{
    "grant_type": "client_credentials",
    "client_id": "<client_id>",
    "client_secret": "<client_secret>",
    "scope": "v2.invoice.send v2.invoice.read"
  }'

سرویس‌های اصلی

سرویس‌های اصلی وب‌سرویس نسخه ۲ آسا
کاربردسرویس
دریافت توکن دسترسیPOST /api/auth/v2/token
ثبت صورتحساب با JSON استاندارد سازمانPOST /api/invoice/send
ثبت صورتحساب فروش نوع ۱ با مدل سادهPOST /api/invoice/salesWithBuyerData
ثبت صورتحساب فروش نوع ۲ با مدل سادهPOST /api/invoice/salesEndUser
ارسال صورتحساب‌های ثبت‌شده به سازمانPOST /api/invoice/sendInvoice
ثبت صورتحساب ابطالیPOST /api/invoice/cancelInvoice
پیگیری وضعیت با شناسه داخلیPOST /api/invoice/inquiryInternalId
پیگیری وضعیت با شماره مالیاتیPOST /api/invoice/inquiryTaxId
ثبت پرداخت صورتحساب ارسال‌شدهPOST /api/invoice/registerPayment
فهرست واحدهای اندازه‌گیریGET /api/InvoiceItemUnit

این جدول خلاصه است. فهرست کامل سرویس‌ها، مدل ساده سایر الگوها، ساختار درخواست و پاسخ و کدهای خطا در مستندات کامل آمده است.

پرسش‌های متداول درباره روش «وب‌سرویس (API)»

Client ID و Client Secret را از کجا بگیرم؟

در پنل آسا از «کسب‌وکارها» وارد تنظیمات کسب‌وکار شوید و در زبانه «اتصال API v2» اعتبارنامه صادر کنید. Client Secret فقط هنگام صدور یا تعویض نمایش داده می‌شود.

آیا محیط آزمایشی (Sandbox) وجود دارد؟

بله. هر صورتحساب را می‌توانید با نشان sandBox بفرستید. برای این کار باید شناسه یکتای حافظه مالیاتی محیط آزمایشی سازمان را جداگانه دریافت و در پنل ثبت کرده باشید؛ شناسه عملیاتی در محیط آزمایشی به کار نمی‌رود.

در هر درخواست چند صورتحساب می‌توان فرستاد؟

از ۱ تا ۲۵۰ صورتحساب. پاسخ هر صورتحساب جداگانه و به ترتیب ورودی برمی‌گردد و خطای یک صورتحساب مانع ثبت بقیه نمی‌شود.

آیا باید JSON رسمی سامانه مؤدیان را خودمان بسازیم؟

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

نتیجه ارسال به سامانه مؤدیان را چگونه بفهمیم؟

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

تفاوت نسخه ۱ و ۲ وب‌سرویس چیست؟

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

روش‌های دیگر اتصال به آسا

مقایسه همه روش‌های اتصال و ارسال صورتحساب

برای شروع با این روش آماده‌اید؟

ثبت‌نام در آسا رایگان است. اگر مطمئن نیستید این روش برای کسب‌وکار شما مناسب است، کارشناسان آسا راهنمایی‌تان می‌کنند.

شروع رایگان

بدون هزینه ثبت‌نام، بدون گواهی امضا، بدون تعطیلی.