وبسرویس فاکتور فروش کاریا حساب برای ثبت فاکتور اصلی، اصلاحی، ابطالی و برگشت از فروش از طریق فروشگاه اینترنتی، CRM، ERP یا نرمافزار اختصاصی طراحی شده است. این مستند Endpointها، احراز هویت، پارامترها، نمونههای JSON و محدودیتهای فعلی API را توضیح میدهد.
POST
application/json
/DefinitionEndpoint/forosh
/DefinitionEndpoint/foroshebtali
API فاکتور فروش چه کاری انجام میدهد؟
این وبسرویس اطلاعات فاکتور را از سیستم مبدا دریافت و در بخش فروش نرمافزار کاریا حساب ثبت میکند. پیش از ایجاد فاکتور، مشتری و کالاهای استفادهشده باید با کدهای معتبر در کاریا تعریف شده باشند؛ در غیر این صورت احتمال رد درخواست یا ثبت ناقص ارتباطات وجود دارد.
ثبت فروش جدید با Endpoint اصلی forosh
ابطال فاکتور مرجع با Endpoint اختصاصی foroshebtali
ارسال به forosh همراه با factor_sub = 2
ارسال به forosh همراه با factor_sub = 4
پیشنیاز دریافت دسترسی
- درخواست فعالسازی API را برای تیم پشتیبانی یا فنی کاریا ارسال کنید.
- IP ثابت یا URL سروری را که درخواستها از آن ارسال میشوند اعلام کنید.
- توکن و شناسههای
mizekar،mizekaruser،useridوfiscalyearرا دریافت کنید. - مشتری و کالاهای نمونه را در میزکار مقصد تعریف و کدهای آنها را کنترل کنید.
- ثبت، اصلاح، ابطال و برگشت را پیش از اتصال عملیاتی با داده آزمایشی تست کنید.
احراز هویت و Headerهای درخواست
Authorization: YOUR_API_TOKEN
Content-Type: application/json
Accept: application/json
در نمونه فعلی کاریا، پیشوند Bearer ذکر نشده است. توکن دریافتی از تیم فنی را دقیقاً مطابق الگوی اعلامشده ارسال کنید.
Endpointهای وبسرویس فروش
| عملیات | Method | Endpoint | پارامتر تشخیص |
|---|---|---|---|
| ثبت فاکتور اصلی | POST |
https://panel.kariyahesab.com/DefinitionEndpoint/forosh |
بدون factor_sub در نمونه فعلی |
| ثبت فاکتور اصلاحی | POST |
https://panel.kariyahesab.com/DefinitionEndpoint/forosh |
factor_sub = 2 |
| ثبت برگشت از فروش | POST |
https://panel.kariyahesab.com/DefinitionEndpoint/forosh |
factor_sub = 4 |
| ابطال فاکتور | POST |
https://panel.kariyahesab.com/DefinitionEndpoint/foroshebtali |
Endpoint اختصاصی ابطال |
پارامترهای فاکتور فروش
| فیلد | توضیح | وضعیت | قالب یا مقادیر |
|---|---|---|---|
mizekar | شناسه میزکار | الزامی | دریافتی از کاریا |
mizekaruser | شناسه کاربر میزکار | الزامی | دریافتی از کاریا |
userid | شناسه کاربر ثبتکننده | الزامی | دریافتی از کاریا |
fiscalyear | شناسه سال مالی فعال | الزامی | دریافتی از کاریا |
factor_kind | نوع اطلاعات خریدار | الزامی | 1 نوع اول؛ 2 مصرفکننده نهایی |
kindfactor | نوع عملیات فروش در قرارداد فعلی | الزامی | مقدار ثابت 1 |
factornum | شماره فاکتور کاریا | اختیاری | در صورت ارسال دقیقاً ۱۰ رقم؛ در غیر این صورت تولید خودکار |
factordate | تاریخ فاکتور | الزامی | تاریخ شمسی مانند 1405/05/01 |
meli | کد ملی یا شناسه ملی خریدار | مشروط | برای فاکتور نوع اول متناسب با شخص تعریفشده |
desfac | توضیحات فاکتور | اختیاری | رشته متنی |
kalacodeX | کد کالای ردیف X | الزامی | کالای از قبل تعریفشده در کاریا |
meghdarX | تعداد یا مقدار ردیف X | الزامی | مقدار عددی |
priceX | مبلغ واحد ردیف X | الزامی | عدد؛ واحد پول باید با تیم فنی تأیید شود |
takhfifX | مبلغ تخفیف ردیف X | الزامی | عدد؛ در نبود تخفیف 0 |
tasvie | نوع تسویه | الزامی | 1 نقدی، 2 نسیه، 3 ترکیبی |
naghdi | مبلغ نقدی | مشروط | در تسویه ترکیبی همراه nesie ارسال شود |
nesie | مبلغ نسیه | مشروط | در تسویه ترکیبی همراه naghdi ارسال شود |
kalacode1 و kalacode2. در قرارداد فعلی، هر درخواست حداکثر ۱۰ ردیف را میپذیرد.
قواعد شماره فاکتور و تسویه
- اگر
factornumارسال شود، باید با صفر از چپ به ۱۰ رقم برسد؛ برای نمونه23به0000000023تبدیل میشود. - در صورت خالی بودن شماره فاکتور، سیستم طبق متن فعلی آن را تولید میکند.
- برای
tasvie = 3، جمعnaghdiوnesieباید با مبلغ خالص مورد انتظار Backend برابر باشد. - تعریف «مبلغ خالص» و اینکه مالیات و عوارض در این کنترل منظور میشود یا خیر، باید پیش از پیادهسازی با تیم فنی تأیید شود.
نمونه JSON ثبت فاکتور اصلی
{
"mizekar": "YOUR_MIZEKAR_ID",
"mizekaruser": "YOUR_MIZEKAR_USER_ID",
"userid": "YOUR_USER_ID",
"fiscalyear": "YOUR_FISCAL_YEAR_ID",
"factor_kind": 1,
"kindfactor": 1,
"factornum": "0000000337",
"factordate": "1405/05/01",
"meli": "0123456789",
"desfac": "ثبت از طریق وبسرویس فروشگاه",
"kalacode1": "1001",
"meghdar1": 2,
"price1": 150000,
"takhfif1": 0,
"kalacode2": "1005",
"meghdar2": 1,
"price2": 300000,
"takhfif2": 10000,
"tasvie": 1,
"naghdi": 590000,
"nesie": 0
}
نمونه درخواست cURL
curl --request POST
--url "https://panel.kariyahesab.com/DefinitionEndpoint/forosh"
--header "Authorization: YOUR_API_TOKEN"
--header "Accept: application/json"
--header "Content-Type: application/json"
--data '{
"mizekar": "YOUR_MIZEKAR_ID",
"mizekaruser": "YOUR_MIZEKAR_USER_ID",
"userid": "YOUR_USER_ID",
"fiscalyear": "YOUR_FISCAL_YEAR_ID",
"factor_kind": 1,
"kindfactor": 1,
"factornum": "0000000337",
"factordate": "1405/05/01",
"meli": "0123456789",
"desfac": "ثبت از طریق وبسرویس فروشگاه",
"kalacode1": "1001",
"meghdar1": 2,
"price1": 150000,
"takhfif1": 0,
"kalacode2": "1005",
"meghdar2": 1,
"price2": 300000,
"takhfif2": 10000,
"tasvie": 1,
"naghdi": 590000,
"nesie": 0
}'
ثبت فاکتور ابطالی
برای ابطال فاکتور ثبتشده از Endpoint اختصاصی زیر استفاده میشود:
POST https://panel.kariyahesab.com/DefinitionEndpoint/foroshebtali
factor_marja شماره ۱۰ رقمی فاکتور مرجع در کاریا معرفی شده است. آن را بدون تأیید تیم فنی با شماره منحصربهفرد مالیاتی صورتحساب در سامانه مودیان جایگزین نکنید.
{
"mizekar": "YOUR_MIZEKAR_ID",
"mizekaruser": "YOUR_MIZEKAR_USER_ID",
"userid": "YOUR_USER_ID",
"fiscalyear": "YOUR_FISCAL_YEAR_ID",
"factor_marja": "0000000001",
"factornum": "",
"factordate": "1405/05/02"
}
factornum فاکتور ابطالی اختیاری است و طبق مستند فعلی در صورت خالی بودن توسط سیستم تولید میشود.
ثبت فاکتور اصلاحی
فاکتور اصلاحی به Endpoint اصلی فروش ارسال میشود و مقدار factor_sub آن باید 2 باشد.
factor_marjaشماره ۱۰ رقمی فاکتور اصلی است.meliباید با خریدار فاکتور مرجع یکسان باشد.- طبق قرارداد فعلی، اطلاعات مشتری قابل تغییر نیست.
- تمام اقلامی که باید در نسخه اصلاحشده باقی بمانند ارسال شوند، نه فقط ردیفی که تغییر کرده است.
- حداکثر ۱۰ ردیف کالا یا خدمت قابل ارسال است.
{
"mizekar": "YOUR_MIZEKAR_ID",
"mizekaruser": "YOUR_MIZEKAR_USER_ID",
"userid": "YOUR_USER_ID",
"fiscalyear": "YOUR_FISCAL_YEAR_ID",
"factor_kind": 1,
"kindfactor": 1,
"factor_sub": 2,
"factor_marja": "0000000015",
"factornum": "",
"factordate": "1405/05/03",
"meli": "0123456789",
"desfac": "اصلاح تعداد اقلام",
"kalacode1": "1001",
"meghdar1": 5,
"price1": 150000,
"takhfif1": 0,
"tasvie": 1,
"naghdi": 750000,
"nesie": 0
}
ثبت فاکتور برگشت از فروش
برگشت از فروش نیز به Endpoint اصلی ارسال میشود و مقدار factor_sub آن 4 است. اطلاعات خریدار، شماره مرجع و قیمت ردیفها باید با فاکتور اصلی تطبیق داشته باشند.
5 است. ردیفهای مرجوعنشده نیز عیناً تکرار میشوند و قیمت تغییر نمیکند. این رفتار را پیش از استفاده عملیاتی با تیم فنی و یک تست کنترلشده تأیید کنید.
{
"mizekar": "YOUR_MIZEKAR_ID",
"mizekaruser": "YOUR_MIZEKAR_USER_ID",
"userid": "YOUR_USER_ID",
"fiscalyear": "YOUR_FISCAL_YEAR_ID",
"factor_kind": 1,
"kindfactor": 1,
"factor_sub": 4,
"factor_marja": "0000000012",
"factornum": "",
"factordate": "1405/05/04",
"meli": "0123456789",
"desfac": "برگشت ۳ عدد از کالای اول",
"kalacode1": "1001",
"meghdar1": 5,
"price1": 150000,
"takhfif1": 0,
"kalacode2": "1002",
"meghdar2": 2,
"price2": 85000,
"takhfif2": 0,
"tasvie": 1,
"naghdi": 920000,
"nesie": 0
}
ثبت در کاریا و ارسال به سامانه مودیان
API فوق در مرحله نخست فاکتور را در نرمافزار کاریا ثبت میکند. در روند فعلی محصول، کاربر فاکتور را در پنل بررسی و سپس عملیات ارسال به سامانه مودیان را انجام میدهد. این تفکیک یک کنترل عملیاتی برای بازبینی اطلاعات است و نباید بهعنوان ممنوعیت عمومی ارسال سیستمی یا خودکار در قوانین مالیاتی معرفی شود.
- درخواست API را ارسال و پاسخ خام سرور را ثبت کنید.
- ایجاد فاکتور و شماره آن را داخل کاریا کنترل کنید.
- خریدار، اقلام، مبالغ، تخفیف، نرخها و نوع صورتحساب را بازبینی کنید.
- از پنل کاریا، فاکتور تأییدشده را برای سامانه مودیان ارسال کنید.
- وضعیت نهایی، خطا یا شماره منحصربهفرد مالیاتی را پیگیری و در سیستم مبدا ذخیره کنید.
برای آشنایی با روشهای قانونی و مشخصات فنی ارسال صورتحساب، اطلاعیههای رسانه مالیاتی ایران و مستندات رسمی سازمان امور مالیاتی را بررسی کنید.
پاسخ API، خطاها و ثبت تکراری
اطلاعات فعلی نمونه قطعی پاسخ موفق، کدهای HTTP، شناسه رکورد ایجادشده و ساختار خطاها را ارائه نمیکند. کلاینت نباید صرفاً دریافت پاسخ HTTP یا وجود یک متن پیام را به معنی ثبت موفق بداند. قرارداد پاسخ را هنگام دریافت دسترسی از تیم فنی بگیرید و تستهای اتصال را براساس آن بنویسید.
- کد HTTP و بدنه پاسخ ثبت موفق برای هر چهار عملیات
- شناسه یا شماره فاکتور ایجادشده در پاسخ
- خطای توکن، IP، مشتری، کالا، سال مالی و مبلغ تسویه نامعتبر
- رفتار درخواست تکراری با یک
factornum - Rate Limit، Timeout پیشنهادی و سیاست Retry
- وجود یا نبود Idempotency Key
- واحد پول
priceX،takhfifX،naghdiوnesie
در زمان Timeout، قبل از تکرار درخواست، وجود فاکتور با همان شماره را بررسی کنید. Retry بدون کنترل میتواند فاکتور تکراری بسازد.
چکلیست پیش از اتصال عملیاتی
- توکن و IP محیط Production فعال و از محیط آزمایش جدا شده باشد.
- کد مشتری و همه کدهای کالا در میزکار مقصد وجود داشته باشند.
- واحد پول مبالغ با تیم فنی تأیید شده باشد.
- تاریخ شمسی و شماره ۱۰ رقمی فاکتور درست تولید شوند.
- مجموع تسویه با مبلغ مورد انتظار Backend برابر باشد.
- سناریوهای اصلاح، ابطال و برگشت جداگانه تست شده باشند.
- پاسخ و خطا در سیستم مبدا ثبت شود، بدون ذخیره توکن و اطلاعات حساس در لاگ.
- کاربر بداند ثبت در کاریا با ارسال نهایی به سامانه مودیان یک مرحله نیست.
ارتباط API فروش با خدمات کاریا حساب
- برای مدیریت ارسال نهایی و وضعیت صورتحسابها، امکانات نرمافزار سامانه مودیان کاریا حساب را بررسی کنید.
- برای ثبت حسابداری و گزارشهای مالی در بستر آنلاین، صفحه نرمافزار حسابداری ابری کاریا حساب مرتبط است.
- اگر مجموعه شما علاوه بر اتصال فنی به اجرای امور مالی و مالیاتی نیاز دارد، خدمات شرکت حسابداری کاریا حساب مسیر مناسبتری است.
سؤالات متداول API فاکتور فروش
آیا این API فاکتور را مستقیم به سامانه مودیان ارسال میکند؟
در روند فعلی مستندشده، API فاکتور را داخل کاریا ثبت میکند و کاربر پس از بررسی، ارسال به سامانه مودیان را از پنل انجام میدهد.
حداکثر چند ردیف کالا قابل ارسال است؟
طبق قرارداد فعلی هر درخواست حداکثر ۱۰ ردیف با الگوی kalacode1 تا kalacode10 میپذیرد.
شماره فاکتور چند رقم است؟
در صورت ارسال باید دقیقاً ۱۰ رقم باشد. برای شمارههای کوتاهتر باید از سمت چپ صفر اضافه شود؛ در صورت خالی بودن، سیستم طبق مستند فعلی شماره تولید میکند.
تفاوت factor_kind و factor_sub چیست؟
factor_kind نوع صورتحساب از نظر اطلاعات خریدار را مشخص میکند؛ factor_sub عملیات ارجاعی را تعیین میکند که در این مستند مقدار ۲ برای اصلاح و ۴ برای برگشت از فروش است.
برای اصلاح فاکتور فقط ردیف تغییرکرده را بفرستیم؟
خیر. طبق متن فعلی باید همه اقلامی که در نسخه اصلاحشده فاکتور باقی میمانند ارسال شوند.
در برگشت از فروش، تعداد مرجوعی ارسال میشود؟
در قرارداد فعلی کاریا، مقدار باقیمانده نزد مشتری ارسال میشود. چون این رفتار حساس و محصولمحور است، پیش از بهرهبرداری با تست و تأیید تیم فنی کنترل شود.
اتصال نرمافزار به فروش کاریا حساب
پس از دریافت دسترسی API، هر چهار سناریوی اصلی را با داده آزمایشی اجرا و نتیجه را داخل پنل بررسی کنید.
ورود به پنل کاریا حساب
در حال بارگذاری ...




نظر شما برای ما مهم است