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

# Pravidla přístupu

> Naplánujte začátek a konec, omezte počet skenování, vyžadujte heslo a pozastavte, znovu aktivujte nebo smažte QR kód.

> [!NOTE]
>
> GetQR API je v beta verzi a je dostupné pro vybrané pracovní prostory. Do obecného vydání se podrobnosti mohou změnit.

Určete, kdy QR kód vede na svůj cíl, kolikrát ho lze naskenovat, zda vyžaduje heslo a zda je pozastavený nebo smazaný.

## Než začnete

* **Role.** Nastavení pravidel, pozastavení, opětovná aktivace a mazání vyžadují oprávnění k zápisu u QR kódů v pracovním prostoru. Viz [Ověřování](https://docs.getqr.com/cs/api/authentication.md).
* **Předplatné.** Každý požadavek na API, včetně těchto, vyžaduje aktivní předplatné vlastníka pracovního prostoru.

## Objekt access

Objekt `access` pošlete, když QR kód [vytváříte](https://docs.getqr.com/cs/api/endpoints/qr-codes.md#vytvoření-qr-kódu) nebo [upravujete](https://docs.getqr.com/cs/api/endpoints/qr-codes.md#úprava-qr-kódu):

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

| Pole | Typ | Popis |
| - | - | - |
| `activeAt` | string (ISO 8601) \| null | Plánovaný začátek. Před tímto okamžikem skenování zobrazí stránku pozastavení místo cíle. `null` znamená, že je kód aktivní ihned. |
| `pauseAt` | string (ISO 8601) \| null | Plánovaný konec. Od tohoto okamžiku skenování zobrazí stránku pozastavení. `null` znamená bez data ukončení. |
| `scanLimit` | integer \| null | Maximální počet skenování za celou dobu existence QR kódu. Po jeho překročení skenování zobrazí stránku pozastavení. `null` znamená bez omezení. |
| `password` | string \| null | Heslo, které musí návštěvník zadat, než bude přesměrován. Jeho odesláním se zároveň zapne ochrana. |
| `passwordProtected` | boolean | Zda QR kód vyžaduje heslo. `false` ochranu vypne, ale uložené heslo zachová. `true` ji znovu zapne. |

Vynechaná pole zůstanou beze změny. Pravidlo zrušíte odesláním `null`. Částečný objekt `access` nikdy neresetuje pravidla, která jste neuvedli.

> [!WARNING]
>
> Pravidla přístupu patří do `access`. Odeslání `activeAt`, `pauseAt`, `scanLimit`, `password` nebo `passwordProtected` v `link` vrátí `422`.

## Naplánování začátku a konce

`activeAt` a `pauseAt` jsou na sobě nezávislé: nastavte jedno z nich, nebo obě. Obě přijímají datum a čas ve formátu ISO 8601 se `Z` nebo s posunem vůči UTC.

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

Plán zrušíte odesláním `null`. QR kód je pak aktivní ihned a datum ukončení se odstraní:

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

## Limit skenování

Omezte celkový počet skenování. Po jeho dosažení QR kód přestane vést na cíl:

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

Počítadlo skenování za celou dobu existence kódu běží vždy, ať je limit nastaven, nebo ne. Díky tomu je změna limitu předvídatelná:

* **Zvýšení limitu** uvolní přesně (nový limit minus celkový počet skenování) dalších skenování.
* **Snížení limitu** pod aktuální celkový počet QR kód okamžitě zablokuje.
* **Pozdější nastavení limitu** započítá i skenování provedená v době, kdy žádný limit nastaven nebyl.

`scanLimit` musí být kladné celé číslo, nejvýše 2147483647. Pro neomezený počet pošlete `null`.

## Ochrana heslem

Heslo nastavíte stejným objektem `access`. Při vypnutí ochrany zůstane uložené heslo zachováno, takže ji můžete znovu zapnout bez opětovného odeslání hesla.

**1. Nastavte nebo změňte heslo**

Tím se zároveň zapne ochrana.

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

**2. Vypněte ochranu**

Uložené heslo zůstane zachováno.

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

**3. Znovu zapněte ochranu**

Heslo není třeba posílat znovu. Funguje to jen tehdy, když už bylo heslo nastaveno. Jinak požadavek vrátí `422`.

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

* **Při vytváření.** Ochranu zapnete odesláním `password`. Samotné `passwordProtected` nemá žádný účinek, dokud heslo neexistuje.
* **Odebrání hesla.** Pošlete `"password": null`. Tím se vypne i ochrana.
* **Čtení.** Odpovědi nikdy nevracejí heslo, jen `access.passwordProtected`.

## Pozastavení, opětovná aktivace a smazání

Pozastavení a opětovná aktivace jsou samostatné endpointy, nikoli pole v `access`, protože se projeví okamžitě, a ne podle plánu.

| Metoda | Cesta | Popis |
| - | - | - |
| `POST` | `/api/v1/qrs/{qrId}/pause` | [Okamžitě pozastavit QR kód](https://docs.getqr.com/cs/api/endpoints/qr-codes.md#pozastavení-qr-kódu). Skenování zobrazují stránku pozastavení, dokud kód znovu neaktivujete. |
| `POST` | `/api/v1/qrs/{qrId}/activate` | [Znovu aktivovat pozastavený QR kód](https://docs.getqr.com/cs/api/endpoints/qr-codes.md#opětovná-aktivace-qr-kódu). Plán i limit skenování stále platí. |
| `DELETE` | `/api/v1/qrs/{qrId}` | [Trvale smazat QR kód](https://docs.getqr.com/cs/api/endpoints/qr-codes.md#smazání-qr-kódu) i jeho krátký odkaz. |

Pozastavení a aktivace nepřijímají tělo požadavku a vracejí aktualizovaný [QR kód](https://docs.getqr.com/cs/api/endpoints/qr-codes.md#objekt-qr-kódu):

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

Stav pozastavení můžete nastavit také pomocí `PUT /api/v1/qrs/{qrId}` s `{ "archived": true }` nebo polem `archived` v požadavku `PATCH`. Viz [Nastavení stavu pozastavení](https://docs.getqr.com/cs/api/endpoints/qr-codes.md#nastavení-stavu-pozastavení).

Smazání odstraní QR kód i jeho krátký odkaz najednou:

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

> [!WARNING]
>
> Smazání nelze vrátit zpět. Krátký odkaz přestane fungovat, takže přestanou fungovat i vytištěné kódy. Pokud budete QR kód možná ještě potřebovat, raději ho pozastavte.

## Kdy se změny projeví

* **Další skenování.** Pravidla se kontrolují při skenování kódu, takže změna platí od dalšího skenování, ne zpětně.
* **Stránka pozastavení.** QR kód zablokovaný plánem, limitem skenování nebo pozastavením zobrazí stránku pozastavení. Skenování se nepřesměruje.
* **Heslo.** Návštěvníci, kteří už heslo zadali, si přístup ponechají, dokud se heslo nezmění nebo dokud se ochrana nevypne a znovu nezapne.
* **Čas.** Plány se řídí časem serveru v UTC, ne místním časem návštěvníka.
* **Kombinace pravidel.** QR kód vede na cíl, jen když není pozastavený, je v rámci svého plánu a nepřekročil limit skenování.

## Časté problémy

> [accordion] 422 při nastavení pravidla v link
>
> Pravidlo pošlete v `access`, ne v `link`.

> [accordion] 422 při zapnutí ochrany heslem
>
> QR kód zatím nemá heslo. Místo `passwordProtected: true` pošlete `password`.

> [accordion] QR kód po opětovné aktivaci stále zobrazuje stránku pozastavení
>
> Stále platí plán nebo limit skenování. Zkontrolujte `access.activeAt`, `access.pauseAt` a `access.scanLimit` v [QR kódu](https://docs.getqr.com/cs/api/endpoints/qr-codes.md#získání-qr-kódu) a porovnejte `scans` s limitem.

> [accordion] Potřebuji, aby odkaz vypršel
>
> `link.expiresAt` v tomto API není k dispozici. Použijte místo něj `access.pauseAt`.

## Co dál

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

> [card] [Data QR kódu podle typu](https://docs.getqr.com/cs/api/guides/qr-types.md)


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