Felkoder

Referens för alla felkoder och HTTP-statuskoder som returneras av TIC Identity API.

HTTP-statuskoder

Status Betydelse Åtgärd
200 OK Anropet lyckades
202 Accepted Session väntar på användare (polla igen)
400 Bad Request Kontrollera request-parametrar
401 Unauthorized Kontrollera API-nyckeln
403 Forbidden API-nyckeln saknar behörighet
404 Not Found Resursen finns inte (session, etc.)
410 Gone Sessionen misslyckades eller avbröts
429 Too Many Requests Rate limit eller månadsgräns överskriden
500 Internal Server Error Kontakta support om det upprepas

API-felkoder

Fel returneras i formatet:

{
  "error": "error_code",
  "message": "Beskrivning av felet"
}

Autentisering

Felkod Beskrivning
invalid_api_key API-nyckeln är ogiltig eller saknas
api_key_disabled API-nyckeln har inaktiverats
tenant_inactive Tenant är inte aktiv

Session

Felkod Beskrivning
session_not_found Sessionen finns inte eller har gått ut
session_expired Sessionen har gått ut
already_extended Sessionen har redan förlängts
qr_not_available QR-kod är inte tillgänglig för denna session

Validering

Felkod Beskrivning
provider_not_enabled Identitetsleverantören är inte aktiverad för tenant
invalid_callback_url Callback-URL:en är inte godkänd
invalid_webhook_url Webhook-URL:en är inte godkänd
missing_visible_data userVisibleData krävs för signering

Användningsgränser

Felkod Beskrivning
limit_exceeded Månadsgräns för autentiseringar överskriden

Berikning

Felkod Beskrivning
enrichment_not_enabled Berikning är inte aktiverat för tenant
no_valid_types Ingen av de begärda typerna är konfigurerade
session_not_completed Sessionen är inte slutförd
no_personal_number Sessionen saknar personnummer
url_expired Beriknings-URL:en har gått ut (30 min)

BankID hintCode

När en BankID-session misslyckas eller väntar returneras en hintCode som indikerar orsaken. Använd dessa för att visa lämpligt meddelande.

Väntande (status: pending)

hintCode Betydelse Åtgärd
outstandingTransaction Väntar på användaren att starta BankID Visa QR-kod och "Starta BankID-appen"
noClient Ingen BankID-klient svarar Visa "Starta BankID-appen"
started BankID-appen har startats, söker efter BankID Visa "Söker efter BankID..."
userSign Användaren identifierar sig Visa "Skriv in din säkerhetskod..."
userMrtd Användaren skannar ID-handling Visa "Fotografera din ID-handling..."

Misslyckade (status: failed)

hintCode Betydelse Åtgärd
userCancel Användaren avbröt Visa "Åtgärden avbröts"
cancelled Sessionen avbröts Visa "Åtgärden avbröts. Försök igen."
expiredTransaction Sessionen gick ut Visa "BankID-appen svarar inte..."
certificateErr Ogiltigt eller spärrat BankID Visa "Ditt BankID är för gammalt..."
startFailed Kunde inte starta BankID Visa "Misslyckades att läsa av QR-koden..."
alreadyInProgress Pågående session för personnumret Visa "En identifiering pågår redan..."

Best practices

  • Logga fel: Logga alltid error och message för felsökning.
  • Visa användarvänliga meddelanden: Översätt felkoder till förståeliga meddelanden för slutanvändare.
  • Hantera 429: Implementera exponentiell backoff vid rate limiting.
  • Retry-logik: 500-fel kan vara tillfälliga - prova igen med backoff.
  • Timeout: Sätt rimliga timeouts (10-30 sekunder) på anrop.

Exempel på felhantering

try {
  const result = await client.auth.poll(sessionId);

  if (result.status === 'complete') {
    // Lyckad autentisering
    handleSuccess(result.user);
  }
} catch (error) {
  if (error.status === 410) {
    // Session misslyckades
    const message = getSwedishMessage(error.hintCode);
    showError(message);
  } else if (error.status === 429) {
    // Rate limited
    showError('För många förfrågningar. Försök igen om en stund.');
  } else if (error.status >= 500) {
    // Server error - retry
    await delay(2000);
    return retry();
  } else {
    // Övriga fel
    console.error('API error:', error);
    showError('Något gick fel. Försök igen.');
  }
}