Транзакции
Статусы транзакций
| Параметр | Комментарий |
|---|---|
| Created | Транзакция будет в этом статусе, пока бэкенд не ответит на вебхук уведомление. Используется для предоплатных вебхуков |
| Pending | Транзакция в процессе обработки, происходит получение статуса у банка |
| Paid | Обработка транзакции завершилась успешно |
| Declined | Обработка транзакции завершилась с ошибкой |
Получение транзакции по UUID
→ GET /api/h2h/transactions/:id
Транзакция возникает только после того, как клиент заполнил платежную форму и нажал кнопку "Оплатить". Затем создается транзакция через обращение в шлюз. По одной платёжной ссылке может быть создано несколько транзакций. В случае, если попытки оплаты были неуспешными (недостаточно средств, неверный 3DS и т.п.), создадутся транзакции с отказом.
Параметры запроса
| Параметр | Тип | Комментарий |
|---|---|---|
| id | UUID | Идентификатор транзакции. Отправляется мерчанту с webhook уведомлением в поле transactionId. Также можно получить через метод Поиска транзакций |
Параметры ответа
| Параметр | Тип | Комментарий |
|---|---|---|
| id | UUID | Идентификатор транзакции в системе WATA. (Не является идентификатором платежной ссылки) |
| terminalName | Строка | Название терминала мерчанта |
| terminalPublicId | UUID | Публичный идентификатор терминала мерчанта |
| type | Строка | Тип транзакции: CardCrypto — рублевые и валютные карты, SBP — система быстрых платежей, TPay — метод Т-Банка, SberPay — метод Сбербанка |
| kind | Строка | Тип транзакции: Payment — оплата, Refund — возврат |
| originalTransactionId | UUID | Используется при возвратах. Идентификатор исходной транзакции по которой производится частичный или полный возврат |
| amount | Число | Сумма платежа. Всего после точки может быть 2 цифры для копеек или центов. Пример: 1188.00 |
| currency | Строка | Валюта платежа (RUB, EUR, USD) |
| status | Строка | Статус транзакции (Created, Pending, Paid, Declined). См. раздел Статусы транзакций |
| errorCode | Строка | Код ошибки в случае неуспешного запроса (см. справочник кодов ошибок) |
| errorDescription | Строка | Описание ошибки в случае неуспешного запроса |
| orderId | Строка | Уникальный идентификатор заказа в системе мерчанта |
| orderDescription | Строка | Описание заказа |
| creationTime | Дата | Дата и время создания транзакции в UTC |
| paymentTime | Дата | Дата и время оплаты транзакции в UTC (перехода в статус Paid или Declined) |
| totalCommission | Число | Комиссия за транзакцию |
| paymentLinkId | UUID | Идентификатор платёжной ссылки |
| subscriptionId | UUID | Идентификатор подписки |
| payerData | Объект | Содержит информацию о плательщике |
| └payerId | Строка | Маскированный номер телефона плательщика по СБП |
→ Пример запроса и ответа на получение транзакции
Поиск транзакций
→ GET /api/h2h/v2/transactions/?{conditions}
Если по платежной ссылке не была произведена попытка оплаты, то транзакция не будет найдена. Несколько транзакций может быть найдено в случае, когда оплата не удалась, например, из-за нехватки денег на карте клиента, и он предпринял ещё одну попытку оплаты. Также для многоразовых платежных ссылок будет находиться весь пул транзакций.
Параметры запроса
| Параметр | Тип | Комментарий |
|---|---|---|
| orderId | Строка | Идентификатор заказа в системе мерчанта |
| сreationTimeFrom | Дата | Дата создания от |
| сreationTimeTo | Дата | Дата создания до |
| amountFrom | Число | Сумма платежа от |
| amountTo | Число | Сумма платежа до |
| сurrencies | Строка | Валюта |
| PaymentLinkIds | Объект | Массив строк UUID платежных ссылок. Пример: ["3fa85f64-5717-4562-b3fc-2c963f66afa6","3fa73c74-5997-2262-b4fa-2c9b3f961da0"]. Транзакции не будут найдены, если у платежной ссылки истек срок жизни (expirationDateTime) |
| statuses | Строка | Статусы транзакций (Created, Pending, Paid, Declined). См. раздел Статусы транзакций |
| sorting | Строка | Поле, по которому будет сортироваться список транзакций в ответе. Доступные варианты amount, сreationTime. К имени поля можно добавить суффикс desc если нужна сортировка по убыванию |
| maxResultCount | Число | Количество записей, которые нужно выдать. По умолчанию 10, максимум 1000 |
| cursorId | UUID | Идентификатор пагинации, получаемый в поле nextCursorId ответа на запрос. Указывается при втором и последующих запросах |
| cursorAmount | Число | В случае сортировки по сумме поиска транзакций, указывается значение из поля nextCursorAmount, получаемого в ответе на запрос. Указывается при втором и последующих запросах |
| cursorDate | Дата | Используется при сортировке поиска по дате. Значение приходит в поле nextCursorDate ответа на запрос. Указывается при втором и последующих запросах |
→ Пример запроса и ответа на поиск транзакции
Пример использования пагинации при сортировке по дате
Важно: При первом запросе cursorId, cursorDate и cursorAmount не передаются
GET api/h2h/transactions?sorting=creationtime&skipCount=0&maxResultCount=20
Ответ
{
"hasNextPage": true,
"nextCursorId": "3f8b2c4a-9d1e-4f7a-b6c2-8e5a1d9b3c7f",
"nextCursorDate": "2026-03-15T14:22:31Z",
"items": [ /* 20 транзакций */ ]
}
Для запроса следующей страницы необходимо передать данные курсора пагинации, полученные в предыдущем ответе
GET /api/h2h/v2/transactions?
sorting=creationtime&maxResultCount=20&cursorId=3f8b2c4a-9d1e-4f7a-b6c2-
8e5a1d9b3c7f&cursorDate=2026-03-15T14:22:31Z
Ответ
{
"hasNextPage": true,
"nextCursorId": "7a1d5e8b-2c4f-4a9d-8b3e-1f6c9a2d4e7b",
"nextCursorDate": "2026-03-15T14:18:05Z",
"items": [ /* следующие 20 */ ]
}
Возврат
Создание возврата
→ POST /api/h2h/transactions/refunds
Метод выполняет полный или частичный возврат средств по успешной платежной транзакции. Возврат доступен только по транзакциям со статусом Paid, принадлежащим тому же терминалу, от имени которого выполняется запрос. У терминала должен быть установлен тип продукта «Эквайринг», для других типов, например «Цифровые товары + Эквайринг», возвраты отключены. Возврат возможен в случае, если на балансе терминала достаточно на это средств. Уход «в минус» возможен только через техподдержку
Важно: Для возврата необходимо, чтобы на балансе терминала были средства. При этом не исполненные возвраты в статусе Pending расходуют резерв средств с баланса. Резерв является временной заморозкой, но не списанием средств с баланса терминала. Возникает особенность, вы сделали ряд возвратов и они ещё не обработаны, а видимый баланс в личном кабинете достаточен, но при этом новый возврат создать не можете.
Встречается ситуация, когда только произошла автовыплата и баланс на терминале минимальный. Хотите сделать возврат, но ещё не приняли оплат на достаточную сумму. В такой ситуации возврат также будет отклонён. Для решения вопроса обратитесь в техподдержку
Параметры запроса
| Параметр | Тип | Комментарий |
|---|---|---|
| originalTransactionId | UUID | Идентификатор исходной платежной транзакции. Транзакция должна принадлежать текущему терминалу и иметь статус Paid. Получить значение можно из вебхука при приеме платежа, либо через методы получения деталей транзакций: GET /api/h2h/transactions, GET /api/h2h/transactions/{id} |
| amount | Число | Сумма возврата в валюте исходной транзакции. Должна быть строго больше 0, быть равной или меньшей сумме платежной транзакции, а в случае частичных возвратов, не превышать доступный остаток по исходной транзакции. После точки допускается не более 2 знаков. Пример: 100.01 |
Параметры ответа
| Параметр | Тип | Комментарий |
|---|---|---|
| originalTransactionId | UUID | Идентификатор исходной транзакции для которой инициирован возврат |
| transactionId | UUID | Идентификатор созданной транзакции возврата в системе WATA |
| transactionStatus | Строка | Текущий статус возврата: Created, Pending, Paid, Declined. Итоговый статус (Paid или Declined) может присваиваться асинхронно — для отслеживания используйте webhook-уведомления |
| kind | Строка | Вид операции. Для возврата всегда Refund |
| errorCode | Строка | Код ошибки в случае отклонения возврата (См. справочник кодов ошибок) |
| errorDescription | Строка | Описание причины отклонения возврата |