---
title: "Використання в браузері та на сервері"
description: "Які методи SDK браузерна вітрина може викликати з публічним ключем, які належать серверу із секретним ключем і як підключити обидва в Next.js чи Nuxt."
canonical_url: "https://requiply.com/docs/uk/developers/typescript-sdk/browser-and-server-usage"
---
# Використання в браузері та на сервері

> Які методи SDK браузерна вітрина може викликати з публічним ключем, які належать серверу із секретним ключем і як підключити обидва в Next.js чи Nuxt.

## Виклики з браузера та вітрини

Публічний ключ може виконувати ці методи просто з браузера:

- `org.info()`
- `categories.list()`, `services.list()`, `inventory.list()`, `inventory.getGroup()`
- `availability.calendar()`, `availability.items()`, `pricing.quote()`
- `bookings.create({ ..., asRequest: true })`
- `saleItems.list()`, `saleItems.get()`, а також `saleLines` у розрахунках ціни та запитах на бронювання, поки організація [продає клієнтам](https://requiply.com/docs/uk/developers/typescript-sdk/sales#%D0%B7-%D0%BF%D1%83%D0%B1%D0%BB%D1%96%D1%87%D0%BD%D0%B8%D0%BC-%D0%BA%D0%BB%D1%8E%D1%87%D0%B5%D0%BC)

Публічний API приймає запити з браузера з будь-якого джерела, тож домен реєструвати не потрібно. Сам SDK надсилає лише такі заголовки: `Authorization`, `Accept`, `Content-Type`. Якщо додати власні заголовки, браузери заблокують запит; див. [Параметри запитів](https://requiply.com/docs/uk/developers/typescript-sdk/request-options#%D0%B7%D0%B0%D0%B3%D0%BE%D0%BB%D0%BE%D0%B2%D0%BA%D0%B8-%D0%B4%D0%BB%D1%8F-%D0%B2%D1%81%D1%8C%D0%BE%D0%B3%D0%BE-%D0%BA%D0%BB%D1%96%D1%94%D0%BD%D1%82%D0%B0).

## Серверні виклики

Використовуйте секретний ключ на довіреному сервері для:

- `org.summary()`, `inventory.status()`
- Звичайних бронювань: `bookings.create()` без `asRequest`, `bookings.list()`, `bookings.get()`, `bookings.addNote()`
- `clients.lookup()`, `clients.create()`
- `sales.list()`, `sales.get()`, `sales.create()`
- Усіх [звітів](https://requiply.com/docs/uk/developers/typescript-sdk/reports)
- `adjustment` і `allowOutsideWorkingHours` у бронюваннях, а також товарів суборенди від постачальників

Секретним ключам місце в змінних середовища сервера. Не давайте їм префікса, який відкриває значення для браузерних бандлів, як-от `NEXT_PUBLIC_` чи `NUXT_PUBLIC_`.

## Фреймворки

Використовуйте `@requiply/api-sdk` напряму. Типове налаштування створює два клієнти:

```ts
// lib/requiply.ts
import { RequiplyClient } from '@requiply/api-sdk';

// Safe to ship to the browser.
export const storefront = new RequiplyClient({
  apiKey: 'rq_pk_live_...',
});

// Import only from server code: route handlers, server actions, Nuxt server/ routes.
export const createServerClient = () =>
  new RequiplyClient({ apiKey: process.env.REQUIPLY_SECRET_KEY! });
```

Тримайте серверний клієнт у модулі, який імпортує лише серверний код. Якщо клієнт із секретним ключем усе ж створять у браузері, SDK викине `TypeError` замість того, щоб надіслати ключ.

## Платіжні провайдери

`bookings.create()` і `sales.create()` приймають такі значення: `payOnPickup`, `stripe`, `wayforpay`, `monobank`, `liqpay`. Онлайн-спосіб оплати потребує активної [платіжної інтеграції](https://requiply.com/docs/uk/guides/settings/integrations/payments) для цього провайдера. Тоді відповідь містить `paymentUrl`, на який треба перенаправити клієнта (бронювання також повертають `paymentRedirect`, який може бути надсиланням форми).

<note>

`supportedPaymentMethods` в `org.info()` і `org.summary()` перелічує `payOnPickup` і підключені інтеграції (`monobank`, `liqpay`, `wayforpay`), але не Stripe, навіть коли його підключено. SDK типізує це поле з усіма способами оплати, тож ваш код працюватиме й тоді, коли додадуть Stripe.

</note>


## Sitemap

See the full [sitemap](https://requiply.com/docs/sitemap.md) for all pages.
