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
- Minden 4xx és 5xx ezt adja vissza: { "error": { type, code, message, param?, doc_url, request_id, errors? } }.
- 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.
- A param a hibás mezőre mutat, pl. lines.0.vat_rate; az errors[] akkor jelenik meg, ha több ilyen van.
- 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átusz | Típus | Kód |
|---|---|---|
| 401 | authentication_error | missing_bearer_token |
| 401 | authentication_error | unauthorized |
| 403 | permission_error | forbidden |
| 404 | not_found_error | not_found |
| 409 | conflict_error | idempotency_key_reuse |
| 409 | conflict_error | idempotency_in_progress |
| 422 | invalid_request_error | validation_failed |
| 422 | invalid_request_error | invalid_json_number |
| 502 | upstream_error | upstream_error |
| 503 | service_unavailable_error | service_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.