نرم‌افزار و ابزار

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

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

  • 6 دقیقه مطالعه
  • آخرین به‌روزرسانی: ۲۲ اردیبهشت ۱۴۰۵

Method POST

Content-Type application/json

Authentication Header

Authorization: YOUR_API_TOKEN

Endpoint

https://panel.kariyahesab.com/DefinitionEndpoint/product

این API چه کاری انجام می‌دهد؟

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

  • ثبت خودکار کالاهای فروشگاه اینترنتی در کاریا حساب
  • انتقال فهرست خدمات از CRM یا نرم‌افزار اختصاصی
  • همگام‌سازی اطلاعات پایه کالا میان انبار و سیستم مالی
  • کاهش ورود دستی و خطاهای ناشی از ثبت چندباره اطلاعات

محدوده این Endpoint: این وب‌سرویس برای «تعریف کالا یا خدمت» است و به‌تنهایی فاکتور فروش ایجاد نمی‌کند. برای ثبت فاکتور پس از تعریف کالا، مستندات API فاکتور فروش کاریا حساب را ببینید.

پیش‌نیاز دریافت دسترسی API

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

  • درخواست فعال‌سازی وب‌سرویس را برای تیم پشتیبانی یا فنی کاریا ارسال کنید.
  • IP ثابت یا URL سروری را که درخواست‌ها از آن ارسال می‌شوند اعلام کنید.
  • توکن Authorization و شناسه‌های mizekar، mizekaruser، userid و fiscalyear را دریافت کنید.
  • اتصال را ابتدا با یک کالای آزمایشی و اطلاعات غیرحساس بررسی کنید.
  • پس از تأیید پاسخ و مشاهده رکورد در پنل، همگام‌سازی انبوه را فعال کنید.

آدرس وب‌سرویس و متد درخواست

Endpoint

https://panel.kariyahesab.com/DefinitionEndpoint/product HTTP Method

POST به حروف بزرگ و کوچک مسیر Endpoint توجه کنید و همان آدرس درج‌شده در مستندات را بدون تغییر استفاده کنید.

احراز هویت و Headerهای درخواست

توکن دسترسی باید در هدر Authorization ارسال شود. در الگوی فعلی مستندات کاریا، پیشوند Bearer ذکر نشده است؛ بنابراین مقدار دریافتی از تیم پشتیبانی را دقیقاً طبق نمونه زیر قرار دهید.

Request Headers

Authorization: YOUR_API_TOKEN Content-Type: application/json Accept: application/json پارامترهای سیستمی این چهار مقدار به میزکار، کاربر و سال مالی فعال مربوط‌اند و هنگام فعال‌سازی API در اختیار شما قرار می‌گیرند.

فیلدتوضیحوضعیتمقدار
mizekarشناسه میزکار فعالالزامیمقدار اختصاصی دریافتی از کاریا
mizekaruserشناسه کاربر میزکارالزامیمقدار اختصاصی دریافتی از کاریا
useridشناسه کاربر ثبت‌کننده اطلاعاتالزامیمقدار اختصاصی دریافتی از کاریا
fiscalyearشناسه سال مالی فعالالزامیمقدار اختصاصی دریافتی از کاریا

پارامترهای تعریف کالا و خدمات

فیلدتوضیحوضعیتقالب و محدودیت
kalaorkhadنوع رکوردالزامی1 برای کالا و 2 برای خدمت
kalacodeکد داخلی کالا یا خدمتالزامیرشته عددی، حداقل ۱ و حداکثر ۱۰ رقم
nameنام کالا یا خدمتالزامیرشته متنی، حداکثر ۲۵۰ کاراکتر
shenasekalaشناسه کالا یا خدمتالزامیرشته عددی دقیقاً ۱۳ رقمی
arzeshafzodeنرخ مالیات و عوارض ارزش افزودهالزامیعدد بین ۰ تا ۹۹؛ نرخ متناسب با کالا یا خدمت ارسال شود
priceقیمت کالا یا خدمتاختیاریمقدار عددی؛ واحد پول باید پیش از پیاده‌سازی با تیم فنی تأیید شود
desتوضیحات تکمیلیاختیاریرشته متنی
measurement_unitsکد واحد اندازه‌گیریالزامیکد معتبر دریافت‌شده از ابزار واحد اندازه‌گیری در کاریا

چرا کدها به‌صورت String ارسال شده‌اند؟ فیلدهایی مانند kalacode و shenasekala شناسه‌اند، نه مقدار قابل محاسبه. ارسال آن‌ها به شکل رشته، از حذف صفرهای ابتدایی یا تغییر ناخواسته عدد در برخی زبان‌ها و پایگاه‌های داده جلوگیری می‌کند.

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

نمونه بدنه JSON

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

JSON Request Body

{ "mizekar": 10, "mizekaruser": 10, "userid": 88718, "fiscalyear": 5730, "name": "کالای نمونه", "kalacode": "12334566", "kalaorkhad": "1", "price": "10000", "des": "ثبت آزمایشی از طریق API", "shenasekala": "4111111111111", "measurement_units": "6214", "arzeshafzode": "10" } نمونه درخواست cURL cURL

curl --request POST --url "https://panel.kariyahesab.com/DefinitionEndpoint/product" --header "Authorization: YOUR_API_TOKEN" --header "Accept: application/json" --header "Content-Type: application/json" --data '{ "mizekar": 10, "mizekaruser": 10, "userid": 88718, "fiscalyear": 5730, "name": "کالای نمونه", "kalacode": "12334566", "kalaorkhad": "1", "price": "10000", "des": "ثبت آزمایشی از طریق API", "shenasekala": "4111111111111", "measurement_units": "6214", "arzeshafzode": "10" }' نمونه کامل درخواست HTTP Raw HTTP Request

