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

# Konfigurace

> Všechny volby createGoPayClient, výchozí hodnoty a doporučení pro produkci.

# Konfigurace

<Warning>
  Nikdy necommitujte `clientSecret` ani ostré přihlašovací údaje. V každém prostředí používejte proměnné prostředí nebo správce tajemství.
</Warning>

Klienta SDK vytvoříte pomocí `createGoPayClient`.

```ts theme={null}
import { Language, TokenScope, createGoPayClient } from 'gopay-sdk';

const client = createGoPayClient({
  goid: 8123456789,
  clientId: process.env.GOPAY_CLIENT_ID!,
  clientSecret: process.env.GOPAY_CLIENT_SECRET!,
  gatewayUrl: 'https://gw.sandbox.gopay.com/api',
  scope: TokenScope.ALL,
  language: Language.EN,
  timeoutMs: 30_000,
  customUserAgent: 'my-service/1.0.0',
  tokenRefreshMarginSeconds: 30,
});
```

## Pole konfigurace

### `goid: number | string`

ID účtu obchodníka GoPay. Hodnoty se normalizují na `number`.

### `clientId: string`

OAuth2 identifikátor klienta z GoPay.

### `clientSecret: string`

OAuth2 tajný klíč z GoPay.

### `gatewayUrl: string`

Základní URL brány GoPay API.

Běžné hodnoty:

* Sandbox: `https://gw.sandbox.gopay.com/api`
* Produkce: `https://gate.gopay.cz/api`

SDK hodnotu normalizuje a zajistí koncové `/api`.

### `scope?: TokenScope`

OAuth rozsah pro požadavky na access token.

* `TokenScope.ALL` (`payment-all`) — výchozí
* `TokenScope.CREATE_PAYMENT` (`payment-create`)

### `language?: Language`

Výchozí jazyk SDK v hlavičkách a u výchozích hodnot plateb.
Výchozí: `Language.EN`.

### `timeoutMs?: number`

HTTP timeout jednotlivého požadavku v milisekundách.
Výchozí: `30000`.

### `customUserAgent?: string`

Vlastní hlavička `User-Agent`.
Výchozí: `gopay-sdk-ts/1.0.0`.

### `tokenRefreshMarginSeconds?: number`

Jak brzy před skutečnou expirací obnovit token.
Výchozí: `30`.

## Druhý argument: volby

<Tip>
  Vlastní **`TokenCache`** sdílí tokeny mezi workery, vlastní **`HttpTransport`** pro proxy, tracing nebo jiný HTTP stack než `fetch` — viz [Rozšiřitelnost](/cs/api-reference/extensibility).
</Tip>

```ts theme={null}
import { createGoPayClient, type HttpTransport, type TokenCache } from 'gopay-sdk';

const tokenCache: TokenCache = {
  get: (key) => undefined,
  set: (key, value) => {},
  delete: (key) => {},
};

const transport: HttpTransport = {
  execute: async (request) => fetch(request.url, request),
};

const client = createGoPayClient(config, {
  tokenCache,
  transport,
});
```

## Validace

SDK vyhodí `GoPayConfigError` při:

* chybějícím `clientId` nebo `clientSecret`
* nečíselném `goid`
* prázdné nebo neplatné `gatewayUrl`
* `timeoutMs <= 0`
* `tokenRefreshMarginSeconds < 0`
