خطاها | Layatanahi
dr

Api

خطاها#

API از کودهای وضعیت متعارف HTTP و یک قالب خطای کوچک JSON استفاده می‌کند. شکست‌های احراز هویت و سهمیه {"error":{"code":"...","message":"..."}} را برمی‌گردانند؛ رکوردهای جزئیات غایب از یک شکل تودرتو استفاده می‌کنند که کلید error را درون شیء هم تکرار می‌کند.

همیشه اول وضعیت HTTP را بررسی کنید، سپس error.code را بخوانید.

قالب‌های خطا#

استاندارد#

json
{
  "error": {
    "code": "api_ability_denied",
    "message": "This credential is not permitted to perform the requested operation."
  }
}

رکورد جزئیات غایب#

json
{
  "error": {
    "error": "not_found",
    "message": "Sale not found."
  }
}

اعتبارسنجی#

شکست‌های اعتبارسنجی از شکل فریم‌ورک پیروی می‌کنند: یک message به‌اضافه یک شیء errors کلیدشده بر اساس فیلد.

json
{
  "message": "The given data was invalid.",
  "errors": {
    "to": [
      "The to field must be a date after or equal to from."
    ]
  }
}

کودهای وضعیت#

وضعیتمعناعلت معمول
200موفق—
401بدون احراز هویتتوکن غایب، اعتبارنامه بازپس‌گرفته، نوع اشتباه توکن
403ممنوعصلاحیت، عضویت یا دامنه شعبه رد شد
404یافت نشدشناسه جزئیات بیرون از دامنه دیدنی
405متد مجاز نیستGET یا DELETE به نقطه پایانی MCP فرستاده شده
422اعتبارسنجی شکست خوردتاریخ بد، اندازه صفحه بد، شعبه لازم است
429درخواست‌های بیش از حدحد هجومی یا سهمیه روزانه/ماهانه
500خطای سرورشکست غیرمنتظره، با backoff دوباره تلاش کنید

مرجع کودها#

کودوضعیتمعنارفع
integration_credential_required401توکن یکپارچه‌سازی روی درخواست نیستAuthorization: Bearer <token> را بفرستید
integration_credential_invalid401اعتبارنامه بازپس‌گرفته، تجارت غیرفعال، عدم تطابق کاربریک اعتبارنامه بسازید یا بچرخانید
integration_membership_inactive403عضویت کارمند حذف شدهکاربر را دوباره کارمند کنید یا از اعتبارنامه دیگری استفاده نمایید
integration_role_revoked403مالک دیگر مدیر تجارت یا مدیر شعبه نیستنقش را برگردانید یا اعتبارنامه را دوباره صادر کنید
integration_branch_scope_empty403اعتبارنامه شعبه‌محدود هیچ شعبه‌ای در دامنه نداردیک شعبه تحت مدیریت اعطا کنید یا آن را سطح کل تجارت بسازید
api_ability_denied403صلاحیت غایب یا نقش دیگر آن را اعطا نمی‌کندصلاحیت و اجازه صفحه را اعطا کنید
branch_scope_denied403شعبه بیرون از دامنه اعتبارنامه استاز یک شعبه اعطاشده استفاده کنید
branch_required422چند شعبه اعطا شده و هیچ‌کدام نام برده نشدهX-Business-Branch را بفرستید
integration_token_not_allowed403توکن روی یک مسیر غیریکپارچه‌سازی استفاده شدهفقط از /api/v2 یا /mcp استفاده کنید
api_burst_limit_exceeded429بیشتر از 60 درخواست در یک دقیقهمنتظر Retry-After بمانید
api_quota_exceeded429سهمیه روزانه یا ماهانه رسیده استمنتظر بازنشانی بمانید یا طرح را ارتقا دهید

شکست‌های سطح ابزار درون MCP ممکن است به‌جای خطای HTTP یک پیام خطا برگردانند؛ به عیب‌یابی MCP مراجعه کنید.

خطاهای محدودیت نرخ#

json
{
  "error": {
    "code": "api_burst_limit_exceeded",
    "message": "Too many API requests in a short period.",
    "retry_after_seconds": 17
  }
}
json
{
  "error": {
    "code": "api_quota_exceeded",
    "message": "The API request quota has been reached.",
    "scope": "user",
    "period": "day",
    "limit": 200,
    "used": 200,
    "reset_at": "2026-11-01T00:00:00+04:30",
    "retry_after_seconds": 18234
  }
}

هر دو یک هدر پاسخ Retry-After دربر دارند. هدر را رعایت کنید به‌جای یک توقف ثابت.

استراتژی تلاش دوباره#

وضعیتتلاش دوباره؟استراتژی
401، 403نخیراعتبارنامه یا اجازه‌ها را درست کنید
404نخیررکورد داخل دامنه نیست
422نخیردرخواست را اصلاح کنید
429بلهRetry-After را نگه دارید، سپس backoff نمایی
500بلهbackoff نمایی، تعداد تلاش را محدود کنید

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

توصیه لاگ‌برداری#

  • نام نقطه پایانی، وضعیت، error.code و شناسه درخواست را اگر پروکسی‌تان ارائه می‌کند log کنید.
  • هرگز توکن حامل یا راز را log نکنید.
  • شکست‌ها را با کارت مصرف اعتبارنامه در تنظیمات همبسته کنید.
  • 403های مکرر از یک اعتبارنامه را به‌عنوان پسرفت اجازه‌ها در سیستم مبدأ تلقی کنید.

صفحات مرتبط#