BRAIS API
Проверяем API OpenAPI JSON
REST API · JSON · HTTPS

Подключите свой магазин
к Braisbot

Получайте каталог, проверяйте баланс и автоматически выдавайте товары покупателям. Деньги списываются с вашего баланса только после успешной покупки.

Базовый адрес API
1
Создайте ключ

В личном кабинете Telegram-бота

2
Получите товары

Запросите каталог и актуальные цены

3
Совершите покупку

Получите ключи прямо в ответе API

Получение API-ключа

Откройте нужного Telegram-бота и перейдите по пути:

Аккаунт›Доступ к API›Создать API-ключ
Сохраните ключ сразу

Полное значение показывается только один раз. При перевыпуске старый ключ моментально перестаёт работать.

Авторизация

Передавайте API-ключ в заголовке Authorization каждого запроса.

HTTP-заголовок
Authorization: Bearer br_panel_ваш_ключ

Не добавляйте ключ в URL и не отправляйте его пользователю вашего бота.

GET/v1/account

Узнать баланс

Возвращает логин продавца и текущий баланс в долларах.

cURL
curl "{{BASE}}/v1/account" \
  -H "Authorization: Bearer $API_KEY"

Пример ответа

200 OK
{
  "ok": true,
  "account": {
    "login": "seller",
    "balance_usd": "100.00",
    "api_key_prefix": "br_panel_..."
  }
}
GET/v1/products

Получить товары

Возвращает каталог, индивидуальные цены продавца и количество доступных ключей. Для покупки используйте поле product_id.

cURL
curl "{{BASE}}/v1/products" \
  -H "Authorization: Bearer $API_KEY"

Один товар в ответе

JSON
{
  "product_id": 42,
  "category": { "id": 1, "name": "Игры" },
  "position": { "id": 5, "name": "Название", "status": true },
  "name": "Тип ключа",
  "price_usd": "10.00",
  "stock": 15
}
POST/v1/purchases

Купить товар

Списывает стоимость с баланса и возвращает купленные ключи. Заголовок Idempotency-Key защищает от двойного списания.

cURL
curl -X POST "{{BASE}}/v1/purchases" \
  -H "Authorization: Bearer $API_KEY" \
  -H "Content-Type: application/json" \
  -H "Idempotency-Key: order-12345678" \
  -d '{"product_id": 42, "quantity": 1}'

Успешная покупка

201 Created
{
  "ok": true,
  "purchase": {
    "client_order_id": "order-12345678",
    "product_id": 42,
    "quantity": 1,
    "unit_price_usd": "10.00",
    "total_price_usd": "10.00",
    "balance_usd": "90.00",
    "keys": ["PRODUCT-KEY"]
  }
}
Где находится товар?

Купленные значения приходят в массиве purchase.keys. Именно их ваш бот должен выдать покупателю.

GET/v1/purchases/{order_id}

Повторно получить заказ

Если соединение оборвалось после покупки, запросите результат по тому же идентификатору заказа.

cURL
curl "{{BASE}}/v1/purchases/order-12345678" \
  -H "Authorization: Bearer $API_KEY"
При сетевой ошибке

Повторяйте POST с тем же Idempotency-Key либо используйте этот GET-запрос. Новый идентификатор создавать нельзя — иначе получится новый заказ.

Коды ошибок

HTTPКодЧто делать
400invalid_requestПроверьте JSON и параметры запроса.
401invalid_api_keyПроверьте ключ или создайте новый.
402insufficient_balanceПополните баланс продавца.
404product_not_foundОбновите каталог товаров.
409insufficient_stockУменьшите количество или выберите другой товар.
503database_busyПовторите запрос с тем же Idempotency-Key.