sashalenz/monobank-api

This is my package monobank-api
1,171
Install
composer require sashalenz/monobank-api
Latest Version:2.1.0
PHP:^8.2
Laravel:10 – 13
License:MIT
Last Updated:Jun 13, 2026
Links: GitHub  ·  Packagist
Maintainer: sashalenz

Monobank API client for PHP

Latest Version on Packagist GitHub Tests Action Status GitHub Code Style Action Status Total Downloads

A lightweight and expressive PHP wrapper for the Monobank API. It provides simple methods for accessing public banking information and personal account data.

Installation

You can install the package via composer:

composer require sashalenz/monobank-api

You can publish the config file with:

php artisan vendor:publish --tag="monobank-api-config"

This is the contents of the published config file:

return [
];

Usage

This package provides helpers for all Monobank API requests:

  • MonobankApi::bank()->currency() – get current currency exchange rates.
  • MonobankApi::personal()->clientInfo() – retrieve information about accounts and cards.
  • MonobankApi::personal()->webhook($url) – register a webhook URL for transaction updates.
  • MonobankApi::personal()->statement($account, $dateFrom, $dateTo = null) – fetch a statement for a specific account and period.

Examples

Currency rates

Retrieve public exchange rates without authentication.

use Sashalenz\MonobankApi\MonobankApi;

$rates = MonobankApi::bank()->currency();

foreach ($rates as $rate) {
    echo $rate->currencyCodeA . ' => ' . $rate->rateBuy . PHP_EOL;
}
Client information

Get information about your accounts and cards.

$info = MonobankApi::personal()->token($token)->clientInfo();
Register webhook

Configure a webhook to receive transaction updates.

MonobankApi::personal()->token($token)->webhook('https://example.com/monobank');
Webhook route configuration

The package registers two inbound webhook routes (POST {prefix}/{webhook_key} and POST {prefix}/{acquiring_webhook_key}). Where and how they mount is fully configurable (Livewire-style) — set these in config/monobank-api.php or via env:

Config / env Default Purpose
webhook_routes_enabled / MONOBANK_WEBHOOK_ROUTES_ENABLED true Set false to skip route registration entirely (e.g. when you handle the webhook elsewhere).
webhook_domain / MONOBANK_WEBHOOK_DOMAIN null (any host) Constrain the routes to a domain.
webhook_prefix / MONOBANK_WEBHOOK_PREFIX monobank-api URL path prefix.
webhook_middleware / MONOBANK_WEBHOOK_MIDDLEWARE [] Middleware/guards (env = comma-separated list).
webhook_key / acquiring_webhook_key webhook / acquiring-webhook Path segment per controller.

All defaults preserve the previous behaviour.

Account statement

Fetch the statement for an account within a given period.

$statement = MonobankApi::personal()
    ->token($token)
    ->statement($accountId, $dateFrom, $dateTo);

Testing

composer test

Changelog

Please see CHANGELOG for more information on what has changed recently.

Contributing

Please see CONTRIBUTING for details.

Security Vulnerabilities

Please review our security policy on how to report security vulnerabilities.

Credits

License

The MIT License (MIT). Please see License File for more information.

Related Packages

sashalenz/google-maps-api

Google Maps API SDK for Laravel

1,252 0
sashalenz/privat24-business-api

This is my package privat24-business-api

1,173 0
sashalenz/novapay-api

NovaPay Business Cabinet API client for Laravel

1,117 0
sashalenz/delivery-auto-api

Delivery Auto API client for Laravel

1,130 1

Version History

Version Released PHP Laravel License
2.1.0 ^8.2 ^10.0||^11.0||^12.0||^13.0 MIT
2.0.4 ^8.2 ^10.0||^11.0||^12.0||^13.0 MIT
2.0.3 ^8.2 ^10.0||^11.0||^12.0||^13.0 MIT
2.0.2 ^8.2 ^10.0||^11.0||^12.0||^13.0 MIT
2.0.1 ^8.2 ^10.0||^11.0||^12.0||^13.0 MIT