WinWallet Merchant API Help

Быстрый старт

За несколько минут вы создадите инвойс, перенаправите покупателя на оплату и проверите статус через API. Перед началом получите API token и X-Merchant у менеджера WinWallet.

Создание инвойса и проверка статуса

  1. Создайте инвойс — отправьте POST-запрос на /invoice/create с суммой, валютой, позициями и URL для редиректов и webhook.

    curl -X POST "https://api.winwallet.io/invoice/create" \ -H "Authorization: Bearer sk_live_xxxxxxxxx" \ -H "X-Merchant: merchant_123" \ -H "Content-Type: application/json" \ -d '{ "amount": 1500, "currency": "USD", "description": "Payment for order #1001", "end_date": 1779454179000, "merchant_transaction_id": "order_1001", "success_url": "https://merchant.com/success", "error_url": "https://merchant.com/error", "callback_url": "https://merchant.com/callback", "positions": [ { "title": "Premium subscription", "amount": 1500, "currency": "USD" } ], "merchant_data": { "customer_id": 123, "order_id": "1001" } }'

    Пример успешного ответа 200 OK:

    { "result": true, "data": { "invoice_id": "inv_01970f4f6b7c7d52b2d9", "invoice_url": "https://pay.example.com/invoice/inv_01970f4f6b7c7d52b2d9", "success_url": "https://merchant.com/success", "error_url": "https://merchant.com/error", "status": 1, "amount": 1500, "currency": "USD", "description": "Payment for order #1001", "merchant_transaction_id": "order_1001", "merchant_data": { "customer_id": 123, "order_id": "1001" }, "end_date": 1779454179000, "created_at": 1779454179000 }, "error": null }

    Сохраните invoice_id и передайте покупателю invoice_url.

  2. Перенаправьте покупателя на invoice_url в браузере для завершения оплаты. После оплаты пользователь будет перенаправлен на success_url или error_url.

  3. Проверьте статус инвойса — GET-запрос /invoice/status с параметром invoice_id из предыдущего шага.

    curl -X GET "https://api.winwallet.io/invoice/status?invoice_id=inv_01970f4f6b7c7d52b2d9" \ -H "Authorization: Bearer sk_live_xxxxxxxxx" \ -H "X-Merchant: merchant_123"

    Пример ответа, когда инвойс ещё ожидает оплату:

    { "result": true, "data": { "invoice_id": "inv_01970f4f6b7c7d52b2d9", "status": 1, "end_date": 1779454179000 }, "error": null }

    После успешной оплаты status станет 2 (PAID).

  4. Обработайте webhook — на callback_url придёт POST с новым статусом. Настройте идемпотентную обработку и ответ 200 OK — см. Вебхуки (Webhooks).

Детальное описание полей запросов — в POST /invoice/create и GET /invoice/status.

01 июня 2026