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

# Tilgangsregler

> Planlegg start og slutt, begrens antall skanninger, krev passord, og sett på pause, reaktiver eller slett en QR-kode.

> [!NOTE]
>
> GetQR API-et er i beta og er tilgjengelig for utvalgte arbeidsområder. Detaljer kan endres før den generelle lanseringen.

Styr når en QR-kode løses, hvor mange ganger den kan skannes, om den ber om passord, og om den er satt på pause eller slettet.

## Før du starter

* **Rolle.** Å angi regler, sette på pause, reaktivere og slette krever skrivetilgang til QR-koder i arbeidsområdet. Se [Autentisering](https://docs.getqr.com/no/api/authentication.md).
* **Abonnement.** Hver API-forespørsel, også disse, krever et aktivt abonnement hos eieren av arbeidsområdet.

## Access-objektet

Send et `access`-objekt når du [oppretter](https://docs.getqr.com/no/api/endpoints/qr-codes.md#opprett-en-qr-kode) eller [oppdaterer](https://docs.getqr.com/no/api/endpoints/qr-codes.md#oppdater-en-qr-kode) en QR-kode:

```text theme={null}
POST  /api/v1/qrs
PATCH /api/v1/qrs/{qrId}
```

| Felt | Type | Beskrivelse |
| - | - | - |
| `activeAt` | string (ISO 8601) \| null | Planlagt start. Før dette tidspunktet viser skanninger pausesiden i stedet for målet. `null` betyr aktiv umiddelbart. |
| `pauseAt` | string (ISO 8601) \| null | Planlagt slutt. Fra og med dette tidspunktet viser skanninger pausesiden. `null` betyr ingen sluttdato. |
| `scanLimit` | integer \| null | Maksimalt antall skanninger i løpet av QR-kodens levetid. Når grensen er overskredet, viser skanninger pausesiden. `null` betyr ubegrenset. |
| `password` | string \| null | Passordet besøkende må skrive inn før de videresendes. Når du sender det, slås også beskyttelsen på. |
| `passwordProtected` | boolean | Om QR-koden ber om passord. `false` slår av beskyttelsen, men beholder det lagrede passordet. `true` slår den på igjen. |

Felt du utelater, forblir uendret. Send `null` for å fjerne en regel. Et delvis `access`-objekt tilbakestiller aldri regler du ikke nevnte.

> [!WARNING]
>
> Tilgangsregler hører hjemme under `access`. Sender du `activeAt`, `pauseAt`, `scanLimit`, `password` eller `passwordProtected` under `link`, får du `422`.

## Planlegg start og slutt

`activeAt` og `pauseAt` er uavhengige: angi den ene eller begge. Begge tar ISO 8601-tidspunkter, med `Z` eller en UTC-forskyvning.

```bash theme={null}
curl -X PATCH "https://getqr.com/api/v1/qrs/qr_abc123" \
  -H "Authorization: Bearer $GETQR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "access": {
      "activeAt": "2026-08-01T09:00:00Z",
      "pauseAt": "2026-08-31T23:59:59Z"
    }
  }'
```

Send `null` for å fjerne tidsplanen. Da blir QR-koden aktiv umiddelbart, og sluttdatoen fjernes:

```json theme={null}
{
  "access": { "activeAt": null, "pauseAt": null }
}
```

## Skannegrense

Begrens det totale antallet skanninger. Deretter slutter QR-koden å løses:

```json theme={null}
{
  "access": { "scanLimit": 500 }
}
```

Telleren for skanninger i levetiden går alltid, enten en grense er satt eller ikke. Det gjør endringer i grensen forutsigbare:

* **Å heve grensen** gir nøyaktig (ny grense minus totalt antall skanninger) flere skanninger.
* **Å senke grensen** under det nåværende totalet blokkerer QR-koden umiddelbart.
* **Å sette en grense senere** teller med skanningene fra perioden uten grense.

`scanLimit` må være et positivt heltall, opptil 2147483647. Send `null` for ubegrenset.

## Passordbeskyttelse

Angi et passord via det samme `access`-objektet. Det lagrede passordet beholdes når du slår av beskyttelsen, så du kan slå den på igjen uten å sende passordet på nytt.

**1. Angi eller endre passordet**

Dette slår også på beskyttelsen.

```json theme={null}
{ "access": { "password": "hunter2" } }
```

**2. Slå av beskyttelsen**

Det lagrede passordet beholdes.

```json theme={null}
{ "access": { "passwordProtected": false } }
```

**3. Slå på beskyttelsen igjen**

Du trenger ikke sende passordet på nytt. Dette fungerer bare når et passord allerede er angitt. Ellers får forespørselen `422`.

```json theme={null}
{ "access": { "passwordProtected": true } }
```

* **Ved oppretting.** Send `password` for å slå på beskyttelsen. `passwordProtected` alene har ingen effekt før et passord finnes.
* **Fjerne passordet.** Send `"password": null`. Beskyttelsen slås også av.
* **Lesing.** Svar returnerer aldri passordet, bare `access.passwordProtected`.

## Pause, reaktiver og slett

Pause og reaktivering er egne endepunkter i stedet for `access`-felt, fordi de trer i kraft med en gang i stedet for etter en tidsplan.

| Metode | Bane | Beskrivelse |
| - | - | - |
| `POST` | `/api/v1/qrs/{qrId}/pause` | [Sett QR-koden på pause nå](https://docs.getqr.com/no/api/endpoints/qr-codes.md#sett-en-qr-kode-på-pause). Skanninger viser pausesiden til du reaktiverer den. |
| `POST` | `/api/v1/qrs/{qrId}/activate` | [Reaktiver en QR-kode som er satt på pause](https://docs.getqr.com/no/api/endpoints/qr-codes.md#reaktiver-en-qr-kode). Eventuelle tidsplaner og skannegrenser gjelder fortsatt. |
| `DELETE` | `/api/v1/qrs/{qrId}` | [Slett QR-koden](https://docs.getqr.com/no/api/endpoints/qr-codes.md#slett-en-qr-kode) og kortlenken permanent. |

Pause og aktivering tar ingen body og returnerer den oppdaterte [QR-koden](https://docs.getqr.com/no/api/endpoints/qr-codes.md#qr-kodeobjektet):

```bash theme={null}
curl -X POST "https://getqr.com/api/v1/qrs/qr_abc123/pause" \
  -H "Authorization: Bearer $GETQR_API_KEY"
```

```json theme={null}
{
  "id": "qr_abc123",
  "archived": true,
  "…": "…"
}
```

Du kan også angi pausestatusen med `PUT /api/v1/qrs/{qrId}` og `{ "archived": true }`, eller med `archived` i en `PATCH`. Se [Angi pausestatus](https://docs.getqr.com/no/api/endpoints/qr-codes.md#angi-pausestatus).

Sletting fjerner QR-koden og kortlenken samtidig:

```json theme={null}
{ "id": "qr_abc123", "deleted": true }
```

> [!WARNING]
>
> Sletting kan ikke angres. Kortlenken slutter å løses, så trykte koder slutter å fungere. Sett heller QR-koden på pause hvis du kanskje trenger den igjen.

## Når endringer trer i kraft

* **Neste skanning.** Reglene sjekkes når en kode skannes, så en endring gjelder fra neste skanning, ikke bakover i tid.
* **Pausesiden.** En QR-kode som blokkeres av en tidsplan, en skannegrense eller en pause, viser pausesiden. Skanningen videresendes ikke.
* **Passord.** Besøkende som allerede har skrevet inn passordet, beholder tilgangen til passordet endres, eller til beskyttelsen slås av og på igjen.
* **Klokke.** Tidsplaner bruker serverklokken i UTC, ikke den besøkendes lokale tid.
* **Reglene kombineres.** En QR-kode løses bare når den ikke er satt på pause, er innenfor tidsplanen og er under skannegrensen.

## Vanlige problemer

> [accordion] 422 når jeg angir en regel under link
>
> Send regelen under `access`, ikke `link`.

> [accordion] 422 når jeg slår på passordbeskyttelse
>
> QR-koden har ikke noe passord ennå. Send `password` i stedet for `passwordProtected: true`.

> [accordion] QR-koden viser fortsatt pausesiden etter reaktivering
>
> En tidsplan eller skannegrense gjelder fortsatt. Sjekk `access.activeAt`, `access.pauseAt` og `access.scanLimit` i [QR-koden](https://docs.getqr.com/no/api/endpoints/qr-codes.md#hent-en-qr-kode), og sammenlign `scans` med grensen.

> [accordion] Jeg vil at lenken skal utløpe
>
> `link.expiresAt` er ikke tilgjengelig i dette API-et. Bruk `access.pauseAt` i stedet.

## Neste steg

> [card] [QR-koder](https://docs.getqr.com/no/api/endpoints/qr-codes.md)

> [card] [QR-kodedata per type](https://docs.getqr.com/no/api/guides/qr-types.md)


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