PHPackages                             quickpayge/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. quickpayge/php-sdk

ActiveLibrary

quickpayge/php-sdk
==================

Official PHP SDK for the Quickpay.ge payment gateway API

00PHP

Since Jul 31Pushed todayCompare

[ Source](https://github.com/QuickPayGe/php-sdk)[ Packagist](https://packagist.org/packages/quickpayge/php-sdk)[ RSS](/packages/quickpayge-php-sdk/feed)WikiDiscussions main Synced today

READMEChangelogDependenciesVersions (1)Used By (0)

quickpayge/php-sdk
==================

[](#quickpaygephp-sdk)

Official PHP SDK for the [Quickpay.ge](https://quickpay.ge) payment gateway API.

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

[](#installation)

```
composer require quickpayge/php-sdk
```

Requires PHP 8.2+. No external runtime dependencies.

Quick Start
-----------

[](#quick-start)

```
use Quickpay\QuickpayClient;

$client = new QuickpayClient('qpk_live_your_api_key_here');

// Create a payment
$payment = $client->payments->create([
    'amount'            => 99.99,
    'currency'          => 'GEL',
    'description'       => 'Order #1234',
    'merchant_order_id' => 'order-1234',
    'idempotency_key'   => 'order-1234-attempt-1',
    'customer'          => [
        'name'  => 'John Doe',
        'email' => 'john@example.com',
        'phone' => '+995599123456',
    ],
]);

// Redirect customer to the payment page
header('Location: ' . $payment->paymentUrl);
exit;
```

Webhook Verification
--------------------

[](#webhook-verification)

```
use Quickpay\Webhook\WebhookVerifier;
use Quickpay\Exceptions\QuickpayException;

$verifier = new WebhookVerifier();

try {
    $event = $verifier->verify(
        secret: 'your_webhook_secret',
        rawPayload: file_get_contents('php://input'),
        signatureHeader: $_SERVER['HTTP_QUICKPAY_SIGNATURE'] ?? ''
    );

    if ($event->type === 'payment.paid' && $event->payment !== null) {
        // Mark order as paid in your database
        $uuid = $event->payment->uuid;
    }
} catch (QuickpayException $e) {
    http_response_code(400);
    exit;
}

http_response_code(200);
```

Error Handling
--------------

[](#error-handling)

```
use Quickpay\QuickpayClient;
use Quickpay\Exceptions\AuthException;
use Quickpay\Exceptions\ValidationException;
use Quickpay\Exceptions\RateLimitException;
use Quickpay\Exceptions\NotFoundException;
use Quickpay\Exceptions\ApiException;
use Quickpay\Exceptions\QuickpayException;

$client = new QuickpayClient('qpk_live_...');

try {
    $payment = $client->payments->get('some-uuid');
} catch (AuthException $e) {
    // 401/403 — invalid or missing API key, suspended account
} catch (ValidationException $e) {
    // 422 — field-level errors
    foreach ($e->errors as $field => $messages) {
        echo "$field: " . implode(', ', $messages) . "\n";
    }
} catch (RateLimitException $e) {
    // 429 — retry after N seconds
    sleep($e->retryAfter());
} catch (NotFoundException $e) {
    // 404 — payment / resource not found
} catch (ApiException $e) {
    // 5xx — server error (retried internally up to 3 times)
} catch (QuickpayException $e) {
    // Catch-all for any SDK error
}
```

All Resources
-------------

[](#all-resources)

ResourceMethods`$client->payments``create()`, `get()`, `list()`, `refund()``$client->checkoutLinks``create()`, `get()`, `list()``$client->products``create()`, `get()`, `list()`, `update()``$client->gateways``list()`Configuration
-------------

[](#configuration)

```
use Quickpay\Config;
use Quickpay\QuickpayClient;

$config = new Config(
    apiKey:     'qpk_live_...',
    baseUrl:    'https://api.quickpay.ge/v1',
    timeout:    30,
    siteDomain: 'myshop.ge'
);

$client = new QuickpayClient($config);
```

OptionDefaultDescription`apiKey`requiredYour API key (`qpk_live_...` or `qpk_test_...`)`baseUrl``https://api.quickpay.ge/v1`API base URL`timeout``30`cURL timeout in seconds`siteDomain``''`Sent as `X-Site-Domain` header for per-domain gateway licensingLicense
-------

[](#license)

MIT

###  Health Score

20

—

LowBetter than 12% of packages

Maintenance65

Regular maintenance activity

Popularity0

Limited adoption so far

Community2

Small or concentrated contributor base

Maturity11

Early-stage or recently created project

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/863713edf4af6a69bf12d76361f88f1d1a694fb722ab941823f85c4c509ffecb?d=identicon)[QuickPay](/maintainers/QuickPay)

### Embed Badge

![Health badge](/badges/quickpayge-php-sdk/health.svg)

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

PHPackages © 2026

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