Vai al contenuto

Errori

Ogni errore è un documento problem RFC 7807 con un codice stabile leggibile dalle macchine.

  1. Dettagli del problema
  2. Codici che incontrerai
  3. Ritentare in sicurezza

Dettagli del problema

Le risposte non 2xx hanno tipo application/problem+json con status, title, detail, un code stabile (snake_case), un field facoltativo che indica la proprietà della richiesta non valida e un traceId da citare quando contatti l'assistenza.

Esempio
{
  "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…"
}

Codici che incontrerai

401 api_key_invalid, api_signature_invalid, api_timestamp_skew, api_nonce_reused, api_token_invalid: problemi di autenticazione. 403 api_scope_missing (alla tua chiave manca lo scope), api_ip_not_allowed, api_partner_suspended. 429 api_rate_limited, api_quota_exceeded. 400 validation_failed (con field). 404 search_session_not_found, order_not_found, booking_not_found. 409 offer_expired, rate_expired, price_changed. 402 insufficient_credit (solo in produzione: ricarica il tuo deposito). 502 supplier_error: il fornitore aereo o alberghiero ha restituito un errore; ripeti la ricerca.

Ritentare in sicurezza

Ritenta un 429 dopo Retry-After, e i 502/503/504 con backoff esponenziale. Non ritentare mai un 4xx diverso da 429. Ritenta le operazioni di conferma (ordini, prenotazioni, emissione, cancellazione) solo con la stessa Idempotency-Key. Se una sessione di ricerca scade (404), avvia una nuova ricerca: ID offerta e chiavi tariffa non sono validi tra sessioni diverse.