Files
Евгений Ю. Лозный 260d13f890 Добавлен прием платежей через Alfa Pay. Добавлен новый тип ошибки RuleViolationError
Добавлены нулевые привязки по СБП
Добавлена причина отмены возвратов `payment_expired`
2026-06-29 17:46:40 +03:00

140 KiB
Raw Permalink Blame History

YooKassa API SDK

Class: \YooKassa\Client

Namespace: \YooKassa


Summary:

Класс клиента API.


Examples

Создание клиента

require_once '../vendor/autoload.php';

$client = new \YooKassa\Client();
// по логин/паролю
$client->setAuth('xxxxxx', 'test_XXXXXXX');
// или по oauth токену
$client->setAuthToken('token_XXXXXXX');

// Получение информации о подключенном магазине


Constants

Visibility Name Flag Summary
public ME_PATH Точка входа для запроса к API по магазину
public PAYMENTS_PATH Точка входа для запросов к API по платежам
public REFUNDS_PATH Точка входа для запросов к API по возвратам
public WEBHOOKS_PATH Точка входа для запросов к API по вебхукам
public RECEIPTS_PATH Точка входа для запросов к API по чекам
public DEALS_PATH Точка входа для запросов к API по сделкам
public PAYOUTS_PATH Точка входа для запросов к API по выплатам
public PERSONAL_DATA_PATH Точка входа для запросов к API по персональным данным
public SBP_BANKS_PATH Точка входа для запросов к API по участникам СБП
public SELF_EMPLOYED_PATH Точка входа для запросов к API по самозанятым
public INVOICES_PATH Точка входа для запросов к API по счетам
public PAYMENT_METHODS_PATH Точка входа для запросов к API по способам оплаты
public IDEMPOTENCE_KEY_HEADER Имя HTTP заголовка, используемого для передачи idempotence key
public DEFAULT_DELAY Значение по умолчанию времени ожидания между запросами при отправке повторного запроса в случае получения ответа с HTTP статусом 202.
public DEFAULT_TRIES_COUNT Значение по умолчанию количества попыток получения информации от API если пришёл ответ с HTTP статусом 202
public DEFAULT_ATTEMPTS_COUNT Значение по умолчанию количества попыток получения информации от API если пришёл ответ с HTTP статусом 202
public SDK_VERSION Текущая версия библиотеки.

Properties

Visibility Name Flag Summary
protected $apiClient CURL клиент
protected $attempts Количество повторных запросов при ответе API статусом 202.
protected $config Настройки для CURL клиента.
protected $logger Объект для логирования работы SDK.
protected $login shopId магазина.
protected $password Секретный ключ магазина.
protected $timeout Время через которое будут осуществляться повторные запросы.

Methods

Visibility Name Flag Summary
public __construct() Constructor.
public addWebhook() Создание Webhook.
public cancelPayment() Отменить незавершенную оплату заказа.
public capturePayment() Подтверждение платежа.
public createDeal() Создание сделки.
public createInvoice() Создание счета.
public createPayment() Создание платежа.
public createPaymentMethod() Создание способа оплаты.
public createPayout() Создание выплаты.
public createPersonalData() Создание персональных данных.
public createReceipt() Отправка чека в облачную кассу.
public createRefund() Проведение возврата платежа.
public createSelfEmployed() Создание самозанятого.
public getApiClient() Возвращает CURL клиента для работы с API.
public getConfig() Возвращает настройки клиента.
public getDealInfo() Получить информацию о сделке.
public getDeals() Получить список сделок магазина.
public getInvoiceInfo() Получить информацию о счете
public getPaymentInfo() Получить информацию о платеже.
public getPaymentMethodInfo() Получить информацию о способе оплаты
public getPayments() Получить список платежей магазина.
public getPayoutInfo() Получить информацию о выплате.
public getPayouts() Получить список выплат магазина.
public getPersonalDataInfo() Получить информацию о персональных данных.
public getReceiptInfo() Получить информацию о чеке.
public getReceipts() Получить список чеков магазина.
public getRefundInfo() Получить информацию о возврате.
public getRefunds() Получить список возвратов платежей.
public getSbpBanks() Получить список участников СБП
public getSelfEmployedInfo() Получить информацию о самозанятом
public getWebhooks() Список созданных Webhook.
public isNotificationIPTrusted() Метод проверяет, находится ли IP адрес среди IP адресов Юkassa, с которых отправляются уведомления.
public me() Информация о магазине.
public removeWebhook() Удаление Webhook.
public setApiClient() Устанавливает CURL клиента для работы с API.
public setAuth() Устанавливает авторизацию по логин/паролю.
public setAuthToken() Устанавливает авторизацию по Oauth-токену.
public setConfig() Устанавливает настройки клиента.
public setLogger() Устанавливает логгер приложения.
public setMaxRequestAttempts() Установка значения количества попыток повторных запросов при статусе 202.
public setRetryTimeout() Установка значения задержки между повторными запросами.
protected decodeData() Декодирует JSON строку в массив данных.
protected delay() Задержка между повторными запросами.
protected encodeData() Кодирует массив данных в JSON строку.
protected execute() Выполнение запроса и обработка 202 статуса.
protected handleError() Выбрасывает исключение по коду ошибки.

Details


Constants

ME_PATH

Inherited from \YooKassa\Client\BaseClient

Точка входа для запроса к API по магазину

ME_PATH = '/me'

PAYMENTS_PATH

Inherited from \YooKassa\Client\BaseClient

Точка входа для запросов к API по платежам

PAYMENTS_PATH = '/payments'

REFUNDS_PATH

Inherited from \YooKassa\Client\BaseClient

Точка входа для запросов к API по возвратам

REFUNDS_PATH = '/refunds'

WEBHOOKS_PATH

Inherited from \YooKassa\Client\BaseClient

Точка входа для запросов к API по вебхукам

WEBHOOKS_PATH = '/webhooks'

RECEIPTS_PATH

Inherited from \YooKassa\Client\BaseClient

Точка входа для запросов к API по чекам

RECEIPTS_PATH = '/receipts'

DEALS_PATH

Inherited from \YooKassa\Client\BaseClient

Точка входа для запросов к API по сделкам

DEALS_PATH = '/deals'

PAYOUTS_PATH

Inherited from \YooKassa\Client\BaseClient

Точка входа для запросов к API по выплатам

PAYOUTS_PATH = '/payouts'

PERSONAL_DATA_PATH

Inherited from \YooKassa\Client\BaseClient

Точка входа для запросов к API по персональным данным

PERSONAL_DATA_PATH = '/personal_data'

SBP_BANKS_PATH

Inherited from \YooKassa\Client\BaseClient

Точка входа для запросов к API по участникам СБП

SBP_BANKS_PATH = '/sbp_banks'

SELF_EMPLOYED_PATH

Inherited from \YooKassa\Client\BaseClient

Точка входа для запросов к API по самозанятым

SELF_EMPLOYED_PATH = '/self_employed'

INVOICES_PATH

Inherited from \YooKassa\Client\BaseClient

Точка входа для запросов к API по счетам

INVOICES_PATH = '/invoices'

PAYMENT_METHODS_PATH

Inherited from \YooKassa\Client\BaseClient

Точка входа для запросов к API по способам оплаты

PAYMENT_METHODS_PATH = '/payment_methods'

IDEMPOTENCE_KEY_HEADER

Inherited from \YooKassa\Client\BaseClient

Имя HTTP заголовка, используемого для передачи idempotence key

IDEMPOTENCE_KEY_HEADER = 'Idempotence-Key'

DEFAULT_DELAY

Inherited from \YooKassa\Client\BaseClient

Значение по умолчанию времени ожидания между запросами при отправке повторного запроса в случае получения ответа с HTTP статусом 202.

DEFAULT_DELAY = 1800

DEFAULT_TRIES_COUNT

Inherited from \YooKassa\Client\BaseClient

Значение по умолчанию количества попыток получения информации от API если пришёл ответ с HTTP статусом 202

DEFAULT_TRIES_COUNT = 3

DEFAULT_ATTEMPTS_COUNT

Inherited from \YooKassa\Client\BaseClient

Значение по умолчанию количества попыток получения информации от API если пришёл ответ с HTTP статусом 202

DEFAULT_ATTEMPTS_COUNT = 3

SDK_VERSION

Текущая версия библиотеки.

SDK_VERSION = '3.14.0'

Properties

protected $apiClient : ?\YooKassa\Client\ApiClientInterface


Summary

CURL клиент

Type: ApiClientInterface

Details:

protected $attempts : int


Summary

Количество повторных запросов при ответе API статусом 202.

Description

Значение по умолчанию 3

Type: int

Details:

protected $config : array


Summary

Настройки для CURL клиента.

Type: array

Details:

protected $logger : ?\Psr\Log\LoggerInterface


Summary

Объект для логирования работы SDK.

Type: LoggerInterface

Details:

protected $login : ?int


Summary

shopId магазина.

Type: ?int

Details:

protected $password : ?string


Summary

Секретный ключ магазина.

Type: ?string

Details:

protected $timeout : int


Summary

Время через которое будут осуществляться повторные запросы.

Description

Значение по умолчанию - 1800 миллисекунд.

Type: int Значение в миллисекундах Details:


Methods

public __construct() : mixed

public __construct(?\YooKassa\Client\ApiClientInterface $apiClient = null, ?\YooKassa\Helpers\Config\ConfigurationLoaderInterface $configLoader = null) : mixed

Summary

Constructor.

Details:

Parameters:
Type Name Description
?\YooKassa\Client\ApiClientInterface apiClient
?\YooKassa\Helpers\Config\ConfigurationLoaderInterface configLoader

Returns: mixed -

public addWebhook() : ?\YooKassa\Model\Webhook\Webhook

public addWebhook(array|\YooKassa\Model\Webhook\Webhook $webhookData, null|string $idempotenceKey = null) : ?\YooKassa\Model\Webhook\Webhook

Summary

Создание Webhook.

Description

Запрос позволяет подписаться на уведомления о событии (например, на переход платежа в статус successed).

Details:

Parameters:
Type Name Description
array OR \YooKassa\Model\Webhook\Webhook webhookData Запрос на создание вебхука
null OR string idempotenceKey Ключ идемпотентности
Throws:
Type Description
\YooKassa\Common\Exceptions\ApiException Неожиданный код ошибки
\YooKassa\Common\Exceptions\BadApiRequestException Неправильный запрос. Чаще всего этот статус выдается из-за нарушения правил взаимодействия с API
\YooKassa\Common\Exceptions\ForbiddenException Секретный ключ или OAuth-токен верный, но не хватает прав для совершения операции
\YooKassa\Common\Exceptions\InternalServerError Технические неполадки на стороне ЮKassa. Результат обработки запроса неизвестен. Повторите запрос позднее с тем же ключом идемпотентности
\YooKassa\Common\Exceptions\NotFoundException Ресурс не найден
\YooKassa\Common\Exceptions\ResponseProcessingException Запрос был принят на обработку, но она не завершена
\YooKassa\Common\Exceptions\TooManyRequestsException Превышен лимит запросов в единицу времени. Попробуйте снизить интенсивность запросов
\YooKassa\Common\Exceptions\UnauthorizedException Неверное имя пользователя или пароль или невалидный OAuth-токен при аутентификации
\YooKassa\Common\Exceptions\ExtensionNotFoundException Требуемое PHP расширение не установлено
\Exception

Returns: ?\YooKassa\Model\Webhook\Webhook -

Examples:

Создание Webhook:

// Работа с Webhook
// В данном примере мы устанавливаем вебхуки для succeeded и canceled уведомлений.
// А так же проверяем, не установлены ли уже вебхуки. И если установлены на неверный адрес, удаляем.
$client->setAuthToken('token_XXXXXXX');

