Cerrtify

Fel

Felstrukturen, vanliga felkoder och hur du hanterar dem.

Alla fel från Cerrtify returneras som ett JSON-svar med samma struktur:

{ "error": "error_code", "detail": "human-readable message" }

Fältet error är en stabil, maskinläsbar kod; detail är ett läsbart meddelande som kan komma att ändras.

Vanliga felkoder

CodeHTTPBetydelse
bad_json400Requestens body är inte giltig JSON
invalid_request400Obligatoriskt fält saknas eller är felformaterat
invalid_ip400endUserIp är inte en giltig IPv4-/IPv6-adress
missing_orderRef400Fältet orderRef krävs men saknas
invalid_orgnr400orgnr är inte ett giltigt 10-siffrigt organisationsnummer
query_too_short400Företagssökningens q är kortare än 2 tecken
query_too_long400Företagssökningens q är längre än 100 tecken
missing_job_id400Inget jobb-ID i sökvägen — anropa /service/jobs/{id}
read_body400Requestens body kunde inte läsas färdigt (bruten anslutning, fel Content-Length)
no_active_qr_session404Ordern har ingen aktiv QR-session (redan slutförd eller avbruten)
missing_api_key401Headern X-API-Key saknas
invalid_api_key401Nyckeln finns inte eller har fel format
unauthorized401Generellt autentiseringsfel
insufficient_credits402Din organisation har slut på krediter (endast produktion) — fyll på i dashboarden. Obs: det här felet använder ett message-fält i stället för detail
api_key_revoked403Nyckeln har återkallats i dashboarden
api_key_expired403Nyckeln har passerat sitt expires_at
organisation_inactive403Din organisation är inte längre aktiv
insufficient_scope403Nyckeln saknar det scope som endpointen kräver (bankid, persondata eller company)
spar_not_configured403Produktion: organisationen har inget SPAR-certifikat — ladda upp ett i dashboarden under Certifikat → SPAR
ip_not_allowed403Anropets IP-adress finns inte i organisationens IP-allowlist
origin_not_allowed403Webbläsarens Origin finns inte i din domänlista
invalid_origin403Webbläsarens Origin-header är felformaterad
job_not_found404Det asynkrona jobbets ID finns inte eller tillhör en annan organisation
company_not_found404Endast sandbox: org.nr är inte ett av testföretagen i sandbox
rate_limited429Rate limit för nyckeln har överskridits — försök igen efter tiden i Retry-After-headern
search_failed500Sökningen i företagsregistret misslyckades på serversidan — försök igen och rapportera om det kvarstår
internal500Oväntat serverfel vid läsning av ett asynkront jobb
upstream_unavailable502Uppströmstjänsten ligger nere eller felar just nu — se Uppströmsavbrott
bankid_response_parse502BankID svarade, men med en body vi inte kunde tolka
upstream_parse_error502SPAR svarade, men med en body vi inte kunde tolka
enqueue_failed503Kön för asynkrona jobb är inte tillgänglig
audit_unavailable503Ett reglerat anrop (persondata, company) kunde inte granskningsloggas och nekades därför
service_unavailable503En nödvändig uppströmstjänst (SPAR, BankID, Bolagsverket) är felkonfigurerad på serversidan

Uppströmsavbrott

När en uppströmsleverantör inte går att nå eller returnerar serverfel svarar API:et med 502 och en standardiserad struktur som pekar ut den drabbade tjänsten:

{
  "error": "upstream_unavailable",
  "service": "bankid",
  "message": "There is currently a problem with BankID. Please try again shortly."
}

service är en av bankid, persondata eller company (fler kan tillkomma när nya tjänster lanseras). Problemet ligger hos leverantören — försök igen med backoff eller visa message för din användare.

Detta gäller endast riktiga avbrott. 4xx-protokollfel från leverantören (t.ex. ett ogiltigt BankID-orderRef) skickas fortfarande vidare oförändrade med leverantörens eget svar, så du behåller full felinformation.

Två andra 502-fel ingår inte i den strukturen: bankid_response_parse och upstream_parse_error. Där svarade leverantören, men med något vi inte kunde tolka, så det finns varken service eller message — bara error (och ibland detail). Hantera dem som upstream_unavailable: försök igen med backoff.

On this page