App, balance and rates
Information about the app, balance, coin rates, the list of available coins and statistics: getMe, getBalance, getExchangeRates, getCurrencies, getStats.
These methods don't change anything — they only read data. You can call them via GET or POST, and it is safe to repeat them.
getMe
Checks the token and returns basic information about the app. No parameters.
curl https://pay.pswallet.org/api/getMe \
-H "PSWallet-Pay-API-Token: $TOKEN"Returns an object:
| Field | Type | Description |
|---|---|---|
app_id | Number | App ID (shown as #A1234 in the dashboard). |
name | String | App name. |
payment_processing_bot_username | String | The bot where users pay invoices. |
{
"ok": true,
"result": {
"app_id": 1234,
"name": "My Shop",
"payment_processing_bot_username": "pswallet"
}
}getBalance
The app balance across all available coins, including zero balances. No parameters. Returns an array of Balance.
available— can be spent on transfers, checks and withdrawals.onhold— held for unactivated checks.
curl https://pay.pswallet.org/api/getBalance \
-H "PSWallet-Pay-API-Token: $TOKEN"{
"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" }
]
}Temporarily unavailable coins are not included in the response. USDT balances are returned per network: the app has a separate balance in each network.
getExchangeRates
Current coin rates against USD and RUB. No parameters. Returns an array of ExchangeRate. Fiat invoices are converted at these rates.
Rates are returned for USDT (the same for all networks), the other available coins and the ruble. If the rate source is temporarily unavailable, the row has is_valid: false and rate: "0" — do not use such a rate in calculations.
curl https://pay.pswallet.org/api/getExchangeRates \
-H "PSWallet-Pay-API-Token: $TOKEN"{
"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" }
]
}The rates in the example are illustrative; the response is shortened.
getCurrencies
The list of coins and currencies the API currently accepts. No parameters. Returns an array of Currency.
The list contains coin codes with the network (USDT-TRC20, USDT-BEP20, etc.) and the fiat currency USD. Temporarily unavailable coins are not included in the list. The USDT code (any network) is not listed separately, but you can use it in parameters — see Coins and amounts.
curl https://pay.pswallet.org/api/getCurrencies \
-H "PSWallet-Pay-API-Token: $TOKEN"{
"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 }
]
}The response is shortened.
getStats
App statistics for a period. Returns AppStats.
| Parameter | Type | Description |
|---|---|---|
start_at | String | Optional. Start of the period, ISO 8601. Defaults to 24 hours before end_at. |
end_at | String | Optional. End of the period, ISO 8601. Defaults to now. |
The start of the period must be earlier than the end, otherwise the PARAM_START_AT_INVALID error is returned. An invalid date returns PARAM_START_AT_INVALID or PARAM_END_AT_INVALID.
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"{
"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— the turnover of invoices paid during the period, in USD (at the rate at the time of payment).conversion— the share of paid invoices among those created during the period, from 0 to 1.