try {
    $webHookUrl = 'https://merchant-site.ru/payment-notification';
    $needWebHookList = [
        \YooKassa\Model\Notification\NotificationEventType::PAYMENT_SUCCEEDED,
        \YooKassa\Model\Notification\NotificationEventType::PAYMENT_CANCELED,
    ];
    $currentWebHookList = $client->getWebhooks()->getItems();
    foreach ($needWebHookList as $event) {
        $hookIsSet = false;
        foreach ($currentWebHookList as $webHook) {
            if ($webHook->getEvent() !== $event) {
                continue;
            }
            if ($webHook->getUrl() !== $webHookUrl) {
                $client->removeWebhook($webHook->getId());
            } else {
                $hookIsSet = true;
            }

            break;
        }
        if (!$hookIsSet) {
            $client->addWebhook(['event' => $event, 'url' => $webHookUrl]);
        }
    }
    $response = 'SUCCESS';
} catch (\Exception $e) {
    $response = $e;
}

var_dump($response);

public cancelPayment() : ?\YooKassa\Request\Payments\CancelResponse

public cancelPayment(string $paymentId, null|string $idempotenceKey = null) : ?\YooKassa\Request\Payments\CancelResponse

Summary

Отменить незавершенную оплату заказа.

Description

Отменяет платеж, находящийся в статусе waiting_for_capture. Отмена платежа значит, что вы не готовы выдать пользователю товар или оказать услугу. Как только вы отменяете платеж, мы начинаем возвращать деньги на счет плательщика. Для платежей банковскими картами отмена происходит мгновенно. Для остальных способов оплаты возврат может занимать до нескольких дней.

Details:

Parameters:
Type Name Description
string paymentId Идентификатор платежа
null OR string idempotenceKey Ключ идемпотентности
Throws:
Type Description
\YooKassa\Common\Exceptions\ApiException Неожиданный код ошибки
\YooKassa\Common\Exceptions\BadApiRequestException Неправильный запрос. Чаще всего этот статус выдается из-за нарушения правил взаимодействия с API
\YooKassa\Common\Exceptions\ForbiddenException Секретный ключ или OAuth-токен верный, но не хватает прав для совершения операции
\YooKassa\Common\Exceptions\InternalServerError Технические неполадки на стороне ЮKassa. Результат обработки запроса неизвестен. Повторите запрос позднее с тем же ключом идемпотентности
\YooKassa\Common\Exceptions\NotFoundException Ресурс не найден
\YooKassa\Common\Exceptions\ResponseProcessingException Запрос был принят на обработку, но она не завершена
\YooKassa\Common\Exceptions\TooManyRequestsException Превышен лимит запросов в единицу времени. Попробуйте снизить интенсивность запросов.
\YooKassa\Common\Exceptions\UnauthorizedException Неверное имя пользователя или пароль или невалидный OAuth-токен при аутентификации
\YooKassa\Common\Exceptions\ExtensionNotFoundException Требуемое PHP расширение не установлено
\Exception

Returns: ?\YooKassa\Request\Payments\CancelResponse -

Examples:

Отменить незавершенную оплату заказа:

$paymentId = '24e89cb0-000f-5000-9000-1de77fa0d6df';

try {
    $response = $client->cancelPayment($paymentId, uniqid('', true));
    echo $response->getStatus();
    var_dump($response->toArray());
} catch (\Exception $e) {
    var_dump($e);
}

public capturePayment() : ?\YooKassa\Request\Payments\CreateCaptureResponse

public capturePayment(array|\YooKassa\Request\Payments\CreateCaptureRequestInterface $captureData, string $paymentId, null|string $idempotenceKey = null) : ?\YooKassa\Request\Payments\CreateCaptureResponse

Summary

Подтверждение платежа.

Description

Подтверждает вашу готовность принять платеж. Платеж можно подтвердить, только если он находится в статусе waiting_for_capture. Если платеж подтвержден успешно — значит, оплата прошла, и вы можете выдать товар или оказать услугу пользователю. На следующий день после подтверждения платеж попадет в реестр, и ЮKassa переведет деньги на ваш расчетный счет. Если вы не подтверждаете платеж до момента, указанного в expire_at, по умолчанию он отменяется, а деньги возвращаются пользователю. При оплате банковской картой у вас есть 7 дней на подтверждение платежа. Для остальных способов оплаты платеж необходимо подтвердить в течение 6 часов.

Details:

Parameters:
Type Name Description
array OR \YooKassa\Request\Payments\CreateCaptureRequestInterface captureData Запрос на создание подтверждения платежа
string paymentId Идентификатор платежа
null OR string idempotenceKey Ключ идемпотентности
Throws:
Type Description
\YooKassa\Common\Exceptions\ApiException Неожиданный код ошибки
\YooKassa\Common\Exceptions\BadApiRequestException Неправильный запрос. Чаще всего этот статус выдается из-за нарушения правил взаимодействия с API
\YooKassa\Common\Exceptions\ForbiddenException Секретный ключ или OAuth-токен верный, но не хватает прав для совершения операции
\YooKassa\Common\Exceptions\InternalServerError Технические неполадки на стороне ЮKassa. Результат обработки запроса неизвестен. Повторите запрос позднее с тем же ключом идемпотентности
\YooKassa\Common\Exceptions\NotFoundException Ресурс не найден
\YooKassa\Common\Exceptions\ResponseProcessingException Запрос был принят на обработку, но она не завершена
\YooKassa\Common\Exceptions\TooManyRequestsException Превышен лимит запросов в единицу времени. Попробуйте снизить интенсивность запросов
\YooKassa\Common\Exceptions\UnauthorizedException Неверное имя пользователя или пароль или невалидный OAuth-токен при аутентификации
\YooKassa\Common\Exceptions\ExtensionNotFoundException Требуемое PHP расширение не установлено
\Exception

Returns: ?\YooKassa\Request\Payments\CreateCaptureResponse -

Examples:

Подтверждение платежа:

$paymentId = '24e89cb0-000f-5000-9000-1de77fa0d6df';

try {
    $response = $client->capturePayment(
        [
            'amount' => [
                'value' => '1500.00',
                'currency' => 'RUB',
            ],
            'transfers' => [
                [
                    'account_id' => '123',
                    'amount' => [
                        'value' => '1000.00',
                        'currency' => 'RUB',
                    ],
                ],
                [
                    'account_id' => '456',
                    'amount' => [
                        'value' => '500.00',
                        'currency' => 'RUB',
                    ],
                ],
            ],
        ],
        $paymentId,
        uniqid('', true)
    );
    echo $response->getStatus();
    var_dump($response->toArray());
} catch (\Exception $e) {
    var_dump($e);
}

public createDeal() : ?\YooKassa\Request\Deals\CreateDealResponse

public createDeal(array|\YooKassa\Request\Deals\CreateDealRequestInterface $dealData, null|string $idempotenceKey = null) : ?\YooKassa\Request\Deals\CreateDealResponse

Summary

Создание сделки.

Description

Запрос позволяет создать сделку, в рамках которой необходимо принять оплату от покупателя и перечислить ее продавцу.

Необходимо указать следующие параметры:

  • type — Тип сделки. Фиксированное значение: safe_deal — Безопасная сделка;
  • fee_moment — Момент перечисления вам вознаграждения платформы. Возможные значения: payment_succeeded — после успешной оплаты;
  • deal_closed — при закрытии сделки после успешной выплаты.

Дополнительные параметры:

  • metadata — Любые дополнительные данные, которые нужны вам для работы (например, ваш внутренний идентификатор заказа);
  • description — Описание сделки (не более 128 символов). Используется для фильтрации при получении списка сделок.

Details:

Parameters:
Type Name Description
array OR \YooKassa\Request\Deals\CreateDealRequestInterface dealData Запрос на создание сделки
null OR string idempotenceKey Ключ идемпотентности
Throws:
Type Description
\YooKassa\Common\Exceptions\ApiException Неожиданный код ошибки
\YooKassa\Common\Exceptions\BadApiRequestException Неправильный запрос. Чаще всего этот статус выдается из-за нарушения правил взаимодействия с API
\YooKassa\Common\Exceptions\ForbiddenException Секретный ключ или OAuth-токен верный, но не хватает прав для совершения операции
\YooKassa\Common\Exceptions\InternalServerError Технические неполадки на стороне ЮKassa. Результат обработки запроса неизвестен. Повторите запрос позднее с тем же ключом идемпотентности
\YooKassa\Common\Exceptions\NotFoundException Ресурс не найден
\YooKassa\Common\Exceptions\ResponseProcessingException Запрос был принят на обработку, но она не завершена
\YooKassa\Common\Exceptions\TooManyRequestsException Превышен лимит запросов в единицу времени. Попробуйте снизить интенсивность запросов
\YooKassa\Common\Exceptions\UnauthorizedException Неверное имя пользователя или пароль или невалидный OAuth-токен при аутентификации
\YooKassa\Common\Exceptions\ExtensionNotFoundException Требуемое PHP расширение не установлено

Returns: ?\YooKassa\Request\Deals\CreateDealResponse -

Examples:

Запрос на создание сделки:

try {
    $response = $client->createDeal(
        [
            'type' => \YooKassa\Model\Deal\DealType::SAFE_DEAL,
            'fee_moment' => \YooKassa\Model\Deal\FeeMoment::PAYMENT_SUCCEEDED,
            'metadata' => [
                'order_id' => '37',
            ],
            'description' => 'SAFE_DEAL 123554642-2432FF344R',
        ],
        uniqid('', true)
    );
    echo $response->getStatus();
    var_dump($response->toArray());
} catch (\Exception $e) {
    var_dump($e);
}

public createInvoice() : \YooKassa\Model\Invoice\InvoiceInterface|null

public createInvoice(array|\YooKassa\Request\Invoices\CreateInvoiceRequestInterface $invoice, string|null $idempotenceKey = null) : \YooKassa\Model\Invoice\InvoiceInterface|null

Summary

Создание счета.

Description

Используйте этот запрос, чтобы создать в ЮKassa объект счета.

Details:

Parameters:
Type Name Description
array OR \YooKassa\Request\Invoices\CreateInvoiceRequestInterface invoice
string OR null idempotenceKey
Throws:
Type Description
\YooKassa\Common\Exceptions\ApiConnectionException
\YooKassa\Common\Exceptions\ApiException
\YooKassa\Common\Exceptions\AuthorizeException
\YooKassa\Common\Exceptions\BadApiRequestException
\YooKassa\Common\Exceptions\ExtensionNotFoundException
\YooKassa\Common\Exceptions\ForbiddenException
\YooKassa\Common\Exceptions\InternalServerError
\YooKassa\Common\Exceptions\NotFoundException
\YooKassa\Common\Exceptions\ResponseProcessingException
\YooKassa\Common\Exceptions\TooManyRequestsException
\YooKassa\Common\Exceptions\UnauthorizedException
\JsonException

Returns: \YooKassa\Model\Invoice\InvoiceInterface|null -

Examples:

Запрос на создание счёта:

