Skip to main content

функционал

Депозиты (Пополнения)

$response = $client->deposit()->create(new DepositRequest(
orderId: 'order-123',
amount: 1000.00,
currency: 'RUB',
method: 'sbp',
callbackUri: 'https://your-site.com/callback',
successUri: 'https://your-site.com/success',
failUri: 'https://your-site.com/fail',
customerName: 'Иван Иванов',
));

Параметры DepositRequest

ПараметрТипОбязательныйОписание
orderIdstringДаУникальный ID заказа в вашей системе
amountfloatДаСумма платежа
currencystringДаВалюта (RUB, EUR, USD, INR, ...)
methodstringНетКод метода оплаты
callbackUristringНетURL для колбэков о статусе
successUristringНетURL редиректа при успехе
failUristringНетURL редиректа при ошибке
customerNamestringНетФИО клиента
customerFirstNamestringНетИмя клиента
countrystringНетСтрана (RU, KZ, IN, ...)
emailstringУсловно*Email клиента
phonestringУсловно*Телефон в формате E.164
userIpstringНетIP-адрес клиента
userIdstringНетID клиента в вашей системе
assetOrBankstringНетКод банка или криптоактива
senderBankstringНетБанк отправителя
includeCommissionboolНетВключить комиссию в сумму

* Поля email и phone обязательны для валюты INR.

Пример для INR/UPI

$response = $client->deposit()->create(new DepositRequest(
orderId: 'order-123',
amount: 1000.00,
currency: 'INR',
method: 'upi',
callbackUri: 'https://your-site.com/callback',
email: 'customer@example.com',
phone: '+919876543210',
));

Выплаты (Payouts)

use Fynzah\DTO\Request\PayoutRequest;

$response = $client->payout()->create(new PayoutRequest(
amount: 5000.00,
method: 'card',
address: '4111111111111111',
recipient: 'Иван Иванов',
callbackUri: 'https://your-site.com/callback',
assetOrBank: 'sber',
));

Параметры PayoutRequest

ПараметрТипОбязательныйОписание
amountfloatДаСумма выплаты
methodstringДаКод метода выплаты
addressstringДаНомер карты/телефона получателя
recipientstringДаФИО получателя
orderIdstringНетУникальный ID заказа
currencystringНетВалюта
callbackUristringНетURL для колбэков
assetOrBankstringНетКод банка
userIdstringНетID клиента
phonestringУсловно*Телефон получателя
emailstringУсловно*Email получателя

* Поля email и phone обязательны для валюты INR.

Статус транзакции

// По ID транзакции
$status = $client->status()->getByTransactionId('txn-123');

// По ID заказа
$status = $client->status()->getByOrderId('order-123');

// Проверка статуса
if ($status->status->isSuccess()) {
// Платёж успешен
}

if ($status->status->isFailed()) {
// Платёж не прошёл
}

if ($status->status->isPending()) {
// Платёж в обработке
}

Информация

// Баланс
$balance = $client->info()->getBalance();

// Фиатный баланс
$fiatBalance = $client->info()->getFiatBalance();

// Методы оплаты
$methods = $client->info()->getMethods();
$methods = $client->info()->getMethods('RUB'); // фильтр по валюте

// Банки для депозитов
$banks = $client->info()->getBanks('RUB');
$banks = $client->info()->getBanks('RUB', 'sbp'); // фильтр по методу

// Курс
$rate = $client->info()->getRate();
$rate = $client->info()->getRate('sbp'); // фильтр по методу

// Банки для выплат
$payoutBanks = $client->info()->getPayoutBanks();
$payoutBanks = $client->info()->getPayoutBanks('RUB'); // фильтр по валюте

Public API

Public API работает без авторизации.

use Fynzah\Enum\TransactionStatus;

// Получить заказ
$order = $client->order()->get('order-123');

// Получить доступные методы
$methods = $client->order()->getMethods('order-123');

// Получить доступные банки
$banks = $client->order()->getBanks('order-123');

// Создать инвойс (выбор метода оплаты)
$invoice = $client->order()->createInvoice('order-123', 'sbp', [
'assetOrBank' => 'sber',
]);

// Обновить статус (только in_check, canceled, dispute)
$updated = $client->order()->updateStatus('order-123', TransactionStatus::IN_CHECK);