Вебхуки (Webhooks)
При изменении статуса инвойса WinWallet отправляет POST-запрос на callback_url, указанный при создании инвойса. Это server-to-server уведомление; Bearer-авторизация на стороне мерчанта для входящего webhook не требуется.
Формат входящего запроса
Метод и заголовки
Параметр | Значение |
|---|---|
Метод |
|
Content-Type |
|
Authorization | Не требуется |
Тело запроса (payload)
Поле | Тип | Обязательный | Описание |
|---|---|---|---|
| string | Да | ID инвойса |
| integer | Да | Новый статус (2 = PAID и др.) |
| integer | Да | Сумма инвойса |
| string | Да | Валюта |
| string | Да | Описание |
| string | Да | ID транзакции мерчанта |
| array | Да | Позиции инвойса |
| object | Нет | Данные, переданные при создании |
| integer | Да | UTC ms, создание |
| integer | Да | UTC ms, последнее изменение статуса |
| object | Да | Метаданные провайдера (чек, external id) |
Идемпотентность и повторные доставки
Рекомендации:
Сохраняйте обработанные webhook в БД с уникальным ключом.
Сверяйте
amountиcurrencyс заказом в вашей системе.При сомнении запросите актуальный статус через GET /invoice/status.
Ответ мерчанта
Ваш endpoint должен ответить HTTP 200 OK и JSON с полем success: true, чтобы шлюз считал доставку успешной.
Справочный контракт в OpenAPI
В спецификации описан эталонный контракт POST /invoice/callback (модели InvoiceCallbackRequest/InvoiceCallbackResponse). Реальный URL доставки — ваш callback_url, а не путь API WinWallet.