PHPackages                             tural/epoint - 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. tural/epoint

ActiveLibrary[API Development](/categories/api)

tural/epoint
============

The library provides convenient access to the Epoint API from applications written in the PHP language. It includes a pre-defined set of static class functions for API resources that initialize themselves dynamically from Tural/Epoint class which makes it easier without writing repetitive configuration.

v1.0.0(4y ago)12171MITPHPPHP &gt;=7.0.0

Since Jan 14Pushed 4y ago3 watchersCompare

[ Source](https://github.com/TuralAsgar/epoint)[ Packagist](https://packagist.org/packages/tural/epoint)[ RSS](/packages/tural-epoint/feed)WikiDiscussions master Synced 1w ago

READMEChangelog (1)Dependencies (1)Versions (2)Used By (0)

Tural/Epoint library/SDK
========================

[](#turalepoint-librarysdk)

The library provides convenient access to the [Epoint.az API](https://epoint.az) from applications written in the PHP language. It includes a pre-defined set of static class functions for API resources that initialize themselves dynamically from Tural/Epoint class which makes it easier without writing repetitive configuration.

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

[](#requirements)

PHP 7 and later

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

[](#installation)

```
composer require tural/epoint
```

To include use Composer's [autoload](https://getcomposer.org/doc/01-basic-usage.md#autoloading):

```
require_once("vendor/autoload.php");
```

Dependencies
------------

[](#dependencies)

[Guzzle](https://github.com/php-http/guzzle6-adapter)

Getting started
---------------

[](#getting-started)

### Payment by typing card number

[](#payment-by-typing-card-number)

```
$response = Epoint::typeCard(PRIVATE_KEY, PUBLIC_KEY, "your_order_id", "0.01", "Test payment");

if ($response->status == "success") {

    // if successful it redirects to bank's payment page,
    // when user pays successfully, epoint will call the success webhook you provided
    $this->flashSuccess()->redirect($response->redirect_url);

} else {

    // handle failure

}
```

### Cancel payment

[](#cancel-payment)

```
$response = Epoint::cancel("write epoint transaction id");

if ($response->status == "success") {

    // handle success

} else {

    // handle failure

}
```

### Check payment

[](#check-payment)

```
// if false, it will check by order_id, if true,
// it will check by epoint transaction id
$epoint_transaction = false;

$response = Epoint::checkPayment("order or transaction id", $epoint_transaction);

// handle response
dd($response);
```

### Save card for payment

[](#save-card-for-payment)

```
$response = Epoint::saveCardForPayment("Kartı yadda saxla");

if ($response->status == "success") {

    // save it to db
    $card_uid=$response->card_id;

    $this->flashSuccess()->redirect($response->redirect_url);

} else {

    // handle failure

}
```

### Save card for refund

[](#save-card-for-refund)

```
$response = Epoint::saveCardForRefund("Kartı yadda saxla");

if ($response->status == "success") {

    // save it to db
    $card_uid = $response->card_id;
    $this->flashSuccess()->redirect($response->redirect_url);

} else {

    // handle failure

}
```

### Pay with saved card

[](#pay-with-saved-card)

```
// if successful it returns success
$response = Epoint::payWithSaved("card_uid", "order_id", "amount for ex. 0.01", "write description");

if ($response->status == "success") {

    $epoint_transaction = $response->transaction;
    $bank_transaction = $response->bank_transaction;

} else {

    // handle failure

}
```

### Refund action

[](#refund-action)

```
$response = Epoint::refund("card_uid", "order_id", "amount 0.05", "write description");

if ($response->status == "success") {

    // handle success
    $this->redirect($response->redirect_url, true);

} else {

    // handle failure

}
```

### Webhook called by Epoint on success or failure

[](#webhook-called-by-epoint-on-success-or-failure)

```
$data = $this->req("data");

if (!empty($data)) {

    $epoint = new Epoint([
        "data" => $_POST["data"],
        "signature" => $_POST["signature"]
    ]);

    // verify the response is really coming from epoint
    if ($epoint->isSignatureValid()) {

        $json_string = $epoint->getDataAsJson();
        $json = $epoint->getDataAsObject();

        // handle them for your needs
        $json->order_id ?? null,
        $json->status ?? null,
        $json->code ?? null,
        $json->transaction ?? null,
        $json->bank_transaction ?? null,
        $json->card_id ?? null,
        $json->card_name ?? null,
        $json->card_mask ?? null,
        $json->operation_code ?? null,

        // json as string
        $json_string ?? null;

        // if payment is successful
        if ($json->status == "success") {

            // if card_id is set it means it is save_card response
            if (!empty($json->card_id)) {

                // handle

            }
        }

    }
}
```

All the parameters of the class are inline-documented inside class.

You can have a look at Api documentation in [Azerbaijani](https://github.com/tural-esger/epoint/blob/master/Epoint-API-AZ.pdf), [English](https://github.com/tural-esger/epoint/blob/20932cf52bdbcb9b3457df6a4886f1f32a546772/Epoint-API-ENG.pdf) and [Russian](https://github.com/tural-esger/epoint/blob/master/Epoint-API-RU.pdf).

###  Health Score

24

—

LowBetter than 32% of packages

Maintenance20

Infrequent updates — may be unmaintained

Popularity14

Limited adoption so far

Community9

Small or concentrated contributor base

Maturity44

Maturing project, gaining track record

 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.

###  Release Activity

Cadence

Unknown

Total

1

Last Release

1585d ago

### Community

Maintainers

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

---

Top Contributors

[![TuralAsgar](https://avatars.githubusercontent.com/u/16950352?v=4)](https://github.com/TuralAsgar "TuralAsgar (7 commits)")

---

Tags

apiapi-clientclient-libraryepoint-clientEpointepoint.azepoint libraryepoint apiepoint client

### Embed Badge

![Health badge](/badges/tural-epoint/health.svg)

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

###  Alternatives

[saippuakauppias/safe-browsing

Client to use Google's and Yandex Safe Browsing API (v4)

1020.2k](/packages/saippuakauppias-safe-browsing)

PHPackages © 2026

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