Формированые API Выплаты

API выплаты позволяют осуществлять запрос к серверам PayMIX для осуществления выплаты с конкретного проекта с указанной суммой на указанный кошелек. Есть возможность указать callback-ссылку, ответ на которую придет сразу после обновления статуса выплаты. Тонкие настройки API выплат позволяют обеспечить максимальный уровень безопасности запроса с учетом различных ограничений. Ко всему прочему вы можете настроить подтверждение выплат через Telegram или Email адрес.

По умолчанию функция API выплат для проекта выключена, для активации функции необходимо перейти в раздел навигации проекта и выбрать API выплаты с баланса и нажать на кнопку "Активировать систему API выводов", теперь вам доступны все настройки, обязательно настройте их!

Формирование запроса на выплату
 
Внимание! Этот API запрос только формирует выплату, но не осуществляет ее. Чтобы быть уверенным в том, что выплата осуществлена или завершилась какой-либо ошибкой, вы можете указать Callback URL, тогда после обработки (обычно в течение десяти секунд), на указанный адрес однократно придет POST оповещение с результатом (об этом смотрите ниже).
https://paymix.ru/api/makePayout?
    email=<email>&
    key=<secretKey>&
    wallet=<wallet>&
    summa=<amount>&
    project=<project>&
    uid=<uID>&
    callback=<callbackURL>
<email> Строка Email адрес партнера в системе PayMIX
<secretKey> Строка Секретный ключ API, можно найти на странице Настройки аккаунта
<wallet> Число Номер кошелька Qiwi, без +, только цифры, например 791911223344
<amount> Число Сумма выплаты, например 10 или 10.02, не больше двух знаков после запятой
<project> Число ID проекта, указан под названием проекта слева в панели управления
<uID> Строка Уникальный ID в системе партнера, должен быть уникальным для каждой транзакции и увеличиваться с каждой последующей транзакцией.
<callback> Строка Не обязательно Ссылка для оповещение о статусе запрошенной выплаты

Пример JSON ответа API makePayout
 
{
    "result": true, 
    "payout_status": 0, 
    "paymix_payout_id": 10293, 
    "amount": 199.99, 
    "wallet": "791911223344", 
    "uid": "90002", 
    "auto_cancel_after": "12.02.2018 14:07", 
    "auto_cancel_after_unix": 1518433632, 
    "need_agree": true, 
    "agree_via": "email", 
    "callback_url": "https://paymix.ru/callback",
    "project" => 1 // ID проекта с которого осуществляется выплата
}

Из ответа мы понимаем, что платеж успешно сформирован, это нам говорит result = true
Сформирована выплата на кошелек Qiwi +791911223344, сумма 199.99, внутренний PayMIX ID выплаты 10293. Обратите внимание, что в примере требуется подтверждение выплаты партнером. Оно было выслано на Email. Если партнер не ответит на эту выплату, она будет автоматически отменена  после auto_cancel_after

Подробнее о каждой строке ответа
 
result Результат выполнения API запроса, true всегда если успешно, false всегда если с ошибками. Проверяйте этот параметр
payout_status Статус выплаты: 0 - обрабатывается, 1 - выплачено, 2 - возникли ошибки
paymix_payout_id Идентификатор выплаты внутри PayMIX системы
amount Сумма выплаты
wallet Qiwi кошелек для выплаты
uid Уникальный идентификатор со стороны партнера
auto_cancel_after Дата автоматического отказа в выплате. Есть только если в настройках API выплат указано, что выплаты должны проходить обязательное подтверждение.
auto_cancel_after_unix Дата в Unix формате автоматического отказа в выплате. Есть только если в настройках API выплат указано, что выплаты должны проходить обязательное подтверждение.
need_agree Требуется ли подтверждение выплаты партнером, true если требуется, false если не требуется.
agree_via Указанный в настройках способ подтверждения, email или telegram
callback_url Ссылка, куда будет отправлен результат выплаты, может быть не указана
error_code Код ошибки, если есть. result при этом будет равен false
error Описание ошибки на английском, если есть. result при этом будет равен false

