PHPackages                             escolalms/przelewy24-php - 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. escolalms/przelewy24-php

ActiveLibrary[Payment Processing](/categories/payments)

escolalms/przelewy24-php
========================

Przelewy24 PHP library

0.1.0(2y ago)044.9k1MITPHPPHP ^8.1

Since Oct 5Pushed 2y agoCompare

[ Source](https://github.com/EscolaLMS/przelewy24-php)[ Packagist](https://packagist.org/packages/escolalms/przelewy24-php)[ Docs](https://github.com/mnastalski/przelewy24-php)[ RSS](/packages/escolalms-przelewy24-php/feed)WikiDiscussions master Synced 3w ago

READMEChangelog (1)Dependencies (3)Versions (4)Used By (1)

Przelewy24 PHP library
======================

[](#przelewy24-php-library)

PHP wrapper for [Przelewy24](https://www.przelewy24.pl/).

If you are using Laravel, check out [mnastalski/przelewy24-laravel](https://github.com/mnastalski/przelewy24-laravel/).

Przelewy24's API documentation is available at .

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

[](#requirements)

- PHP &gt;=8.1

For lower PHP versions, check the [0.x](https://github.com/mnastalski/przelewy24-php/tree/0.x) versions.

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

[](#installation)

```
composer require escolalms/przelewy24-php
```

Usage
-----

[](#usage)

### Creating an instance

[](#creating-an-instance)

```
use Przelewy24\Przelewy24;

$przelewy24 = new Przelewy24(
    merchantId: 12345,
    reportsKey: 'f0ae...',
    crc: 'aef0...',
    isLive: false,
);
```

Setting `isLive` to `false` will use the [sandbox environment](https://sandbox.przelewy24.pl/panel/). Set it to `true` to use production/live mode.

### Creating a transaction

[](#creating-a-transaction)

```
$transaction = $przelewy24->transactions()->register(
    // Required parameters:
    sessionId: 'unique order identifier from your application',
    amount: 125,
    description: 'transaction description',
    email: 'buyer email address',
    urlReturn: 'url to return to after transaction',

    // Optional parameters:
    urlStatus: 'url to which the transaction status webhook will be sent',

    // client: 'Mateusz Nastalski',
    // currency: \Przelewy24\Enums\Currency::EUR,
    // language: Language::ENGLISH,
    // ...
);
```

Note that `amount` is passed as an integer, so if the actual amount is `1.25 PLN` you will need to pass `125` as value.

For the complete list of available parameters check the signature of [TransactionRequests::register()](src/Api/Requests/TransactionRequests.php#L22).

#### Return the transaction's token:

[](#return-the-transactions-token)

```
$transaction->token();
```

#### Return the URL to the payment gateway:

[](#return-the-url-to-the-payment-gateway)

```
$transaction->gatewayUrl();
```

### Listening for transaction status webhook

[](#listening-for-transaction-status-webhook)

To parse the webhook's payload, pass the whole request's POST data as an array to `handleWebhook()`:

```
// $requestData = $request->request->all();
// $requestData = $request->post();
// $requestData = json_decode(file_get_contents('php://input'), true);

$webhook = $przelewy24->handleWebhook($requestData);
```

`handleWebhook()` returns `TransactionStatusNotification::class`, which has a bunch of useful methods you can use to check the transaction's data, as well as verify the webhook's signature:

```
$webhook->amount();
$webhook->currency();
$webhook->orderId();
...
$webhook->isSignValid(...);
```

If you would like to make sure the incoming request's IP address belongs to Przelewy24 then a list of valid IPs is available in the `\Przelewy24\Constants\IpAddresses::V4` constant. A helper method that accepts a string with an IP address and returns a boolean is also available: `\Przelewy24\Constants\IpAddresses::isValid($ip)`.

### Verifying a transaction

[](#verifying-a-transaction)

```
$przelewy24->transactions()->verify(
    sessionId: 'unique order identifier from your application',
    orderId: $webhook->orderId(),
    amount: 125,
);
```

Similarly to registering a transaction, the `amount` is passed as an integer.

### Error handling

[](#error-handling)

Should Przelewy24's API return an erroneous response, an `ApiResponseException::class` (which extends `Przelewy24Exception::class`) will be thrown. You can therefore use a `try/catch` block to handle any errors:

```
use Przelewy24\Exceptions\Przelewy24Exception;

try {
    $przelewy24->transactions()->verify([
        // ...
    ]);
} catch (Przelewy24Exception $e) {
    // Handle the error...
}
```

###  Health Score

28

—

LowBetter than 52% of packages

Maintenance20

Infrequent updates — may be unmaintained

Popularity27

Limited adoption so far

Community13

Small or concentrated contributor base

Maturity44

Maturing project, gaining track record

 Bus Factor1

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

Unknown

Total

1

Last Release

823d ago

### Community

Maintainers

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

---

Top Contributors

[![mnastalski](https://avatars.githubusercontent.com/u/10223434?v=4)](https://github.com/mnastalski "mnastalski (29 commits)")[![mako321](https://avatars.githubusercontent.com/u/59456825?v=4)](https://github.com/mako321 "mako321 (3 commits)")[![dbojdo](https://avatars.githubusercontent.com/u/1272416?v=4)](https://github.com/dbojdo "dbojdo (1 commits)")[![KamilWojtalak](https://avatars.githubusercontent.com/u/48104288?v=4)](https://github.com/KamilWojtalak "KamilWojtalak (1 commits)")

---

Tags

paymentsPrzelewy24

###  Code Quality

TestsPHPUnit

Code StylePHP CS Fixer

### Embed Badge

![Health badge](/badges/escolalms-przelewy24-php/health.svg)

```
[![Health](https://phpackages.com/badges/escolalms-przelewy24-php/health.svg)](https://phpackages.com/packages/escolalms-przelewy24-php)
```

###  Alternatives

[srmklive/paypal

PayPal REST API client for Laravel and standalone PHP.

1.1k4.0M28](/packages/srmklive-paypal)[chargebee/chargebee-php

ChargeBee API client implementation for PHP

758.3M9](/packages/chargebee-chargebee-php)[mnastalski/przelewy24-php

Przelewy24 PHP library

53112.4k2](/packages/mnastalski-przelewy24-php)[eslazarev/wildberries-sdk

Wildberries OpenAPI clients (generated).

252.5k](/packages/eslazarev-wildberries-sdk)

PHPackages © 2026

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