# Приложение, баланс и курсы

> Информация о приложении, баланс, курсы монет, список доступных монет и статистика: getMe, getBalance, getExchangeRates, getCurrencies, getStats.

Эти методы ничего не меняют — только читают данные. Их можно вызывать через `GET` или `POST` и безопасно повторять.

## getMe

Проверка токена и базовая информация о приложении. Параметров нет.

```bash title="cURL"
curl https://pay.pswallet.org/api/getMe \
  -H "PSWallet-Pay-API-Token: $TOKEN"
```

Возвращает объект:

| Поле | Тип | Описание |
|---|---|---|
| `app_id` | Number | ID приложения (в кабинете — `#A1234`). |
| `name` | String | Название приложения. |
| `payment_processing_bot_username` | String | Бот, в котором пользователи оплачивают счета. |

```json
{
  "ok": true,
  "result": {
    "app_id": 1234,
    "name": "My Shop",
    "payment_processing_bot_username": "pswallet"
  }
}
```

## getBalance

Баланс приложения по всем доступным монетам, включая нулевые. Параметров нет. Возвращает массив [Balance](https://help.pswallet.org/ru/pay-api/types#balance).

- `available` — можно потратить на переводы, чеки и вывод.
- `onhold` — удержано под неактивированные [чеки](https://help.pswallet.org/ru/pay-api/checks).

```bash title="cURL"
curl https://pay.pswallet.org/api/getBalance \
  -H "PSWallet-Pay-API-Token: $TOKEN"
```

```json
{
  "ok": true,
  "result": [
    { "currency_code": "USDT-TRC20", "available": "84.47", "onhold": "2" },
    { "currency_code": "USDT-BEP20", "available": "0", "onhold": "0" },
    { "currency_code": "USDT-ERC20", "available": "0", "onhold": "0" },
    { "currency_code": "USDT-TON", "available": "12.5", "onhold": "0" },
    { "currency_code": "XAUT", "available": "0", "onhold": "0" },
    { "currency_code": "TRX", "available": "150.25", "onhold": "0" },
    { "currency_code": "BNB", "available": "0", "onhold": "0" },
    { "currency_code": "ETH", "available": "0", "onhold": "0" },
    { "currency_code": "GRAM", "available": "0", "onhold": "0" },
    { "currency_code": "RUB", "available": "1455.48", "onhold": "0" }
  ]
}
```

Временно недоступные монеты в ответ не попадают. Балансы USDT возвращаются по сетям: у приложения отдельный баланс в каждой сети.

## getExchangeRates

Текущие курсы монет к `USD` и `RUB`. Параметров нет. Возвращает массив [ExchangeRate](https://help.pswallet.org/ru/pay-api/types#exchangerate). По этим курсам пересчитываются фиатные счета.

Курсы возвращаются для `USDT` (одинаковый для всех сетей), остальных доступных монет и рубля. Если источник курса временно недоступен, у строки `is_valid: false` и `rate: "0"` — не используйте такой курс в расчётах.

```bash title="cURL"
curl https://pay.pswallet.org/api/getExchangeRates \
  -H "PSWallet-Pay-API-Token: $TOKEN"
```

```json
{
  "ok": true,
  "result": [
    { "is_valid": true, "is_crypto": true, "is_fiat": false, "source": "USDT", "target": "USD", "rate": "1" },
    { "is_valid": true, "is_crypto": true, "is_fiat": false, "source": "USDT", "target": "RUB", "rate": "81.25" },
    { "is_valid": true, "is_crypto": true, "is_fiat": false, "source": "TRX", "target": "USD", "rate": "0.2874" },
    { "is_valid": true, "is_crypto": true, "is_fiat": false, "source": "TRX", "target": "RUB", "rate": "23.35" },
    { "is_valid": true, "is_crypto": false, "is_fiat": true, "source": "RUB", "target": "USD", "rate": "0.01230769231" }
  ]
}
```

Курсы в примере условные; ответ сокращён.

## getCurrencies

Список монет и валют, которые сейчас принимает API. Параметров нет. Возвращает массив [Currency](https://help.pswallet.org/ru/pay-api/types#currency).

В списке — коды монет с сетью (`USDT-TRC20`, `USDT-BEP20` и т. д.) и фиатная валюта `USD`. Временно недоступные монеты в список не попадают. Код `USDT` (любая сеть) в списке отдельно не указан, но его можно использовать в параметрах — см. [Монеты и суммы](https://help.pswallet.org/ru/pay-api/assets).

```bash title="cURL"
curl https://pay.pswallet.org/api/getCurrencies \
  -H "PSWallet-Pay-API-Token: $TOKEN"
```

```json
{
  "ok": true,
  "result": [
    { "is_blockchain": true, "is_stablecoin": true, "is_fiat": false, "name": "Tether (TRC20)", "code": "USDT-TRC20", "decimals": 6 },
    { "is_blockchain": true, "is_stablecoin": true, "is_fiat": false, "name": "Tether (BEP20)", "code": "USDT-BEP20", "decimals": 6 },
    { "is_blockchain": true, "is_stablecoin": false, "is_fiat": false, "name": "TRON", "code": "TRX", "decimals": 6 },
    { "is_blockchain": true, "is_stablecoin": false, "is_fiat": false, "name": "BNB (BEP20)", "code": "BNB", "decimals": 8 },
    { "is_blockchain": false, "is_stablecoin": false, "is_fiat": true, "name": "Russian Ruble", "code": "RUB", "decimals": 2 },
    { "is_blockchain": false, "is_stablecoin": false, "is_fiat": true, "name": "US Dollar", "code": "USD", "decimals": 2 }
  ]
}
```

Ответ сокращён.

## getStats

Статистика приложения за период. Возвращает [AppStats](https://help.pswallet.org/ru/pay-api/types#appstats).

| Параметр | Тип | Описание |
|---|---|---|
| `start_at` | String | Необязательно. Начало периода, ISO 8601. По умолчанию — сутки назад от `end_at`. |
| `end_at` | String | Необязательно. Конец периода, ISO 8601. По умолчанию — сейчас. |

Начало периода должно быть раньше конца, иначе вернётся ошибка `PARAM_START_AT_INVALID`. Неверная дата — `PARAM_START_AT_INVALID` или `PARAM_END_AT_INVALID`.

```bash title="cURL"
curl "https://pay.pswallet.org/api/getStats?start_at=2026-11-01T00:00:00Z&end_at=2026-11-08T00:00:00Z" \
  -H "PSWallet-Pay-API-Token: $TOKEN"
```

```json
{
  "ok": true,
  "result": {
    "volume": 1520.5,
    "conversion": 0.6154,
    "unique_users_count": 31,
    "created_invoice_count": 65,
    "paid_invoice_count": 40,
    "start_at": "2026-11-01T00:00:00.000+00:00",
    "end_at": "2026-11-08T00:00:00.000+00:00"
  }
}
```

- `volume` — оборот оплаченных за период счетов в USD (по курсу в момент оплаты).
- `conversion` — доля оплаченных счетов среди созданных за период, от 0 до 1.

---
Источник: https://help.pswallet.org/ru/pay-api/balance
