En form på varje endpoint: type, code, message, param, doc_url, request_id och errors.
← Tillbaka till API-dokumentationen
Din första faktura i 6 steg
- Varje 4xx- och 5xx-fel returnerar { "error": { type, code, message, param?, doc_url, request_id, errors? } }.
- Förgrena på type för att avgöra om ett återförsök är meningsfullt, och mappa code till ditt eget system.
- param pekar på det felaktiga fältet, t.ex. lines.0.vat_rate; errors[] visas när det finns flera.
- Logga request_id vid varje fel — det gör att vi kan hitta exakt det anropet i våra loggar.
Vad 4invoices API är
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
Fel
| Status | Typ | Kod |
|---|---|---|
| 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 |
Vanliga misstag
- rate_limit_error och de två upstream-typerna kan försökas igen. authentication_error, permission_error och invalid_request_error åtgärdas inte genom att försöka igen.
- Ett 404 returneras även för ett id som tillhör en annan tenant: vi bekräftar aldrig att någon annans data finns.
- 409 idempotency_key_reuse betyder att du återanvänt en nyckel med ett annat innehåll. Tvinga inte igenom det: kontrollera vad som redan utfärdats.
- doc_url i varje fel pekar direkt på felavsnittet i den här dokumentationen.
- Meddelandena är på rumänska eftersom API:t betjänar ett rumänskt fiskalt flöde; tolka inte message, förgrena på code.
Frågor och svar för utvecklare
Kan jag lita på code-värdena mellan versioner?
Ja, code är stabil och finns just för detta. message är mänsklig text och kan formuleras om.
Vad ska jag göra vid ett 502 eller 503?
Försök igen med exponentiell backoff. Det är fel uppströms eller tillfällig tillgänglighet, inte problem med ditt anrop.
Varför 422 och inte 400 vid ogiltig data?
422 markerar välformad men semantiskt ogiltig JSON — till exempel vat_rate som bråkdel. 400 är reserverad för ett felaktigt format på anropet.