PHPackages                             parazeet/paymaster\_api\_php\_sdk - 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. [API Development](/categories/api)
4. /
5. parazeet/paymaster\_api\_php\_sdk

ActiveLibrary[API Development](/categories/api)

parazeet/paymaster\_api\_php\_sdk
=================================

paymaster\_api\_php\_sdk

v1.1(1mo ago)24.1k↑187.8%1MITPHPPHP ^8.1

Since Dec 27Pushed 1mo ago1 watchersCompare

[ Source](https://github.com/parazeet/paymaster_api_php_sdk)[ Packagist](https://packagist.org/packages/parazeet/paymaster_api_php_sdk)[ RSS](/packages/parazeet-paymaster-api-php-sdk/feed)WikiDiscussions main Synced 2w ago

READMEChangelog (5)Dependencies (2)Versions (6)Used By (0)

paymaster\_api\_php\_sdk
========================

[](#paymaster_api_php_sdk)

PHP SDK для [PayMaster API v2](https://paymaster.ru/docs/ru/api).

[![Latest Version on Packagist](https://camo.githubusercontent.com/039f59cdb5e2168b56e9b679a20e153ee373df3d1b36a1d871b357bab420ec2c/68747470733a2f2f696d672e736869656c64732e696f2f7061636b61676973742f762f706172617a6565742f7061796d61737465725f6170695f7068705f73646b2e7376673f7374796c653d666c61742d737175617265)](https://packagist.org/packages/parazeet/paymaster_api_php_sdk)[![PHP Version](https://camo.githubusercontent.com/484e331cbc31ecdfbcae217840a0a79afda91ff97c1612582286cdca80c1c1a9/68747470733a2f2f696d672e736869656c64732e696f2f7061636b61676973742f7068702d762f706172617a6565742f7061796d61737465725f6170695f7068705f73646b2e7376673f7374796c653d666c61742d73717561726526636f6c6f72423d253233383839324246)](https://php.net)[![License](https://camo.githubusercontent.com/721d083122bfafce7626c60d33862773df2b7a71b5c57ac9211999b93ad2645b/68747470733a2f2f696d672e736869656c64732e696f2f7061636b61676973742f6c2f706172617a6565742f7061796d61737465725f6170695f7068705f73646b2e7376673f7374796c653d666c61742d737175617265)](LICENSE)

Requirements
------------

[](#requirements)

- PHP ^8.1
- `guzzlehttp/guzzle` ^7.0

Installation
------------

[](#installation)

```
composer require "parazeet/paymaster_api_php_sdk"
```

Setup
-----

[](#setup)

Создайте клиент с API-ключом ([токены в кабинете](https://paymaster.ru/cpl/currentusertokens)). Для `POST`-запросов рекомендуется передавать `Idempotency-Key` (например через [`ramsey/uuid`](https://packagist.org/packages/ramsey/uuid)).

```
use parazeet\PayMaster\PayMasterApi;
use parazeet\PayMaster\Config\Config;
use parazeet\PayMaster\Validator\ResponseValidator;
use Ramsey\Uuid\Uuid;

$api = new PayMasterApi(
    new Config('YOUR_API_KEY', Uuid::uuid4()->toString()),
    new ResponseValidator()
);
```

Базовый URL: `https://paymaster.ru/api/v2/`.

Available methods
-----------------

[](#available-methods)

MethodHTTPReturns`$api->post($request)``POST /{resource}/``Response``$api->getId($request, $id)``GET /{resource}/{id}``Response``$api->getQuery($request, $query)``GET /{resource}/?...``Response` (list `items`)`$api->put($request, $id, $type?)``PUT /{resource}/{id}[/{type}]``Response` или `true`### Поведение `put()`

[](#поведение-put)

ВызовEndpointУспешный ответ`put($payment, $id, 'complete')``PUT /payments/{id}/complete``PaymentResponse` (JSON body)`put($payment, $id, 'confirm')``PUT /payments/{id}/confirm``true` (пустой HTTP 200)`put($payment, $id, 'cancel')``PUT /payments/{id}/cancel``true``put($token, $id, 'complete')``PUT /paymenttokens/{id}/complete``PaymentTokenResponse``put($token, $id, 'revoke')``PUT /paymenttokens/{id}/revoke``true``put($sticker->active(false), $id)``PUT /stickers/{id}``true``$type` опциональный: если `null`, вызывается `PUT /{resource}/{id}` без суффикса (для активации стикеров).

Request classes
---------------

[](#request-classes)

ClassResourceTypical operations`InvoiceRequest``invoices`создание ссылки на оплату`PaymentRequest``payments`create / get / list / complete / confirm / cancel`RefundRequest``refunds`create / get / list`TokenizationRequest``tokenization`ссылка на привязку карты`PaymentTokenRequest``paymenttokens`create / get / complete / revoke`ReceiptRequest``receipts`create / get / list`StickerRequest``stickers`create / get / list / activate---

Examples
--------

[](#examples)

### Invoice (ссылка на оплату)

[](#invoice-ссылка-на-оплату)

```
use parazeet\PayMaster\Requests\InvoiceRequest;

$invoice = (new InvoiceRequest())
    ->merchantId('YOUR_MERCHANT_ID')
    ->testMode(true)
    ->invoice(['description' => 'test payment'])
    ->amount(['value' => 11, 'currency' => 'RUB'])
    ->paymentMethod('BankCard')
    ->protocol([
        'returnUrl' => 'https://example.com/return',
        'callbackUrl' => 'https://example.com/callback',
    ])
    ->customer([
        'email' => 'test@test.com',
        'phone' => '79081234567',
        'account' => 'user-1',
    ]);

$response = $api->post($invoice);
// $response->invoice->paymentId, $response->invoice->url
```

### Payment — создание

[](#payment--создание)

```
use parazeet\PayMaster\Requests\PaymentRequest;

$payment = (new PaymentRequest())
    ->merchantId('YOUR_MERCHANT_ID')
    ->invoice(['description' => 'test payment'])
    ->amount(['value' => 10.50, 'currency' => 'RUB'])
    ->paymentData([
        'paymentMethod' => 'BankCard',
        'token' => ['id' => 'TOKEN_ID'],
    ])
    ->protocol([
        'returnUrl' => 'https://example.com/return',
        'callbackUrl' => 'https://example.com/callback',
        'threeDSCompleteUrl' => 'https://example.com/3ds-complete',
    ]);

$response = $api->post($payment);
```

### Payment — get / list

[](#payment--get--list)

```
$response = $api->getId(new PaymentRequest(), '12769');
// $response->payments->completed — дата завершения (если есть)

$list = $api->getQuery(new PaymentRequest(), [
    'merchantId' => 'YOUR_MERCHANT_ID',
    'start' => '2021-08-01T06:00:00Z',
    'end' => '2021-08-01T06:30:00Z',
]);
// $list->payments — массив Payment
// $list->cursor — указатель следующей страницы или null

// Следующая страница:
if ($list->cursor !== null) {
    $list = $api->getQuery(new PaymentRequest(), [
        'merchantId' => 'YOUR_MERCHANT_ID',
        'start' => '2021-08-01T06:00:00Z',
        'end' => '2021-08-01T06:30:00Z',
        'cursor' => $list->cursor,
    ]);
}
```

### Payment — complete (3DS) / confirm (capture) / cancel

[](#payment--complete-3ds--confirm-capture--cancel)

```
// Complete — API возвращает детали платежа
$complete = (new PaymentRequest())->completeData([
    'PARes' => '...',
    // или: 'cres', 'code', 'threeDSCompInd'
]);
$paymentResponse = $api->put($complete, '12769', 'complete');

// Confirm (capture) — пустой 200 → true
$confirm = (new PaymentRequest())->confirmData([
    'amount' => ['value' => 10.50, 'currency' => 'RUB'],
]);
$ok = $api->put($confirm, '12769', 'confirm');

// Cancel
$ok = $api->put(new PaymentRequest(), '12769', 'cancel');
```

> Для `complete` / `confirm` в `toArray()` попадает только соответствующий action-payload (`completeData` / `confirmData`), не create-тело платежа.

### Tokenization (ссылка на привязку)

[](#tokenization-ссылка-на-привязку)

```
use parazeet\PayMaster\Requests\TokenizationRequest;

$tokenLink = (new TokenizationRequest())
    ->merchantId('YOUR_MERCHANT_ID')
    ->type('recurring')
    ->purpose('Подписка')
    ->paymentMethod('bankcard')
    ->customer(['account' => 'user-1']);

$response = $api->post($tokenLink);
// $response->tokenization->tokenId, $response->tokenization->url
```

### Payment token — создание / get / complete / revoke

[](#payment-token--создание--get--complete--revoke)

```
use parazeet\PayMaster\Requests\PaymentTokenRequest;

// Create
$create = (new PaymentTokenRequest())
    ->merchantId('YOUR_MERCHANT_ID')
    ->type('recurring')
    ->purpose('Подписка')
    ->paymentData(['paymentMethod' => 'sbp'])
    ->customer(['account' => 'user-1'])
    ->protocol([
        'returnUrl' => 'https://example.com/return',
        'callbackUrl' => 'https://example.com/token-callback',
    ]);

$tokenResponse = $api->post($create);
// $tokenResponse->paymentToken->id
// $tokenResponse->paymentToken->status
// $tokenResponse->paymentToken->confirmation  // External / 3DS и т.д.

// Get
$tokenResponse = $api->getId(new PaymentTokenRequest(), 'TOKEN_ID');

// Complete (3DS)
$complete = (new PaymentTokenRequest())->completeData(['PARes' => '...']);
$tokenResponse = $api->put($complete, 'TOKEN_ID', 'complete');

// Revoke
$ok = $api->put(new PaymentTokenRequest(), 'TOKEN_ID', 'revoke');
```

### Receipt (чеки)

[](#receipt-чеки)

Resource: `receipts` (`POST/GET /api/v2/receipts`).

```
use parazeet\PayMaster\Requests\ReceiptRequest;

$receipt = (new ReceiptRequest())
    ->paymentId('13167')
    ->amount(['value' => 10, 'currency' => 'RUB'])
    ->type('Payment')
    ->client(['email' => 'customer@gmail.com'])
    ->items([
        [
            'name' => 'Услуга',
            'quantity' => 1,
            'price' => 10,
            'vatType' => 'None',
            'paymentSubject' => 'Service',
            'paymentMethod' => 'FullPrepayment',
        ],
        // ...дополнительные позиции
    ])
    ->settlements([
        'cashless' => 10,
        // 'advance' => 0,
        // 'loan' => 0,
        // 'consideration' => 0,
    ]);

$response = $api->post($receipt);
// $response->receipt->providerOperationId
// $response->receipt->fiscalData  // fiscalDeviceId, shiftNumber, receiptNumber, ...

// Одна позиция также поддерживается (будет обёрнута в массив):
// ->items(['name' => '...', 'quantity' => 1, ...])
```

### Sticker — создание / активация

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

```
use parazeet\PayMaster\Requests\StickerRequest;

$sticker = (new StickerRequest())
    ->merchantId('YOUR_MERCHANT_ID')
    ->stickerType('Sbp')
    ->paymentPurpose('Оплата товара')
    ->amount(['value' => 39.90, 'currency' => 'RUB']);

$response = $api->post($sticker);
// $response->sticker->id, $response->sticker->payload

// Activate / deactivate: PUT /stickers/{id} с body {"active": bool}
$ok = $api->put((new StickerRequest())->active(true), $stickerId);
$ok = $api->put((new StickerRequest())->active(false), $stickerId);
```

> Не передавайте третьим аргументом `'active'` — согласно API путь без суффикса: `PUT /stickers/{id}`.
>
> Свойство ответа: `$response->sticker` (раньше ошибочно называлось `$receipt`).

### Refund

[](#refund)

```
use parazeet\PayMaster\Requests\RefundRequest;

$refund = (new RefundRequest())
    ->paymentId('12870')
    ->amount(['value' => 5.5, 'currency' => 'RUB']);

$response = $api->post($refund);
```

Error handling
--------------

[](#error-handling)

При ошибке API SDK выбрасывает исключения из `parazeet\PayMaster\Exceptions\*`(например `ErrorContentFormatException`, `ErrorUnauthorizedException`, `UnknownCodeException`, `EmptyResponseException`, `PayMasterHttpException`, `ErrorSyntaxException`).

Валидация ошибок срабатывает **только для error-envelope** `{code, message, errors?}` — успешный платёж/refund с полем `resultCode` (без верхнего `code`) исключения не бросает.

Известные коды ошибок API (`validation_error`, `not_authorized`, `idempotency_key_violation`, `invalid_operation`, `payment_token_revoked`, `payment_token_blocked`) и коды авторизации — мапятся в `ResponseValidator`.

HTTP-статус вне 2xx → `PayMasterHttpException` (доступны `statusCode()`, `responseBody()`).

Пустой body на GET/POST или невалидный JSON → `PayMasterHttpException` / `ErrorSyntaxException`.

Notes
-----

[](#notes)

- SSL verification включён (`verify => true`).
- Таймауты по умолчанию: `timeout = 10s`, `connect_timeout = 5s`.
- `Idempotency-Key` передаётся **только в POST** (через `Config`); GET/PUT — без этого заголовка.
- Для POST/PUT всегда выставляется `Content-Type: application/json`.
- Булевы флаги (`testMode`, `dualMode`, `cashlink`, `active`) сериализуются через `isset` — явное `false` попадает в JSON.
- В `receipt` поддерживается опциональный блок `settlements` (`cashless`, `advance`, `loan`, `consideration`) — в `InvoiceRequest` / `PaymentRequest` / `RefundRequest` / `ReceiptRequest::settlements()`.
- Списки (`getQuery`): ответ содержит `items` и опциональный `cursor` — `$response->cursor`; следующую страницу запрашивайте с `'cursor' => $response->cursor`.
- Поля list-ответов парсятся null-safe (`?? null`) — отсутствие опциональных ключей не падает.

###  Health Score

49

—

FairBetter than 94% of packages

Maintenance92

Actively maintained with recent releases

Popularity27

Limited adoption so far

Community10

Small or concentrated contributor base

Maturity55

Maturing project, gaining track record

 Bus Factor1

Top contributor holds 75.9% 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.

###  Release Activity

Cadence

Every ~231 days

Total

5

Last Release

40d ago

### Community

Maintainers

![](https://avatars.githubusercontent.com/u/47498507?v=4)[Yevhen Boiko](/maintainers/parazeet)[@parazeet](https://github.com/parazeet)

---

Top Contributors

[![parazeet](https://avatars.githubusercontent.com/u/47498507?v=4)](https://github.com/parazeet "parazeet (22 commits)")[![ionov-e](https://avatars.githubusercontent.com/u/82158159?v=4)](https://github.com/ionov-e "ionov-e (7 commits)")

### Embed Badge

![Health badge](/badges/parazeet-paymaster-api-php-sdk/health.svg)

```
[![Health](https://phpackages.com/badges/parazeet-paymaster-api-php-sdk/health.svg)](https://phpackages.com/packages/parazeet-paymaster-api-php-sdk)
```

###  Alternatives

[tencentcloud/tencentcloud-sdk-php

TencentCloudApi php sdk

3661.3M49](/packages/tencentcloud-tencentcloud-sdk-php)[eslazarev/wildberries-sdk

Wildberries OpenAPI clients (generated).

353.6k](/packages/eslazarev-wildberries-sdk)[neuron-core/neuron-ai

The PHP Agentic Framework.

2.0k832.6k54](/packages/neuron-core-neuron-ai)[files.com/files-php-sdk

Files.com PHP SDK

2482.9k](/packages/filescom-files-php-sdk)[volcengine/volcengine-php-sdk

119.5k](/packages/volcengine-volcengine-php-sdk)

PHPackages © 2026

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