Kļūdu kodi un kļūdu apvalks

Viens formāts katrā maršrutā: type, code, message, param, doc_url, request_id un errors.

Viens formāts katrā maršrutā: type, code, message, param, doc_url, request_id un errors.

← Atpakaļ uz API dokumentāciju

Pirmais rēķins 6 soļos

  1. Katrs 4xx un 5xx atgriež { "error": { type, code, message, param?, doc_url, request_id, errors? } }.
  2. Vadieties pēc type, lai izlemtu, vai atkārtošana ir jēgpilna, un piesaistiet code savai sistēmai.
  3. param norāda uz kļūdaino lauku, piem., lines.0.vat_rate; errors[] parādās, kad ir vairākas kļūdas.
  4. Reģistrējiet request_id katrā kļūdā — ar to mēs atradīsim precīzo pieprasījumu žurnālos.

Kas ir 4invoices API

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

Kļūdas

StatussTipsKods
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

Biežākās kļūdas

  • rate_limit_error un abi upstream tipi ir atkārtojami. authentication_error, permission_error un invalid_request_error ar atkārtošanu neizlabojas.
  • 404 tiek atgriezts arī identifikatoram, kas pieder citam tenant: mēs nekad neapstiprinām, ka cita persona dati pastāv.
  • 409 idempotency_key_reuse nozīmē, ka atslēgu izmantojāt ar citu saturu. Nemēģiniet to piespiest: pārbaudiet, kas jau ir izrakstīts.
  • Katras kļūdas doc_url ved tieši uz šīs dokumentācijas kļūdu sadaļu.
  • Ziņojumi ir rumāņu valodā, jo API apkalpo rumāņu fiskālo plūsmu; neparsējiet message — atzariet pēc code.

Izstrādātāju jautājumi un atbildes

Vai varu paļauties uz code vērtībām dažādās versijās?

Jā, code ir stabils un pastāv tieši šim nolūkam. message ir cilvēkam lasāms teksts, un to var pārformulēt.

Ko darīt ar 502 vai 503?

Mēģiniet vēlreiz ar eksponenciālu backoff. Tās ir upstream vai īslaicīgas pieejamības kļūdas, nevis jūsu pieprasījuma problēmas.

Kāpēc nederīgiem datiem 422, nevis 400?

422 apzīmē formāli pareizu, bet semantiski nederīgu JSON — piemēram, vat_rate kā daļu. 400 ir rezervēts nepareizi veidotam pieprasījumam.