PHPackages                             ezi/ub-qrph - 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. ezi/ub-qrph

ActiveLibrary

ezi/ub-qrph
===========

UB QRPH - Integration

v1.3.0(2y ago)013MITPHPPHP ^8.0|^8.1|^8.2

Since Mar 28Pushed 2y ago1 watchersCompare

[ Source](https://github.com/calmadex/ub-qrph)[ Packagist](https://packagist.org/packages/ezi/ub-qrph)[ RSS](/packages/ezi-ub-qrph/feed)WikiDiscussions main Synced 1mo ago

READMEChangelog (4)Dependencies (4)Versions (5)Used By (0)

PACKAGE UB - QRPH
=================

[](#package-ub---qrph)

Install
-------

[](#install)

- Run `composer require ezi/ub-qrph`
- Publish config files `php artisan vendor:publish --tag=ub-qrph`

Request Access Token
--------------------

[](#request-access-token)

### Sample Usage

[](#sample-usage)

```
use Ezi\UbQrPh\Exceptions\RequestFailedException;
use Ezi\UbQrPh\QrPhClient;

$service = new QrPhClient(config('ub-qrph'));
$service->requestAccessToken();

```

### Sample Response

[](#sample-response)

```
array:8 [
  "token_type" => "Bearer"
  "access_token" => "AAIkMzJkMjViYzEtZjkzZi00NDY4LTg4M2UtMjZjZmMwYzFiY2M1ce4NyfKxKUwSz9NK-bb_CrOg7Wiy-OnCerANGm5qTFZD55WgfCWiS37TjF01y-RnBBefu8q5UTxwCV02mC7gpuTYs7kqgV1Wk47t-FBmhlaob-wZKq_CQANdE135daXcGC_3VDJPW5QUSlkWjJw4jljFv6Lzz5ocBEvuZ1_DX6lu94izR4bOGCRWxFDh4rwK_Kzk1gjykHJd4BZSWPRhuMcxT_v1QPii5ml9qmdnCwn_N6W6TzkvO4Mh_QQSYX4h_VHcDUON4KJaDLNef44SMejaHjavuiOKL96aFr55jERauoHRWL-oHJ3qfI5g_Tz9RtVCo1rvUziiDKinxHWpaA"
  "metadata" => "a:rY5CFD9ja3as2I/pjwJgdnZL//vn16eYjwLA8ShFv1ePX2zJgoPk+XQhhzICV98/oPMWGAH6WWknAAuqQ71Mj6isK4Wvn7t0XckPIUzV2j9gCPFZGHI7AunMUWZ+Z1u7NN/iYaIzwlYTIhABw7C2U+n/um5nNZAq6twX"
  "expires_in" => 3600
  "consented_on" => 1711614918
  "scope" => "qrph_instapay"
  "refresh_token" => "AAIa-ewGV4KZW7vfYDPjFMLoxlabqjpAwkbzxi2LuYTQfzEuIPaTYEnz1MOwVo22Wn0YaI7KoSzpl82_NPhaYKBSdWh4Ud29Z_61DqOh96nSvwLhIwtg10CR_UleiyuAzWlgahqalhWIioixEGiQ13pDcRBMwx-KxGSYAxpJaJJykmAf0oQjFSDTSsipxEgQNzKPzZGEr6k3H5fqqytzml-V9L4g_VKnT4gWSVIDzPNMoVhjmOG5kgS467d1preENQXDKbhVUhYuRln_p-4MmjzROesISK_7mH5y323WYUVh3AN2pi0_UgNwFF1vC3pLApWcuqtMKx1nsPmwsCicST6078A0q3-rz8ENyNuncbQDWg"
  "refresh_token_expires_in" => 2682000
]

```

Generate Instapay QR String
---------------------------

[](#generate-instapay-qr-string)

### Sample Usage

[](#sample-usage-1)

```
use Ezi\UbQrPh\Exceptions\RequestFailedException;
use Ezi\UbQrPh\QrPhClient;

$service = new QrPhClient(config('ub-qrph'));
try {
    $qrResponse = $service->generateInstapayQrString(
        accessToken: $requestAccessTokenResponse['access_token'],
        billerCode: '9871',             //required
        storeName: 'Sample Store',      //required
        cashierCode: 'Code-123',        //required
        mobileNumber: 639161111111,     //required|should be 09161111111 or 639161111111
        amount: 0                       //optional
    );
} catch (RequestFailedException $e) {
    dd($e->getRequestName());
    dd($e->getErrorCode());
    dd($e->getErrorBody());
    dd($e->toJson());
}

```

### Sample Response

[](#sample-response-1)

```
array:4 [
  "code" => "TS"
  "state" => "Successfully processed request"
  "uuid" => "29d16b86-a482-469d-8cc8-46424a5131b9"
  "response" => "[qrIdentifier:7103,qrString:00020101021128720011ph.ppmi.p2m0111UBPHPHMMXXX0308999179100419773853011023024339005030105204601653036085802PH5916Merchant Acq-123600312362410012ph.ppmi.qrph0304710305062110000803***80310012ph.ppmi.qrph01031230204710388300012ph.ppmi.qrph0110970941393963045967]"
]

```

Get Settlement Data
-------------------

[](#get-settlement-data)

### Sample Usage

[](#sample-usage-2)

```
use Ezi\UbQrPh\Exceptions\RequestFailedException;
use Ezi\UbQrPh\QrPhClient;

$service = new QrPhClient(config('ub-qrph'));
try {
    $response = $service->getSettlementData(
        accessToken: $requestAccessTokenResponse['access_token'],
        page:1,                 // required
        billerId: 3,            // required
        asc: true,              // boolean|required
        storeId: '',            // optional
        cashierCode: ''         // optional
        senderReferenceNo: ''   // optional
    );
} catch (RequestFailedException $e) {
    dd($e->getErrorBody());
    dd($e->getRequestName());
    dd($e->getErrorCode());
    dd($e->toJson());
}

```

### Sample Response

[](#sample-response-2)

```
array:9 [
  "code" => "TS"
  "state" => "Successfully processed request"
  "uuid" => "eff22cbe-be6d-45df-b341-367ebaf2e91d"
  "currentPage" => 1
  "nextPage" => null
  "previousPage" => null
  "totalPages" => 1
  "totalRecord" => 1
  "data" => array:1 [
    0 => array:23 [
      "id" => 161
      "billerId" => 2942
      "code" => "3853"
      "name" => "Merchant Acquiring Test Biller"
      "storeId" => 1061
      "branchName" => "sampleqrqr"
      "cashierCode" => "asdasda"
      "referenceNo" => "012232215595957001"
      "grossAmount" => 500
      "transactionfee" => 0
      "percentageFee" => 0
      "amountSettled" => 500
      "transactionId" => "7738530123221559001"
      "paymentMethod" => "INSTAPAY P2M"
      "status" => "PAID"
      "settlementStatus" => "POSTED"
      "ubTranId" => "UB17473"
      "transactionDate" => "2022-11-18T07:59:57Z"
      "settlementProcessDate" => "2022-11-18T08:00:07Z"
      "settledDate" => "2022-11-18T08:00:07Z"
      "traceNo" => "111111"
      "senderReferenceNo" => "Number"
      "merchantType" => "NON-MSME"
    ]
  ]
]

```

###  Health Score

25

—

LowBetter than 37% of packages

Maintenance20

Infrequent updates — may be unmaintained

Popularity5

Limited adoption so far

Community7

Small or concentrated contributor base

Maturity57

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

Every ~0 days

Total

4

Last Release

779d ago

### Community

Maintainers

![](https://www.gravatar.com/avatar/650bccfc3526dcf69e959c4544460fce81edb148fb455fb74faea7ea7805ced2?d=identicon)[calmadex](/maintainers/calmadex)

---

Top Contributors

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

###  Code Quality

TestsPHPUnit

### Embed Badge

![Health badge](/badges/ezi-ub-qrph/health.svg)

```
[![Health](https://phpackages.com/badges/ezi-ub-qrph/health.svg)](https://phpackages.com/packages/ezi-ub-qrph)
```

###  Alternatives

[s-ichikawa/laravel-sendgrid-driver

This library adds a 'sendgrid' mail driver to Laravel.

4139.3M1](/packages/s-ichikawa-laravel-sendgrid-driver)[stechstudio/laravel-zipstream

A fast and simple streaming zip file downloader for Laravel.

4633.7M3](/packages/stechstudio-laravel-zipstream)[laravel-notification-channels/microsoft-teams

A Laravel Notification Channel for Microsoft Teams

1603.0M7](/packages/laravel-notification-channels-microsoft-teams)[spatie/laravel-export

Create a static site bundle from a Laravel app

646127.9k5](/packages/spatie-laravel-export)[erag/laravel-disposable-email

A Laravel package to detect and block disposable email addresses.

226102.4k](/packages/erag-laravel-disposable-email)[aedart/athenaeum

Athenaeum is a mono repository; a collection of various PHP packages

245.2k](/packages/aedart-athenaeum)

PHPackages © 2026

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