POST /DefinitionEndpoint/product HTTP/1.1 Host: panel.kariyahesab.com Authorization: YOUR_API_TOKEN Accept: application/json Content-Type: application/json { "mizekar": 10, "mizekaruser": 10, "userid": 88718, "fiscalyear": 5730, "name": "کالای نمونه", "kalacode": "12334566", "kalaorkhad": "1", "price": "10000", "des": "ثبت آزمایشی از طریق API", "shenasekala": "4111111111111", "measurement_units": "6214", "arzeshafzode": "10" } اعتبارسنجی قبل از ارسال درخواست هدرهای Authorization و Content-Type ارسال شده باشند. هر چهار شناسه سیستمی متعلق به یک میزکار و سال مالی فعال باشند. kalaorkhad فقط یکی از مقادیر 1 یا 2 باشد. kalacode بین ۱ تا ۱۰ رقم و shenasekala دقیقاً ۱۳ رقم باشد. کد measurement_units از اطلاعات معتبر داخل کاریا دریافت شده باشد. نرخ arzeshafzode با وضعیت واقعی کالا یا خدمت تطبیق داده شود. واحد پول فیلد price پیش از اتصال عملیاتی با تیم کاریا تأیید شود. پیش از Retry، مشخص شود درخواست قبلی ثبت شده است یا خیر تا کالای تکراری ایجاد نشود. پاسخ API و مدیریت خطاها در اطلاعات فعلی، نمونه بدنه پاسخ موفق، فهرست کدهای وضعیت HTTP و ساختار خطاهای این Endpoint اعلام نشده است. بنابراین کلاینت نباید متن پاسخ یا یک کد حدسی را مبنای ثبت موفق قرار دهد. هنگام دریافت دسترسی، قرارداد پاسخ را از تیم فنی دریافت و همان را در برنامه پیاده‌سازی کنید.

  • کد HTTP و بدنه پاسخ در ثبت موفق
  • پاسخ توکن نامعتبر یا IP تأییدنشده
  • رفتار سیستم در صورت تکراری بودن kalacode یا shenasekala
  • خطای شناسه واحد اندازه‌گیری یا سال مالی نامعتبر
  • محدودیت نرخ درخواست‌ها (Rate Limit)
  • وجود یا نبود سازوکار Idempotency برای Retry امن

در لاگ برنامه، زمان درخواست، Endpoint، شناسه داخلی محصول و کد وضعیت را ذخیره کنید؛ اما توکن Authorization و اطلاعات حساس را در لاگ ننویسید.

ارتباط این API با سایر ابزارهای کاریا حساب

فعال‌سازی و تست وب‌سرویس

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

سؤالات متداول

آیا می‌توان API را مستقیماً از مرورگر فراخوانی کرد؟

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

مقدار Authorization باید با Bearer ارسال شود؟

در الگوی فعلی مستندات کاریا، هدر به شکل Authorization: YOUR_API_TOKEN معرفی شده و پیشوند Bearer ذکر نشده است. مقدار را دقیقاً مطابق دستور تیم فنی ارسال کنید.

برای تعریف خدمت، چه مقداری ارسال می‌شود؟

در فیلد kalaorkhad مقدار 2 برای خدمت و مقدار 1 برای کالا در نظر گرفته شده است.

کد واحد اندازه‌گیری را از کجا دریافت کنیم؟

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

آیا این API کالا را به سامانه مودیان ارسال می‌کند؟

این Endpoint برای تعریف کالا یا خدمت در کاریا حساب است. تعریف کالا با ثبت یا ارسال صورتحساب الکترونیکی یک عملیات جداگانه محسوب می‌شود.

چرا نمونه HTTP قبلی خطا می‌داد؟

مسیر درخواست باید با Endpoint اصلی یکسان باشد. مسیر صحیح این مستند /DefinitionEndpoint/product است و نباید با /ProductEndpoint جایگزین شود.

1. چگونه کالا یا خدمات جدید را در کاریا حساب ثبت کنیم؟

برای ثبت کالا یا خدمات باید یک درخواست POST به آدرس زیر ارسال کنید: https://panel.kariyahesab.com/DefinitionEndpoint/product

2. تفاوت مقدار 1 و 2 در فیلد kalaorkhad چیست؟

1 = کالا 2 = خدمات

3. اگر شناسه کالا (shenasekala) کمتر یا بیشتر از 13 رقم باشد چه می‌شود؟

فیلد shenasekala باید دقیقاً 13 رقم عددی باشد. در صورت ارسال مقدار نامعتبر، درخواست توسط API رد می‌شود.

4. آیا وارد کردن قیمت کالا الزامی است؟

خیر، فیلد price اختیاری است و در صورت نیاز می‌توانید آن را ارسال کنید.

5. کد واحد اندازه‌گیری (measurement_units) را از کجا دریافت کنیم؟

کد واحد اندازه‌گیری از بخش «واحد اندازه‌گیری» در نرم‌افزار کاریا حساب دریافت می‌شود.

6. در صورت ارسال نکردن توکن Authorization چه اتفاقی می‌افتد؟

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

7. آیا امکان اتصال فروشگاه اینترنتی به این API وجود دارد؟

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

این مطلب برایتان مفید بود؟

نظرات

تجربه‌تان را بنویسید. نظر شما پس از بررسی منتشر می‌شود و شماره‌تان جایی نمایش داده نمی‌شود.

هنوز نظری ثبت نشده است. اولین نفر باشید.

اظهارنامه و سامانه مودیان را به دفتری بسپارید که خودش مرتب می‌ماند.

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