> ## Documentation Index
> Fetch the complete documentation index at: https://docs.livingsecurity.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Virheviitteistö

> Kaikki virheet, joita Living Securityn julkinen /v1-rajapinta voi palauttaa, sekä niiden vakaat konekoodit, HTTP-tilakoodit ja ratkaisuohjeet.

Jokainen `/v1`-virhevastaus on muodossa `application/problem+json` ([RFC 9457](https://www.rfc-editor.org/rfc/rfc9457)), ja sen kentät ovat kiinteät:

```json theme={null}
{
  "type": "https://docs.livingsecurity.com/developers/v1/errors/resource_not_found",
  "title": "Not Found",
  "status": 404,
  "detail": "No such organization.",
  "code": "resource_not_found",
  "request_id": "req_...",
  "doc_url": "https://docs.livingsecurity.com/developers/v1/errors/resource_not_found",
  "retryable": false
}
```

Käytä ehtologiikassa kenttää `code`, älä koskaan kenttää `detail` — `code` on vakaa konesopimus, kun taas `detail` on ihmisluettava ja voi muuttua. `param` on mukana, kun virhe johtuu tietystä pyynnön parametrista. Liitä `request_id` mukaan, kun otat yhteyttä tukeen.

## Virhekoodit

| Koodi | HTTP-tilakoodi | Uudelleenyritettävissä |
| - | - | - |
| [`unauthorized`](/fi/developers/v1/errors/unauthorized) | 401 | Ei |
| [`credential_inactive`](/fi/developers/v1/errors/credential_inactive) | 401 | Ei |
| [`credential_expired`](/fi/developers/v1/errors/credential_expired) | 401 | Ei |
| [`credential_revoked`](/fi/developers/v1/errors/credential_revoked) | 401 | Ei |
| [`not_entitled`](/fi/developers/v1/errors/not_entitled) | 403 | Ei |
| [`insufficient_permission`](/fi/developers/v1/errors/insufficient_permission) | 403 | Ei |
| [`permission_denied`](/fi/developers/v1/errors/permission_denied) | 403 | Ei |
| [`resource_not_found`](/fi/developers/v1/errors/resource_not_found) | 404 | Ei |
| [`invalid_request`](/fi/developers/v1/errors/invalid_request) | 400 tai 409 | Ei |
| [`invalid_filter`](/fi/developers/v1/errors/invalid_filter) | 400 | Ei |
| [`unsupported_version`](/fi/developers/v1/errors/unsupported_version) | 400 | Ei |
| [`idempotency_key_reuse`](/fi/developers/v1/errors/idempotency_key_reuse) | 409 | Riippuu ristiriidasta |
| [`rate_limited`](/fi/developers/v1/errors/rate_limited) | 429 | Kyllä |
| [`service_unavailable`](/fi/developers/v1/errors/service_unavailable) | 503 | Kyllä |
| [`internal_error`](/fi/developers/v1/errors/internal_error) | 500 | Kyllä |

Koodijoukko on suljettu: uudet koodit ovat julkisen sopimuksen muutos, ja niistä ilmoitetaan rajapinnan muutosloki. `retryable: true`-vastaus tarkoittaa, että tilanne voi ratketa; se ei todista, ettei kirjoitusoperaatiolla ollut vaikutusta. Yritä lukuoperaatioita uudelleen rajallisella yritys- ja aikabudjetilla käyttäen eksponentiaalista viivettä (backoff) ja satunnaisviivettä (jitter). Noudata `Retry-After`-arvoa, kun se on annettu, myös uudelleenyritettävän `409`- tai `429`-vastauksen yhteydessä.

Muutosoperaatioissa noudata operaation dokumentoitua idempotenssi- ja palautumissopimusta. Säilytä alkuperäinen avain ja pyyntö, kun se on tuettu. Älä luo uutta avainta aikakatkaisun tai `5xx`-virheen jälkeen: se voi toistaa onnistuneen kirjoituksen. `Idempotency-Key`-otsake ei anna suojaa operaatiossa, joka ei tue sitä.


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.