Lỗi
Mọi lỗi đều là một tài liệu problem theo RFC 7807 với một mã ổn định, máy đọc được.
Chi tiết lỗi
Các phản hồi không phải 2xx mang application/problem+json với status, title, detail, một code ổn định (snake_case), một field tùy chọn chỉ ra thuộc tính yêu cầu gây lỗi, và một traceId để cung cấp khi bạn liên hệ bộ phận hỗ trợ.
{
"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…"
}Các mã bạn sẽ gặp
401 api_key_invalid, api_signature_invalid, api_timestamp_skew, api_nonce_reused, api_token_invalid — lỗi xác thực. 403 api_scope_missing (khóa của bạn thiếu phạm vi quyền), api_ip_not_allowed, api_partner_suspended. 429 api_rate_limited, api_quota_exceeded. 400 validation_failed (kèm field). 404 search_session_not_found, order_not_found, booking_not_found. 409 offer_expired, rate_expired, price_changed. 402 insufficient_credit (chỉ production — hãy nạp thêm tiền ký quỹ). 502 supplier_error — nhà cung cấp hãng bay hoặc khách sạn gặp lỗi; hãy thử tìm kiếm lại.
Thử lại an toàn
Thử lại 429 sau Retry-After, và 502/503/504 với backoff lũy thừa. Không bao giờ thử lại một lỗi 4xx nào khác ngoài 429. Chỉ thử lại các thao tác cam kết (tạo đơn, đặt chỗ, xuất vé, hủy) với cùng Idempotency-Key. Nếu phiên tìm kiếm hết hạn (404), hãy bắt đầu tìm kiếm mới — offer ID và rate key không có hiệu lực giữa các phiên.