Download the PHP package bazzly/payoffice without Composer

On this page you can find all versions of the php package bazzly/payoffice. It is possible to download/install these versions without Composer. Possible dependencies are resolved automatically.

FAQ

After the download, you have to make one include require_once('vendor/autoload.php');. After that you have to import the classes with use statements.

Example:
If you use only one package a project is not needed. But if you use more then one package, without a project it is not possible to import the classes with use statements.

In general, it is recommended to use always a project to download your libraries. In an application normally there is more than one library needed.
Some PHP packages are not free to download and because of that hosted in private repositories. In this case some credentials are needed to access such packages. Please use the auth.json textarea to insert credentials, if a package is coming from a private repository. You can look here for more information.

  • Some hosting areas are not accessible by a terminal or SSH. Then it is not possible to use Composer.
  • To use Composer is sometimes complicated. Especially for beginners.
  • Composer needs much resources. Sometimes they are not available on a simple webspace.
  • If you are using private repositories you don't need to share your credentials. You can set up everything on our site and then you provide a simple download link to your team member.
  • Simplify your Composer build process. Use our own command line tool to download the vendor folder as binary. This makes your build process faster and you don't need to expose your credentials for private repositories.
Please rate this library. Is it a good library?

Informations about the package payoffice

Payoffice

All your payment providers in one place.

Latest Version Total Downloads

Payoffice is a Laravel package that solves one specific problem: a payment provider's API can go down or slow down, and your checkout shouldn't blindly trust it. Before sending a customer to a payment gateway, Payoffice can ping the provider's API host and report whether it's up, down, and how fast it's responding — so your app can pick a healthy provider or warn the user instead of failing mid-checkout.

On top of that, it bundles ready-to-use integrations for popular fintech APIs so you don't have to wire each one up from scratch.

Table of contents

Features

Requirements

Requirement Version
PHP ^7.2 | ^8.0 | ^8.1 | ^8.2 | ^8.3 | ^8.4
Laravel (illuminate/support) ^6 | ^7 | ^8 | ^9 | ^10 | ^11 | ^12 | ^13
guzzlehttp/guzzle ^6 | ^7 | ^8 | ^9

Local development (running the test suite / examples/demo.php) is verified against the latest supported combination — PHP 8.4, Laravel 13, PHPUnit 13, orchestra/testbench 11 — via require-dev, regardless of which older Laravel/PHP version you build against.

Installation

Install via Composer:

Laravel's package auto-discovery will register Bazzly\Payoffice\PaymentServiceProvider automatically — no manual entry in config/app.php is needed.

Publish the config file and the pings_monitoring migration:

Publishing the config is required — the package reads provider settings from config/payoffice.php once it exists in your app, not from the package's internal copy.

Configuration

The published config/payoffice.php is a list of provider entries. Fill in credentials via your .env file:

Each provider entry in config/payoffice.php has a name and APIURL key used by the health-ping feature, plus a provider-specific block (paystack, flutterwave, etc.) used by that provider's integration classes.

Usage

Server / API health ping

PingServer checks whether a payment API host is reachable and how fast it responds, so you can gate checkout on the provider actually being up.

To check every provider configured in config/payoffice.php in one pass:

Persisting ping results

If you want a history of ping checks (e.g. for an internal status dashboard), the pings_monitoring migration and PingsMonitoring Eloquent model are included:

This is a manual step — the package does not currently schedule ping checks for you. Wire it into your own app/Console/Kernel.php schedule if you want periodic checks.

Paystack — payments

GetPaid wraps the Paystack transactions/plans/customers/subscriptions/pages/subaccounts API. Most methods read their payload straight from the current request (i.e. they're meant to be called from a controller handling a form POST), but you can also pass an explicit $data array to bypass that.

Other available methods:

Method Purpose
genTranxRef() Generate a unique transaction reference
getAllCustomers() / createCustomer() / fetchCustomer($id) / updateCustomer($id) Customer management
getAllPlans() / createPlan() / fetchPlan($code) / updatePlan($code) Subscription plan management
createSubscription() / getAllSubscriptions() / getCustomerSubscriptions($id) / getPlanSubscriptions($id) / enableSubscription() / disableSubscription() / fetchSubscription($id) Subscription management
createPage() / getAllPages() / fetchPage($id) / updatePage($id) Paystack payment pages
createSubAccount() / fetchSubAccount($code) / listSubAccounts($perPage, $page) / updateSubAccount($code) Split-payment subaccounts
exportTransactions() / getAllTransactions() Transaction reporting

Paystack — transfers & banks

Transfer handles paying money out — bank lookups, recipient creation, and transfers.

Transaction reference generator

TransRef generates cryptographically-random reference strings/tokens (useful for anything needing a unique, non-guessable identifier — not limited to Paystack).

Testing

PingServer, GetPaid, and Transfer all have automated coverage. The Paystack tests don't hit the real API — they inject a Guzzle MockHandler via an optional constructor argument (new GetPaid($handlerStack) / new Transfer($handlerStack)), so the suite runs offline with no credentials needed:

Omit the argument in real usage (new GetPaid()) and it talks to the real Paystack API as normal.

Tests use PHPUnit's #[Test] attribute (PHPUnit\Framework\Attributes\Test), not the older /** @test */ docblock — the latter was removed in PHPUnit 11+. Match that convention for any new test you add.

Local simulation

examples/demo.php is a runnable, no-credentials-needed walkthrough of the whole package — a real network health check via PingServer, plus a mocked Paystack payment and payout flow via GetPaid/Transfer (same MockHandler approach as the tests). Useful for seeing the package work end-to-end without setting up a Laravel app or real API keys:

Roadmap / known limitations

This package is under active development. Known rough edges before you rely on it in production:

Credits

License

The MIT License (MIT). See LICENSE for details.


All versions of payoffice with dependencies

PHP Build Version
Package Version
Requires peppeocchi/php-cron-scheduler Version ^4.0
php Version ^7.2|^8.0|^8.1|^8.2|^8.3|^8.4
illuminate/support Version ~6|~7|~8|~9|^10.0|^11.0|^12.0|^13.0
guzzlehttp/guzzle Version ~6|~7|~8|~9
Composer command for our command line client (download client) This client runs in each environment. You don't need a specific PHP version etc. The first 20 API calls are free. Standard composer command

The package bazzly/payoffice contains the following files

Loading the files please wait ...