Download the PHP package itamelions/mono-php-sdk without Composer

On this page you can find all versions of the php package itamelions/mono-php-sdk. 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 mono-php-sdk

mono-php

Latest Version on Packagist PHP Version CI

Unofficial community PHP SDK for the Mono open banking API.
Supports Mandates, Debits, Customers, Accounts, Banks, and Webhooks.
No framework coupling — works in any PHP 8.1+ project (Laravel, Symfony, plain PHP, etc.).


Requirements


Installation


Quick Start


Configuration

Set your Mono secret key as an environment variable:

Then inject it:


Resource Reference

Customer

Account

Mandate

E-mandate / Sweep activation delay: Do not call charge() until you receive the events.mandates.ready webhook. After a customer approves a sweep or e-mandate, Mono requires up to 3 hours before the mandate is ready to debit. Calling charge() before ready fires will return a Mono API error.

Amounts: All amount values must be in the lowest denomination of the account currency — kobo for NGN (100 kobo = ₦1). Pass 500000 for ₦5,000, not 5000.

Dates: start_date and end_date accept Y-m-d strings (e.g. '2026-01-01'). Mono interprets them as midnight UTC. If your application runs in a non-UTC timezone, use UTC-based date logic to avoid off-by-one errors on the mandate start or expiry day.

Debit

Bank


Webhook Verification

Mono signs each webhook request body with your webhook secret using HMAC-SHA512 and sends the hex digest in the mono-webhook-secret HTTP header.

Basic usage

Manual signature verification

Idempotency

Mono may retry unacknowledged webhook deliveries up to 25 times over 48 hours. Always deduplicate on event_id before calling process() to avoid double-processing:

Supported webhook events (non-exhaustive)

Event Description
events.mandates.created Mandate initiated; awaiting customer approval
events.mandates.approved Customer approved the mandate
events.mandates.ready Mandate ready to debit — wait for this before calling charge()
events.mandates.rejected Mandate was rejected
events.mandate.action.pause Mandate was paused
events.mandate.action.reinstate Paused mandate was reinstated
events.mandate.action.cancel Mandate was cancelled
events.mandates.expired Mandate has passed its end date
events.mandates.debit.processing Debit pending NIBSS confirmation
events.mandates.debit.successful Debit succeeded
events.mandates.debit.failed Debit failed

Error Handling

All API errors throw subclasses of Mono\Exceptions\MonoApiException:

Exception When thrown
MonoApiException Any API error (4xx/5xx) or network failure
MonoNotFoundException API returns 404 Not Found

Running Tests

Tests use Mockery to mock the Guzzle HTTP client — no live API calls are made.


What This SDK Covers

Resource Methods
Customer create, update, fetch, list
Account auth, fetch, transactions, identity, income, unlink
Mandate initiate, create, fetch, list, pause, reinstate, cancel, balanceCheck
Debit charge, fetch, all
Bank list
Webhook process, verifySignature, on() listener

Version Roadmap

Version Scope
v1.0 Accounts, Customers, Mandates, Debits, Banks, Webhooks
v1.1 Laravel service provider + facade
v1.2 Retry middleware, configurable timeout
v2.0 Full Mono Connect (statement, income, identity)

Contributing

Contributions are welcome! Please open an issue or submit a pull request.

  1. Fork the repository
  2. Create a feature branch: git checkout -b feature/my-feature
  3. Write tests for your changes
  4. Ensure all tests pass: ./vendor/bin/phpunit
  5. Open a pull request

License

MIT — see LICENSE.


Disclaimer

This is an unofficial community SDK. It is not maintained by or affiliated with Mono. Refer to the official Mono API docs for the authoritative API reference.


All versions of mono-php-sdk with dependencies

PHP Build Version
Package Version
Requires php Version ^8.1
guzzlehttp/guzzle Version ^7.0
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 itamelions/mono-php-sdk contains the following files

Loading the files please wait ...