PHPackages                             enot-payment/enot - PHPackages - PHPackages  [Skip to content](#main-content)[PHPackages](/)[Directory](/)[Categories](/categories)[Trending](/trending)[Leaderboard](/leaderboard)[Changelog](/changelog)[Analyze](/analyze)[Collections](/collections)[Log in](/login)[Sign up](/register)

1. [Directory](/)
2. /
3. [Payment Processing](/categories/payments)
4. /
5. enot-payment/enot

ActiveLibrary[Payment Processing](/categories/payments)

enot-payment/enot
=================

Enot SDK

03PHP

Since Oct 18Pushed 2y ago1 watchersCompare

[ Source](https://github.com/EnotPayment/enot-sdk)[ Packagist](https://packagist.org/packages/enot-payment/enot)[ RSS](/packages/enot-payment-enot/feed)WikiDiscussions main Synced 1mo ago

READMEChangelogDependenciesVersions (1)Used By (0)

Enot sdk
========

[](#enot-sdk)

---

### [![compatible](https://camo.githubusercontent.com/00685b222e0f0c245540bf6a09a2ad54b3402f942f9cc8b33de0767169fa8aef/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f7068702d253545372e342d677265656e3f7374796c653d706c6173746963)](https://camo.githubusercontent.com/00685b222e0f0c245540bf6a09a2ad54b3402f942f9cc8b33de0767169fa8aef/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f7068702d253545372e342d677265656e3f7374796c653d706c6173746963)

[](#)

Установка
---------

[](#установка)

---

```
composer require enot-payment/enot

```

Использование
-------------

[](#использование)

---

### Для работы нужно получить:

[](#для-работы-нужно-получить)

> - "shopId" - Идентификатор кассы
> - "shopSecretKey" - Секретный ключ кассы (полученный при генерации в личном кабинете в разделе: "Кассы" -&gt; "Интеграция")
> - "userId" - Идентификатор пользователя
> - "userSecretKey" - Секретный ключ пользователя "userSecretKey" (полученным при генерации в личном кабинете в разделе: "Настройки профиля" -&gt; "Интеграция")
> - "webhookPaymentKey" - Секретный ключ для вычисления хэша WebHook'а оплат (дополнительный ключ кассы)
> - "webhookPayoffKey" - Секретный ключ для вычисления хэша WebHook'а выводов (дополнительный ключ пользователя)

---

### Инициализация:

[](#инициализация)

```
use Enot\Api\Http\EnotFacade;

$facade = new EnotFacade(
        $shopId,
        $shopSecretKey,
        $userId,
        $userSecretKey,
        $webhookPaymentKey,
        $webhookPayoffKey
);
```

---

### Получение доступных методов и тарифов оплаты:

[](#получение-доступных-методов-и-тарифов-оплаты)

```
$response = $facade->getAvailablePaymentTariffs();
```

✅ При успешном ответе вернется объект PaymentAvailableTariffsDto, содержащий параметр "tariffs" - массив объектов PaymentTariffParamsResponseDto с параметрами

Обязательные:

- "percent" - Общий процент комиссии
- "fix" - Фиксированная комиссия
- "service" - Код метода оплаты
- "currency" - Валюта
- "status" - Статус тарифа (enabled или disabled)

Опциональные:

- "minSum" - Минимальная сумма оплаты
- "maxSum" - Максимальная сумма оплаты
- "shopPercent" - Процент комиссии, взимаемый с кассы
- "userPercent" - Процент комиссии, взимаемый с клиента
- "serviceLabel" - Название метода оплаты

❌ При неудачном ответе выбросится исключение типа PaymentException с описанием ошибки.

---

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

[](#создание-платежа)

Метод createInvoice() принимает InvoiceCreateRequestDto.

InvoiceCreateRequestDto принимает параметры

Обязательные:

- "amount" - сумма инвойса
- "orderId" - идентификатор заказа в Вашей системе

Опциональные:

- "currency" - Валюта платежа (RUB, USD, EUR, UAH)
- "hookUrl" - URL для отправки webhook
- "customFields" - Строка, которая будет возвращена в уведомления после оплаты (webhook, callback), формат JSON строки
- "comment" - Назначение платежа (показывается клиенту при оплате)
- "failUrl" - URL для переадресовки пользователя при ошибке при оплате
- "successUrl" - URL для переадресовки пользователя при успешной оплате
- "expire" - Время жизни инвойса в минутах
- "includeService" - Методы оплаты доступные на странице счёта
- "excludeService" - Методы оплаты недоступные на странице счёта

```
use Enot\Api\Dto\Request\Payment\InvoiceCreateRequestDto;

$invoiceCreateRequestDto = new InvoiceCreateRequestDto(
    50.05,
    'orderId',
    'RUB',
    'https://exaple.com',
    '{\"order\": \"74056\"}',
    'comment',
    'https://exaple.com/fail',
    'https://exaple.com/success',
    300.05,
    [
        'card'
    ],
    [
        'qiwi'
    ]
);

$response = $facade->createInvoice($invoiceCreateRequestDto);
```

✅ При успешном ответе вернется объект InvoiceCreateResponseDto, содержащий параметры

Обязательные:

- "id" - ID операции в нашей системе
- "amount" - Сумма инвойса (в рублях)
- "currency" - Валюта платежа (RUB, USD, EUR, UAH)
- "url" - Ссылка на форму оплаты
- "expired" - Время завершения инвойса в формате "Y-m-d H:i:s"

❌ При неудачном ответе выбросится исключение типа PaymentException с описанием ошибки.

---

### Получение информации об оплате:

[](#получение-информации-об-оплате)

Метод getInvoiceInfo() принимает InvoiceInfoRequestDto.

InvoiceInfoRequestDto принимает параметры

Обязательные:

- "invoiceId" - ID транзакции

Опциональные:

- "orderId" - Уникальный идентификатор платежа в Вашей системе

```
use Enot\Api\Dto\Request\Payment\InvoiceInfoRequestDto;

$invoiceInfoRequestDto = new InvoiceInfoRequestDto(
    '3fa85f64-5717-4562-b3fc-2c963f66afa6',
    'orderId'
);

$response = $facade->getInvoiceInfo($invoiceInfoRequestDto);
```

✅ При успешном ответе вернется объект InvoiceInfoResponseDto, содержащий параметры

Обязательные:

- "invoiceId" - ID операции в нашей системе
- "orderId" - ID операции в Вашей системе
- "shopId" - ID кассы
- "status" - Статус транзакции
- "invoiceAmount" - Сумма платежа
- "currency" - Валюта платежа (RUB, USD, EUR, UAH)
- "createdAt" - Время создания инвойса
- "expiredAt" - Время истечения периода жизни

Опциональные:

- "credited" - Сумма зачисления на баланс
- "payService" - Метод оплаты
- "payerDetails" - Реквизиты плательщика
- "commissionAmount" - Общая комиссия в рублях
- "commissionPercent" - Общая комиссия в процентах
- "shopCommissionAmount" - Сумма комиссии c кассы
- "userCommissionAmount" - Сумма комиссии, взимаемая с клиента
- "userCommissionPercent" - Процент комиссии, взимаемый с клиента
- "customField" - Строка, которую вы передавали в параметрах при создании платежа
- "paidAt" - Время оплаты инвойса

❌ При неудачном ответе выбросится исключение типа InvoiceException с описанием ошибки.

---

### Проверка сигнатуры WebHook'а оплаты:

[](#проверка-сигнатуры-webhookа-оплаты)

Наша система имеет возможность уведомления об изменении статуса платежа.

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

Метод checkPaymentWebhookSignature() служит для проверки сигнатуры входящего WebHook'а, принимает параметры

Обязательные:

- "webhookRequest" - тело запроса в формате json
- "signature" - сигнатура, подтверждающая валидность (передается в параметре заголовка 'x-api-sha256-signature')

Пример кода для получения данных из входящего запроса:

```
$webhookRequest = file_get_contents('php://input');
$headerParams = getallheaders();

if(!isset($signature = $headerParams['x-api-sha256-signature'])) {
    throw new Exception();
}

$facade->checkPaymentWebhookSignature($webhookRequest, $signature);
```

Пример входящего webhook запроса для оплат:

```
{
"invoice_id":"a750dced-0f08-384a-a441-d0a4dba0cae8",
"status":"success",
"amount":"100.00",
"currency":"RUB",
"order_id":"89f2634c-afa9-3b16-bbde-e4a59ee94639",
"custom_fields":{"user":1},
"type":1,
"pay_time":"2023-04-06 15:53:28",
"pay_service":"card",
"payer_details":"553691******1279",
"code": 1,
"credited":"95.50"
}
```

✅ При успешной проверке сигнатуры в ответе вернется "True"

❌ При неудачной проверке сигнатуры в ответе вернется - "False"

---

### Получение баланса пользователя:

[](#получение-баланса-пользователя)

```
$response = $facade->getUserBalance();
```

✅ При успешном ответе вернется объект UserBalanceResponseDto, содержащий параметры

Обязательные:

- "balance" - Общий баланс
- "activeBalance" - Баланс доступный для вывода
- "freezeBalance" - Баланс в заморозке

❌ При неудачном ответе выбросится исключение типа UserBalanceException с описанием ошибки.

---

### Создание заявки на вывод:

[](#создание-заявки-на-вывод)

Метод createPayoff() принимает CreatePayoffRequestDto.

CreatePayoffRequestDto принимает параметры

Обязательные:

- "service" - Сервис вывода (полный код)
- "walletTo" - Номер карты/телефона/кошелька для вывода
- "amount" - Сумма вывода

Опциональные:

- "orderId" - Уникальный идентификатор платежа в Вашей системе
- "comment" - Комментарий
- "hookUrl" - Url, на который отправлять webhook запрос с уведомлением по заявке на вывод
- "subtract" - С кого списывать комиссию, с баланса или с суммы. По умолчанию комиссия снимается с суммы.

```
use Enot\Api\Dto\Request\Payoff\CreatePayoffRequestDto;

$createPayoffRequestDto = new CreatePayoffRequestDto(
    'card',
    '1234567890123456'
    100.05,
    'orderId',
    'comment',
    'https://exaple.com',
    1
);
```

✅ При успешном ответе вернется объект CreatePayoffResponseDto, содержащий параметры

Обязательные:

- "payoffId" - ID вывода
- "amountWithdrawRub" - Сумма списания с баланса (в рублях)
- "balance" - Баланс после списания суммы вывода

❌ При неудачном ответе выбросится исключение типа PayoffException с описанием ошибки.

---

### Получение информации о выводе:

[](#получение-информации-о-выводе)

Метод getPayoffInfo() принимает PayoffInfoRequestDto.

PayoffInfoRequestDto принимает параметры

Обязательные:

- "id" - ID вывода

Опциональные:

- "orderId" - Уникальный идентификатор платежа в Вашей системе

```
use Enot\Api\Dto\Request\Payoff\PayoffInfoRequestDto;

$payoffInfoRequestDto = new PayoffInfoRequestDto(
    '3fa85f64-5717-4562-b3fc-2c963f66afa6',
    'orderId'
);
```

✅ При успешном ответе вернется объект PayoffInfoResponseDto, содержащий параметры

Обязательные:

- "payoffId" - ID вывода
- "status" - Статус вывода
- "orderId" - Уникальный идентификатор платежа в Вашей системе
- "service" - Сервис вывода (полный код)
- "type" - Тип вывода
- "subtract" - С кого списывать комиссию, с баланса или с суммы
- "amount" - Сумма вывода (в рублях)
- "amountWithdrawRub" - Сумма списания с баланса (в рублях)
- "commissionRub" - Комиссия (в рублях)
- "receiveCurrency" - Валюта вывода
- "amountReceive" - Сумма вывода в валюте
- "createdAt" - Время создания вывода

Опциональные:

- "wallet" - Номер карты/телефона/кошелька для вывода
- "comment" - Комментарий указанный при создании выплаты
- "paidAt" - Время вывода
- "errorMessage" - Причина отклонения

❌ При неудачном ответе выбросится исключение типа PayoffException с описанием ошибки.

---

### Проверка сигнатуры WebHook'а вывода:

[](#проверка-сигнатуры-webhookа-вывода)

Наша система имеет возможность уведомления об изменении статуса вывода средств.

Вам требуется добавить необходимый URL для отправки уведомлений на странице массовых выплат. Ссылку можете указать на любой из ваших сайтов.

> Уведомления отправляются только на те транзакции, которые были так же созданы с помощью API. Если вывод был запрошен с личного кабинета, уведомление отправлено не будет. После изменения статуса, вам будет приходить уведомление по вашей ссылке.

Метод checkPayoffWebhookSignature() служит для проверки сигнатуры входящего WebHook'а, принимает параметры

Обязательные:

- "webhookRequest" - тело запроса в формате json
- "signature" - сигнатура, подтверждающая валидность (передается в параметре заголовка 'x-api-sha256-signature')

Пример кода для получения данных из входящего запроса:

```
$webhookRequest = file_get_contents('php://input');
$headerParams = getallheaders();

if(!isset($signature = $headerParams['x-api-sha256-signature'])) {
    throw new Exception();
}

$facade->checkPaymentWebhookSignature($webhookRequest, $signature);
```

Пример входящего webhook запроса для выводов:

```
{
"amount": "763.46",
"status": "success",
"wallet": "5184559049166517",
"service": "card",
"order_id": "d1e747a4-8258-3e43-b600-7f320fbfb878",
"payoff_id": "306291d6-a432-47bf-8e4c-0744a7bad45a",
"commission": "20.66"
}
```

✅ При успешной проверке сигнатуры в ответе вернется "True"

❌ При неудачной проверке сигнатуры в ответе вернется - "False"

###  Health Score

13

—

LowBetter than 1% of packages

Maintenance20

Infrequent updates — may be unmaintained

Popularity3

Limited adoption so far

Community7

Small or concentrated contributor base

Maturity20

Early-stage or recently created project

 Bus Factor1

Top contributor holds 100% of commits — single point of failure

How is this calculated?**Maintenance (25%)** — Last commit recency, latest release date, and issue-to-star ratio. Uses a 2-year decay window.

**Popularity (30%)** — Total and monthly downloads, GitHub stars, and forks. Logarithmic scaling prevents top-heavy scores.

**Community (15%)** — Contributors, dependents, forks, watchers, and maintainers. Measures real ecosystem engagement.

**Maturity (30%)** — Project age, version count, PHP version support, and release stability.

### Community

Maintainers

![](https://www.gravatar.com/avatar/ed78301e222a016f98d13882b98326622450983cd5fce00648ceb102b73d2612?d=identicon)[EnotPayment](/maintainers/EnotPayment)

---

Top Contributors

[![SergeyPrist](https://avatars.githubusercontent.com/u/108679188?v=4)](https://github.com/SergeyPrist "SergeyPrist (2 commits)")

### Embed Badge

![Health badge](/badges/enot-payment-enot/health.svg)

```
[![Health](https://phpackages.com/badges/enot-payment-enot/health.svg)](https://phpackages.com/packages/enot-payment-enot)
```

###  Alternatives

[omnipay/paypal

PayPal gateway for Omnipay payment processing library

3156.8M53](/packages/omnipay-paypal)[eduardokum/laravel-boleto

Biblioteca com boletos para o laravel

626351.9k2](/packages/eduardokum-laravel-boleto)[tbbc/money-bundle

This is a Symfony bundle that integrates moneyphp/money library (Fowler pattern): https://github.com/moneyphp/money.

1961.9M](/packages/tbbc-money-bundle)[2checkout/2checkout-php

2Checkout PHP Library

83740.3k2](/packages/2checkout-2checkout-php)[smhg/sepa-qr-data

Generate QR code data for SEPA payments

61717.2k5](/packages/smhg-sepa-qr-data)[omnipay/dummy

Dummy driver for the Omnipay payment processing library

271.2M33](/packages/omnipay-dummy)

PHPackages © 2026

[Directory](/)[Categories](/categories)[Trending](/trending)[Changelog](/changelog)[Analyze](/analyze)
