Перейти к основному содержимому

Транзакции

Статусы транзакций

ПараметрКомментарий
CreatedТранзакция будет в этом статусе, пока бэкенд не ответит на вебхук уведомление. Используется для предоплатных вебхуков
PendingТранзакция в процессе обработки, происходит получение статуса у банка
PaidОбработка транзакции завершилась успешно
DeclinedОбработка транзакции завершилась с ошибкой

Получение транзакции по UUID

GET /api/h2h/transactions/:id

Транзакция возникает только после того, как клиент заполнил платежную форму и нажал кнопку "Оплатить". Затем создается транзакция через обращение в шлюз. По одной платёжной ссылке может быть создано несколько транзакций. В случае, если попытки оплаты были неуспешными (недостаточно средств, неверный 3DS и т.п.), создадутся транзакции с отказом.

Параметры запроса

ПараметрТипКомментарий
idUUIDИдентификатор транзакции. Отправляется мерчанту с webhook уведомлением в поле transactionId. Также можно получить через метод Поиска транзакций

Параметры ответа

ПараметрТипКомментарий
idUUIDИдентификатор транзакции в системе WATA. (Не является идентификатором платежной ссылки)
terminalNameСтрокаНазвание терминала мерчанта
terminalPublicIdUUIDПубличный идентификатор терминала мерчанта
typeСтрокаТип транзакции: CardCrypto — рублевые и валютные карты, SBP — система быстрых платежей, TPay — метод Т-Банка, SberPay — метод Сбербанка
kindСтрокаТип транзакции: Payment — оплата, Refund — возврат
originalTransactionIdUUIDИспользуется при возвратах. Идентификатор исходной транзакции по которой производится частичный или полный возврат
amountЧислоСумма платежа. Всего после точки может быть 2 цифры для копеек или центов. Пример: 1188.00
currencyСтрокаВалюта платежа (RUB, EUR, USD)
statusСтрокаСтатус транзакции (Created, Pending, Paid, Declined). См. раздел Статусы транзакций
errorCodeСтрокаКод ошибки в случае неуспешного запроса (см. справочник кодов ошибок)
errorDescriptionСтрокаОписание ошибки в случае неуспешного запроса
orderIdСтрокаУникальный идентификатор заказа в системе мерчанта
orderDescriptionСтрокаОписание заказа
creationTimeДатаДата и время создания транзакции в UTC
paymentTimeДатаДата и время оплаты транзакции в UTC (перехода в статус Paid или Declined)
totalCommissionЧислоКомиссия за транзакцию
paymentLinkIdUUIDИдентификатор платёжной ссылки
subscriptionIdUUIDИдентификатор подписки
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
cursorIdUUIDИдентификатор пагинации, получаемый в поле 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 расходуют резерв средств с баланса. Резерв является временной заморозкой, но не списанием средств с баланса терминала. Возникает особенность, вы сделали ряд возвратов и они ещё не обработаны, а видимый баланс в личном кабинете достаточен, но при этом новый возврат создать не можете.

Встречается ситуация, когда только произошла автовыплата и баланс на терминале минимальный. Хотите сделать возврат, но ещё не приняли оплат на достаточную сумму. В такой ситуации возврат также будет отклонён. Для решения вопроса обратитесь в техподдержку

Параметры запроса

ПараметрТипКомментарий
originalTransactionIdUUIDИдентификатор исходной платежной транзакции. Транзакция должна принадлежать текущему терминалу и иметь статус Paid. Получить значение можно из вебхука при приеме платежа, либо через методы получения деталей транзакций: GET /api/h2h/transactions, GET /api/h2h/transactions/{id}
amountЧислоСумма возврата в валюте исходной транзакции. Должна быть строго больше 0, быть равной или меньшей сумме платежной транзакции, а в случае частичных возвратов, не превышать доступный остаток по исходной транзакции. После точки допускается не более 2 знаков. Пример: 100.01

Параметры ответа

ПараметрТипКомментарий
originalTransactionIdUUIDИдентификатор исходной транзакции для которой инициирован возврат
transactionIdUUIDИдентификатор созданной транзакции возврата в системе WATA
transactionStatusСтрокаТекущий статус возврата: Created, Pending, Paid, Declined. Итоговый статус (Paid или Declined) может присваиваться асинхронно — для отслеживания используйте webhook-уведомления
kindСтрокаВид операции. Для возврата всегда Refund
errorCodeСтрокаКод ошибки в случае отклонения возврата (См. справочник кодов ошибок)
errorDescriptionСтрокаОписание причины отклонения возврата

Техническая документация