Xəta kodları və xəta zərfi

Hər marşrutda bir forma: type, code, message, param, doc_url, request_id və errors.

Hər marşrutda bir forma: type, code, message, param, doc_url, request_id və errors.

← API sənədləşməsinə qayıt

6 addımda ilk fakturanız

  1. Hər 4xx və 5xx { "error": { type, code, message, param?, doc_url, request_id, errors? } } qaytarır.
  2. Təkrar cəhdin mənası olub-olmadığına type üzrə qərar verin və code-u öz sisteminizə xəritələyin.
  3. param problemli sahəyə işarə edir, məsələn lines.0.vat_rate; errors[] bir neçəsi olduqda görünür.
  4. Hər xətada request_id-ni qeyd edin — bizim qeydlərdə dəqiq sorğunu tapmağa imkan verir.

4invoices API nədir

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

Xətalar

StatusNövKod
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

Ümumi səhvlər

  • rate_limit_error və iki upstream növü təkrar cəhd oluna bilər. authentication_error, permission_error və invalid_request_error təkrar cəhdlə düzəlmir.
  • Başqa müştərinin id-si üçün də 404 qaytarılır: biz heç vaxt başqasının məlumatının mövcud olduğunu təsdiq etmirik.
  • 409 idempotency_key_reuse o deməkdir ki, açarı fərqli body ilə təkrar istifadə etmisiniz. Məcbur etməyin: artıq nə verildiyini yoxlayın.
  • Hər xətanın doc_url-i birbaşa bu sənədləşmənin xətalar bölməsinə aparır.
  • Mesajlar rumın dilindədir, çünki API rumın fiskal axınına xidmət edir; message-i təhlil etməyin, code üzrə qərar verin.

İnkişafçılar üçün suallar və cavablar

Versiyalar arasında code dəyərlərinə güvənmək olarmı?

Bəli, code sabitdir və məhz bunun üçün mövcuddur. message insanlar üçün mətndir və yenidən ifadə oluna bilər.

502 və ya 503 aldıqda nə etməliyəm?

Eksponensial backoff ilə təkrar cəhd edin. Bunlar upstream və ya müvəqqəti əlçatanlıq xətalarıdır, sorğunuzla bağlı problem deyil.

Səhv məlumat üçün niyə 400 yox, 422?

422 düzgün formatlı, lakin semantik olaraq etibarsız JSON-u bildirir — məsələn, kəsr şəklində vat_rate. 400 formatı pozulmuş sorğu üçün saxlanılır.