Баланс продуктовой кассы (USDT)
Возвращает агрегированные суммы на trader_cashbox, привязанной к продуктовой кассе мерчанта. Требуется ключ интеграции, привязанный к этой кассе.
GET https://api.protopays.io/api/v1/cashboxes/{merchantCashboxId}/balance
Заголовки запроса
Те же, что для внешнего API платежей: аутентификация.
| Поле | Тип | Обяз. | Описание |
|---|---|---|---|
| X-Merchant-Secret | string | да | Секрет ключа. |
| Signature | string (hex) | да | HMAC-SHA256 от эффективного тела для подписи (для GET — пустая строка). |
| X-Merchant-Key-Id | string | да | Публичный 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"
}
}| Поле | Тип | Обяз. | Описание |
|---|---|---|---|
| totalBalance | string | да | USDT на кассе (trader_cashbox.usdt_balance). |
| available | string | да | Доступно с учётом резервов (логика сервиса баланса). |
| reserved | string | да | Зарезервировано (usdt_balance_reserved). |
| insuranceReserved | string | да | Резерв под страховку P2P. |
Типичные ошибки
- 404 — касса не найдена или не принадлежит мерчанту ключа.
- 422 — касса без привязки к
trader_cashbox(merchant_cashbox_missing_trader_bridgeи др.).
Машиночитаемая схема: /openapi/api-docs.json