Viens formāts katrā maršrutā: type, code, message, param, doc_url, request_id un errors.
← Atpakaļ uz API dokumentāciju
Pirmais rēķins 6 soļos
- Katrs 4xx un 5xx atgriež { "error": { type, code, message, param?, doc_url, request_id, errors? } }.
- Vadieties pēc type, lai izlemtu, vai atkārtošana ir jēgpilna, un piesaistiet code savai sistēmai.
- param norāda uz kļūdaino lauku, piem., lines.0.vat_rate; errors[] parādās, kad ir vairākas kļūdas.
- Reģistrējiet request_id katrā kļūdā — ar to mēs atradīsim precīzo pieprasījumu žurnālos.
Kas ir 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
Kļūdas
| Statuss | Tips | Kods |
|---|---|---|
| 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 |
Biežākās kļūdas
- rate_limit_error un abi upstream tipi ir atkārtojami. authentication_error, permission_error un invalid_request_error ar atkārtošanu neizlabojas.
- 404 tiek atgriezts arī identifikatoram, kas pieder citam tenant: mēs nekad neapstiprinām, ka cita persona dati pastāv.
- 409 idempotency_key_reuse nozīmē, ka atslēgu izmantojāt ar citu saturu. Nemēģiniet to piespiest: pārbaudiet, kas jau ir izrakstīts.
- Katras kļūdas doc_url ved tieši uz šīs dokumentācijas kļūdu sadaļu.
- Ziņojumi ir rumāņu valodā, jo API apkalpo rumāņu fiskālo plūsmu; neparsējiet message — atzariet pēc code.
Izstrādātāju jautājumi un atbildes
Vai varu paļauties uz code vērtībām dažādās versijās?
Jā, code ir stabils un pastāv tieši šim nolūkam. message ir cilvēkam lasāms teksts, un to var pārformulēt.
Ko darīt ar 502 vai 503?
Mēģiniet vēlreiz ar eksponenciālu backoff. Tās ir upstream vai īslaicīgas pieejamības kļūdas, nevis jūsu pieprasījuma problēmas.
Kāpēc nederīgiem datiem 422, nevis 400?
422 apzīmē formāli pareizu, bet semantiski nederīgu JSON — piemēram, vat_rate kā daļu. 400 ir rezervēts nepareizi veidotam pieprasījumam.