Выплата API

💸 Payou API — Руководство по выплатам

Это официальное руководство по использованию API выплат (payouts) в системе Payou.pro. Через этот API клиенты могут безопасно и автоматически создавать выплаты своим пользователям в различных валютах (например, KZT, GHS, NGN, TRY).


🚀 1. Точка входа

HTTP метод: POST URL:

https://payou.pro/api/payout_create.php

Формат: application/json


🔑 2. Авторизация и подпись

Каждому клиенту выдаются два ключа:

Поле

Назначение

api_key

Ваш публичный идентификатор

secret_key

Секретный ключ для подписи (хранится только у вас)


📘 Формирование подписи

Подпись формируется по канонической строке:

api_key|timestamp|order_id|amount|currency|recipient

и подписывается с помощью алгоритма HMAC-SHA256 по вашему secret_key.

$canonical = $api_key . '|' . $timestamp . '|' . $order_id . '|' . $amount . '|' . $currency . '|' . $recipient;
$signature = hash_hmac('sha256', $canonical, $secret);

🧾 3. Пример запроса (PHP)

<?php
$api_key = 'a3f19db4f8c6ba0c54e88e';
$secret  = 'd579b04464882a0bac6597d5fa07d2cbfcec';

$timestamp = time();
$order_id  = 'order-' . $timestamp;
$amount    = '5000.00';
$currency  = 'KZT';
$recipient = '1111111111111111';
$comment   = 'Payout test';

// Дополнительные данные (необязательно)
$email      = 'dog@gmail.com';
$phone      = '254791617177';
$country    = 'Kenya';
$first_name = 'John';
$last_name  = 'Doe';
$bankName   = 'Kaspi Bank';

// Подпись
$canonical = $api_key . '|' . $timestamp . '|' . $order_id . '|' . $amount . '|' . $currency . '|' . $recipient;
$signature = hash_hmac('sha256', $canonical, $secret);

$payload = [
    'api_key'   => $api_key,
    'timestamp' => $timestamp,
    'order_id'  => $order_id,
    'amount'    => $amount,
    'currency'  => $currency,
    'recipient' => $recipient,
    'comment'   => $comment,
    'signature' => $signature,

    // Необязательные поля
    'email'      => $email,
    'phone'      => $phone,
    'country'    => $country,
    'first_name' => $first_name,
    'last_name'  => $last_name,
    'bankName'   => $bankName
];

$ch = curl_init('https://payou.pro/api/payout_create.php');
curl_setopt_array($ch, [
    CURLOPT_RETURNTRANSFER => true,
    CURLOPT_POST           => true,
    CURLOPT_HTTPHEADER     => ['Content-Type: application/json'],
    CURLOPT_POSTFIELDS     => json_encode($payload, JSON_UNESCAPED_UNICODE | JSON_PRETTY_PRINT)
]);

$response = curl_exec($ch);
curl_close($ch);

echo $response;

📤 4. Поля запроса

Поле

Тип

Обязательно

Описание

api_key

string

Ваш ключ API

timestamp

integer

UNIX-время отправки запроса

order_id

string

Уникальный номер вашей операции

amount

float / string

Сумма выплаты

currency

string

Валюта (например, KZT, GHS, NGN, TRY)

recipient

string

Номер счёта, карты или получателя

signature

string

Подпись запроса

comment

string

Комментарий к операции

email

string

Email получателя

phone

string

Телефон получателя

country

string

Страна

first_name

string

Имя

last_name

string

Фамилия

bankName

string

Название банка (для банковских выплат)


💬 5. Пример успешного ответа

{
  "success": true,
  "transaction_id": 1471,
  "order_id": "order-1730909274",
  "amount_sent": "5000.00",
  "fee": "25.00",
  "total_deducted": "5025.00",
  "currency": "KZT",
  "recipient": "1111111111111111",
  "balance_after": "9975.00"
}

⚠️ 6. Пример ошибки

{
  "success": false,
  "error": "Invalid signature"
}

Ошибка

Описание

Invalid signature

Неверная подпись

Insufficient balance

Недостаточно средств на счёте

Unsupported currency

Валюта не поддерживается

API key not found

Неверный API ключ

API key disabled

Ключ заблокирован

Timestamp outside allowed window

Разница времени больше 5 минут

Internal error

Ошибка сервера


🔄 7. Callback уведомления

После изменения статуса выплаты, Payou отправляет GET-запрос на ваш callback URL, указанный при регистрации:

GET https://yourdomain.com/callback?id={transaction_id}

В этот момент вы получаете обновление статуса и можете выполнить собственную обработку на стороне вашего сервера.


🧾 8. Статусы выплат

Код

Статус

Описание

0

pending

Выплата создана, ожидает подтверждения

2

success

Выплата успешно завершена

3

error

Ошибка — сумма возвращена клиенту


🧠 9. Рекомендации

  • Для каждой выплаты используйте уникальный order_id.

  • Следите за точностью системного времени (таймштамп ±5 минут).

  • Подписывайте только обязательные поля в канонической строке.

  • Не передавайте секретный ключ третьим лицам.

  • Все операции логируются, что помогает при расследовании споров.


📞 10. Контакты поддержки

Техническая поддержка: 📧 @kasspayou 🌐 https://payou.pro

Last updated