Feilkoder og feilkonvolutten

Én form på alle endepunkter: type, code, message, param, doc_url, request_id og errors.

Én form på alle endepunkter: type, code, message, param, doc_url, request_id og errors.

← Tilbake til API-dokumentasjonen

Din første faktura på 6 steg

  1. Alle 4xx- og 5xx-feil returnerer { "error": { type, code, message, param?, doc_url, request_id, errors? } }.
  2. Forgren på type for å avgjøre om et nytt forsøk gir mening, og map code inn i ditt eget system.
  3. param peker på det feilaktige feltet, f.eks. lines.0.vat_rate; errors[] vises når det er flere.
  4. Logg request_id ved hver feil — den gjør at vi kan finne nøyaktig forespørselen i loggene våre.

Hva 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

Feil

StatusTypeKode
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

Vanlige feil

  • rate_limit_error og de to upstream-typene kan prøves igjen. authentication_error, permission_error og invalid_request_error løses ikke ved å prøve igjen.
  • En 404 returneres også for en id som tilhører en annen tenant: vi bekrefter aldri at andres data finnes.
  • 409 idempotency_key_reuse betyr at du har brukt en nøkkel på nytt med annet innhold. Ikke tving det: sjekk hva som allerede er utstedt.
  • doc_url i hver feil peker direkte til feilseksjonen i denne dokumentasjonen.
  • Meldingene er på rumensk fordi API-et betjener en rumensk fiskal flyt; ikke tolk message, forgren på code.

Spørsmål og svar for utviklere

Kan jeg stole på code-verdiene på tvers av versjoner?

Ja, code er stabil og finnes nettopp til det. message er menneskelig tekst og kan bli omformulert.

Hva bør jeg gjøre ved en 502 eller 503?

Prøv igjen med eksponentiell backoff. Dette er feil oppstrøms eller midlertidig tilgjengelighet, ikke problemer med forespørselen din.

Hvorfor 422 og ikke 400 for ugyldige data?

422 markerer velformet, men semantisk ugyldig JSON — for eksempel vat_rate som brøkdel. 400 er forbeholdt en feilformet forespørsel.