$invoiceData = [
    'payment_data'=> [
        'amount'=> [
            'value'=> '7.00',
            'currency'=> 'RUB',
        ],
        'capture'=> true,
        'description'=> 'Заказ №96',
        'metadata'=> [
            'order_id'=> '96',
        ],
        'receipt'=> [
            'customer' => [
                'email' => 'example@email.com'
            ],
            'items' => [
                [
                    'description'=> 'Товар арт. 12345',
                    'amount'=> [
                        'value'=> '7.00',
                        'currency'=> 'RUB',
                    ],
                    'quantity'=> 1.000,
                    'vat_code' => 1,
                    'payment_mode' => 'full_payment',
                    'payment_subject' => 'commodity',
                ],
            ],
            'tax_system_code' => 1,
        ],
    ],
    'cart'=> [
        [
            'description'=> 'Товар арт. 12345',
            'price'=> [
                'value'=> '9.00',
                'currency'=> 'RUB',
            ],
            'discount_price'=> [
                'value'=> '7.00',
                'currency'=> 'RUB',
            ],
            'quantity'=> 1.000,
        ],
    ],
    'delivery_method'=> [
        'type'=> 'self',
    ],
    'expires_at'=> '2024-10-20T10:58:18.139Z',
    'description'=> 'Счет на оплату заказа номер 96',
    'metadata'=> [
        'order_id'=> '96',
    ],
];
$idempotenceKey = uniqid('', true);
try {
    $response = $client->createInvoice(
        $invoiceData,
        $idempotenceKey
    );
    if ($response->getDeliveryMethod() && $response->getDeliveryMethod()->getType() === \YooKassa\Model\Invoice\DeliveryMethod\DeliveryMethodType::SELF) {
        $redirectUrl = $response->getDeliveryMethod()->getUrl();
        // Далее производим редирект на полученный URL
    }
    var_dump($response->toArray());
} catch (\Exception $e) {
    var_dump($e);
}

public createPayment() : \YooKassa\Request\Payments\CreatePaymentResponse|null

public createPayment(array|\YooKassa\Request\Payments\CreatePaymentRequestInterface $paymentData, null|string $idempotenceKey = null) : \YooKassa\Request\Payments\CreatePaymentResponse|null

Summary

Создание платежа.

Description

Чтобы принять оплату, необходимо создать объект платежа — Payment. Он содержит всю необходимую информацию для проведения оплаты (сумму, валюту и статус). У платежа линейный жизненный цикл, он последовательно переходит из статуса в статус.

Необходимо указать один из параметров:

  • payment_token — оплата по одноразовому PaymentToken, сформированному виджетом YooKassa JS;
  • payment_method_id — оплата по сохраненным платежным данным;
  • payment_method_data — оплата по новым платежным данным.

Если не указан ни один параметр и confirmation.type = redirect, то в качестве confirmation_url возвращается ссылка, по которой пользователь сможет самостоятельно выбрать подходящий способ оплаты. Дополнительные параметры:

  • confirmation — передается, если необходимо уточнить способ подтверждения платежа;
  • recipient — указывается при наличии нескольких товаров;
  • metadata — дополнительные данные (передаются магазином).

Details:

Parameters:
Type Name Description
array OR \YooKassa\Request\Payments\CreatePaymentRequestInterface paymentData Запрос на создание платежа
null OR string idempotenceKey Ключ идемпотентности
Throws:
Type Description
\YooKassa\Common\Exceptions\ApiException Неожиданный код ошибки
\YooKassa\Common\Exceptions\AuthorizeException
\YooKassa\Common\Exceptions\BadApiRequestException Неправильный запрос. Чаще всего этот статус выдается из-за нарушения правил взаимодействия с API
\YooKassa\Common\Exceptions\ApiConnectionException
\YooKassa\Common\Exceptions\ExtensionNotFoundException Требуемое PHP расширение не установлено
\YooKassa\Common\Exceptions\ForbiddenException Секретный ключ или OAuth-токен верный, но не хватает прав для совершения операции
\YooKassa\Common\Exceptions\InternalServerError Технические неполадки на стороне ЮKassa. Результат обработки запроса неизвестен. Повторите запрос позднее с тем же ключом идемпотентности
\YooKassa\Common\Exceptions\NotFoundException ресурс не найден
\YooKassa\Common\Exceptions\ResponseProcessingException Запрос был принят на обработку, но она не завершена
\YooKassa\Common\Exceptions\TooManyRequestsException Превышен лимит запросов в единицу времени. Попробуйте снизить интенсивность запросов
\YooKassa\Common\Exceptions\UnauthorizedException Неверное имя пользователя или пароль или невалидный OAuth-токен при аутентификации

Returns: \YooKassa\Request\Payments\CreatePaymentResponse|null -

Examples:

Запрос на создание платежа:

try {
    $idempotenceKey = uniqid('', true);
    $response = $client->createPayment(
        [
            'amount' => [
                'value' => '1.00',
                'currency' => 'RUB',
            ],
            'confirmation' => [
                'type' => 'redirect',
                'return_url' => 'https://merchant-site.ru/payment-notification',
            ],
            'description' => 'Оплата заказа на сумму 1 руб',
            'metadata' => [
                'orderNumber' => 1001,
            ],
            'capture' => true,
        ],
        $idempotenceKey
    );
    $confirmation = $response->getConfirmation();
    $redirectUrl = $confirmation->getConfirmationUrl();
    // Далее производим редирект на полученный URL
    var_dump($response->toArray());
} catch (\Exception $e) {
    var_dump($e);
}

public createPaymentMethod() : \YooKassa\Model\SavePaymentMethod\SavePaymentMethodInterface|null

public createPaymentMethod(array|\YooKassa\Request\PaymentMethods\CreatePaymentMethodRequestInterface $paymentMethod, string|null $idempotenceKey = null) : \YooKassa\Model\SavePaymentMethod\SavePaymentMethodInterface|null

Summary

Создание способа оплаты.

Description

Используйте этот запрос, чтобы создать в ЮKassa объект способа оплаты. В запросе необходимо передать код способа оплаты, который вы хотите сохранить, и при необходимости дополнительные параметры, связанные с той функциональностью, которую вы хотите использовать.

Идентификатор созданного способа оплаты вы можете использовать при проведении автоплатежей или выплат.

Details:

Parameters:
Type Name Description
array OR \YooKassa\Request\PaymentMethods\CreatePaymentMethodRequestInterface paymentMethod
string OR null idempotenceKey
Throws:
Type Description
\YooKassa\Common\Exceptions\ApiConnectionException
\YooKassa\Common\Exceptions\ApiException
\YooKassa\Common\Exceptions\AuthorizeException
\YooKassa\Common\Exceptions\BadApiRequestException
\YooKassa\Common\Exceptions\ExtensionNotFoundException
\YooKassa\Common\Exceptions\ForbiddenException
\YooKassa\Common\Exceptions\InternalServerError
\YooKassa\Common\Exceptions\NotFoundException
\YooKassa\Common\Exceptions\ResponseProcessingException
\YooKassa\Common\Exceptions\TooManyRequestsException
\YooKassa\Common\Exceptions\UnauthorizedException
\JsonException

Returns: \YooKassa\Model\SavePaymentMethod\SavePaymentMethodInterface|null -

Examples:

Запрос на создание способа оплаты:

$paymentMethod = [
    'confirmation' => [
        'enforce' => true,
        'type' => 'redirect',
        'return_url' => 'https://www.example.com/return_url',
        'locale' => 'ru_RU'
    ],
    'type' => 'bank_card',
    'card' => [
        'number' => '4100000000000002',
        'expiry_year' => '2025',
        'expiry_month' => '12',
        'cardholder' => 'Inna Ivanovna',
        'csc' => '123'
    ],
    'holder' => [
        'gateway_id' => '123456'
    ],
    'client_ip' => '127.0.0.1',
];
$idempotenceKey = uniqid('', true);
try {
    $response = $client->createPaymentMethod(
        $paymentMethod,
        $idempotenceKey
    );
    if ($response->getStatus() && $response->getStatus() === \YooKassa\Model\SavePaymentMethod\SavePaymentMethodStatus::PENDING) {
        $redirectUrl = $response->getConfirmation()->getConfirmationUrl();
        // Далее производим редирект на полученный URL
    }
    var_dump($response->toArray());
} catch (\Exception $e) {
    var_dump($e);
}

public createPayout() : ?\YooKassa\Request\Payouts\CreatePayoutResponse

public createPayout(array|\YooKassa\Request\Payouts\CreatePayoutRequestInterface $payoutData, null|string $idempotenceKey = null) : ?\YooKassa\Request\Payouts\CreatePayoutResponse

Summary

Создание выплаты.

Description

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

Обязательный параметр:

  • amount — сумма выплаты. Есть ограничения на минимальный и максимальный размер выплаты и сумму выплат за месяц.

Необходимо указать один из параметров:

  • payout_destination_data — данные платежного средства, на которое нужно сделать выплату;
  • payout_token — токенизированные данные для выплаты. Например, синоним банковской карты.

Дополнительные параметры:

  • description — описание транзакции (не более 128 символов);
  • deal — сделка, в рамках которой нужно провести выплату. Необходимо передавать, если вы проводите Безопасную сделку;
  • metadata — любые дополнительные данные, которые нужны вам для работы (например, ваш внутренний идентификатор заказа).

Details:

Parameters:
Type Name Description
array OR \YooKassa\Request\Payouts\CreatePayoutRequestInterface payoutData Запрос на создание выплаты
null OR string idempotenceKey Ключ идемпотентности
Throws:
Type Description
\YooKassa\Common\Exceptions\ApiException Неожиданный код ошибки
\YooKassa\Common\Exceptions\BadApiRequestException Неправильный запрос. Чаще всего этот статус выдается из-за нарушения правил взаимодействия с API
\YooKassa\Common\Exceptions\ForbiddenException Секретный ключ или OAuth-токен верный, но не хватает прав для совершения операции
\YooKassa\Common\Exceptions\InternalServerError Технические неполадки на стороне ЮKassa. Результат обработки запроса неизвестен. Повторите запрос позднее с тем же ключом идемпотентности * @throws NotFoundException Ресурс не найден
\YooKassa\Common\Exceptions\ResponseProcessingException Запрос был принят на обработку, но она не завершена
\YooKassa\Common\Exceptions\TooManyRequestsException Превышен лимит запросов в единицу времени. Попробуйте снизить интенсивность запросов
\YooKassa\Common\Exceptions\UnauthorizedException Неверное имя пользователя или пароль или невалидный OAuth-токен при аутентификации
\YooKassa\Common\Exceptions\ExtensionNotFoundException Требуемое PHP расширение не установлено
\Exception

Returns: ?\YooKassa\Request\Payouts\CreatePayoutResponse -

Examples:

Запрос на создание выплаты:

$request = [
    'amount' => [
        'value' => '80.00',
        'currency' => 'RUB',
    ],
    'payout_destination_data' => [
        'type' => \YooKassa\Model\Payment\PaymentMethodType::YOO_MONEY,
        'accountNumber' => '4100116075156746',
    ],
    'description' => 'Выплата по заказу №37',
    'metadata' => [
        'order_id' => '37',
    ],
    'deal' => [
        'id' => 'dl-2909e77d-0022-5000-8000-0c37205b3208',
    ],
];

try {
    $idempotenceKey = uniqid('', true);
    $response = $client->createPayout($request, $idempotenceKey);
    var_dump($response->toArray());
} catch (\Exception $e) {
    var_dump($e);
}

public createPersonalData() : null|\YooKassa\Request\PersonalData\PersonalDataResponse

public createPersonalData(array|\YooKassa\Request\PersonalData\PersonalDataType\AbstractPersonalDataRequest $personalData, null|string $idempotenceKey = null) : null|\YooKassa\Request\PersonalData\PersonalDataResponse

Summary

Создание персональных данных.

Description

Используйте этот запрос, чтобы создать в ЮKassa объект персональных данных. В запросе необходимо передать фамилию, имя, отчество пользователя и указать, с какой целью эти данные будут использоваться. Идентификатор созданного объекта персональных данных необходимо использовать в запросе на проведение выплаты через СБП с проверкой получателя. Подробнее о выплатах с проверкой получателя

Details:

