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

Платёжная интеграция

В этом руководстве описано создание платёжных ордеров (пополнение и выплата) через API Kukuruku. Все запросы должны включать HMAC-SHA512 подпись запроса.

Базовый URL API

https://api.kukuruku.win

Создание ордера на пополнение

POST /api/v1/orders/payins

Создаёт ордер для пополнения баланса пользователя из KukuPay на вашу платформу.

Запрос

Поля запроса

ПолеТипОбязательноеОписание
merchant_idstringДаИдентификатор вашего мерчанта
amountintegerДаСумма в минимальных единицах валюты (копейки/центы). Должна быть > 0
currencystringДаКод валюты: RUB, USD, USDT
order_numberstringДаУникальный идентификатор платежа в вашей системе
callback_urlstringНетURL для получения callback'ов об изменении статуса
redirect_success_urlstringНетURL для перенаправления при успешной оплате
redirect_fail_urlstringНетURL для перенаправления при неудачной оплате
customer.client_idstringДаEmail пользователя

Ответ 200

ПолеТипОписание
successbooleanРезультат операции
tokenstringИдентификатор ордера в системе KukuPay (UUID)
urlstringURL для перенаправления пользователя на страницу оплаты

После получения ответа перенаправьте пользователя на url для завершения оплаты в KukuPay.


Создание ордера на выплату

POST /api/v1/orders/payouts

Создаёт ордер на вывод средств с вашей платформы на кошелёк KukuPay пользователя.

Запрос

Поля запроса

ПолеТипОбязательноеОписание
merchant_idstringДаИдентификатор вашего мерчанта
amountintegerДаСумма в минимальных единицах валюты. Должна быть > 0
currencystringДаКод валюты: RUB, USD, USDT
order_numberstringДаУникальный идентификатор платежа в вашей системе
callback_urlstringНетURL для получения callback'ов об изменении статуса
user_emailstringДаEmail пользователя в системе Kukuruku

Ответ 200

ПолеТипОписание
successbooleanРезультат операции
uuidstringИдентификатор ордера в системе KukuPay

Ответ 400

Возвращается, когда user_email не соответствует ни одному зарегистрированному пользователю KukuPay.


Получение статуса ордера

GET /api/v1/orders/{uuid}

Получение текущего статуса ордера. Требуется подпись запроса в заголовках.

Запрос

GET /api/v1/orders/8d3cd240-dc72-4535-bf93-beed2878b593
ПараметрТипОбязательныйОписание
uuidstring (path)ДаUUID ордера из ответа на создание

Ответ 200

Поля ответа

ПолеТипОписание
idstringВнутренний идентификатор ордера
uuidstringUUID ордера в KukuPay
user_idstringИдентификатор пользователя в Kukuruku (может быть null)
user_emailstringEmail пользователя (может быть null)
user_phonestringТелефон пользователя (может быть null)
type_idstringТип ордера: payin или payout
statusstringСтатус: created, processing, paid, cancelled, expired, failed
external_order_idstringВаш order_number из запроса на создание
amountintegerСумма в минимальных единицах валюты
currencystringКод валюты
created_atstringДата создания (ISO 8601)
expire_atstringДата истечения (ISO 8601, может быть null)
подсказка

Ответ включает заголовок signature, который рекомендуется проверять для подтверждения подлинности. См. Проверка подписи.


Callback об оплате

POST {ваш_callback_url}

При изменении статуса ордера Kukuruku отправляет HTTP POST запрос на callback_url, указанный при создании ордера.

Важно

Ваш сервер должен ответить HTTP 200 с телом {"success": true}. При неудачном callback'е Kukuruku повторит попытку с экспоненциальной задержкой.

Запрос callback'а

Поля callback'а

ПолеТипОписание
uuidstringUUID ордера в KukuPay
typestringТип ордера: payin или payout
statusstringСтатус: paid, cancelled, expired, failed
order_numberstringВаш идентификатор платежа
amountstringСумма в минимальных единицах валюты (строка в callback'ах)
currencystringКод валюты
user_idstringИдентификатор пользователя в Kukuruku
user_emailstringEmail пользователя — используйте для привязки к клиенту
user_phonestringТелефон пользователя (может быть null)
created_atstringДата создания (ISO 8601)
updated_atstringДата последнего обновления (ISO 8601)
finished_atstringДата завершения (ISO 8601, может быть null)

Ожидаемый ответ

Проверка подписи

Всегда проверяйте заголовок signature во входящих callback'ах. См. Проверка подписи.


Схема интеграции

Пополнение (Payin)

1. Пользователь инициирует пополнение на вашем сайте
2. Ваш сервер → POST /api/v1/orders/payins (с подписью)
3. Kukuruku возвращает { url, token }
4. Перенаправьте пользователя на url (страница оплаты KukuPay)
5. Пользователь завершает оплату в KukuPay
6. Kukuruku → POST {callback_url} (с подписью)
7. Ваш сервер проверяет подпись, обновляет баланс пользователя
8. Пользователь перенаправляется на redirect_success_url

Выплата (Payout)

1. Пользователь запрашивает вывод на вашем сайте
2. Ваш сервер → POST /api/v1/orders/payouts (с подписью)
3. Kukuruku возвращает { uuid }
4. Kukuruku обрабатывает вывод
5. Kukuruku → POST {callback_url} (с подписью)
6. Ваш сервер проверяет подпись, подтверждает вывод

Обработка ошибок

HTTP кодОписание
200Успех
400Некорректный запрос (отсутствуют поля, неверная сумма, пользователь не найден)
401Неверная или отсутствующая подпись
404Ордер не найден
500Внутренняя ошибка сервера

Все ответы об ошибках имеют формат:

{
"err": "описание ошибки"
}