Files
Антон Н. Николаев 99a7c24927 Изменения в текстах
2023-06-23 11:25:30 +03:00

8.7 KiB
Raw Permalink Blame History

Работа с выплатами

Выплата — это сумма денег, которую вы переводите физическому лицу или самозанятому. С помощью API вы можете создать выплату и получить о ней актуальную информацию.

Выплаты используются в следующих платежных решениях ЮKassa:

  • Выплаты — вы как компания переводите деньги физическим лицам и самозанятым (например, выплачиваете кэшбэк пользователям).
  • Безопасная сделка — ваша платформа в рамках созданной сделки переводит оплату от одного физического лица другому.

SDK позволяет проводить выплаты, а также получать информацию о них.

Объект выплаты PayoutResponse содержит всю информацию о выплате, актуальную на текущий момент времени. Объект формируется при создании выплаты и приходит в ответ на любой запрос, связанный с выплатами.

Набор возвращаемых параметров зависит от статуса объекта (значение параметра status) и того, какие параметры вы передали в запросе на создание выплаты.


Запрос на выплату продавцу

Выплата продавцу в документации

Запрос позволяет перечислить продавцу оплату за выполненную услугу или проданный товар в рамках «Безопасной сделки». Выплату можно сделать на банковскую карту или в кошелек ЮMoney.

В ответ на запрос придет объект выплаты — PayoutResponse — в актуальном статусе.

Подробнее о проведении выплат

Проведение выплаты на банковскую карту

require_once 'vendor/autoload.php';

$client = new \YooKassa\Client();
$client->setAuth('xxxxxx', 'test_XXXXXXX');

$request = [
    'amount' => [
        'value' => '80.00',
        'currency' => 'RUB',
    ],
    'payout_destination_data' => [
        'type' => 'bank_card',
        'card' => [
            'number' => '5555555555554477',
        ],
    ],
    'description' => 'Выплата по заказу №37',
    'metadata' => [
        'order_id' => '37',
    ],
];
$idempotenceKey = uniqid('', true);
try {
    $result = $client->createPayout($request, $idempotenceKey);
} catch (\Exception $e) {
    $result = $e;
}

var_dump($result);

Проведение выплаты в кошелек ЮMoney

require_once 'vendor/autoload.php';

$client = new \YooKassa\Client();
$client->setAuth('xxxxxx', 'test_XXXXXXX');

$request = [
    'amount' => [
        'value' => '80.00',
        'currency' => 'RUB',
    ],
    'payout_destination_data' => [
        'type' => 'yoo_money',
        'account_number' => '4100116075156746',
    ],
    'description' => 'Выплата по заказу №37',
    'metadata' => [
        'order_id' => '37',
    ],
];
$idempotenceKey = uniqid('', true);
try {
    $result = $client->createPayout($request, $idempotenceKey);
} catch (\Exception $e) {
    $result = $e;
}

var_dump($result);

Проведение выплаты через СБП

require_once 'vendor/autoload.php';

$client = new \YooKassa\Client();
$client->setAuth('xxxxxx', 'test_XXXXXXX');

$request = [
    'amount' => [
        'value' => '80.00',
        'currency' => 'RUB',
    ],
    'payout_destination_data' => [
        'type' => 'sbp',
        'phone' => '79000000000',
        'bank_id' => '100000000111',
    ],
    'description' => 'Выплата по заказу №37',
    'metadata' => [
        'order_id' => '37',
    ],
];
$idempotenceKey = uniqid('', true);
try {
    $result = $client->createPayout($request, $idempotenceKey);
} catch (\Exception $e) {
    $result = $e;
}

var_dump($result);

Выплаты самозанятым

require_once 'vendor/autoload.php';

$client = new \YooKassa\Client();
$client->setAuth('xxxxxx', 'test_XXXXXXX');

$request = [
    'amount' => [
        'value' => '80.00',
        'currency' => 'RUB',
    ],
    'payout_token' => '<Синоним банковской карты>',
    'self_employed' => [
        'id' => 'se-d6b9b3fa-0cb8-4aa8-b3c0-254bf0358d4c',
    ],
    'receipt_data' => [
        'service_name' => 'Доставка документов'
    ],
    'description' => 'Выплата по заказу №37',
    'metadata' => [
        'order_id' => '37',
        'courier_id' => '001',
    ],
];
$idempotenceKey = uniqid('', true);
try {
    $result = $client->createPayout($request, $idempotenceKey);
} catch (\Exception $e) {
    $result = $e;
}

var_dump($result);

Проведение выплаты по безопасной сделке

require_once 'vendor/autoload.php';

$client = new \YooKassa\Client();
$client->setAuth('xxxxxx', 'test_XXXXXXX');

$request = [
    'amount' => [
        'value' => '800.00',
        'currency' => 'RUB',
    ],
    'payout_token' => '<Синоним банковской карты>',
    'description' => 'Выплата по заказу №37',
    'metadata' => [
        'order_id' => '37'
    ],
    'deal' => [
        'id' => 'dl-285e5ee7-0022-5000-8000-01516a44b147',
    ],
];
$idempotenceKey = uniqid('', true);
try {
    $result = $client->createPayout($request, $idempotenceKey);
} catch (\Exception $e) {
    $result = $e;
}

var_dump($result);

Получить информацию о выплате

Информация о выплате в документации

Запрос позволяет получить информацию о текущем состоянии выплаты по ее уникальному идентификатору.

Данные для аутентификации запросов зависят от того, какое платежное решение вы используете — обычные выплаты или выплаты в рамках «Безопасной сделки».

В ответ на запрос придет объект выплаты — PayoutResponse — в актуальном статусе.

require_once 'vendor/autoload.php';

$client = new \YooKassa\Client();
$client->setAuth('xxxxxx', 'test_XXXXXXX');

$payoutId = 'po-285c0ab7-0003-5000-9000-0e1166498fda';
try {
    $response = $client->getPayoutInfo($payoutId);
} catch (\Exception $e) {
    $response = $e;
}

var_dump($response);