Parameters:
Type Name Description
array OR \YooKassa\Request\PersonalData\PersonalDataType\AbstractPersonalDataRequest personalData Запрос на создание персональных данных
null OR string idempotenceKey Ключ идемпотентности
Throws:
Type Description
\YooKassa\Common\Exceptions\ApiException Неожиданный код ошибки
\YooKassa\Common\Exceptions\BadApiRequestException Неправильный запрос. Чаще всего этот статус выдается из-за нарушения правил взаимодействия с API
\YooKassa\Common\Exceptions\ForbiddenException Секретный ключ или OAuth-токен верный, но не хватает прав для совершения операции
\YooKassa\Common\Exceptions\InternalServerError Технические неполадки на стороне ЮKassa. Результат обработки запроса неизвестен. Повторите запрос позднее с тем же ключом идемпотентности
\YooKassa\Common\Exceptions\NotFoundException Ресурс не найден
\YooKassa\Common\Exceptions\ResponseProcessingException Запрос был принят на обработку, но она не завершена
\YooKassa\Common\Exceptions\TooManyRequestsException Превышен лимит запросов в единицу времени. Попробуйте снизить интенсивность запросов
\YooKassa\Common\Exceptions\UnauthorizedException Неверное имя пользователя или пароль или невалидный OAuth-токен при аутентификации
\YooKassa\Common\Exceptions\ExtensionNotFoundException Требуемое PHP расширение не установлено
\Exception

Returns: null|\YooKassa\Request\PersonalData\PersonalDataResponse - Объект персональных данных

Examples:

Запрос на создание персональных данных:

$request = [
    'type' => 'sbp_payout_recipient',
    'last_name' => 'Иванов',
    'first_name' => 'Иван',
    'middle_name' => 'Иванович',
    'metadata' => ['recipient_id' => '37'],
];
$idempotenceKey = uniqid('', true);

try {
    $idempotenceKey = uniqid('', true);
    $response = $client->createPersonalData($request, $idempotenceKey);
    var_dump($response->toArray());
} catch (\Exception $e) {
    var_dump($e);
}

public createReceipt() : ?\YooKassa\Request\Receipts\AbstractReceiptResponse

public createReceipt(array|\YooKassa\Request\Receipts\CreatePostReceiptRequestInterface $receiptData, null|string $idempotenceKey = null) : ?\YooKassa\Request\Receipts\AbstractReceiptResponse

Summary

Отправка чека в облачную кассу.

Description

Создает объект чека — Receipt. Возвращает успешно созданный чек по уникальному идентификатору платежа или возврата.

Details:

Parameters:
Type Name Description
array OR \YooKassa\Request\Receipts\CreatePostReceiptRequestInterface receiptData Запрос на создание чека
null OR string idempotenceKey Ключ идемпотентности
Throws:
Type Description
\YooKassa\Common\Exceptions\ApiException Неожиданный код ошибки
\YooKassa\Common\Exceptions\BadApiRequestException Неправильный запрос. Чаще всего этот статус выдается из-за нарушения правил взаимодействия с API
\YooKassa\Common\Exceptions\ForbiddenException Секретный ключ или OAuth-токен верный, но не хватает прав для совершения операции
\YooKassa\Common\Exceptions\InternalServerError Технические неполадки на стороне ЮKassa. Результат обработки запроса неизвестен. Повторите запрос позднее с тем же ключом идемпотентности
\YooKassa\Common\Exceptions\NotFoundException Ресурс не найден
\YooKassa\Common\Exceptions\ResponseProcessingException Запрос был принят на обработку, но она не завершена
\YooKassa\Common\Exceptions\TooManyRequestsException Превышен лимит запросов в единицу времени. Попробуйте снизить интенсивность запросов
\YooKassa\Common\Exceptions\UnauthorizedException Неверное имя пользователя или пароль или невалидный OAuth-токен при аутентификации
\YooKassa\Common\Exceptions\ExtensionNotFoundException Требуемое PHP расширение не установлено
\YooKassa\Common\Exceptions\AuthorizeException Ошибка авторизации. Не установлен заголовок
\Exception

Returns: ?\YooKassa\Request\Receipts\AbstractReceiptResponse -

Examples:

Запрос на создание чека:

try {
    $response = $client->createReceipt(
        [
            'customer' => [
                'email' => 'johndoe@yoomoney.ru',
                'phone' => '79000000000',
            ],
            'type' => 'payment',
            'payment_id' => '24e89cb0-000f-5000-9000-1de77fa0d6df',
            'on_behalf_of' => '123',
            'send' => true,
            'items' => [
                [
                    'description' => 'Платок Gucci',
                    'quantity' => '1.00',
                    'amount' => [
                        'value' => '3000.00',
                        'currency' => 'RUB',
                    ],
                    'vat_code' => 2,
                    'payment_mode' => 'full_payment',
                    'payment_subject' => 'commodity',
                ],
            ],
            'settlements' => [
                [
                    'type' => 'prepayment',
                    'amount' => [
                        'value' => '3000.00',
                        'currency' => 'RUB',
                    ],
                ],
            ],
            'tax_system_code' => 1,
        ],
        uniqid('', true)
    );
    echo $response->getStatus();
    var_dump($response->toArray());
} catch (\Exception $e) {
    var_dump($e);
}

public createRefund() : \YooKassa\Request\Refunds\CreateRefundResponse|null

public createRefund(array|\YooKassa\Request\Refunds\CreateRefundRequestInterface $refundData, null|string $idempotenceKey = null) : \YooKassa\Request\Refunds\CreateRefundResponse|null

Summary

Проведение возврата платежа.

Description

Создает объект возврата — Refund. Возвращает успешно завершенный платеж по уникальному идентификатору этого платежа. Создание возврата возможно только для платежей в статусе succeeded. Комиссии за проведение возврата нет. Комиссия, которую ЮKassa берёт за проведение исходного платежа, не возвращается.

Details:

Parameters:
Type Name Description
array OR \YooKassa\Request\Refunds\CreateRefundRequestInterface refundData Запрос на создание возврата
null OR string idempotenceKey Ключ идемпотентности
Throws:
Type Description
\YooKassa\Common\Exceptions\ApiConnectionException
\YooKassa\Common\Exceptions\ApiException Неожиданный код ошибки
\YooKassa\Common\Exceptions\AuthorizeException
\YooKassa\Common\Exceptions\BadApiRequestException Неправильный запрос. Чаще всего этот статус выдается из-за нарушения правил взаимодействия с API
\YooKassa\Common\Exceptions\ExtensionNotFoundException Требуемое PHP расширение не установлено
\YooKassa\Common\Exceptions\ForbiddenException Секретный ключ или OAuth-токен верный, но не хватает прав для совершения операции
\YooKassa\Common\Exceptions\InternalServerError Технические неполадки на стороне ЮKassa. Результат обработки запроса неизвестен. Повторите запрос позднее с тем же ключом идемпотентности
\YooKassa\Common\Exceptions\NotFoundException Ресурс не найден
\YooKassa\Common\Exceptions\ResponseProcessingException Запрос был принят на обработку, но она не завершена
\YooKassa\Common\Exceptions\TooManyRequestsException Превышен лимит запросов в единицу времени. Попробуйте снизить интенсивность запросов
\YooKassa\Common\Exceptions\UnauthorizedException Неверное имя пользователя или пароль или невалидный OAuth-токен при аутентификации
\Exception

Returns: \YooKassa\Request\Refunds\CreateRefundResponse|null -

Examples:

Запрос на создание возврата:

try {
    $response = $client->createRefund(
        [
            'payment_id' => '24e89cb0-000f-5000-9000-1de77fa0d6df',
            'amount' => [
                'value' => '1000.00',
                'currency' => 'RUB',
            ],
            'sources' => [
                [
                    'account_id' => '456',
                    'amount' => [
                        'value' => '1000.00',
                        'currency' => 'RUB',
                    ],
                ],
            ],
        ],
        uniqid('', true)
    );
    echo $response->getStatus();
    var_dump($response->toArray());
} catch (\Exception $e) {
    var_dump($e);
}

public createSelfEmployed() : ?\YooKassa\Request\SelfEmployed\SelfEmployedResponse

public createSelfEmployed(array|\YooKassa\Request\SelfEmployed\SelfEmployedRequestInterface $selfEmployed, null|string $idempotenceKey = null) : ?\YooKassa\Request\SelfEmployed\SelfEmployedResponse

Summary

Создание самозанятого.

Description

Используйте этот запрос, чтобы создать в ЮKassa объект самозанятого.

В запросе необходимо передать ИНН или телефон самозанятого для идентификации в сервисе Мой налог, сценарий подтверждения пользователем заявки ЮMoney на получение прав для регистрации чеков и описание самозанятого.

Идентификатор созданного объекта самозанятого необходимо использовать в запросе на проведение выплаты.

Details:

Parameters:
Type Name Description
array OR \YooKassa\Request\SelfEmployed\SelfEmployedRequestInterface selfEmployed Запрос на создание самозанятого
null OR string idempotenceKey Ключ идемпотентности
Throws:
Type Description
\YooKassa\Common\Exceptions\ApiException Неожиданный код ошибки
\YooKassa\Common\Exceptions\BadApiRequestException Неправильный запрос. Чаще всего этот статус выдается из-за нарушения правил взаимодействия с API
\YooKassa\Common\Exceptions\ForbiddenException Секретный ключ или OAuth-токен верный, но не хватает прав для совершения операции
\YooKassa\Common\Exceptions\InternalServerError Технические неполадки на стороне ЮKassa. Результат обработки запроса неизвестен. Повторите запрос позднее с тем же ключом идемпотентности
\YooKassa\Common\Exceptions\NotFoundException Ресурс не найден
\YooKassa\Common\Exceptions\ResponseProcessingException Запрос был принят на обработку, но она не завершена
\YooKassa\Common\Exceptions\TooManyRequestsException Превышен лимит запросов в единицу времени. Попробуйте снизить интенсивность запросов
\YooKassa\Common\Exceptions\UnauthorizedException Неверное имя пользователя или пароль или невалидный OAuth-токен при аутентификации
\YooKassa\Common\Exceptions\ExtensionNotFoundException Требуемое PHP расширение не установлено

Returns: ?\YooKassa\Request\SelfEmployed\SelfEmployedResponse -

Examples:

Запрос на создание самозанятого:

$request = [
    'itn' => '123456789012',
    'phone' => '79001002030',
    'confirmation' => ['type' => 'redirect'],
];
$idempotenceKey = uniqid('', true);

try {
    $idempotenceKey = uniqid('', true);
    $response = $client->createSelfEmployed($request, $idempotenceKey);
    var_dump($response->toArray());
} catch (\Exception $e) {
    var_dump($e);
}

public getApiClient() : \YooKassa\Client\ApiClientInterface

public getApiClient() : \YooKassa\Client\ApiClientInterface

Summary

Возвращает CURL клиента для работы с API.

Details:

Returns: \YooKassa\Client\ApiClientInterface -

public getConfig() : array

public getConfig() : array

Summary

Возвращает настройки клиента.

Details:

Returns: array -

public getDealInfo() : ?\YooKassa\Model\Deal\DealInterface

public getDealInfo(string $dealId) : ?\YooKassa\Model\Deal\DealInterface

Summary

Получить информацию о сделке.

Description

Запрос позволяет получить информацию о текущем состоянии сделки по её уникальному идентификатору. Выдает объект чека {@link} в актуальном статусе.

Details:

Parameters:
Type Name Description
string dealId Идентификатор сделки
Throws:
Type Description
\YooKassa\Common\Exceptions\ApiException Неожиданный код ошибки
\YooKassa\Common\Exceptions\BadApiRequestException Неправильный запрос. Чаще всего этот статус выдается из-за нарушения правил взаимодействия с API
\YooKassa\Common\Exceptions\ForbiddenException Секретный ключ или OAuth-токен верный, но не хватает прав для совершения операции
\YooKassa\Common\Exceptions\InternalServerError Технические неполадки на стороне ЮKassa. Результат обработки запроса неизвестен. Повторите запрос позднее с тем же ключом идемпотентности
\YooKassa\Common\Exceptions\NotFoundException Ресурс не найден
\YooKassa\Common\Exceptions\ResponseProcessingException Запрос был принят на обработку, но она не завершена
\YooKassa\Common\Exceptions\TooManyRequestsException Превышен лимит запросов в единицу времени. Попробуйте снизить интенсивность запросов
\YooKassa\Common\Exceptions\UnauthorizedException Неверное имя пользователя или пароль или невалидный OAuth-токен при аутентификации
\YooKassa\Common\Exceptions\ExtensionNotFoundException Требуемое PHP расширение не установлено

