Chybové kódy a chybová obálka

Jeden tvar na všetkých cestách: type, code, message, param, doc_url, request_id a errors.

Jeden tvar na všetkých cestách: type, code, message, param, doc_url, request_id a errors.

← Späť na dokumentáciu API

Prvá faktúra v 6 krokoch

  1. Každá 4xx a 5xx vracia { "error": { type, code, message, param?, doc_url, request_id, errors? } }.
  2. Vetvite podľa type, aby ste rozhodli, či má opakovanie zmysel, a code mapujte do vlastného systému.
  3. param ukazuje na chybné pole, napr. lines.0.vat_rate; errors[] sa objaví, keď ich je viac.
  4. Pri každej chybe logujte request_id — umožní nám nájsť presne danú požiadavku v našich logoch.

Čo je 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

Chyby

StavTypKód
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

Časté chyby

  • rate_limit_error a dva typy upstream sa dajú opakovať. authentication_error, permission_error a invalid_request_error sa opakovaním nevyriešia.
  • 404 sa vracia aj pre id, ktoré patrí inému tenantovi: nikdy nepotvrdzujeme, že cudzie údaje existujú.
  • 409 idempotency_key_reuse znamená, že ste znovu použili kľúč s iným telom. Nevynucujte to: overte, čo už bolo vystavené.
  • doc_url v každej chybe smeruje priamo na sekciu chýb v tejto dokumentácii.
  • Správy sú v rumunčine, pretože API slúži rumunskému fiškálnemu toku; neparsujte message, vetvite podľa code.

Otázky a odpovede pre vývojárov

Môžem sa spoľahnúť na hodnoty code naprieč verziami?

Áno, code je stabilný a existuje práve na to. message je text pre človeka a môže sa preformulovať.

Čo robiť pri 502 alebo 503?

Opakujte s exponenciálnym backoffom. Ide o chyby upstream alebo dočasnej nedostupnosti, nie o problémy s vašou požiadavkou.

Prečo 422 a nie 400 pri neplatných údajoch?

422 označuje syntakticky správny, ale sémanticky neplatný JSON — napríklad vat_rate ako zlomok. 400 je vyhradené pre chybne zostavenú požiadavku.