Felkoder och felkuvertet

En form på varje endpoint: type, code, message, param, doc_url, request_id och errors.

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

  1. Varje 4xx- och 5xx-fel returnerar { "error": { type, code, message, param?, doc_url, request_id, errors? } }.
  2. Förgrena på type för att avgöra om ett återförsök är meningsfullt, och mappa code till ditt eget system.
  3. param pekar på det felaktiga fältet, t.ex. lines.0.vat_rate; errors[] visas när det finns flera.
  4. 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

StatusTypKod
401authentication_errormissing_bearer_token
401authentication_errorunauthorized
403permission_errorforbidden
404not_found_errornot_found
409conflict_erroridempotency_key_reuse
409conflict_erroridempotency_in_progress
422invalid_request_errorvalidation_failed
422invalid_request_errorinvalid_json_number
502upstream_errorupstream_error
503service_unavailable_errorservice_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.