Returns: ?\YooKassa\Model\Deal\DealInterface -

Examples:

Получить информацию о сделке:

try {
    $response = $client->getDealInfo('dl-2909e77d-1022-5003-8004-0c37205b3208');
    echo $response->getStatus();
    var_dump($response->toArray());
} catch (\Exception $e) {
    var_dump($e);
}

public getDeals() : ?\YooKassa\Request\Deals\DealsResponse

public getDeals(null|array|\YooKassa\Request\Deals\DealsRequestInterface $filter = null) : ?\YooKassa\Request\Deals\DealsResponse

Summary

Получить список сделок магазина.

Description

Запрос позволяет получить список сделок, отфильтрованный по заданным критериям. В ответ на запрос вернется список сделок с учетом переданных параметров. В списке будет информация о сделках, созданных за последние 3 года. Список будет отсортирован по времени создания сделок в порядке убывания. Если результатов больше, чем задано в limit, список будет выводиться фрагментами. В этом случае в ответе на запрос вернется фрагмент списка и параметр next_cursor с указателем на следующий фрагмент.

Details:

Parameters:
Type Name Description
null OR array OR \YooKassa\Request\Deals\DealsRequestInterface filter Параметры фильтрации
Throws:
Type Description
\YooKassa\Common\Exceptions\ApiException Неожиданный код ошибки
\YooKassa\Common\Exceptions\BadApiRequestException Неправильный запрос. Чаще всего этот статус выдается из-за нарушения правил взаимодействия с API
\YooKassa\Common\Exceptions\ForbiddenException Секретный ключ или OAuth-токен верный, но не хватает прав для совершения операции
\YooKassa\Common\Exceptions\InternalServerError Технические неполадки на стороне ЮKassa. Результат обработки запроса неизвестен. Повторите запрос позднее с тем же ключом идемпотентности
\YooKassa\Common\Exceptions\NotFoundException ресурс не найден
\YooKassa\Common\Exceptions\ResponseProcessingException Запрос был принят на обработку, но она не завершена
\YooKassa\Common\Exceptions\TooManyRequestsException Превышен лимит запросов в единицу времени. Попробуйте снизить интенсивность запросов
\YooKassa\Common\Exceptions\UnauthorizedException Неверное имя пользователя или пароль или невалидный OAuth-токен при аутентификации
\YooKassa\Common\Exceptions\ExtensionNotFoundException Требуемое PHP расширение не установлено
\Exception

Returns: ?\YooKassa\Request\Deals\DealsResponse -

Examples:

Получить список сделок с фильтрацией:

$cursor = null;
$params = [
    'limit' => 30,
    'status' => \YooKassa\Model\Deal\DealStatus::OPENED,
    'full_text_search' => 'DEAL',
    'created_at_gte' => '2023-10-01T00:00:00.000Z',
    'created_at_lt' => '2023-11-01T23:59:59.999Z',
];

try {
    do {
        $params['cursor'] = $cursor;
        $deals = $client->getDeals($params);
        foreach ($deals->getItems() as $deal) {
            $res = [
                $deal->getCreatedAt()->format('Y-m-d H:i:s'),
                $deal->getBalance()->getValue() . ' ' . $deal->getBalance()->getCurrency(),
                $deal->getPayoutBalance()->getValue() . ' ' . $deal->getBalance()->getCurrency(),
                $deal->getStatus(),
                $deal->getId(),
            ];
            echo implode(' - ', $res) . "\n";
        }
    } while ($cursor = $deals->getNextCursor());
} catch (\Exception $e) {
    $response = $e;
    var_dump($response);
}

public getInvoiceInfo() : \YooKassa\Model\Invoice\InvoiceInterface|null

public getInvoiceInfo(string $invoiceId) : \YooKassa\Model\Invoice\InvoiceInterface|null

Summary

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

Description

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

Details:

Parameters:
Type Name Description
string invoiceId Идентификатор счета
Throws:
Type Description
\YooKassa\Common\Exceptions\ApiConnectionException
\YooKassa\Common\Exceptions\ApiException
\YooKassa\Common\Exceptions\AuthorizeException
\YooKassa\Common\Exceptions\BadApiRequestException
\YooKassa\Common\Exceptions\ExtensionNotFoundException
\YooKassa\Common\Exceptions\ForbiddenException
\YooKassa\Common\Exceptions\InternalServerError
\JsonException
\YooKassa\Common\Exceptions\NotFoundException
\YooKassa\Common\Exceptions\ResponseProcessingException
\YooKassa\Common\Exceptions\TooManyRequestsException
\YooKassa\Common\Exceptions\UnauthorizedException

Returns: \YooKassa\Model\Invoice\InvoiceInterface|null -

Examples:

Получить информацию о счете:

$invoiceId = 'in-285c0ab7-0003-5000-9000-0e1166498fda';

try {
    $response = $client->getInvoiceInfo($invoiceId);
    if ($response->getPaymentDetails()) {
        print_r($response->getPaymentDetails()->toArray());
        $paymentResponse = $client->getPaymentInfo($response->getPaymentDetails()->getId());
        print_r($paymentResponse->toArray());
    }
    var_dump($response->toArray());
} catch (\Exception $e) {
    var_dump($e);
}

public getPaymentInfo() : null|\YooKassa\Model\Payment\PaymentInterface

public getPaymentInfo(string $paymentId) : null|\YooKassa\Model\Payment\PaymentInterface

Summary

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

Description

Запрос позволяет получить информацию о текущем состоянии платежа по его уникальному идентификатору. Выдает объект платежа {@link} в актуальном статусе.

Details:

Parameters:
Type Name Description
string paymentId Идентификатор платежа
Throws:
Type Description
\YooKassa\Common\Exceptions\ApiException Неожиданный код ошибки
\YooKassa\Common\Exceptions\BadApiRequestException Неправильный запрос. Чаще всего этот статус выдается из-за нарушения правил взаимодействия с API.
\YooKassa\Common\Exceptions\ForbiddenException Секретный ключ или OAuth-токен верный, но не хватает прав для совершения операции
\YooKassa\Common\Exceptions\InternalServerError Технические неполадки на стороне ЮKassa. Результат обработки запроса неизвестен. Повторите запрос позднее с тем же ключом идемпотентности
\YooKassa\Common\Exceptions\NotFoundException ресурс не найден
\YooKassa\Common\Exceptions\ResponseProcessingException Запрос был принят на обработку, но она не завершена
\YooKassa\Common\Exceptions\TooManyRequestsException Превышен лимит запросов в единицу времени. Попробуйте снизить интенсивность запросов.
\YooKassa\Common\Exceptions\UnauthorizedException Неверное имя пользователя или пароль или невалидный OAuth-токен при аутентификации
\YooKassa\Common\Exceptions\ExtensionNotFoundException Требуемое PHP расширение не установлено
\Exception

Returns: null|\YooKassa\Model\Payment\PaymentInterface - Объект платежа

Examples:

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

try {
    $response = $client->getPaymentInfo('24e89cb0-000f-5000-9000-1de77fa0d6df');
    echo $response->getStatus();
    var_dump($response->toArray());
} catch (\Exception $e) {
    var_dump($e);
}

public getPaymentMethodInfo() : \YooKassa\Model\SavePaymentMethod\SavePaymentMethodInterface|null

public getPaymentMethodInfo(string $paymentMethodId) : \YooKassa\Model\SavePaymentMethod\SavePaymentMethodInterface|null

Summary

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

Description

Используйте этот запрос, чтобы получить информацию о текущем состоянии способа оплаты по его уникальному идентификатору.

Details:

Parameters:
Type Name Description
string paymentMethodId Идентификатор способа оплаты
Throws:
Type Description
\YooKassa\Common\Exceptions\ApiConnectionException
\YooKassa\Common\Exceptions\ApiException
\YooKassa\Common\Exceptions\AuthorizeException
\YooKassa\Common\Exceptions\BadApiRequestException
\YooKassa\Common\Exceptions\ExtensionNotFoundException
\YooKassa\Common\Exceptions\ForbiddenException
\YooKassa\Common\Exceptions\InternalServerError
\JsonException
\YooKassa\Common\Exceptions\NotFoundException
\YooKassa\Common\Exceptions\ResponseProcessingException
\YooKassa\Common\Exceptions\TooManyRequestsException
\YooKassa\Common\Exceptions\UnauthorizedException

Returns: \YooKassa\Model\SavePaymentMethod\SavePaymentMethodInterface|null -

Examples:

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

$paymentMethodId = '285c0ab7-0003-5000-9000-0e1166498fda';
try {
    $response = $client->getPaymentMethodInfo($paymentMethodId);
    if ($response->getCard()) {
        print_r($response->getCard()->toArray());
    }
    var_dump($response->toArray());
} catch (\Exception $e) {
    var_dump($e);
}

public getPayments() : ?\YooKassa\Request\Payments\PaymentsResponse

public getPayments(array|\YooKassa\Request\Payments\PaymentsRequestInterface|null $filter = null) : ?\YooKassa\Request\Payments\PaymentsResponse

Summary

Получить список платежей магазина.

Description

Запрос позволяет получить список платежей, отфильтрованный по заданным критериям. В ответ на запрос вернется список платежей с учетом переданных параметров. В списке будет информация о платежах, созданных за последние 3 года. Список будет отсортирован по времени создания платежей в порядке убывания. Если результатов больше, чем задано в limit, список будет выводиться фрагментами. В этом случае в ответе на запрос вернется фрагмент списка и параметр next_cursor с указателем на следующий фрагмент.

Details:

Parameters:
Type Name Description
array OR \YooKassa\Request\Payments\PaymentsRequestInterface OR null filter Параметры фильтрации
Throws:
Type Description
\YooKassa\Common\Exceptions\ApiException Неожиданный код ошибки
\YooKassa\Common\Exceptions\BadApiRequestException Неправильный запрос. Чаще всего этот статус выдается из-за нарушения правил взаимодействия с API
\YooKassa\Common\Exceptions\ForbiddenException Секретный ключ или OAuth-токен верный, но не хватает прав для совершения операции
\YooKassa\Common\Exceptions\InternalServerError Технические неполадки на стороне ЮKassa. Результат обработки запроса неизвестен. Повторите запрос позднее с тем же ключом идемпотентности
\YooKassa\Common\Exceptions\NotFoundException ресурс не найден
\YooKassa\Common\Exceptions\ResponseProcessingException Запрос был принят на обработку, но она не завершена
\YooKassa\Common\Exceptions\TooManyRequestsException Превышен лимит запросов в единицу времени. Попробуйте снизить интенсивность запросов
\YooKassa\Common\Exceptions\UnauthorizedException Неверное имя пользователя или пароль или невалидный OAuth-токен при аутентификации
\YooKassa\Common\Exceptions\ExtensionNotFoundException Требуемое PHP расширение не установлено
\Exception

Returns: ?\YooKassa\Request\Payments\PaymentsResponse -

Examples:

Получить список платежей магазина с фильтрацией:

$cursor = null;
$params = [
    'limit' => 30,
    'status' => \YooKassa\Model\Payment\PaymentStatus::CANCELED,
    'payment_method' => \YooKassa\Model\Payment\PaymentMethodType::BANK_CARD,
    'created_at_gte' => '2023-01-01T00:00:00.000Z',
    'created_at_lt' => '2023-03-30T23:59:59.999Z',
];

