PHPackages                             rick20/ppob - 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. [Utility &amp; Helpers](/categories/utility)
4. /
5. rick20/ppob

ActiveLibrary[Utility &amp; Helpers](/categories/utility)

rick20/ppob
===========

PPOB Multi Pulsa API PHP Library.

v0.1.18(4y ago)356.0k↓33.3%27[1 issues](https://github.com/rick20/ppob/issues)PHPPHP &gt;=7.2.5

Since Dec 5Pushed 4y ago4 watchersCompare

[ Source](https://github.com/rick20/ppob)[ Packagist](https://packagist.org/packages/rick20/ppob)[ RSS](/packages/rick20-ppob/feed)WikiDiscussions master Synced 1mo ago

READMEChangelog (10)Dependencies (2)Versions (18)Used By (0)

PPOB Package for Laravel 5
==========================

[](#ppob-package-for-laravel-5)

The purpose of this package is to allow your website to purchase many prepaid digital products like Token PLN, Pulsa, Paket Data and more in Indonesia.

Right now, the following providers are supported:

- MobilePulsa ()
- PortalPulsa ()
- Tripay ()
- IndoH2H ()

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

[](#installation)

To get started with PPOB, run this command or add the package to your `composer.json`

```
composer require rick20/ppob

```

Configuration
-------------

[](#configuration)

The PPOB package use Laravel autodiscovery so it will be loaded automatically. Copy the `config` file with the following command: `php artisan vendor:publish --provider="Rick20\PPOB\PPOBServiceProvider"`

Finally add your provider's account in the `.env` file:

```
MOBILEPULSA_USERNAME=
MOBILEPULSA_APIKEY=

PORTALPULSA_USERNAME=
PORTALPULSA_APIKEY=
PORTALPULSA_SECRET=

TRIPAY_APIKEY=
TRIPAY_PIN=

INDOH2H_USERNAME=
INDOH2H_APIKEY=

```

To add more accounts in a single provider, add those accounts in `config/ppob.php`

```
...
'accounts' => [
    'account-A' => [
        'provider' => 'mobile-pulsa',
        'username' => 'usernameA',
        'apikey' => 'apikeyA'
    ],
    'account-B' => [
        'provider' => 'mobile-pulsa',
        'username' => 'usernameB',
        'apikey' => 'apikeyB'
    ],
]
...
```

How To Use
----------

[](#how-to-use)

After all sets, use the PPOB as follows:

```
use Rick20\PPOB\Products\Pulsa;
use Rick20\PPOB\Products\TokenPLN;
use Rick20\PPOB\Products\GenericProduct;

// Topup Pulsa
$status = PPOB::topup(new Pulsa('082112345678', 50000), 'ref123');

// Check your deposit balance
$balance = PPOB::balance();

// Check status of a transaction
$status = PPOB::status('ref123');

// Use another account
$status = PPOB::account('account-portalpulsa')->topup(
  new TokenPLN('no-meter', 'no-hp', 100000), 'ref456'
);

// Purchase other products
$status = PPOB::account('account-tripay')->topup(
  new GenericProduct('subscriber-id', 'no-hp', 'product-code'), 'ref789'
);
```

Bugs &amp; Improvements
-----------------------

[](#bugs--improvements)

Feel free to report me any bug you found. I would be also very happy to receive pull requests for improvements and for other PPOB provider as well. If you find this package helpful, a donation would be awesome! =)

###  Health Score

34

—

LowBetter than 77% of packages

Maintenance19

Infrequent updates — may be unmaintained

Popularity36

Limited adoption so far

Community14

Small or concentrated contributor base

Maturity54

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 ~73 days

Recently: every ~221 days

Total

17

Last Release

1540d ago

PHP version history (2 changes)0.1.1PHP &gt;=7.1.3

0.1.15PHP &gt;=7.2.5

### Community

Maintainers

![](https://www.gravatar.com/avatar/6e7fec185ff90ca8ab547b702291bea3f6541842b69c6fed53787dfe53fefd41?d=identicon)[rick20](/maintainers/rick20)

---

Top Contributors

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

### Embed Badge

![Health badge](/badges/rick20-ppob/health.svg)

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

###  Alternatives

[stevebauman/location

Retrieve a user's location by their IP Address

1.3k7.6M65](/packages/stevebauman-location)[nativephp/mobile

NativePHP for Mobile

82724.0k43](/packages/nativephp-mobile)[bensampo/laravel-embed

Painless responsive embeds for videos, slideshows and more.

142146.8k](/packages/bensampo-laravel-embed)[glhd/conveyor-belt

14797.0k](/packages/glhd-conveyor-belt)[pulkitjalan/ip-geolocation

IP Geolocation Wrapper with Laravel Support

89164.9k1](/packages/pulkitjalan-ip-geolocation)[flarum/core

Delightfully simple forum software.

211.3M1.9k](/packages/flarum-core)

PHPackages © 2026

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