Erori
Fiecare eșec este un document de problemă RFC 7807 cu un cod stabil, citibil de mașină.
Detalii de problemă
Răspunsurile non-2xx conțin application/problem+json cu status, title, detail, un code stabil (snake_case), un field opțional care numește proprietatea problematică a cererii și un traceId de menționat când contactezi asistența.
{
"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…"
}Coduri pe care le vei întâlni
401 api_key_invalid, api_signature_invalid, api_timestamp_skew, api_nonce_reused, api_token_invalid — probleme de autentificare. 403 api_scope_missing (cheii tale îi lipsește scopul), api_ip_not_allowed, api_partner_suspended. 429 api_rate_limited, api_quota_exceeded. 400 validation_failed (cu field). 404 search_session_not_found, order_not_found, booking_not_found. 409 offer_expired, rate_expired, price_changed. 402 insufficient_credit (doar în producție — alimentează-ți depozitul). 502 supplier_error — furnizorul aerian sau hotelier a eșuat; reia căutarea.
Reîncercări în siguranță
Reîncearcă 429 după Retry-After, iar 502/503/504 cu backoff exponențial. Nu reîncerca niciodată un 4xx în afară de 429. Reîncearcă operațiunile de angajare (comenzi, rezervări, emitere, anulare) doar cu același Idempotency-Key. Dacă o sesiune de căutare expiră (404), începe o căutare nouă — ID-urile ofertelor și cheile de tarif nu sunt valabile de la o sesiune la alta.