Hibakódok és a hibaboríték

Egyetlen forma minden útvonalon: type, code, message, param, doc_url, request_id és errors.

Egyetlen forma minden útvonalon: type, code, message, param, doc_url, request_id és errors.

← Vissza az API dokumentációhoz

Az első számla 6 lépésben

  1. Minden 4xx és 5xx ezt adja vissza: { "error": { type, code, message, param?, doc_url, request_id, errors? } }.
  2. A type alapján ágazzon el annak eldöntéséhez, hogy van-e értelme az újrapróbálásnak, a code értéket pedig képezze le a saját rendszerére.
  3. A param a hibás mezőre mutat, pl. lines.0.vat_rate; az errors[] akkor jelenik meg, ha több ilyen van.
  4. Minden hibánál naplózza a request_id értéket — ezzel a naplóinkban pontosan megtaláljuk a kérést.

Mi a 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

Hibák

StátuszTípusKó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

Gyakori hibák

  • A rate_limit_error és a két upstream típus újrapróbálható. Az authentication_error, a permission_error és az invalid_request_error nem oldódik meg újrapróbálással.
  • 404-et adunk vissza egy másik tenanthoz tartozó id esetén is: soha nem erősítjük meg, hogy más adatai léteznek.
  • A 409 idempotency_key_reuse azt jelenti, hogy egy kulcsot eltérő törzzsel használt újra. Ne erőltesse: ellenőrizze, mi lett már kiállítva.
  • Minden hibában a doc_url közvetlenül a dokumentáció hibákról szóló részére mutat.
  • Az üzenetek románul vannak, mert az API román fiskális folyamatot szolgál ki; ne a message értéket elemezze, hanem a code alapján ágazzon el.

Kérdések és válaszok fejlesztőknek

Támaszkodhatok a code értékekre a verziók között?

Igen, a code stabil, és pontosan ezért létezik. A message ember számára írt szöveg, és átfogalmazható.

Mit tegyek 502 vagy 503 esetén?

Próbálja újra exponenciális backoffal. Ezek upstream vagy átmeneti elérhetetlenségi hibák, nem a kérésével van probléma.

Miért 422 és nem 400 érvénytelen adatok esetén?

A 422 formailag helyes, de szemantikailag érvénytelen JSON-t jelöl — például törtként megadott vat_rate értéket. A 400 a hibásan formázott kérésnek van fenntartva.