رفتن به محتوا

خطاها

هر خطا یک سند مشکل RFC 7807 با یک کد پایدار و قابل خواندن توسط ماشین است.

  1. جزئیات مشکل
  2. کدهایی که با آن‌ها روبه‌رو می‌شوید
  3. تکرار ایمن

جزئیات مشکل

پاسخ‌های غیر 2xx از نوع application/problem+json هستند و status، title، detail، یک code پایدار (snake_case)، یک field اختیاری که ویژگی نادرست درخواست را نام می‌برد، و یک traceId دارند که هنگام تماس با پشتیبانی باید آن را ذکر کنید.

نمونه
{
  "type": "https://dubaitrip.com/docs/api/errors#price_changed",
  "title": "Price changed",
  "status": 409,
  "detail": "The fare is now 412.50 USD (was 398.00 USD). Re-price and confirm.",
  "code": "price_changed",
  "traceId": "00-3f2a…"
}

کدهایی که با آن‌ها روبه‌رو می‌شوید

401 api_key_invalid، api_signature_invalid، api_timestamp_skew، api_nonce_reused، api_token_invalid — مشکلات احراز هویت. 403 api_scope_missing (کلید شما دامنه دسترسی لازم را ندارد)، api_ip_not_allowed، api_partner_suspended. 429 api_rate_limited، api_quota_exceeded. 400 validation_failed (همراه با field). 404 search_session_not_found، order_not_found، booking_not_found. 409 offer_expired، rate_expired، price_changed. 402 insufficient_credit (فقط محیط عملیاتی — سپرده خود را شارژ کنید). 502 supplier_error — تأمین‌کننده پرواز یا هتل خطا داد؛ جست‌وجو را تکرار کنید.

تکرار ایمن

پاسخ 429 را پس از Retry-After و پاسخ‌های 502/503/504 را با تأخیر نمایی تکرار کنید. هیچ 4xx دیگری جز 429 را تکرار نکنید. عملیات قطعی (سفارش، رزرو، صدور، لغو) را فقط با همان Idempotency-Key تکرار کنید. اگر نشست جست‌وجو منقضی شود (404)، جست‌وجوی جدیدی شروع کنید — شناسه‌های پیشنهاد و کلیدهای نرخ بین نشست‌ها معتبر نیستند.