Üks kuju igal teel: type, code, message, param, doc_url, request_id ja errors.
← Tagasi API dokumentatsiooni juurde
Esimene arve 6 sammuga
- Iga 4xx ja 5xx tagastab { "error": { type, code, message, param?, doc_url, request_id, errors? } }.
- Lähtu type'ist, et otsustada, kas uuesti proovimine on mõttekas, ja kaardista code oma süsteemi.
- param viitab rikkuvale väljale, nt lines.0.vat_rate; errors[] ilmub, kui neid on mitu.
- 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
| Staatus | Tüüp | Kood |
|---|---|---|
| 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 |
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.