# Типы объектов

> Поля объектов PS Wallet Pay API: Invoice, Transfer, Check, Balance, ExchangeRate, Currency, AppStats и Update.

Объекты, которые возвращают методы API и вебхуки. Суммы — строки с точкой (кроме `fee_amount` у Invoice и полей AppStats), даты — строки ISO 8601. Поля, которые не заданы, в ответе не передаются.

## Invoice

Счёт на оплату. Возвращают [createInvoice](https://help.pswallet.org/ru/pay-api/invoices#createinvoice), [getInvoices](https://help.pswallet.org/ru/pay-api/invoices#getinvoices) и вебхук `invoice_paid`.

| Поле | Тип | Описание |
|---|---|---|
| `invoice_id` | Number | ID счёта. В кабинете и у пользователя отображается как `#IV528`. |
| `hash` | String | Хэш счёта, он же часть ссылок на оплату. |
| `currency_type` | String | `crypto` или `fiat`. |
| `asset` | String | Только для `crypto`. Монета счёта (`USDT` — любая сеть). |
| `fiat` | String | Только для `fiat`. Валюта суммы. |
| `accepted_assets` | String | Только для `fiat`. Разрешённые монеты через запятую. |
| `amount` | String | Сумма счёта в `asset` или `fiat`. |
| `paid_asset` | String | Оплаченный счёт. Чем заплатили — код монеты с сетью: `USDT-TRC20`, `USDT-BEP20`, `USDT-ERC20`, `USDT-TON`, `XAUT`, `TRX`, `BNB`, `ETH`, `GRAM` или `RUB`. Деньги пришли на баланс приложения в этой монете. |
| `paid_amount` | String | Оплаченный счёт. Сколько списано у пользователя в `paid_asset`. |
| `paid_fiat_rate` | String | Оплаченный фиатный счёт. Курс `paid_asset` к `fiat` в момент оплаты. |
| `paid_usd_rate` | String | Оплаченный счёт. Курс `paid_asset` к USD в момент оплаты. |
| `fee_asset` | String | Оплаченный счёт. Монета комиссии (= `paid_asset`). |
| `fee_amount` | Number | Оплаченный счёт. Комиссия PS Wallet Pay. На баланс приложения зачислено `paid_amount − fee_amount`. |
| `bot_invoice_url` | String | Ссылка на счёт в чате бота. |
| `mini_app_invoice_url` | String | Ссылка сразу на экран оплаты в мини-приложении. |
| `web_app_invoice_url` | String | То же, что `mini_app_invoice_url`. |
| `pay_url` | String | То же, что `bot_invoice_url`. |
| `description` | String | Описание, если задано. |
| `status` | String | `active`, `paid` или `expired`. |
| `created_at` | String | Дата создания, ISO 8601. |
| `allow_comments` | Boolean | Можно ли оставить комментарий. |
| `allow_anonymous` | Boolean | Можно ли оплатить анонимно. |
| `expiration_date` | String | Срок действия, ISO 8601, если задан `expires_in`. |
| `paid_at` | String | Оплаченный счёт. Дата оплаты, ISO 8601. |
| `paid_anonymously` | Boolean | Оплачен ли счёт анонимно. |
| `comment` | String | Комментарий пользователя к оплате, если оставлен. |
| `hidden_message` | String | Сообщение после оплаты, если задано. |
| `payload` | String | Ваши данные, если заданы. |
| `paid_btn_name` | String | Кнопка после оплаты, если задана. |
| `paid_btn_url` | String | Ссылка кнопки после оплаты. |

## Transfer

Перевод пользователю. Возвращают [transfer](https://help.pswallet.org/ru/pay-api/transfers#transfer) и [getTransfers](https://help.pswallet.org/ru/pay-api/transfers#gettransfers).

| Поле | Тип | Описание |
|---|---|---|
| `transfer_id` | Number | ID перевода. |
| `spend_id` | String | Ваш идентификатор перевода. |
| `user_id` | String | Telegram ID получателя. |
| `asset` | String | Монета с сетью (`USDT-TRC20`, …). |
| `amount` | String | Сумма. |
| `status` | String | Всегда `completed`: переводы проходят сразу. |
| `completed_at` | String | Дата перевода, ISO 8601. |
| `comment` | String | Комментарий, если задан. |

## Check

Чек. Возвращают [createCheck](https://help.pswallet.org/ru/pay-api/checks#createcheck) и [getChecks](https://help.pswallet.org/ru/pay-api/checks#getchecks).

| Поле | Тип | Описание |
|---|---|---|
| `check_id` | Number | ID чека. |
| `hash` | String | Хэш чека. |
| `asset` | String | Монета с сетью. |
| `amount` | String | Сумма. |
| `bot_check_url` | String | Ссылка для активации. |
| `status` | String | `active` или `activated`. |
| `created_at` | String | Дата создания, ISO 8601. |
| `activated_at` | String | Дата активации, ISO 8601. |
| `pin_to_user_id` | Number | Если чек только для одного пользователя по Telegram ID. |
| `pin_to_username` | String | Если чек только для одного пользователя по username. |

## Balance

Баланс приложения в одной монете. Возвращает [getBalance](https://help.pswallet.org/ru/pay-api/balance#getbalance).

| Поле | Тип | Описание |
|---|---|---|
| `currency_code` | String | Монета с сетью. |
| `available` | String | Доступно для переводов, чеков и вывода. |
| `onhold` | String | Удержано под неактивированные чеки. |

## ExchangeRate

Курс монеты. Возвращает [getExchangeRates](https://help.pswallet.org/ru/pay-api/balance#getexchangerates).

| Поле | Тип | Описание |
|---|---|---|
| `is_valid` | Boolean | Курс актуален. Если `false`, источник курса временно недоступен. |
| `is_crypto` | Boolean | `source` — криптовалюта. |
| `is_fiat` | Boolean | `source` — фиат. |
| `source` | String | Монета: `USDT`, `XAUT`, `TRX`, `BNB`, `ETH`, `GRAM` или `RUB`. |
| `target` | String | Валюта: `USD` или `RUB`. |
| `rate` | String | Стоимость одной единицы `source` в `target`. |

## Currency

Монета или валюта, которую принимает API. Возвращает [getCurrencies](https://help.pswallet.org/ru/pay-api/balance#getcurrencies).

| Поле | Тип | Описание |
|---|---|---|
| `is_blockchain` | Boolean | Криптовалюта. |
| `is_stablecoin` | Boolean | Стейблкоин. |
| `is_fiat` | Boolean | Фиатная валюта. |
| `name` | String | Название. |
| `code` | String | Код для параметров API. |
| `decimals` | Number | Знаков после запятой. |

## AppStats

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

| Поле | Тип | Описание |
|---|---|---|
| `volume` | Number | Оборот оплаченных счетов за период в USD. |
| `conversion` | Number | Доля оплаченных счетов среди созданных за период (0–1). |
| `unique_users_count` | Number | Сколько разных пользователей оплатили счета. |
| `created_invoice_count` | Number | Создано счетов. |
| `paid_invoice_count` | Number | Оплачено счетов. |
| `start_at` | String | Начало периода, ISO 8601. |
| `end_at` | String | Конец периода, ISO 8601. |

## Update

Событие, которое PS Wallet Pay присылает на ваш сервер [вебхуком](https://help.pswallet.org/ru/pay-api/webhooks).

| Поле | Тип | Описание |
|---|---|---|
| `update_id` | Number | ID события. Для `invoice_paid` равен `invoice_id`, для `test` — 0. |
| `update_type` | String | `invoice_paid` — счёт оплачен; `test` — тестовый вебхук из кабинета. |
| `request_date` | String | Время отправки этой попытки, ISO 8601. |
| `payload` | Object | Для `invoice_paid` — оплаченный [Invoice](#invoice). Для `test` — `{ "app_id": …, "name": … }`. |

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