Siirry sisältöön

Virhekoodi­referenssi

Tämä sivu dokumentoi kaikki Kirjapro API:n palauttamat virhekoodit.

{
"success": true,
"data": { ... }
}
{
"success": false,
"error": {
"code": "ERROR_CODE",
"message": "Ihmisluettava virhekuvaus",
"details": { ... }
}
}
KoodiMerkitysToimenpide
200Onnistui-
201LuotuResurssi luotu onnistuneesti
400Virheellinen pyyntöTarkista pyynnön rakenne
401Ei autentikoituUusi access token
403Ei oikeuksiaTarkista käyttöoikeudet
404Ei löydyTarkista resurssin ID
422ValidointivirheKorjaa data ja yritä uudelleen
429Liikaa pyyntöjäOdota ja yritä uudelleen
500PalvelinvirheOta yhteyttä tukeen
KoodiViestiRatkaisu
AUTH_TOKEN_EXPIREDToken vanhentunutHae uusi token supabase.auth.refreshSession()
AUTH_TOKEN_INVALIDVirheellinen tokenKirjaudu uudelleen
AUTH_TOKEN_MISSINGToken puuttuuLisää Authorization-header
AUTH_INSUFFICIENT_PERMISSIONSRiittämättömät oikeudetTarkista käyttäjärooli
KoodiViestiRatkaisu
VALIDATION_BUSINESS_IDVirheellinen Y-tunnusMuoto: 1234567-8
VALIDATION_IBANVirheellinen IBANSuomi: FI + 16 numeroa
VALIDATION_REFERENCEVirheellinen viitenumero4-20 numeroa, tarkiste oikein
VALIDATION_EMAILVirheellinen sähköpostiTarkista muoto
VALIDATION_REQUIREDPakollinen kenttä puuttuuKatso details.field
VALIDATION_FORMATVäärä muotoKatso details.expected
KoodiViestiRatkaisu
FISCAL_YEAR_LOCKEDTilikausi on lukittuAvaa tilikausi ennen muokkausta
FISCAL_YEAR_NOT_FOUNDTilikautta ei löydyLuo tilikausi ensin
BALANCE_MISMATCHKirjaus ei tasapainotaDebet = Kredit
INVOICE_ALREADY_SENTLasku jo lähetettyEi voi lähettää uudelleen
INVOICE_NOT_READYLasku ei valmisTäytä pakolliset kentät
CUSTOMER_NOT_FOUNDAsiakasta ei löydyTarkista asiakas-ID
ACCOUNT_NOT_FOUNDTiliä ei löydyTarkista tilinumero
KoodiViestiRatkaisu
MAVENTA_AUTH_FAILEDAutentikointi epäonnistuiTarkista API-avaimet asetuksista
MAVENTA_RECIPIENT_NOT_FOUNDVastaanottajaa ei löydyTarkista OVT-tunnus ja operaattori
MAVENTA_INVALID_INVOICEVirheellinen laskuValidoi Finvoice XML
MAVENTA_RATE_LIMITEDLiikaa pyyntöjäOdota hetki
KoodiViestiRatkaisu
STRIPE_CUSTOMER_NOT_FOUNDAsiakasta ei löydyLuo Stripe-asiakas ensin
STRIPE_SUBSCRIPTION_INACTIVETilaus ei aktiivinenTarkista tilauksen tila
STRIPE_WEBHOOK_INVALIDVirheellinen webhookTarkista allekirjoitus

Kun ylität pyyntörajan:

{
"success": false,
"error": {
"code": "RATE_LIMITED",
"message": "Liian monta pyyntöä",
"details": {
"retryAfter": 60
}
}
}

Suositeltu käsittelytapa:

async function apiCall(fn: () => Promise<Response>, maxRetries = 3) {
for (let i = 0; i < maxRetries; i++) {
const response = await fn();
if (response.ok) return response.json();
// Älä yritä uudelleen client-virheillä
if (response.status >= 400 && response.status < 500 && response.status !== 429) {
throw new Error(`Client error: ${response.status}`);
}
// Rate limit - odota
if (response.status === 429) {
const data = await response.json();
const wait = data.error?.details?.retryAfter || 60;
await new Promise(r => setTimeout(r, wait * 1000));
continue;
}
// Server-virhe - exponential backoff
await new Promise(r => setTimeout(r, Math.pow(2, i) * 1000));
}
throw new Error('Max retries exceeded');
}

Suosittelemme lokittamaan virheet debuggausta varten:

if (!result.success) {
console.error('API Error:', {
code: result.error.code,
message: result.error.message,
details: result.error.details,
endpoint: '/functions/v1/...',
timestamp: new Date().toISOString()
});
}

Jos kohtaat odottamattoman virheen, ota yhteyttä:

  • Sähköposti: tuki@kirjapro.fi
  • Liitä mukaan: virhekoodi, aikaleima, pyynnön tiedot