Быстрый старт
За несколько минут вы создадите инвойс, перенаправите покупателя на оплату и проверите статус через API. Перед началом получите API token и X-Merchant у менеджера WinWallet.
Создание инвойса и проверка статуса
Создайте инвойс — отправьте 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.Перенаправьте покупателя на
invoice_urlв браузере для завершения оплаты. После оплаты пользователь будет перенаправлен наsuccess_urlилиerror_url.Проверьте статус инвойса — 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).Обработайте webhook — на
callback_urlпридёт POST с новым статусом. Настройте идемпотентную обработку и ответ200 OK— см. Вебхуки (Webhooks).
Детальное описание полей запросов — в POST /invoice/create и GET /invoice/status.