try {
    do {
        $params['cursor'] = $cursor;
        $payments = $client->getPayments($params);
        foreach ($payments->getItems() as $payment) {
            echo $payment->getCreatedAt()->format('Y-m-d H:i:s') . ' - ' .
                 $payment->getStatus() . ' - ' .
                 $payment->getId() . "\n";
        }
    } while ($cursor = $payments->getNextCursor());
} catch (\Exception $e) {
    $response = $e;
}

var_dump($response);

public getPayoutInfo() : null|\YooKassa\Model\Payout\PayoutInterface

public getPayoutInfo(string $payoutId) : null|\YooKassa\Model\Payout\PayoutInterface

Summary

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

Description

Запрос позволяет получить информацию о текущем состоянии выплаты по ее уникальному идентификатору. Выдает объект выплаты {@link} в актуальном статусе.

Details:

Parameters:
Type Name Description
string payoutId Идентификатор выплаты
Throws:
Type Description
\YooKassa\Common\Exceptions\ApiException Неожиданный код ошибки
\YooKassa\Common\Exceptions\BadApiRequestException Неправильный запрос. Чаще всего этот статус выдается из-за нарушения правил взаимодействия с API
\YooKassa\Common\Exceptions\ForbiddenException Секретный ключ или OAuth-токен верный, но не хватает прав для совершения операции
\YooKassa\Common\Exceptions\InternalServerError Технические неполадки на стороне ЮKassa. Результат обработки запроса неизвестен. Повторите запрос позднее с тем же ключом идемпотентности
\YooKassa\Common\Exceptions\NotFoundException Ресурс не найден
\YooKassa\Common\Exceptions\ResponseProcessingException Запрос был принят на обработку, но она не завершена
\YooKassa\Common\Exceptions\TooManyRequestsException Превышен лимит запросов в единицу времени. Попробуйте снизить интенсивность запросов
\YooKassa\Common\Exceptions\UnauthorizedException Неверное имя пользователя или пароль или невалидный OAuth-токен при аутентификации
\YooKassa\Common\Exceptions\ExtensionNotFoundException Требуемое PHP расширение не установлено

Returns: null|\YooKassa\Model\Payout\PayoutInterface - Объект выплаты

Examples:

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

$payoutId = 'po-285c0ab7-0003-5000-9000-0e1166498fda';

try {
    $response = $client->getPayoutInfo($payoutId);
    var_dump($response->toArray());
} catch (\Exception $e) {
    var_dump($e);
}

public getPayouts() : ?\YooKassa\Request\Payouts\PayoutsResponse

public getPayouts(array|\YooKassa\Request\Payouts\PayoutsRequestInterface|null $filter = null) : ?\YooKassa\Request\Payouts\PayoutsResponse

Summary

Получить список выплат магазина.

Description

Запрос позволяет получить список выплат, отфильтрованный по заданным критериям. В ответ на запрос вернется список выплат с учетом переданных параметров. В списке будет информация о платежах, созданных за последние 3 года. Список будет отсортирован по времени создания выплат в порядке убывания. Если результатов больше, чем задано в limit, список будет выводиться фрагментами. В этом случае в ответе на запрос вернется фрагмент списка и параметр next_cursor с указателем на следующий фрагмент.

Details:

Parameters:
Type Name Description
array OR \YooKassa\Request\Payouts\PayoutsRequestInterface OR null filter Параметры фильтрации
Throws:
Type Description
\YooKassa\Common\Exceptions\ApiException Неожиданный код ошибки
\YooKassa\Common\Exceptions\BadApiRequestException Неправильный запрос. Чаще всего этот статус выдается из-за нарушения правил взаимодействия с API
\YooKassa\Common\Exceptions\ForbiddenException Секретный ключ или OAuth-токен верный, но не хватает прав для совершения операции
\YooKassa\Common\Exceptions\InternalServerError Технические неполадки на стороне ЮKassa. Результат обработки запроса неизвестен. Повторите запрос позднее с тем же ключом идемпотентности
\YooKassa\Common\Exceptions\NotFoundException Ресурс не найден
\YooKassa\Common\Exceptions\ResponseProcessingException Запрос был принят на обработку, но она не завершена
\YooKassa\Common\Exceptions\TooManyRequestsException Превышен лимит запросов в единицу времени. Попробуйте снизить интенсивность запросов
\YooKassa\Common\Exceptions\UnauthorizedException Неверное имя пользователя или пароль или невалидный OAuth-токен при аутентификации
\YooKassa\Common\Exceptions\ExtensionNotFoundException Требуемое PHP расширение не установлено
\Exception

Returns: ?\YooKassa\Request\Payouts\PayoutsResponse -

Examples:

Получить список выплат магазина с фильтрацией:

$cursor = null;
$params = [
    'limit' => 30,
    'status' => \YooKassa\Model\Payout\PayoutStatus::CANCELED,
    'payout_destination_type' => \YooKassa\Model\Payout\PayoutDestinationType::BANK_CARD,
    'created_at_gte' => '2024-01-01T00:00:00.000Z',
    'created_at_lt' => '2026-01-30T23:59:59.999Z',
];

try {
    do {
        $params['cursor'] = $cursor;
        $payouts = $client->getPayouts($params);
        foreach ($payouts->getItems() as $payout) {
            echo $payout->getCreatedAt()->format('Y-m-d H:i:s') . ' - ' .
                $payout->getStatus() . ' - ' .
                $payout->getId() . ' - ' .
                $payout->getPayoutDestination()?->getType() . "\n";
        }
    } while ($cursor = $payouts->getNextCursor());
} catch (\Exception $e) {
    $response = $e;
}

var_dump($response);

public getPersonalDataInfo() : null|\YooKassa\Model\PersonalData\PersonalDataInterface

public getPersonalDataInfo(string $personalDataId) : null|\YooKassa\Model\PersonalData\PersonalDataInterface

Summary

Получить информацию о персональных данных.

Description

Запрос позволяет получить информацию о текущем состоянии персональных данных по их уникальному идентификатору. Выдает объект платежа {@link} в актуальном статусе.

Details:

Parameters:
Type Name Description
string personalDataId Идентификатор персональных данных
Throws:
Type Description
\YooKassa\Common\Exceptions\ApiException Неожиданный код ошибки
\YooKassa\Common\Exceptions\BadApiRequestException Неправильный запрос. Чаще всего этот статус выдается из-за нарушения правил взаимодействия с API
\YooKassa\Common\Exceptions\ForbiddenException Секретный ключ или OAuth-токен верный, но не хватает прав для совершения операции
\YooKassa\Common\Exceptions\InternalServerError Технические неполадки на стороне ЮKassa. Результат обработки запроса неизвестен. Повторите запрос позднее с тем же ключом идемпотентности
\YooKassa\Common\Exceptions\NotFoundException Ресурс не найден
\YooKassa\Common\Exceptions\ResponseProcessingException Запрос был принят на обработку, но она не завершена
\YooKassa\Common\Exceptions\TooManyRequestsException Превышен лимит запросов в единицу времени. Попробуйте снизить интенсивность запросов
\YooKassa\Common\Exceptions\UnauthorizedException Неверное имя пользователя или пароль или невалидный OAuth-токен при аутентификации
\YooKassa\Common\Exceptions\ExtensionNotFoundException Требуемое PHP расширение не установлено

Returns: null|\YooKassa\Model\PersonalData\PersonalDataInterface - Объект персональных данных

Examples:

Получить информацию о персональных данных:

$payoutId = 'pd-285c0ab7-0003-5000-9000-0e1166498fda';

try {
    $response = $client->getPersonalDataInfo($payoutId);
    var_dump($response->toArray());
} catch (\Exception $e) {
    var_dump($e);
}

public getReceiptInfo() : ?\YooKassa\Request\Receipts\ReceiptResponseInterface

public getReceiptInfo(string $receiptId) : ?\YooKassa\Request\Receipts\ReceiptResponseInterface

Summary

Получить информацию о чеке.

Description

Запрос позволяет получить информацию о текущем состоянии чека по его уникальному идентификатору. Выдает объект чека {@link} в актуальном статусе.

Details:

Parameters:
Type Name Description
string receiptId Идентификатор чека
Throws:
Type Description
\YooKassa\Common\Exceptions\ApiException Неожиданный код ошибки
\YooKassa\Common\Exceptions\BadApiRequestException Неправильный запрос. Чаще всего этот статус выдается из-за нарушения правил взаимодействия с API
\YooKassa\Common\Exceptions\ForbiddenException Секретный ключ или OAuth-токен верный, но не хватает прав для совершения операции
\YooKassa\Common\Exceptions\InternalServerError Технические неполадки на стороне ЮKassa. Результат обработки запроса неизвестен. Повторите запрос позднее с тем же ключом идемпотентности
\YooKassa\Common\Exceptions\NotFoundException Ресурс не найден
\YooKassa\Common\Exceptions\ResponseProcessingException Запрос был принят на обработку, но она не завершена
\YooKassa\Common\Exceptions\TooManyRequestsException Превышен лимит запросов в единицу времени. Попробуйте снизить интенсивность запросов
\YooKassa\Common\Exceptions\UnauthorizedException Неверное имя пользователя или пароль или невалидный OAuth-токен при аутентификации
\YooKassa\Common\Exceptions\ExtensionNotFoundException Требуемое PHP расширение не установлено

Returns: ?\YooKassa\Request\Receipts\ReceiptResponseInterface -

Examples:

Получить информацию о чеке:

try {
    $response = $client->getPaymentInfo('24e89cb0-000f-5000-9000-1de77fa0d6df');
    echo $response->getStatus();
    var_dump($response->toArray());
} catch (\Exception $e) {
    var_dump($e);
}

public getReceipts() : \YooKassa\Request\Receipts\ReceiptsResponse

public getReceipts(null|array|\YooKassa\Request\Receipts\ReceiptsRequestInterface $filter = null) : \YooKassa\Request\Receipts\ReceiptsResponse

Summary

Получить список чеков магазина.

Description

Запрос позволяет получить список чеков, отфильтрованный по заданным критериям. Можно запросить чеки по конкретному платежу, чеки по конкретному возврату или все чеки магазина. В ответ на запрос вернется список чеков с учетом переданных параметров. В списке будет информация о чеках, созданных за последние 3 года. Список будет отсортирован по времени создания чеков в порядке убывания. Если результатов больше, чем задано в limit, список будет выводиться фрагментами. В этом случае в ответе на запрос вернется фрагмент списка и параметр next_cursor с указателем на следующий фрагмент.

Details:

Parameters:
Type Name Description
null OR array OR \YooKassa\Request\Receipts\ReceiptsRequestInterface filter Параметры фильтрации
Throws:
Type Description
\YooKassa\Common\Exceptions\ApiException Неожиданный код ошибки
\YooKassa\Common\Exceptions\BadApiRequestException Неправильный запрос. Чаще всего этот статус выдается из-за нарушения правил взаимодействия с API
\YooKassa\Common\Exceptions\ForbiddenException Секретный ключ или OAuth-токен верный, но не хватает прав для совершения операции
\YooKassa\Common\Exceptions\InternalServerError Технические неполадки на стороне ЮKassa. Результат обработки запроса неизвестен. Повторите запрос позднее с тем же ключом идемпотентности
\YooKassa\Common\Exceptions\NotFoundException Ресурс не найден
\YooKassa\Common\Exceptions\ResponseProcessingException Запрос был принят на обработку, но она не завершена
\YooKassa\Common\Exceptions\TooManyRequestsException Превышен лимит запросов в единицу времени. Попробуйте снизить интенсивность запросов
\YooKassa\Common\Exceptions\UnauthorizedException Неверное имя пользователя или пароль или невалидный OAuth-токен при аутентификации
\YooKassa\Common\Exceptions\ExtensionNotFoundException Требуемое PHP расширение не установлено
\Exception