Возможные ошибки при формировании запроса
 
3 Неверная комбинация email/key
4 Неверный формат секретного ключа
10 API выплаты не активированы в панели управления проектом
12 Аккаунт партнера не может выводить средства с баланса
15 Неверный формат qiwi кошелька
20 Неверная сумма выплаты
21 Не указан уникальный идентификатор в система партнера
24 uid может состоять только из 0-9 a-Z _ -  [ ], длина от 1 до 64
28 На балансе проекта нет запрошенной суммы
30 Настройками указано, что на балансе проекта после выплаты не может оставаться меньше N рублей
31 Минимальная сумма для выплаты - 1 рубль
32 Максимальная сумма 250 000 рублей
33 Настройками указано, что максимальная сумма выплаты за один раз не может превышать N рублей
35 Настройками указано, что выплаты разрешены только на доверенные кошельки
40 Настройками указан дневной лимит на выплаты для одного кошелька, и он достигнут
45 Настройками указан дневной лимит для одного кошелька, запрашиваемая сумма выше лимита, в ответе передается параметр available_amount в котором написано, сколько можно вывести
48 Настройками указан общий дневной лимит на выплаты, и он достигнут
50 Настройками указан общий дневной лимит на выплаты, запрашиваемая сумма выше лимита, в ответе передается параметр available_amount в котором написано, сколько можно вывести
51 Настройками указан общий месячный лимит, и он достигнут
53 Настройками указан общий месячный лимит на выплаты, запрашиваемая сумма выше лимита, в ответе передается параметр available_amount в котором написано, сколько можно вывести
57 Настройками указано, что нельзя осуществлять выплату на тот кошелек, для которого еще есть необработанные выплаты
60 Указанный uid (уникальный идентификатор в системе партнера) уже существует, нужен другой
68 Неверный формат Callback url (если указан)
98 Аккаунт партнера не активирован
99 Аккаунт партнера заблокирован

Callback информирование

При изменении статуса выплаты, и если в запросе к API вы передавали Callback URL, мы отправляем оповещение, пример:
 
{
    "payout_status": 1,
    "paymix_payout_id": 10293,
    "amount": 199.99,
    "sended_amount": 199.99,
    "wallet": "791911223344",
    "uid": "90002",
    "maketime_unix": 1518429224,
    "endtime_unix": 1518429230,
    "signature": "sha256 токен",
    "project": 1 // ID проекта с которого списаны средства
}
payout_status Статус выплаты: 1 - выплачено, 2 - возникли ошибки, средства возвращены на баланс, 0 - обрабатывается
paymix_payout_id Идентификатор выплаты в системе выплат PayMIX
amount Запрошенная сумма выплаты
sended_amount Отправленная сумма выплаты (зачиселенно на кошелек)
wallet QIWI кошелек куда зачислены средства
uid Уникальный идентификатор в системе партнера
maketime_unix Дата создания запроса в формате Unix
endtime_unix Дата завершения обработки запроса в формате Unix
signature Подпись данных для безопасности, формируется объединяя:
payout_status paymix_payout_id amount wallet uid секретныйКлюч
 в sha256

Пример реализации проверки Callback на PHP 
 
<?php
    if($_POST['signature']) {
        $signature = $_POST['signature'];
        $payoutStatus = $_POST['payout_status'];
        $paymixID = $_POST['paymix_payout_id'];
        $amount = $_POST['amount'];
        $sendedMoney = $_POST['sended_money'];
        $wallet = $_POST['wallet'];
        $uid = $_POST['uid'];
        $token = "ВАШ СЕКРЕТНЫЙ API КЛЮЧ";

        $realSign = hash("sha256", $payoutStatus.$paymixID.$amount.$wallet.$uid.$token);
        if(strcmp($signature, $realSign) == 0) {
            // Все верно, можете доверять
            // Вписывайте свой код для дальнейшей обработки
        }
        else die("Ошибка безопасности");
    }