Yksi muoto jokaisessa reitissä: type, code, message, param, doc_url, request_id ja errors.
← Takaisin API-dokumentaatioon
Ensimmäinen lasku 6 vaiheessa
- Jokainen 4xx ja 5xx palauttaa { "error": { type, code, message, param?, doc_url, request_id, errors? } }.
- Haarauta type-kentän mukaan, kun päätät, onko uudelleenyritys järkevä, ja kuvaa code omaan järjestelmääsi.
- param osoittaa virheelliseen kenttään, esim. lines.0.vat_rate; errors[] ilmestyy, kun virheitä on useita.
- Kirjaa request_id jokaisesta virheestä — sen avulla löydämme tarkan pyynnön lokistamme.
Mitä 4invoices-API on
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
Virheet
| Tila | Tyyppi | Koodi |
|---|---|---|
| 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 |
Yleiset virheet
- rate_limit_error ja kaksi upstream-tyyppiä ovat uudelleen yritettävissä. authentication_error, permission_error ja invalid_request_error eivät korjaannu uudelleenyrityksellä.
- 404 palautetaan myös toisen tenantin tunnisteelle: emme koskaan vahvista, että jonkun muun tiedot ovat olemassa.
- 409 idempotency_key_reuse tarkoittaa, että käytit avainta eri rungolla. Älä pakota sitä: tarkista, mitä on jo myönnetty.
- Jokaisen virheen doc_url vie suoraan tämän dokumentaation virhe-osioon.
- Viestit ovat romaniaksi, koska API palvelee romanialaista verotuksellista prosessia; älä jäsennä message-kenttää, haarauta code-kentän mukaan.
Kehittäjien kysymykset ja vastaukset
Voinko luottaa code-arvoihin eri versioissa?
Kyllä, code on vakaa ja on olemassa juuri tätä varten. message on ihmisluettava teksti ja sitä voidaan muotoilla uudelleen.
Mitä minun pitää tehdä 502- tai 503-virheellä?
Yritä uudelleen eksponentiaalisella backoffilla. Nämä ovat upstream- tai tilapäisiä saatavuusvirheitä, eivät pyyntösi ongelmia.
Miksi virheellisestä datasta tulee 422 eikä 400?
422 merkitsee rakenteellisesti oikeaa mutta semanttisesti virheellistä JSONia — esimerkiksi vat_rate murto-osana. 400 on varattu virheellisesti muodostetulle pyynnölle.