ProtoPays · API
кабинет

Баланс продуктовой кассы (USDT)

Возвращает агрегированные суммы на trader_cashbox, привязанной к продуктовой кассе мерчанта. Требуется ключ интеграции, привязанный к этой кассе.

GET https://api.protopays.io/api/v1/cashboxes/{merchantCashboxId}/balance

Заголовки запроса

Те же, что для внешнего API платежей: аутентификация.

ПолеТипОбяз.Описание
X-Merchant-SecretstringдаСекрет ключа.
Signaturestring (hex)даHMAC-SHA256 от эффективного тела для подписи (для GET — пустая строка).
X-Merchant-Key-IdstringдаПубличный key_id строки API-ключа в кабинете.

Подпись для GET

У запроса нет тела: для проверки используется пустая строка — считайте HMAC-SHA256("", secret) в hex (нижний регистр, как для JSON POST).

Примеры

curl

Подставьте hex подписи от пустой строки и id кассы из кабинета.

curl -sS -X GET 'https://api.protopays.io/api/v1/cashboxes/12/balance' \
  -H 'X-Merchant-Secret: <SECRET>' \
  -H 'Signature: <SIGNATURE>'

Node.js

import crypto from "node:crypto";

const secret = "<SECRET>";
const body = ""; // GET без тела — подпись от пустой строки
const signature = crypto.createHmac("sha256", secret).update(body, "utf8").digest("hex");

const cashboxId = 12;
const res = await fetch(`https://api.protopays.io/api/v1/cashboxes/${cashboxId}/balance`, {
  method: "GET",
  headers: {
    "X-Merchant-Secret": secret,
    Signature: signature,
  },
});
console.log(res.status, await res.text());

Ответ 200

{
  "data": {
    "merchantCashboxId": 12,
    "traderCashboxId": 5,
    "currency": "USDT",
    "totalBalance": "1000.00000000",
    "available": "950.00000000",
    "reserved": "50.00000000",
    "insuranceReserved": "0.00000000"
  }
}
ПолеТипОбяз.Описание
totalBalancestringдаUSDT на кассе (trader_cashbox.usdt_balance).
availablestringдаДоступно с учётом резервов (логика сервиса баланса).
reservedstringдаЗарезервировано (usdt_balance_reserved).
insuranceReservedstringдаРезерв под страховку P2P.

Типичные ошибки

  • 404 — касса не найдена или не принадлежит мерчанту ключа.
  • 422 — касса без привязки к trader_cashbox (merchant_cashbox_missing_trader_bridge и др.).

Машиночитаемая схема: /openapi/api-docs.json