Én form på alle ruter: type, code, message, param, doc_url, request_id og errors.
← Tilbage til API-dokumentationen
Din første faktura i 6 trin
- Hver 4xx- og 5xx-fejl returnerer { "error": { type, code, message, param?, doc_url, request_id, errors? } }.
- Forgren på type for at afgøre, om et nyt forsøg giver mening, og map code ind i dit eget system.
- param peger på det fejlende felt, fx lines.0.vat_rate; errors[] optræder, når der er flere.
- Registrér request_id ved hver fejl — den gør det muligt for os at finde den præcise anmodning i vores logfiler.
Hvad 4invoices API'et er
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
Fejl
| Status | Type | Kode |
|---|---|---|
| 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 |
Almindelige fejl
- rate_limit_error og de to upstream-typer kan forsøges igen. authentication_error, permission_error og invalid_request_error løses ikke ved at forsøge igen.
- Et 404 returneres også for et id, der tilhører en anden tenant: vi bekræfter aldrig, at en andens data findes.
- 409 idempotency_key_reuse betyder, at du har genbrugt en nøgle med en anden krop. Tving det ikke igennem: kontrollér, hvad der allerede er udstedt.
- doc_url i hver fejl peger direkte på fejlafsnittet i denne dokumentation.
- Meddelelserne er på rumænsk, fordi API'et betjener et rumænsk fiskalt flow; parse ikke message, forgren på code.
Spørgsmål og svar for udviklere
Kan jeg stole på code-værdierne på tværs af versioner?
Ja, code er stabil, og den findes netop til det formål. message er menneskelig tekst og kan blive omformuleret.
Hvad skal jeg gøre ved en 502 eller 503?
Forsøg igen med eksponentiel backoff. Det er upstream- eller midlertidige tilgængelighedsfejl, ikke problemer med din anmodning.
Hvorfor 422 og ikke 400 ved ugyldige data?
422 markerer velformet, men semantisk ugyldig JSON — for eksempel vat_rate som brøkdel. 400 er forbeholdt en misdannet anmodning.