پرش به محتوای اصلی

خطاها

قالب خطا و کدهای پایدار.

همه خطاها قالب یکسانی دارند. برنامه خود را بر اساس code بنویسید؛ متن message برای نمایش به کاربر است و ممکن است تغییر کند.

json
{
  "error": {
    "code": "validation_error",
    "message": "اطلاعات ارسالی معتبر نیست.",
    "request_id": "req_3f2a9c…",
    "details": [{ "field": "callback_url", "message": "Invalid URL" }]
  }
}

هر پاسخ (موفق یا ناموفق) هدر X-Request-Id دارد. هنگام تماس با پشتیبانی این شناسه را اعلام کنید. می‌توانید شناسه خودتان را هم در همین هدر بفرستید (۸ تا ۱۲۸ کاراکتر).

کدها

codeHTTPپیام پیش‌فرض
validation_error400اطلاعات ارسالی معتبر نیست.
bad_request400درخواست نامعتبر است.
invalid_api_key401کلید API نامعتبر است.
forbidden403دسترسی به این بخش برای شما مجاز نیست.
ip_blocked403دسترسی از این آدرس IP مسدود است.
not_found404مورد درخواستی یافت نشد.
conflict409این عملیات با وضعیت فعلی در تعارض است.
already_exists409این مورد قبلاً ثبت شده است.
idempotency_key_reused422کلید یکتایی با درخواست متفاوتی استفاده شده است.
idempotency_in_progress409درخواست مشابهی در حال پردازش است.
rate_limited429تعداد درخواست‌ها بیش از حد مجاز است. کمی بعد تلاش کنید.
module_disabled403این قابلیت در حال حاضر فعال نیست.
internal_error500خطای داخلی رخ داد. لطفاً دوباره تلاش کنید.
service_unavailable503سرویس موقتاً در دسترس نیست.
amount_out_of_range400مبلغ خارج از محدوده مجاز است.
gateway_inactive403درگاه پرداخت فعال نیست.
callback_domain_mismatch400آدرس بازگشت با دامنه ثبت‌شده درگاه مطابقت ندارد.
payment_not_found404پرداخت یافت نشد.
payment_expired410مهلت پرداخت به پایان رسیده است.
payment_invalid_state409وضعیت پرداخت اجازه این عملیات را نمی‌دهد.
payment_amount_mismatch400مبلغ با مبلغ پرداخت مطابقت ندارد.
no_provider_available503در حال حاضر هیچ درگاه بانکی در دسترس نیست.
provider_error502ارتباط با بانک با خطا مواجه شد.
provider_timeout504پاسخ بانک در زمان مقرر دریافت نشد.
capability_not_supported422این عملیات توسط درگاه بانکی مربوطه پشتیبانی نمی‌شود.
refund_exceeds_amount422مبلغ استرداد بیشتر از مبلغ قابل استرداد است.
insufficient_balance422موجودی کافی نیست.
fraud_blocked403این تراکنش به دلایل امنیتی مسدود شد.
live_mode_not_enabled403حالت عملیاتی برای این درگاه فعال نشده است.

نکات مهم

  • 409 payment_invalid_state: وضعیت فعلی پرداخت اجازه این عملیات را نمی‌دهد (مثلاً برگشت پرداخت تسویه‌شده). وضعیت را استعلام کنید.
  • 403 module_disabled: این قابلیت برای حساب شما یا در کل سامانه فعال نیست.
  • 422 insufficient_balance: موجودی شما برای استرداد کافی نیست.
  • 504 provider_timeout: پاسخ بانک نرسید؛ عملیات به‌صورت خودکار پیگیری می‌شود. استرداد در این حالت به‌جای خطا پاسخ 202 می‌گیرد.