Veakoodid ja veaümbris

Üks kuju igal teel: type, code, message, param, doc_url, request_id ja errors.

Üks kuju igal teel: type, code, message, param, doc_url, request_id ja errors.

← Tagasi API dokumentatsiooni juurde

Esimene arve 6 sammuga

  1. Iga 4xx ja 5xx tagastab { "error": { type, code, message, param?, doc_url, request_id, errors? } }.
  2. Lähtu type'ist, et otsustada, kas uuesti proovimine on mõttekas, ja kaardista code oma süsteemi.
  3. param viitab rikkuvale väljale, nt lines.0.vat_rate; errors[] ilmub, kui neid on mitu.
  4. Logi request_id igal veal — selle abil leiame oma logidest täpse päringu.

Mis on 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

Vead

StaatusTüüpKood
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

Levinud vead

  • rate_limit_error ja kaks upstream-tüüpi on uuesti proovitavad. authentication_error, permission_error ja invalid_request_error ei parane uuesti proovimisega.
  • 404 tagastatakse ka teise tenant'i ID puhul: me ei kinnita kunagi, et kellegi teise andmed on olemas.
  • 409 idempotency_key_reuse tähendab, et kasutasid võtit erineva kehaga. Ära sunni: kontrolli, mis on juba väljastatud.
  • Iga vea doc_url viib otse selle dokumentatsiooni veajaotisse.
  • Sõnumid on rumeenia keeles, sest API teenindab rumeenia fiskaalvoogu; ära parsi message'i, haru code'i järgi.

Arendajate küsimused ja vastused

Kas ma saan code-väärtustele eri versioonides tugineda?

Jah, code on stabiilne ja eksisteerib just selleks. message on inimloetav tekst ja seda võidakse sõnastada ümber.

Mida teha 502 või 503 korral?

Proovi uuesti eksponentsiaalse backoff'iga. Need on upstream- või ajutised kättesaadavusvead, mitte sinu päringu probleemid.

Miks kehtetute andmete korral 422 ja mitte 400?

422 tähistab vormiliselt korrektset, aga sisuliselt kehtetut JSON-i — näiteks vat_rate murdena. 400 on reserveeritud vormivigasele päringule.