# Выполнение выплаты

Для проведения массовых выплат используется метод payouts/execute. API может принимать как сам объект выплаты, описанный ниже, так и массив таких объектов. В ответ возвращается массив с результатом для каждой переданной выплаты.

Результат содержит текущий статус и идентификатор выплаты, в случае принятия в обработку.

Все выплаты на данный момент проводятся только в российских рублях.

Статусы:

  • proceeded - успешно проведено
  • pending - ожидание проведения
  • low_balance - недостаточно средств для проведения.
  • incorrect_amount - неверная сумма (не удовлетворяет миниму и максимуму).

# Параметры

Параметр Тип Описание
method Объект Содержит 2 строковых поля:
  • type — платёжный метод
  • value — реквизит для выплаты (например, номер карты или кошелька).
amount Число Сумма платежа в валюте кассы

# Примеры использования

Пример совершения массовых выплат с использованием SDK:

// Инициализация клиента API
$paysys = new QubiPay('5fead72e6c6eb9004990e29b', 'secret-key');

// Создание выплаты
$payout_response = $paysys->executePayout(array(
    array(
        'method' => array(
            'type' => 'qiwi',
            'value' => '+79018027364'
        ),
        'amount' => 142.92
    ),
    array(
        'method' => array(
            'type' => 'qiwi',
            'value' => '+71055067361'
        ),
        'amount' => 14.24
    )
));

if ($payout_response->success) {
    foreach ($payout_response->results as $i => $result) {
        switch ($result['status']) {
            case 'pending':
                echo "Платёж #$i в обработке (ID: {$result['id']})".PHP_EOL;
                break;
            case 'proceeded':
                echo "Платёж #$i проведён".PHP_EOL;
                break;
            case 'low_balance':
                echo "Недостаточно средств для проведения платёжа #$i".PHP_EOL;
                break;
            case 'no_method':
                echo "Указан неверный метод для платёжа #$i".PHP_EOL;
                break;
        }
    }
} else {
    // Вывод ошибки в случае внутренней неисправности шлюза
    echo $payout_response->message;
}
// Инициализация клиента API
const paysys = new QubiPay('5fead72e6c6eb9004990e29b', 'secret-key');

// Создание выплаты
const payoutResponse = paysys.executePayout([
    {
        'method': {
            'type': 'qiwi',
            'value': '+79018027364'
        },
        'amount': 142.92
    },
    {
        'method': {
            'type': 'qiwi',
            'value': '+71055067361'
        },
        'amount': 14.24
    }
]);

if (payoutResponse.success) {
    let i = 0;
    for (const result of payoutResponse.results) {
        switch (result.status) {
            case 'pending':
                console.log(`Платёж #${i} в обработке (ID: ${result.id})`);
                break;
            case 'proceeded':
                console.log(`Платёж #${i} проведён`);
                break;
            case 'low_balance':
                console.log(`Недостаточно средств для проведения платёжа #${i}`);
                break;
            case 'no_method':
                console.log(`Указан неверный метод для платёжа #${i}`);
                break;
        }

        i++;
    }
} else {
    // Вывод ошибки в случае внутренней неисправности шлюза
    console.log(payoutResponse.message);
}

Пример HTTP-запроса:

POST https://gateway.qubipay.io/api/v1/Payouts/execute
Authorization: Basic NWZlYWQ3MmU2YzZlYjkwMDQ5OTBlMjliOnNlY3JldC1rZXk=
Content-Type: application/json

[
    {
        "method": {
            "type": "qiwi",
            "value": "+79018027364"
        },
        "amount": 142.92
    },
    {
        "method": {
            "type": "qiwi",
            "value": "+71055067361"
        },
        "amount": 14.24
    }
]

Пример ответа API:

[
    { "status": "low_balance" },
    { "status": "pending", "id": "603dfa673ee191001c2bee0c" }
]