> ## 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.

# Toegangsregels

> Plan een begin en einde, beperk het aantal scans, vraag om een wachtwoord, en pauzeer, heractiveer of verwijder een QR-code.

> [!NOTE]
>
> De GetQR API is in bèta en beschikbaar voor geselecteerde workspaces. Details kunnen nog veranderen vóór de algemene release.

Bepaal wanneer een QR-code doorverwijst, hoe vaak hij gescand kan worden, of hij om een wachtwoord vraagt, en of hij gepauzeerd of verwijderd is.

## Voordat je begint

* **Rol.** Voor het instellen van regels en het pauzeren, heractiveren en verwijderen heb je schrijftoegang tot QR-codes in de workspace nodig. Zie [Authenticatie](https://docs.getqr.com/nl/api/authentication.md).
* **Abonnement.** Elk API-verzoek vereist een actief abonnement van de Admin van de workspace, ook deze verzoeken.

## Het toegangsobject

Stuur een `access`-object mee wanneer je een QR-code [maakt](https://docs.getqr.com/nl/api/endpoints/qr-codes.md#een-qr-code-maken) of [bijwerkt](https://docs.getqr.com/nl/api/endpoints/qr-codes.md#een-qr-code-bijwerken):

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

| Veld | Type | Beschrijving |
| - | - | - |
| `activeAt` | string (ISO 8601) \| null | Geplande start. Vóór dit moment tonen scans de gepauzeerde pagina in plaats van de bestemming. `null` betekent meteen actief. |
| `pauseAt` | string (ISO 8601) \| null | Gepland einde. Vanaf dit moment tonen scans de gepauzeerde pagina. `null` betekent geen einddatum. |
| `scanLimit` | integer \| null | Maximaal aantal scans gedurende de hele levensduur van de QR-code. Zodra dit wordt overschreden, tonen scans de gepauzeerde pagina. `null` betekent onbeperkt. |
| `password` | string \| null | Wachtwoord dat bezoekers moeten invoeren voordat ze worden doorgestuurd. Meesturen schakelt de beveiliging ook in. |
| `passwordProtected` | boolean | Of de QR-code om een wachtwoord vraagt. `false` schakelt de beveiliging uit, maar behoudt het opgeslagen wachtwoord. `true` schakelt haar weer in. |

Velden die je weglaat, blijven ongewijzigd. Stuur `null` om een regel te wissen. Een gedeeltelijk `access`-object zet nooit regels terug die je niet noemt.

> [!WARNING]
>
> Toegangsregels horen onder `access`. Stuur je `activeAt`, `pauseAt`, `scanLimit`, `password` of `passwordProtected` onder `link`, dan krijg je `422`.

## Een begin en einde plannen

`activeAt` en `pauseAt` zijn onafhankelijk van elkaar: stel er één of beide in. Beide accepteren ISO 8601-datums met tijd, met `Z` of een UTC-offset.

```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"
    }
  }'
```

Stuur `null` om de planning te wissen. Daarmee is de QR-code meteen actief en verdwijnt de einddatum:

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

## Scanlimiet

Beperk het totale aantal scans. Daarna verwijst de QR-code niet meer door:

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

De teller voor het totale aantal scans loopt altijd, of er nu een limiet is ingesteld of niet. Daardoor is het wijzigen van de limiet voorspelbaar:

* **De limiet verhogen** geeft precies (nieuwe limiet min totaal aantal scans) extra scans vrij.
* **De limiet verlagen** tot onder het huidige totaal blokkeert de QR-code meteen.
* **Later een limiet instellen** telt de scans mee die zijn gedaan toen er nog geen limiet was.

`scanLimit` moet een positief geheel getal zijn, maximaal 2147483647. Stuur `null` voor onbeperkt.

## Wachtwoordbeveiliging

Stel een wachtwoord in via hetzelfde `access`-object. Het opgeslagen wachtwoord blijft bewaard als je de beveiliging uitschakelt, zodat je haar weer kunt inschakelen zonder het opnieuw te sturen.

**1. Stel het wachtwoord in of wijzig het**

Dit schakelt de beveiliging ook in.

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

**2. Schakel de beveiliging uit**

Het opgeslagen wachtwoord blijft bewaard.

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

**3. Schakel de beveiliging weer in**

Je hoeft het wachtwoord niet opnieuw te sturen. Dit werkt alleen als er al een wachtwoord is ingesteld. Anders krijgt het verzoek `422`.

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

* **Bij het aanmaken.** Stuur `password` om de beveiliging in te schakelen. `passwordProtected` alleen heeft geen effect zolang er geen wachtwoord is.
* **Het wachtwoord verwijderen.** Stuur `"password": null`. De beveiliging wordt dan ook uitgeschakeld.
* **Lezen.** Antwoorden geven het wachtwoord nooit terug, alleen `access.passwordProtected`.

## Pauzeren, heractiveren en verwijderen

Pauzeren en heractiveren zijn aparte endpoints in plaats van `access`-velden, omdat ze direct effect hebben in plaats van volgens een planning.

| Methode | Pad | Beschrijving |
| - | - | - |
| `POST` | `/api/v1/qrs/{qrId}/pause` | [Pauzeer de QR-code nu](https://docs.getqr.com/nl/api/endpoints/qr-codes.md#een-qr-code-pauzeren). Scans tonen de gepauzeerde pagina tot je hem heractiveert. |
| `POST` | `/api/v1/qrs/{qrId}/activate` | [Heractiveer een gepauzeerde QR-code](https://docs.getqr.com/nl/api/endpoints/qr-codes.md#een-qr-code-heractiveren). Een eventuele planning en scanlimiet blijven gelden. |
| `DELETE` | `/api/v1/qrs/{qrId}` | [Verwijder de QR-code](https://docs.getqr.com/nl/api/endpoints/qr-codes.md#een-qr-code-verwijderen) en de korte link permanent. |

Pauzeren en activeren hebben geen request-body en geven de bijgewerkte [QR-code](https://docs.getqr.com/nl/api/endpoints/qr-codes.md#het-qr-code-object) terug:

```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,
  "…": "…"
}
```

Je kunt de gepauzeerde status ook instellen met `PUT /api/v1/qrs/{qrId}` en `{ "archived": true }`, of met `archived` in een `PATCH`. Zie [De gepauzeerde status instellen](https://docs.getqr.com/nl/api/endpoints/qr-codes.md#de-gepauzeerde-status-instellen).

Verwijderen haalt de QR-code en de korte link samen weg:

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

> [!WARNING]
>
> Verwijderen kan niet ongedaan worden gemaakt. De korte link verwijst niet meer door, dus gedrukte codes werken niet meer. Pauzeer de QR-code liever als je hem misschien nog nodig hebt.

## Wanneer wijzigingen van kracht worden

* **Volgende scan.** Regels worden gecontroleerd wanneer een code wordt gescand, dus een wijziging geldt vanaf de volgende scan, niet met terugwerkende kracht.
* **Gepauzeerde pagina.** Een QR-code die wordt geblokkeerd door een planning, een scanlimiet of een pauze, toont de gepauzeerde pagina. De scan wordt niet doorgestuurd.
* **Wachtwoord.** Bezoekers die het wachtwoord al hebben ingevoerd, houden toegang tot het wachtwoord verandert, of tot de beveiliging uit- en weer ingeschakeld wordt.
* **Klok.** Planningen gebruiken de serverklok in UTC, niet de lokale tijd van de bezoeker.
* **Regels samen.** Een QR-code verwijst alleen door als hij niet gepauzeerd is, binnen zijn planning valt en onder zijn scanlimiet zit.

## Veelvoorkomende problemen

> [accordion] 422 bij het instellen van een regel onder link
>
> Stuur de regel onder `access`, niet onder `link`.

> [accordion] 422 bij het inschakelen van wachtwoordbeveiliging
>
> De QR-code heeft nog geen wachtwoord. Stuur `password` in plaats van `passwordProtected: true`.

> [accordion] De QR-code toont na heractiveren nog steeds de gepauzeerde pagina
>
> Er geldt nog een planning of scanlimiet. Controleer `access.activeAt`, `access.pauseAt` en `access.scanLimit` in de [QR-code](https://docs.getqr.com/nl/api/endpoints/qr-codes.md#een-qr-code-ophalen), en vergelijk `scans` met de limiet.

> [accordion] Ik wil dat de link verloopt
>
> `link.expiresAt` is niet beschikbaar in deze API. Gebruik in plaats daarvan `access.pauseAt`.

## Volgende stappen

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

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


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