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

# Szybki start

> Od klucza sklepu do pierwszych bezpiecznych wywołań REST API.

Ten przewodnik tworzy serwer i produkt przez klucz przypisany do sklepu. Wszystkie ścieżki mają prefiks `/api/v2`.

## 1. Przygotuj sklep i klucz

1. Zaloguj się do panelu i utwórz sklep.
2. Zapisz jego 24-znakowy `shopId`.
3. W zakładce **Klucze API** utwórz klucz typu **Sklep (integracja)**.
4. Nadaj mu `servers:write` i `products:write`. Zapisz sekret — zobaczysz go tylko raz.

<Warning>
  Nie używaj klucza typu Plugin do ogólnych wywołań REST. Jest ograniczony do protokołu realizacji zamówień w czasie rzeczywistym.
</Warning>

## 2. Dodaj serwer

```bash theme={null}
curl -X POST https://api.itemshop.dev/api/v2/servers/<shopId> \
  -H "X-API-Key: <klucz-sklepu>" \
  -H "Content-Type: application/json" \
  -d '{ "name": "Survival", "domain": "play.moj-sklep.pl" }'
```

Zapisz `data._id` jako `serverId`.

## 3. Dodaj produkt

```bash theme={null}
curl -X POST https://api.itemshop.dev/api/v2/products/<shopId> \
  -H "X-API-Key: <klucz-sklepu>" \
  -H "Content-Type: application/json" \
  -d '{
    "name": "Ranga VIP",
    "serverId": "<serverId>",
    "price": 19.99,
    "commands": ["lp user {PLAYER} parent set vip"]
  }'
```

`products:write` zawiera odczyt, więc możesz od razu sprawdzić wynik:

```bash theme={null}
curl https://api.itemshop.dev/api/v2/products/<shopId>?active=true \
  -H "X-API-Key: <klucz-sklepu>"
```

## 4. Dokończ bezpieczny flow sprzedaży

* skonfiguruj prawdziwego operatora i wykonaj jego test sandbox;
* wgraj plugin oraz wygenerowany `config.yml` z dedykowanym kluczem typu `plugin`;
* dodaj aktualne dokumenty sprzedawcy;
* złóż zamówienie przez storefront, aby checkout przesłał rzeczywistą wersję dokumentów, zgody, Turnstile i `Idempotency-Key`;
* sprawdź pełną ścieżkę: checkout → podpisany webhook operatora → claim pluginu → ACK.

Nie kopiuj na ślepo przykładowego żądania checkoutu: publiczne `POST /orders` celowo wymaga danych i zgód pochodzących z aktualnie wyświetlonego storefrontu.

## Co dalej

<Columns cols={2}>
  <Card title="Uwierzytelnianie" icon="key" href="/pl/guides/authentication">
    Typy kluczy, zakres i odpowiedzi błędów.
  </Card>

  <Card title="Metody płatności" icon="credit-card" href="/pl/guides/payment-providers">
    Konfiguracja operatora i obowiązkowy test sandbox.
  </Card>

  <Card title="Plugin Minecraft" icon="plug" href="/pl/guides/plugin-minecraft">
    Instalacja, journal i diagnostyka realizacji.
  </Card>

  <Card title="Obsługa błędów" icon="triangle-alert" href="/pl/guides/errors">
    Koperta błędu, statusy i retry.
  </Card>
</Columns>
