روش پیکربندی، پیش‌نیازها و نکات ضروری در پیاده‌سازی رابط برنامه‌نویسی

روش پیکربندی
واسط برنامه‌نویسی حسابفا (API) یک REST API مبتنی بر پروتکل HTTP است. هر عملیات به‌صورت یک متد در سمت سرور پیاده‌سازی شده و برنامه‌نویس می‌تواند آن را مستقیماً فراخوانی کند. داده‌های ارسالی و دریافتی در قالب JSON هستند و پاسخ همۀ متدها ساختار مشخصی دارد که در ادامه توضیح داده شده است.
پیش‌نیازها
  1. apiKey: مجوز استفاده از API حسابفا با apiKey تأیید می‌شود. apiKey برای هر کسب‌وکار یکتاست و معرف همان کسب‌وکار است.
    برای دریافت این کلید، در حسابفا به بخش تنظیمات > تنظیمات مالی > API بروید.
  2. loginToken: توکن ورود به کسب‌وکار
    این توکن را می‌توانید در حسابفا، بخش تنظیمات > تنظیمات مالی > API دریافت کنید.
  3. userId: ایمیل یا شماره موبایل صاحب کسب‌وکار که با آن وارد حسابفا می‌شوید.
  4. password: کلمۀ عبور صاحب کسب‌وکار که با آن وارد حسابفا می‌شوید.

نکات ضروری

  1. apiKey و loginToken به کسب‌وکار شما دسترسی کامل می‌دهند؛ آن‌ها را در کد صفحه‌های عمومی وب‌سایت قرار ندهید.
  2. احراز هویت به دو روش انجام می‌شود:
    از طریق loginToken
    از طریق userId و password صاحب کسب‌وکار
    اگر loginToken ارسال شود، نیازی به ارسال userId و password نیست؛ در غیر این صورت، احراز هویت با userId و password انجام می‌شود.
  3. همۀ درخواست‌ها باید با روش POST ارسال شوند.
  4. بدنۀ درخواست یک Object JSON مسطح است؛ یعنی apiKey، loginToken (یا userId/password) و سایر پارامترهای هر متد، همگی در یک سطح و کنار هم در همان Object اصلی قرار می‌گیرند، بدون هیچ پوششی دور آن‌ها. مثال آن را در پایین همین صفحه ببینید.
  5. همۀ تاریخ‌ها در API حسابفا میلادی هستند. در درخواست، قالب YYYY-MM-DD HH:MM:SS (یا YYYY-MM-DDTHH:MM:SS) پذیرفته می‌شود و تاریخ‌ها در پاسخ با قالب YYYY-MM-DDTHH:MM:SS برگردانده می‌شوند.
  6. تعداد درخواست‌ها از هر IP محدود است. حداکثر 120 درخواست در دقیقه (2 درخواست در ثانیه) را با اطمینان می‌توانید ارسال کنید؛ ارسال تعداد زیادی درخواست به‌صورت هم‌زمان یا پشت‌سرهم، با خطای 101 روبه‌رو می‌شود. اگر خطای 101 دریافت کردید، دست‌کم 10 ثانیه هیچ درخواستی ارسال نکنید؛ هر درخواست در این مدت، محدودیت را تمدید می‌کند.

توجه

  1. مقدار yearId برای نخستین سال مالی 1، برای سال مالی بعدی 2 و به همین ترتیب است.
  2. اگر yearId ارسال نشود، آخرین سال مالی در نظر گرفته می‌شود؛ در غیر این صورت، اطلاعات سال مالی مشخص‌شده با yearId برگردانده می‌شود.

نکات مهم


requestUniqueId: شناسۀ یکتای درخواست

  1. ارسال شناسۀ یکتای درخواست (requestUniqueId) از پردازش دوبارۀ درخواست‌های تکراری جلوگیری می‌کند. اگر این شناسه ارسال نشود، تکراری بودن درخواست بررسی نمی‌شود.
  2. شناسۀ یکتای درخواست فقط در متدهایی بررسی می‌شود که مانند Save، Delete و Set اطلاعات را تغییر می‌دهند یا ذخیره می‌کنند. در متدهایی مانند Get، Find و List که فقط اطلاعات را دریافت می‌کنند، این شناسه نادیده گرفته می‌شود.
  3. شناسۀ یکتای درخواست 24 ساعت معتبر است و پس از آن نادیده گرفته می‌شود.
  4. اگر درخواستی با شناسۀ تکراری ارسال شود، دوباره پردازش نمی‌شود و خطای 120 (Duplicate request id) برمی‌گردد.
  5. این شناسه باید در قالب GUID ارسال شود (xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx) که در آن x یک رقم هگزادسیمال بین 0 تا F است. مثال: 3adb4da2-a970-441e-96fd-9864a40d034d