Returns: \YooKassa\Request\Receipts\ReceiptsResponse -

Examples:

Получить список чеков магазина с фильтрацией:

$cursor = null;
$params = [
    'limit' => 30,
    'status' => \YooKassa\Model\Payment\PaymentStatus::CANCELED,
    'payment_method' => \YooKassa\Model\Payment\PaymentMethodType::BANK_CARD,
    'created_at_gte' => '2023-01-01T00:00:00.000Z',
    'created_at_lt' => '2023-03-30T23:59:59.999Z',
];

try {
    do {
        $params['cursor'] = $cursor;
        $payments = $client->getPayments($params);
        foreach ($payments->getItems() as $payment) {
            echo $payment->getCreatedAt()->format('Y-m-d H:i:s') . ' - ' .
                 $payment->getStatus() . ' - ' .
                 $payment->getId() . "\n";
        }
    } while ($cursor = $payments->getNextCursor());
} catch (\Exception $e) {
    $response = $e;
}

var_dump($response);

public getRefundInfo() : ?\YooKassa\Request\Refunds\RefundResponse

public getRefundInfo(string $refundId) : ?\YooKassa\Request\Refunds\RefundResponse

Summary

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

Description

Запрос позволяет получить информацию о текущем состоянии возврата по его уникальному идентификатору. В ответ на запрос придет объект возврата {@link} в актуальном статусе.

Details:

Parameters:
Type Name Description
string refundId Идентификатор возврата
Throws:
Type Description
\YooKassa\Common\Exceptions\ApiException Неожиданный код ошибки
\YooKassa\Common\Exceptions\BadApiRequestException Неправильный запрос. Чаще всего этот статус выдается из-за нарушения правил взаимодействия с API
\YooKassa\Common\Exceptions\ForbiddenException Секретный ключ или OAuth-токен верный, но не хватает прав для совершения операции
\YooKassa\Common\Exceptions\InternalServerError Технические неполадки на стороне ЮKassa. Результат обработки запроса неизвестен. Повторите запрос позднее с тем же ключом идемпотентности
\YooKassa\Common\Exceptions\NotFoundException Ресурс не найден
\YooKassa\Common\Exceptions\ResponseProcessingException Запрос был принят на обработку, но она не завершена
\YooKassa\Common\Exceptions\TooManyRequestsException Превышен лимит запросов в единицу времени. Попробуйте снизить интенсивность запросов
\YooKassa\Common\Exceptions\UnauthorizedException Неверное имя пользователя или пароль или невалидный OAuth-токен при аутентификации
\YooKassa\Common\Exceptions\ExtensionNotFoundException Требуемое PHP расширение не установлено
\Exception

Returns: ?\YooKassa\Request\Refunds\RefundResponse -

Examples:

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

try {
    $response = $client->getReceiptInfo('ra-27ed1660-0001-0050-7a5e-10f80e0f0f29');
    echo $response->getStatus();
    var_dump($response->toArray());
} catch (\Exception $e) {
    var_dump($e);
}

public getRefunds() : ?\YooKassa\Request\Refunds\RefundsResponse

public getRefunds(null|array|\YooKassa\Request\Refunds\RefundsRequestInterface $filter = null) : ?\YooKassa\Request\Refunds\RefundsResponse

Summary

Получить список возвратов платежей.

Description

Запрос позволяет получить список возвратов, отфильтрованный по заданным критериям. В ответ на запрос вернется список возвратов с учетом переданных параметров. В списке будет информация о возвратах, созданных за последние 3 года. Список будет отсортирован по времени создания возвратов в порядке убывания. Если результатов больше, чем задано в limit, список будет выводиться фрагментами. В этом случае в ответе на запрос вернется фрагмент списка и параметр next_cursor с указателем на следующий фрагмент.

Details:

Parameters:
Type Name Description
null OR array OR \YooKassa\Request\Refunds\RefundsRequestInterface filter Параметры фильтрации
Throws:
Type Description
\YooKassa\Common\Exceptions\ApiException Неожиданный код ошибки
\YooKassa\Common\Exceptions\BadApiRequestException Неправильный запрос. Чаще всего этот статус выдается из-за нарушения правил взаимодействия с API
\YooKassa\Common\Exceptions\ForbiddenException Секретный ключ или OAuth-токен верный, но не хватает прав для совершения операции
\YooKassa\Common\Exceptions\InternalServerError Технические неполадки на стороне ЮKassa. Результат обработки запроса неизвестен. Повторите запрос позднее с тем же ключом идемпотентности.
\YooKassa\Common\Exceptions\NotFoundException Ресурс не найден
\YooKassa\Common\Exceptions\ResponseProcessingException Запрос был принят на обработку, но она не завершена
\YooKassa\Common\Exceptions\TooManyRequestsException Превышен лимит запросов в единицу времени. Попробуйте снизить интенсивность запросов.
\YooKassa\Common\Exceptions\UnauthorizedException Неверное имя пользователя или пароль или невалидный OAuth-токен при аутентификации
\YooKassa\Common\Exceptions\ExtensionNotFoundException Требуемое PHP расширение не установлено
\Exception

Returns: ?\YooKassa\Request\Refunds\RefundsResponse -

Examples:

Получить список возвратов платежей магазина с фильтрацией:

$cursor = null;
$params = [
    'limit' => 30,
    'status' => \YooKassa\Model\Refund\RefundStatus::SUCCEEDED,
    'payment_id' => '1da5c87d-0984-50e8-a7f3-8de646dd9ec9',
    'created_at_gte' => '2023-01-01T00:00:00.000Z',
    'created_at_lt' => '2023-03-30T23:59:59.999Z',
];

try {
    do {
        $params['cursor'] = $cursor;
        $refunds = $client->getRefunds($params);
        foreach ($refunds->getItems() as $refund) {
            echo $refund->getCreatedAt()->format('Y-m-d H:i:s') . ' - ' .
                 $refund->getStatus() . ' - ' .
                 $refund->getId() . "\n";
        }
    } while ($cursor = $refunds->getNextCursor());
} catch (\Exception $e) {
    $response = $e;
}

var_dump($response);

public getSbpBanks() : ?\YooKassa\Request\Payouts\SbpBanksResponse

public getSbpBanks() : ?\YooKassa\Request\Payouts\SbpBanksResponse

Summary

Получить список участников СБП

Description

С помощью этого запроса вы можете получить актуальный список всех участников СБП. Список нужно вывести получателю выплаты, идентификатор выбранного участника СБП необходимо использовать в запросе на создание выплаты.

Details:

Throws:
Type Description
\YooKassa\Common\Exceptions\ApiException Неожиданный код ошибки
\YooKassa\Common\Exceptions\BadApiRequestException Неправильный запрос. Чаще всего этот статус выдается из-за нарушения правил взаимодействия с API
\YooKassa\Common\Exceptions\ForbiddenException Секретный ключ или OAuth-токен верный, но не хватает прав для совершения операции
\YooKassa\Common\Exceptions\InternalServerError Технические неполадки на стороне ЮKassa. Результат обработки запроса неизвестен. Повторите запрос позднее с тем же ключом идемпотентности
\YooKassa\Common\Exceptions\NotFoundException Ресурс не найден
\YooKassa\Common\Exceptions\ResponseProcessingException Запрос был принят на обработку, но она не завершена
\YooKassa\Common\Exceptions\TooManyRequestsException Превышен лимит запросов в единицу времени. Попробуйте снизить интенсивность запросов
\YooKassa\Common\Exceptions\UnauthorizedException Неверное имя пользователя или пароль или невалидный OAuth-токен при аутентификации
\YooKassa\Common\Exceptions\ExtensionNotFoundException Требуемое PHP расширение не установлено

Returns: ?\YooKassa\Request\Payouts\SbpBanksResponse -

Examples:

Получить список участников СБП:

try {
    $response = $client->getSbpBanks();
    var_dump($response->toArray());
} catch (\Exception $e) {
    var_dump($e);
}

public getSelfEmployedInfo() : ?\YooKassa\Model\SelfEmployed\SelfEmployedInterface

public getSelfEmployedInfo(string $selfEmployedId) : ?\YooKassa\Model\SelfEmployed\SelfEmployedInterface

Summary

Получить информацию о самозанятом

Description

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

Details:

Parameters:
Type Name Description
string selfEmployedId Идентификатор самозанятого
Throws:
Type Description
\YooKassa\Common\Exceptions\ApiException Неожиданный код ошибки
\YooKassa\Common\Exceptions\BadApiRequestException Неправильный запрос. Чаще всего этот статус выдается из-за нарушения правил взаимодействия с API
\YooKassa\Common\Exceptions\ForbiddenException Секретный ключ или OAuth-токен верный, но не хватает прав для совершения операции
\YooKassa\Common\Exceptions\InternalServerError Технические неполадки на стороне ЮKassa. Результат обработки запроса неизвестен. Повторите запрос позднее с тем же ключом идемпотентности
\YooKassa\Common\Exceptions\NotFoundException Ресурс не найден
\YooKassa\Common\Exceptions\ResponseProcessingException Запрос был принят на обработку, но она не завершена
\YooKassa\Common\Exceptions\TooManyRequestsException Превышен лимит запросов в единицу времени. Попробуйте снизить интенсивность запросов
\YooKassa\Common\Exceptions\UnauthorizedException Неверное имя пользователя или пароль или невалидный OAuth-токен при аутентификации
\YooKassa\Common\Exceptions\ExtensionNotFoundException Требуемое PHP расширение не установлено

Returns: ?\YooKassa\Model\SelfEmployed\SelfEmployedInterface -

Examples:

Получить информацию о самозанятом:

$payoutId = 'se-285c0ab7-0003-5000-9000-0e1166498fda';

try {
    $response = $client->getSelfEmployedInfo($payoutId);
    var_dump($response->toArray());
} catch (\Exception $e) {
    var_dump($e);
}

public getWebhooks() : ?\YooKassa\Request\Webhook\WebhookListResponse

public getWebhooks() : ?\YooKassa\Request\Webhook\WebhookListResponse

Summary

Список созданных Webhook.

Description

Запрос позволяет узнать, какие webhook есть для переданного OAuth-токена.

Details:

Throws:
Type Description
\YooKassa\Common\Exceptions\ApiException Неожиданный код ошибки
\YooKassa\Common\Exceptions\BadApiRequestException Неправильный запрос. Чаще всего этот статус выдается из-за нарушения правил взаимодействия с API.
\YooKassa\Common\Exceptions\ForbiddenException Секретный ключ или OAuth-токен верный, но не хватает прав для совершения операции
\YooKassa\Common\Exceptions\InternalServerError Технические неполадки на стороне ЮKassa. Результат обработки запроса неизвестен. Повторите запрос позднее с тем же ключом идемпотентности
\YooKassa\Common\Exceptions\NotFoundException Ресурс не найден
\YooKassa\Common\Exceptions\ResponseProcessingException Запрос был принят на обработку, но она не завершена
\YooKassa\Common\Exceptions\TooManyRequestsException Превышен лимит запросов в единицу времени. Попробуйте снизить интенсивность запросов
\YooKassa\Common\Exceptions\UnauthorizedException Неверное имя пользователя или пароль или невалидный OAuth-токен при аутентификации
\YooKassa\Common\Exceptions\ExtensionNotFoundException Требуемое PHP расширение не установлено
\YooKassa\Common\Exceptions\AuthorizeException Ошибка авторизации. Не установлен заголовок

Returns: ?\YooKassa\Request\Webhook\WebhookListResponse -

Examples:

Список созданных Webhook:

// Работа с Webhook
// В данном примере мы устанавливаем вебхуки для succeeded и canceled уведомлений.
// А так же проверяем, не установлены ли уже вебхуки. И если установлены на неверный адрес, удаляем.
$client->setAuthToken('token_XXXXXXX');

try {
    $webHookUrl = 'https://merchant-site.ru/payment-notification';
    $needWebHookList = [
        \YooKassa\Model\Notification\NotificationEventType::PAYMENT_SUCCEEDED,
        \YooKassa\Model\Notification\NotificationEventType::PAYMENT_CANCELED,
    ];
    $currentWebHookList = $client->getWebhooks()->getItems();
    foreach ($needWebHookList as $event) {
        $hookIsSet = false;
        foreach ($currentWebHookList as $webHook) {
            if ($webHook->getEvent() !== $event) {
                continue;
            }
            if ($webHook->getUrl() !== $webHookUrl) {
                $client->removeWebhook($webHook->getId());
            } else {
                $hookIsSet = true;
            }

            break;
        }
        if (!$hookIsSet) {
            $client->addWebhook(['event' => $event, 'url' => $webHookUrl]);
        }
    }
    $response = 'SUCCESS';
} catch (\Exception $e) {
    $response = $e;
}

var_dump($response);

public isNotificationIPTrusted() : bool

public isNotificationIPTrusted(string $ip) : bool

Summary

Метод проверяет, находится ли IP адрес среди IP адресов Юkassa, с которых отправляются уведомления.

Details:

Parameters:
Type Name Description
string ip IPv4 или IPv6 адрес webhook уведомления
Throws:
Type Description
\Exception Выбрасывается, если будет передан IP адрес неверного формата

Returns: bool -

public me() : null|array

public me(null|array|int|string $filter = null) : null|array

Summary

Информация о магазине.

Description

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

Details:

Parameters:
Type Name Description
null OR array OR int OR string filter Параметры поиска. В настоящее время доступен только on_behalf_of
Throws:
Type Description
\YooKassa\Common\Exceptions\ApiException Неожиданный код ошибки
\YooKassa\Common\Exceptions\BadApiRequestException Неправильный запрос. Чаще всего этот статус выдается из-за нарушения правил взаимодействия с API
\YooKassa\Common\Exceptions\ForbiddenException Секретный ключ или OAuth-токен верный, но не хватает прав для совершения операции
\YooKassa\Common\Exceptions\InternalServerError Технические неполадки на стороне ЮKassa. Результат обработки запроса неизвестен. Повторите запрос позднее с тем же ключом идемпотентности
\YooKassa\Common\Exceptions\NotFoundException Ресурс не найден
\YooKassa\Common\Exceptions\ResponseProcessingException Запрос был принят на обработку, но она не завершена
\YooKassa\Common\Exceptions\TooManyRequestsException Превышен лимит запросов в единицу времени. Попробуйте снизить интенсивность запросов.
\YooKassa\Common\Exceptions\UnauthorizedException Неверное имя пользователя или пароль или невалидный OAuth-токен при аутентификации
\YooKassa\Common\Exceptions\ExtensionNotFoundException Требуемое PHP расширение не установлено
\YooKassa\Common\Exceptions\AuthorizeException Ошибка авторизации. Не установлен заголовок

Returns: null|array - Массив с информацией о магазине

Examples:

Информация о магазине:

try {
    $response = $client->me();
    var_dump($response->toArray());
} catch (\Exception $e) {
    var_dump($e);
}

public removeWebhook() : ?\YooKassa\Model\Webhook\Webhook

public removeWebhook(string $webhookId, null|string $idempotenceKey = null) : ?\YooKassa\Model\Webhook\Webhook

Summary

Удаление Webhook.

Description

Запрос позволяет отписаться от уведомлений о событии для переданного OAuth-токена. Чтобы удалить webhook, вам нужно передать в запросе его идентификатор.

Details:

Parameters:
Type Name Description
string webhookId Идентификатор Webhook
null OR string idempotenceKey Ключ идемпотентности
Throws:
Type Description
\YooKassa\Common\Exceptions\ApiException Неожиданный код ошибки
\YooKassa\Common\Exceptions\BadApiRequestException Неправильный запрос. Чаще всего этот статус выдается из-за нарушения правил взаимодействия с API
\YooKassa\Common\Exceptions\ForbiddenException Секретный ключ или OAuth-токен верный, но не хватает прав для совершения операции
\YooKassa\Common\Exceptions\InternalServerError Технические неполадки на стороне ЮKassa. Результат обработки запроса неизвестен. Повторите запрос позднее с тем же ключом идемпотентности
\YooKassa\Common\Exceptions\NotFoundException Ресурс не найден
\YooKassa\Common\Exceptions\ResponseProcessingException Запрос был принят на обработку, но она не завершена
\YooKassa\Common\Exceptions\TooManyRequestsException Превышен лимит запросов в единицу времени. Попробуйте снизить интенсивность запросов
\YooKassa\Common\Exceptions\UnauthorizedException Неверное имя пользователя или пароль или невалидный OAuth-токен при аутентификации
\YooKassa\Common\Exceptions\ExtensionNotFoundException Требуемое PHP расширение не установлено
\Exception

Returns: ?\YooKassa\Model\Webhook\Webhook -

Examples:

Удаление Webhook:

// Работа с Webhook
// В данном примере мы устанавливаем вебхуки для succeeded и canceled уведомлений.
// А так же проверяем, не установлены ли уже вебхуки. И если установлены на неверный адрес, удаляем.
$client->setAuthToken('token_XXXXXXX');

try {
    $webHookUrl = 'https://merchant-site.ru/payment-notification';
    $needWebHookList = [
        \YooKassa\Model\Notification\NotificationEventType::PAYMENT_SUCCEEDED,
        \YooKassa\Model\Notification\NotificationEventType::PAYMENT_CANCELED,
    ];
    $currentWebHookList = $client->getWebhooks()->getItems();
    foreach ($needWebHookList as $event) {
        $hookIsSet = false;
        foreach ($currentWebHookList as $webHook) {
            if ($webHook->getEvent() !== $event) {
                continue;
            }
            if ($webHook->getUrl() !== $webHookUrl) {
                $client->removeWebhook($webHook->getId());
            } else {
                $hookIsSet = true;
            }

            break;
        }
        if (!$hookIsSet) {
            $client->addWebhook(['event' => $event, 'url' => $webHookUrl]);
        }
    }
    $response = 'SUCCESS';
} catch (\Exception $e) {
    $response = $e;
}

var_dump($response);

public setApiClient() : $this

public setApiClient(\YooKassa\Client\ApiClientInterface $apiClient) : $this

Summary

Устанавливает CURL клиента для работы с API.

Details:

Parameters:
Type Name Description
\YooKassa\Client\ApiClientInterface apiClient

Returns: $this -

public setAuth() : $this

public setAuth(string|int $login, string $password) : $this

Summary

Устанавливает авторизацию по логин/паролю.

Details:

Parameters:
Type Name Description
string OR int login
string password

Returns: $this -

Examples:

Пример авторизации:

$client->setAuth('xxxxxx', 'test_XXXXXXX');

public setAuthToken() : $this

public setAuthToken(string $token) : $this

Summary

Устанавливает авторизацию по Oauth-токену.

Details:

Parameters:
Type Name Description
string token

Returns: $this -

Examples:

Пример авторизации:

$client->setAuthToken('token_XXXXXXX');

public setConfig() : void

public setConfig(array $config) : void

Summary

Устанавливает настройки клиента.

Details:

Parameters:
Type Name Description
array config

Returns: void -

public setLogger() : self

public setLogger(null|callable|\Psr\Log\LoggerInterface|object $value) : self

Summary

Устанавливает логгер приложения.

Details:

Parameters:
Type Name Description
null OR callable OR \Psr\Log\LoggerInterface OR object value Инстанс логгера

Returns: self -

public setMaxRequestAttempts() : $this

public setMaxRequestAttempts(int $attempts = self::DEFAULT_ATTEMPTS_COUNT) : $this

Summary

Установка значения количества попыток повторных запросов при статусе 202.

Details:

Parameters:
Type Name Description
int attempts

Returns: $this -

public setRetryTimeout() : $this

public setRetryTimeout(int $timeout = self::DEFAULT_DELAY) : $this

Summary

Установка значения задержки между повторными запросами.

Details:

Parameters:
Type Name Description
int timeout

Returns: $this -

protected decodeData() : array

protected decodeData(\YooKassa\Common\ResponseObject $response) : array

Summary

Декодирует JSON строку в массив данных.

Details:

Parameters:
Type Name Description
\YooKassa\Common\ResponseObject response Объект ответа на запрос к API
Throws:
Type Description
\JsonException

Returns: array - Массив данных

protected delay() : void

protected delay(\YooKassa\Common\ResponseObject $response) : void

Summary

Задержка между повторными запросами.

Details:

Parameters:
Type Name Description
\YooKassa\Common\ResponseObject response Объект ответа на запрос к API
Throws:
Type Description
\JsonException

Returns: void -

protected encodeData() : string

protected encodeData(array $serializedData) : string

Summary

Кодирует массив данных в JSON строку.

Details:

Parameters:
Type Name Description
array serializedData Массив данных для кодировки
Throws:
Type Description
\JsonException Выбрасывается, если не удалось конвертировать данные в строку JSON

Returns: string - Строка JSON

protected execute() : mixed|\YooKassa\Common\ResponseObject

protected execute(string $path, string $method, array $queryParams, null|string $httpBody = null, array $headers = []) : mixed|\YooKassa\Common\ResponseObject

Summary

Выполнение запроса и обработка 202 статуса.

Details:

Parameters:
Type Name Description
string path URL запроса
string method HTTP метод
array queryParams Массив GET параметров запроса
null OR string httpBody Тело запроса
array headers Массив заголовков запроса
Throws:
Type Description
\YooKassa\Common\Exceptions\ApiException
\YooKassa\Common\Exceptions\AuthorizeException
\YooKassa\Common\Exceptions\ApiConnectionException
\YooKassa\Common\Exceptions\ExtensionNotFoundException

Returns: mixed|\YooKassa\Common\ResponseObject -

protected handleError() : void

protected handleError(\YooKassa\Common\ResponseObject $response) : void

Summary

Выбрасывает исключение по коду ошибки.

Details:

Parameters:
Type Name Description
\YooKassa\Common\ResponseObject response
Throws:
Type Description
\YooKassa\Common\Exceptions\ApiException неожиданный код ошибки
\YooKassa\Common\Exceptions\BadApiRequestException Неправильный запрос. Чаще всего этот статус выдается из-за нарушения правил взаимодействия с API.
\YooKassa\Common\Exceptions\ForbiddenException секретный ключ или OAuth-токен верный, но не хватает прав для совершения операции
\YooKassa\Common\Exceptions\InternalServerError Технические неполадки на стороне ЮKassa. Результат обработки запроса неизвестен. Повторите запрос позднее с тем же ключом идемпотентности.
\YooKassa\Common\Exceptions\NotFoundException ресурс не найден
\YooKassa\Common\Exceptions\GoneException ресурс удален
\YooKassa\Common\Exceptions\ResponseProcessingException запрос был принят на обработку, но она не завершена
\YooKassa\Common\Exceptions\TooManyRequestsException Превышен лимит запросов в единицу времени. Попробуйте снизить интенсивность запросов.
\YooKassa\Common\Exceptions\UnauthorizedException неверное имя пользователя или пароль или невалидный OAuth-токен при аутентификации
\YooKassa\Common\Exceptions\AuthorizeException Ошибка авторизации. Не установлен заголовок.

Returns: void -


Top Namespaces


Reports


This document was automatically generated from source code comments on 2026-06-29 using phpDocumentor

© 2026 YooMoney