Hata kodları ve hata zarfı

Tüm rotalarda tek biçim: type, code, message, param, doc_url, request_id ve errors.

Tüm rotalarda tek biçim: type, code, message, param, doc_url, request_id ve errors.

← API dokümantasyonuna dön

6 adımda ilk fatura

  1. Her 4xx ve 5xx { "error": { type, code, message, param?, doc_url, request_id, errors? } } döndürür.
  2. Yeniden denemenin anlamlı olup olmadığına karar vermek için type üzerinden dallanın ve code’u kendi sisteminize eşleyin.
  3. param sorunlu alanı gösterir, ör. lines.0.vat_rate; birden fazla olduğunda errors[] görünür.
  4. Her hatada request_id’yi kaydedin — isteği kayıtlarımızda tam olarak bulmamızı sağlar.

4invoices API'si nedir

json
{
  "error": {
    "type": "invalid_request_error",
    "code": "validation_failed",
    "message": "Datele trimise nu sunt valide.",
    "param": "lines.0.vat_rate",
    "doc_url": "https://4invoices.net/ro/api-dezvoltatori#errors",
    "request_id": "req_8a893f2f33d4472da8d6e144",
    "errors": [
      { "param": "lines.0.vat_rate", "message": "VAT rate must be a percent (21), not a fraction", "type": "value_error" }
    ]
  }
}

https://api.4invoices.net/v1 · https://api.4invoices.net/v1/openapi.json

Hatalar

DurumTipKod
401authentication_errormissing_bearer_token
401authentication_errorunauthorized
403permission_errorforbidden
404not_found_errornot_found
409conflict_erroridempotency_key_reuse
409conflict_erroridempotency_in_progress
422invalid_request_errorvalidation_failed
422invalid_request_errorinvalid_json_number
502upstream_errorupstream_error
503service_unavailable_errorservice_unavailable

Sık yapılan hatalar

  • rate_limit_error ve iki upstream türü yeniden denenebilir. authentication_error, permission_error ve invalid_request_error yeniden denemekle düzelmez.
  • Başka bir tenant’a ait bir id için de 404 döndürülür: başkasına ait verilerin var olduğunu asla doğrulamayız.
  • 409 idempotency_key_reuse, bir anahtarı farklı bir gövdeyle yeniden kullandığınız anlamına gelir. Zorlamayın: zaten neyin düzenlendiğini kontrol edin.
  • Her hatadaki doc_url, doğrudan bu dokümantasyonun hatalar bölümüne işaret eder.
  • API bir Romen mali akışına hizmet ettiği için mesajlar Rumencedir; message’ı ayrıştırmayın, code üzerinden dallanın.

Geliştiriciler için soru ve cevaplar

code değerlerine sürümler arasında güvenebilir miyim?

Evet, code kararlıdır ve tam da bunun için vardır. message insanlara yönelik metindir ve yeniden ifade edilebilir.

502 veya 503’te ne yapmalıyım?

Üstel backoff ile yeniden deneyin. Bunlar isteğinizle ilgili sorunlar değil, upstream veya geçici erişilemezlik hatalarıdır.

Geçersiz veriler için neden 400 değil de 422?

422, biçimce doğru ancak anlamca geçersiz JSON’u belirtir — örneğin kesir olarak gönderilen vat_rate. 400, hatalı biçimlendirilmiş istekler için ayrılmıştır.