خطاها
هر خطا یک سند مشکل RFC 7807 با یک کد پایدار و قابل خواندن توسط ماشین است.
جزئیات مشکل
پاسخهای غیر 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)، جستوجوی جدیدی شروع کنید — شناسههای پیشنهاد و کلیدهای نرخ بین نشستها معتبر نیستند.