Tämä sivu dokumentoi kaikki Kirjapro API:n palauttamat virhekoodit.
"message": "Ihmisluettava virhekuvaus",
| Koodi | Merkitys | Toimenpide |
|---|
| 200 | Onnistui | - |
| 201 | Luotu | Resurssi luotu onnistuneesti |
| 400 | Virheellinen pyyntö | Tarkista pyynnön rakenne |
| 401 | Ei autentikoitu | Uusi access token |
| 403 | Ei oikeuksia | Tarkista käyttöoikeudet |
| 404 | Ei löydy | Tarkista resurssin ID |
| 422 | Validointivirhe | Korjaa data ja yritä uudelleen |
| 429 | Liikaa pyyntöjä | Odota ja yritä uudelleen |
| 500 | Palvelinvirhe | Ota yhteyttä tukeen |
| Koodi | Viesti | Ratkaisu |
|---|
AUTH_TOKEN_EXPIRED | Token vanhentunut | Hae uusi token supabase.auth.refreshSession() |
AUTH_TOKEN_INVALID | Virheellinen token | Kirjaudu uudelleen |
AUTH_TOKEN_MISSING | Token puuttuu | Lisää Authorization-header |
AUTH_INSUFFICIENT_PERMISSIONS | Riittämättömät oikeudet | Tarkista käyttäjärooli |
| Koodi | Viesti | Ratkaisu |
|---|
VALIDATION_BUSINESS_ID | Virheellinen Y-tunnus | Muoto: 1234567-8 |
VALIDATION_IBAN | Virheellinen IBAN | Suomi: FI + 16 numeroa |
VALIDATION_REFERENCE | Virheellinen viitenumero | 4-20 numeroa, tarkiste oikein |
VALIDATION_EMAIL | Virheellinen sähköposti | Tarkista muoto |
VALIDATION_REQUIRED | Pakollinen kenttä puuttuu | Katso details.field |
VALIDATION_FORMAT | Väärä muoto | Katso details.expected |
| Koodi | Viesti | Ratkaisu |
|---|
FISCAL_YEAR_LOCKED | Tilikausi on lukittu | Avaa tilikausi ennen muokkausta |
FISCAL_YEAR_NOT_FOUND | Tilikautta ei löydy | Luo tilikausi ensin |
BALANCE_MISMATCH | Kirjaus ei tasapainota | Debet = Kredit |
INVOICE_ALREADY_SENT | Lasku jo lähetetty | Ei voi lähettää uudelleen |
INVOICE_NOT_READY | Lasku ei valmis | Täytä pakolliset kentät |
CUSTOMER_NOT_FOUND | Asiakasta ei löydy | Tarkista asiakas-ID |
ACCOUNT_NOT_FOUND | Tiliä ei löydy | Tarkista tilinumero |
| Koodi | Viesti | Ratkaisu |
|---|
MAVENTA_AUTH_FAILED | Autentikointi epäonnistui | Tarkista API-avaimet asetuksista |
MAVENTA_RECIPIENT_NOT_FOUND | Vastaanottajaa ei löydy | Tarkista OVT-tunnus ja operaattori |
MAVENTA_INVALID_INVOICE | Virheellinen lasku | Validoi Finvoice XML |
MAVENTA_RATE_LIMITED | Liikaa pyyntöjä | Odota hetki |
| Koodi | Viesti | Ratkaisu |
|---|
STRIPE_CUSTOMER_NOT_FOUND | Asiakasta ei löydy | Luo Stripe-asiakas ensin |
STRIPE_SUBSCRIPTION_INACTIVE | Tilaus ei aktiivinen | Tarkista tilauksen tila |
STRIPE_WEBHOOK_INVALID | Virheellinen webhook | Tarkista allekirjoitus |
Kun ylität pyyntörajan:
"message": "Liian monta pyyntöä",
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}`);
if (response.status === 429) {
const data = await response.json();
const wait = data.error?.details?.retryAfter || 60;
await new Promise(r => setTimeout(r, wait * 1000));
// 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:
console.error('API Error:', {
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